1、下载PHP

首先到官网找到自己需要的php版本然后复制链接下载
curl -O https://www.php.net/distributions/php-7.2.31.tar.gz

2、安装PHP

1
2
3
4
5
6
#安装libxml2
#ubuntu/debian安装方式:
apt-get install libxml2-dev

#centos/redhat安装方式:
yum install libxml2-devel

3、开始安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#解压tar.gz
tar -xzvf php-7.2.31.tar.gz

#切换到目录里面
cd php-7.2.31

#配置
./configure --with-mysql=/usr/bin/mysql_config --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-fpm --with-openssl

#安装
make && make install

#复制配置文件
cp php.ini-development /usr/local/php/php.ini
cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin

#修改配置
vim /usr/local/php/php.ini
#定位到 cgi.fix_pathinfo= 并将其修改为0

#开始启动服务
/usr/local/bin/php-fpm -c /usr/local/php/php.ini
#开启服务可能会出现如下错误

#错误一
#[23-Jun-2014 12:27:02] ERROR: failed to open configuration file '/usr/local/php/etc/php-fpm.conf': No such file or directory (2)
#2 [23-Jun-2014 12:27:02] ERROR: failed to load configuration file '/usr/local/php/etc/php-fpm.conf'
#3 [23-Jun-2014 12:27:02] ERROR: FPM initialization failed
#解决方法:
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf


----------


#错误二
#ERROR: Unable to globalize '/usr/local/NONE/etc/php-fpm.d/*.conf' (ret=2) from /usr/local/etc/php-fpm.conf at line 125.
#解决方法:
#既然是在 /usr/local/etc/php-fpm.conf文件的问题,就去找,果然最后一行是这个样子的:
#include=NONE/etc/php-fpm.d/*.conf
#果断修改为 include=etc/php.fpm.d/*.conf

4、配置 Nginx 使其支持 PHP 应用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
vim /usr/local/nginx/conf/nginx.conf
修改默认的 location 块,使其支持 .php 文件:

location / {
root html;
index index.php index.html index.htm;
}
下一步配置来保证对于 .php 文件的请求将被传送到后端的 PHP-FPM 模块, 取消默认的 PHP 配置块的注释,并修改为下面的内容:

location ~* \.php$ {
fastcgi_index index.php;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
#重启 Nginx。

sudo /usr/local/nginx/sbin/nginx -s stop
sudo /usr/local/nginx/sbin/nginx
#创建测试文件。

rm /usr/local/nginx/html/index.html
echo "<?php phpinfo(); ?>" >> /usr/local/nginx/html/index.php

打开浏览器,访问 http://localhost,将会显示 phpinfo() 。

4、mysqli扩展安装错误解决方案

错误一:Warning: mysqli::__construct(): (HY000/2002): No such file or directory
解决方案:
1)首先登录mysql输入status复制unix socket
2)修改php.ini文件把所有mysqli.default_socket、mysql.default_socket、pdo.default_socket修改成
xxx.default = 刚刚复制的unix socket
3)重启php-fpm -c php.ini文件路径