Centos7配置nginx解析php脚本文件
继上篇我们安装好 nginx 和 php 服务之后,接下来我们配置 nginx 解析 html 文件夹下的 php 文件。当我们安装好 nginx 服务后,我们输入虚拟机的 ip 地址时候,我们默认访问的时 80 端口,它默认显示们 /usr/local/nginx/html (这里根据你自己安装的位置) 文件夹下的 index.html 文件,即 nginx 的默认访问主页。如果我们想放置 php 文件进行访问,就必须配置 nginx 能够解析 php 脚本。接下来演示如何配置 nginx 服务通过 https (http+ssl) 进行访问以及解析 php 脚本文件。
# nginx 配置 https 访问
-
要配置 https 服务,首先 nginx 要支持 ssl 协议,如果是 yum 方式安装的,它会默认帮你下载 ssl 模块。注意如果是源码方式安装的,在进行编译安装时,需要加上
--with-http_ssl_module
选项 (参考我上篇文章) -
生成自签名证书 (不受信任) 或去 ca 机构免费申请一个 https 证书 (受信任),这里演示自签名证书。如果是想搭建网站,可以去申请一个证书。然后配置 nginx.conf 文件中的 https 服务。
-
第一步:生成公钥和私钥
1
2
3
4rsa非对称加密算法
cret.key 私钥,这个可以自己命名
cret.pem 公钥,用样这个也可以自己命名
openssl req -newkey rsa:4096 -nodes -keyout cret.key -x509 -days 365 -out cert.pem运行该命令之后,会在当前文件夹下生成 cret.key 和 cret.pem 两个文件。
-
第二步:配置 /usr/local/nginx/conf/nginx.conf 文件,可以先备份,以免误操作。
1
2cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf_bak
vim /usr/local/nginx/conf/nginx.conf打开 server {listen 443} 那段代码注释,如果没有直接添加,配置如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14server {
listen 443 ssl ;
server_name Localhost ;
ssl certificate "/usr/Local/nginx/SSL/cert.pem"; #对应自己的公钥地址
ssl_ certificate_ key "/usr/local/nginx/SSL/cert.key"; #对应自己的私钥地址
ssl session cache shared:SSL: 1m;
ssl session timeout 5m;
ssl_ ciphers HIGH:!aNULL:!MD5;
ssl prefer server_ ciphers on;
Location / {
root html ;
index index . html index . htm;
}
}
-
-
最后去浏览器验证 https 是否配置成功。
-
在浏览器中输入 https:// 虚拟机 ip 地址
-
这里不安全是因为我们使用的是自签名证书,没关系,点击继续前往,就可以访问我们的主页了。
-
# 配置 nginx 解析 php 脚本文件
-
上一篇文章我们使用 Remi 模块安装的 php 服务,所以一些配置文件路径和 yum 直接安装的有些区别,这都无伤大雅,重要是如何配置这么文件?有那些文件需要配置?
1
2
3
4
5
6
7
8
9
10
11当前PHP内存限制低于推荐值512MB。
vim /etc/opt/remi/php74/php.ini
memory_limit = 512M
如果你运行的是nginx而不是apache,修改
vim /etc/opt/remi/php74/php-fpm.d/www.conf
user = apache
group = apache
Replace the values with
user = nginx
group = nginx -
编辑 php.ini 文件:
vim /etc/opt/remi/php74/php.ini
-
找到 memory_limit 一行,将其改成 512M:
-
将 cgi.fix_pathinfo 值设置为 0:
-
-
创建用户 nginx
1
2groupadd nginx
useradd -g nginx nginx -
编辑 www.conf 文件,将 user 和 group 的值都改成 nginx:
-
执行如下命令将 php74 链接到系统环境变量中,就可以任意地方使用 php -v 了:
1
ln -s /opt/remi/php74/root/usr/bin/php /usr/bin/php
-
修改 nginx 配置文件:
vim /usr/local/nginx/conf/nginx.conf
-
首先去掉 user 注解,将其值改成 nginx:
-
接着修改 location 块,追加 index.php 让 nginx 服务器默认支持 index.php 为首页:
-
最后配置 PHP 部分:
1
2
3
4
5
6location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
-
-
最后我们在 /usr/local/nginx/html 下编写一个 php 测试文件,然后去浏览器进行访问。
-
测试文件 test.php 内容:
1
2
3php
phpinfo(); #可以排查配置php是是否出错或漏配置模块 -
在浏览器输入 https:// 虚拟机 ip 地址 /test.php,可以看到能成功输出。
-
至此我们所有配置基本完成,如果有兴趣可以学习一下 php 动态网页编程语言,编写更加好看的网页页面。