Nginx (读“engine x”)是一款免费、开源、高性能的HTTP服务器。 Nginx 因性能稳定、功能丰富、配置简单、资源消耗低而著称。本文将介绍如何在CentOS 7服务器上安装Nginx、PHP5(通过PHP-FPM)、和MySQL,这个环境也简称LNMP或LEMP。
1 约定本问中的测试主机名用本地IP地址:http://127.0.0.1,请根据具体情况替换。 教程中的命令都是在 root 权限下操作,请切换到 root 用户,命令:
su
输入密码后进入 root 用户控制台。 2 安装 MySQL5与CentOS 6不同,CentOS 7服务器必须通过社区仓库来安装MySQL。如果像CentOS 6中用: MySQL的社区仓库:https://dev.mysql.com/downloads/repo/yum/,安装步骤:
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum update
yum install mysql-server
在询问的时候键入
systemctl start mysqld # 启动 MySQL
systemctl enable mysqld # 开机启动ySMySQL
MySQL默认会绑定到地址 localhost(127.0.0.1),默认用户名是
mysql_secure_installation
3 安装 Nginx如果系统上有安装了Apache,先卸载。
service httpd stop
systemctl disable httpd
yum remove httpd
再安装 Nginx:
yum install epel-release
yum -y install nginx
启动 Nginx,并设置为开机启动:
systemctl start nginx
systemctl enable nginx
在浏览器中输入服务器的域名或IP地址(如:http://127.0.0.1 ),会看到如下的内容,说明安装成功:
Nginx 默认的HTML根目录是:/usr/share/nginx/html,可以修改其下的 index.html 的内容再看看效果。为让web应用能读写HTML根目录下的目录和文件,需将其拥有者改为 nginx 用户:
chown -R nginx:nginx html/
4 安装 PHP5-FPMPHP5 通过 PHP-FPM(FastCGI进程管理器)可以很好地与 Nginx 协同工作,PHP-FPM 针对不同规模的网站功能和性能都非常优良,尤其是高并发大型网站。 安装步骤如下:
yum install php php-mysql php-fpm
然后是配置。打开文件 /etc/php.ini,设置
[...]
cgi.fix_pathinfo=0
[...]
再配置PHP-FPM。打开文件 /etc/php-fpm.d/www.conf,
如下:
[...]
listen = /var/run/php-fpm/php-fpm.sock
[...]
listen.owner = nobody
listen.group = nobody
[...]
user = nginx
group = nginx
[...]
启动 PHP-FPM,并设置为开机启动:
systemctl start php-fpm
systemctl enable php-fpm
PHP-FPM 启动之后,会生成 socket 文件 5 配置 NginxNginx 的配置文件是:/etc/nginx/nginx.conf,使用
vi /etc/nginx/nginx.conf
配置项非常简单,如果需要了解详细内容,可看:https://www.nginx.com/resources/wiki/start/topics/examples/full/。下面介绍基本的配置。 首先,根据情况调整
[...]
worker_processes 4;
[...]
keepalive_timeout 2;
[...]
虚拟主机定义在
[...]
server {
listen 80;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
index index.php index.html index.htm;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
location = 40x.html {
root /usr/share/nginx/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_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
}
}
[...]
关于配置的一些说明:
保存配置文件后,检查配置文件的语法,再重新加载 Nginx:
nginx -t # 简称配置文件
systemctl reload nginx # 重新加载nginx
在 /usr/share/nginx/html 目录下创建文件 index.php,内容为:
<?php
phpinfo();
?>
再次访问 http://127.0.0.1,如下:
可以看到,PHP5 已经工作,根据 Server API 行看出,是通过 FPM/FastCGI 方式工作的,往下拉会看到 PHP5 加载的其他模块,包括MySQL、cURL、sqlite模块的支持。 6 PHP-FPM 使用 TCP 连接默认情况下,PHP-FPM 通过 /var/run/php-fpm/php-fpm.sock 文件侦听 socket。当然,也可以设置 PHP-FPM 使用 TCP 连接。打开文件 /etc/php-fpm.d/www.conf,设置
[...]
;listen = /var/run/php-fpm/php-fpm.sock
listen = 127.0.0.1:9000
[...]
这样 PHP-FPM 会侦听地址
systemctl reload php-fpm
接下来,编辑 /etc/nginx/nginx.conf 文件,修改如下一行:
[...]
#fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_pass 127.0.0.1:9000;
[...]
然后,重载 nginx 就可以了:
sytemctl reload nginx
这样,整个LNMP环境就搭好了。 参考地址:
|