全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1925|回复: 1

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

[复制链接]
发表于 2016-1-29 10:03:15 | 显示全部楼层 |阅读模式
内容来源于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, 下载次数: 1)

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


原文链接:https://www.pppcloud.cn/community_courseInfo.html?id=800019
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-9 07:54 , Processed in 0.066668 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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