上回说到,我给自己的系统重装 CentOS7,并且安装好了Web服务器——NGINX

但是,只有Web服务器没有用啊,只能放置一些静态的网站。

要让网站活起来,就一定要安装各种动态语言。

动态语言很多啦。PHPJavaPython等等都算。

这一回就教大家怎么安装世界上最好的语言——PHP 到你的 CentOS7 服务器上。

懒人安装法 yum

yum

一行命令搞定:

1
yum –y install php php-devel php-fpm

最后装进去的是 PHP 5.4.16,不过是修了BUG的版本。

对于我这样要运行老玩意的程序的人来说,这个版本刚刚好。

启动 php-fpm

先启动 php-fpm 的服务,不然后面没办法用 PHP

1
2
3
4
[root@haha yue]# service php-fpm start
Redirecting to /bin/systemctl start php-fpm.service
[root@haha yue]# systemctl enable php-fpm.service
Created symlink from /etc/systemd/system/multi-user.target.wants/php-fpm.service to /usr/lib/systemd/system/php-fpm.service.

看到 systemctl 了吗?那一行是拿来自启动的。这样就不用担心重启之后 PHP 用不了啦。

配置 NGINX

这一步很关键。我们需要对要用 PHP 的网站配上 PHP 的配置。

假设原来的网站的配置是下面这样的:

1
2
3
4
5
6
server {
listen 80;
server_name sloth.com;

root /var/www/sloth;
}

配置默认 index 文件

我们需要在 NGINXhttp 或者 server 这两个层加上:

1
index  index.html index.htm index.php;

不然的话,NGINX 是不知道 index.php 是首页文件的。

这样有可能访问 http://sloth.com 会出现 404 Not Found 的情况。

加上 php 文件解析

在你要开启 PHP 的网站的 server 配置项下,补充上:

1
2
3
4
5
6
7
8
9
location ~ \.php$ {
try_files $uri = 404;

fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_hide_header X-Powered-By;
include fastcgi_params;
}
  • try_files 那行: URI上的文件不存在就直接返回NGINX404错误,而不是交给 PHP-FPM 再判定文件不存在;
  • fastcgi_pass: 套路来的。PHP-FPM 默认端口是 :9000,当然你用套接字的办法就用 unix: 吧;
  • fastcgi_index: 套路来的。在CGI上的默认 index
  • fastcgi_fastcgi_param: 套路来的。传给 PHP-FPM 让它老人家知道 php 文件在哪里;
  • fastcgi_hide_header 那行:隐藏 PHP 的版本号,防止黑客试图揣测;
  • include fastcgi_params;: 套路。调用 FASTCGI 的指令集。

所以,折腾完了就长这个样子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
server {
listen 80;
server_name sloth.com;

root /var/www/sloth;

index index.html index.htm index.php;
log_not_found off;

location ~ \.php$ {
try_files $uri = 404;

fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_hide_header X-Powered-By;
include fastcgi_params;
}

}

保存到 nginx.conf 里面或者单独建一个文件,自己在 nginx.conf 里面 include 都可以。

重启 NGINX 看效果

nginx -s reload 就可以热重启(重新加载配置)

做了这个动作就可以看到新的网站部署上去啦~

是不是很简单?

下一节介绍怎么在 CentOS7 下安装 Node.js

除非注明,麦麦小家文章均为原创,转载请以链接形式标明本文地址。

版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)

本文地址:https://blog.micblo.com/2017/01/18/CentOS7%E9%87%8D%E8%A3%85%E4%B9%8B%E8%B7%AF-PHP%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8%E7%AF%87/