0%

centos7 - centos 7.2 /var/run/php-fpm/php-fpm.sock不存在

在搭建Lnmp环境的时候可能会遇到这么一个问题,发现nginx安装好之后只能解析html文件的代码,却不能解析php文件的代码,这个时候可能出现的情况有两种,第一种是看php、php-fpm是否有装完成和是否启动;第二种情况就是下面的方案,跟系统的关系,nginx的配置有所不同。在nginx中配置重写规则中,有这么一句话:

1
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock

可是在centos7.2中,这个路径没有这个文件,只有一个php-fpm.pid文件,那么上面这个文件在哪里?

1
2
3
[root@izwz9a3uv2157di5ogaaytz sites-enabled]# cd /var/run/php-fpm/
[root@izwz9a3uv2157di5ogaaytz php-fpm]# ls
php-fpm.pid

用find / -name “php.sock”找一下sock文件的位置,如果没找到的话就是没配置Unix Socket,只能访问TCP端口,可以为改为fastcgi_pass 127.0.0.1:9000

正确的配置:

1
2
3
4
5
6
7
8
9
10
11
12
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
#fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; //原来的
fastcgi_pass 127.0.0.1:9000; //更改之后
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $uri;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_index index.php;
include fastcgi_params;
}

CentOS7yum安装PHP7.2

1
2
3
4
5
6
7
8
9
10
11
yum -y remove php*  //如果之前已经安装我们先卸载一下


//由于linux的yum源不存在php7.x,所以我们要更改yum源
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm


//yum 安装php72w和各种拓展,选自己需要的即可
yum -y install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml