设为首页收藏本站

全球主机交流论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

搜索
热搜: discuz
查看: 359|回复: 0
打印 上一主题 下一主题

CentOS 7中安装Nginx, MySQL, PHP (LEMP)

[复制链接]
  • TA的每日心情
    擦汗
    2017-9-11 09:31
  • 签到天数: 176 天

    [LV.7]常住居民III

    跳转到指定楼层
    楼主
    发表于 2016-1-29 14:56:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    内容来源于PPPCloud官网教程

    介绍
    LEMP 组合包是一款开源的的网站服务组合软件包,在网站服务上起着强有力的作用。 LEMP 包是由 Linux、nginx、MariaDB/MySQL 和 PHP 组成的,其中nginx 的高性能及轻量级等特性替代了Apache ,MySQL 驱动引擎使用MariaDB ,PHP用来生成网页动态内容。
    本文档中,主要是在 PPPCloud箭头的CentOS 7环境下安装LEMP组合包。CentOS 7为提供的Linux操作系统。
    先决条件
    在本手册开始之前,在服务器中需要存在一个非root的用户
    注:当遇到Nginx无法运行的情况时,确信SELinux在Nginx在配置文件中正确配置或者改变SELinux的状态到permissive或disabled状态
    步骤一 安装Nginx
    Nginx用于呈现网页,作为web server。
    打开命令行界面,安装CentOS 7 EPEL,使用sudo超级用户的权限进行安装
    $ sudo yum install epel-release
    安装Nginx

    $ sudo yum install nginx
    上述步骤操作完成后,web server简装完成。启动Nginx

    $ sudo systemctl start nginx
    启动完成后,可以通过访问服务器ip地址的方式监测是否安装成功

    Open in a web browser:

    http://server_domain_name_or_IP/
    显示出如下界面后,表明web server安装成功

    在系统启动阶段开启Nginx方式如下:

    $ sudo systemctl enable nginx
    如何找到服务器公共IP地址
    如果不知道服务器的ip地址,有多种途径可以去获取到。通过这个地址,可以使用ssh连接到服务器。
    使用iproute2 工具获取ip地址,命令行如下:

    $ ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
    上述命令将返回一个或两个结果,返回的数据均可以使用。
    步骤二 安装MySQL( MariaDB)
    下一步就是安装MariaDB数据库,MariaDB数据库管理系统是MySQL的一个分支,由开源社区维护,可以用于存储网站信息
    安装mariadb数据库

    $ sudo yum install mariadb-server mariadb
    安装完成后,启动mariadb

    sudo systemctl start mariadb
    现在MySQL数据库处在运行中,需要运行一个安全脚本防止数据库被恶意更改,运行交互式的脚本如下:

    sudo mysql_secure_installation
    提示信息要求输入当前的root密码,由于安装MySQL过程中已经输入过一次,因此直接enter继续。当提示信息要求设置root密码时,输入密码即可

    mysql_secure_installation prompts:   
    Enter current password for root (enter for none):
    OK, successfully used password, moving on...   

    Setting the root password ensures that nobody can log into the MariaDB
    root user without the proper authorisation.

    New password: password

    Re-enter new password: password

    Password updated successfully!

    Reloading privilege tables..

    ... Success!
    在系统启动阶段开启Nginx方式如下:
    $ sudo systemctl enable mariadb
    步骤三 安装PHP
    PHP 是 LEMP 包中一个重要的组件,它负责把存储在 MariaDB/MySQL 服务器的数据取出生成动态内容。
    安装过程中,至少需要安装上 PHP-FPM 和 PHP-MySQL 两个模块
    $ sudo yum install php php-mysql php-fpm
    配置PHP处理器
    现在PHP组件安装完毕,为了安全起见,需要修改一下配置文件。
    打开php-fpm配置文件
    $ sudo vi /etc/php.ini
    在配置文件中找到cgi.fix_pathinfo,将分号(;)去掉,默认值为1
    这个是一个非常不安全的配置,由于PHP未找到匹配的匹配的文件时,将执行与其接近的为文件。
    因此我们可以改变默认值为0,如下图
    /etc/php.ini 摘要
    cgi.fix_pathinfo=0
    然后修改php-fpm配置文件www.conf
    $ sudo vi /etc/php-fpm.d/www.conf
    在配置文件中找到listen参数,按照下图方式修改
    /etc/php-php.d/www.conf — 1 of 3

    listen = /var/run/php-fpm/php-fpm.sock
    在配置文件中找到listen.owner 和 listen.group参数,按照下图方式修改
    /etc/php-php.d/www.conf — 2 of 3

    listen.owner = nobody
    listen.group = nobody
    在配置文件中找到user 和 group 参数,按照下图方式修改

    /etc/php-php.d/www.conf — 2 of 3
       
    user = nginx
    group = nginx

    上述步骤操作完成后。启动php-fpm
    $ sudo systemctl start php-fpm
    在系统启动阶段开启php-fpm方式如下:
    $ sudo systemctl enable php-fpm
    步骤四 配置Nginx到PHP
    到目前为止,所需的所有的组件均已安装完毕。还需要进行的配置是关于Nginx和PHP的相关内容。修改默认的Nginx配置,
    $ sudo vi /etc/nginx/conf.d/default.conf
    将注释去掉,Nginx默认的配置如下:
    /etc/nginx/conf.d/default.conf — original

    server {
    listen   80;
    server_name  localhost;

    location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm;
    }

    error_page   500 502 503 504  /50x.html;

    location = /50x.html {
    root   /usr/share/nginx/html;
    }

    }
    对于默认的配置,需要进行部分修改,内容如下:
    1)增加index.php选项
    2)修改server_name指向服务器的domain和ip地址
    3)取消一些功能的注释
    4)增加try_files 参数,防止PHP处理器接收错误请求
    下面内容为改变后的配置:
    /etc/nginx/conf.d/default.conf — updated

    server {
    listen   80;
    server_name  server_domain_name_or_IP;

    # note that these lines are originally from the "location /" block

    root   /usr/share/nginx/html;
    index index.php index.html index.htm;

    location / {
    try_files $uri $uri/ =404;
    }

    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;

    location = /50x.html {
    root /usr/share/nginx/html;
    }

    location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }

    }
    重启nginx,使配置文件生效
    $ sudo systemctl restart nginx
    步骤五 在Web服务器中测试PHP处理
    为了测试系统是否合理的配置PHP,编写基础的php脚本。
    调用的脚本名称为info.php,Apache获取该文件,需要指定特定的目录,该目录为web 的根目录。
    在CentOS 7中,该目录位置为/usr/share/nginx/html/,因此创建文件,
    $ vi /usr/share/nginx/html/info.php
    在文件中写入如下内容
    Test PHP Script

    <?php phpinfo(); ?>
    现在可以测试是否web服务器可以正常显示PHP的脚本。通过web浏览器访问该网址,访问地址为:
    Open in a web browser:

    http://your_server_IP_address/info.php
    最终呈现的效果如下
    啊啊啊啊啊啊.png (130.17 KB, 下载次数: 0)

    这个显示出来的网页,提供了基本的系统信息。有效的调试了是否正确设置了配置文件。如果正常显示,则说明PHP正常工作。
    测试完毕后,为了防止其他人看到系统信息,可以将文件删除
    $ sudo rm /usr/share/nginx/html/info.php
    结论
    到此为止,LEMP组合包安装完毕,在此基础上可以有多种方式的使用。
    基本上,web服务器已经成型,搭建了一个网站平台系统。


    原文链接:https://www.pppcloud.cn/community_courseInfo.html?id=800019
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|小黑屋|Archiver|手机版|中国U网    

    GMT+8, 2024-5-6 18:49 , Processed in 0.072119 second(s), 21 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表