#### 1. 下载php安装包
新建一个文件夹/home/php文件夹存放php的安装文件。
php的官网:http://www.php.net/
下载php的最新版本php-7.4.1
`axel -n 10 http://cn2.php.net/distributions/php-7.4.1.tar.gz`
![](https://box.kancloud.cn/f3c172de5bacce97d44dfae3cae47a34_1387x554.png =770x279)
#### 2. 解压压缩包
~~~
tar -zxvf php-7.4.1.tar.gz
cd php-7.4.1
~~~
#### 3. 安装依赖库
先安装php需要的依赖库(直接复制进去一次性安装好)
~~~
yum -y install libxml2
yum -y install libxml2-devel
yum -y install openssl
yum -y install openssl-devel
yum -y install curl-devel
yum -y install libjpeg-devel
yum -y install libpng-devel
yum -y install freetype-devel
yum -y install bzip2-devel
yum -y install libmcrypt libmcrypt-devel
yum -y install postgresql-devel
yum -y install aspell-devel
yum -y install readline-devel
yum -y install libxslt-devel
yum -y install net-snmp-devel
yum -y install unixODBC-devel
yum -y install libicu-devel
yum -y install libc-client-devel
yum -y install libXpm-devel
yum -y install libvpx-devel
yum -y install enchant-devel
yum -y install openldap
yum -y install openldap-devel
yum -y install db4-devel
yum -y install gmp-devel
yum -y install sqlite-devel
yum -y install mysql-devel
~~~
如果cmake版本低于3.0.2需要升级
```
wget https://cmake.org/files/v3.13/cmake-3.13.0.tar.gz
tar -zxvf cmake-3.13.0.tar.gz
cd cmake-3.13.0
./bootstrap --prefix=/usr/
make && make install
cmake --version
```
libzip安装
```
wget https://libzip.org/download/libzip-1.5.1.tar.gz
tar -zxvf libzip-1.5.1.tar.gz
cd libzip-1.5.1
mkdir build && cd build && cmake .. && make && make install
echo '/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64'>>/etc/ld.so.conf&&ldconfig -v
```
oniguruma安装(php 7.4需要安装)
~~~
git clone https://github.com/kkos/oniguruma
cd oniguruma
autoreconf -vfi
./configure
make
make install
# 再执行
autoreconf -fi
export PKG_CONFIG_PATH= 'oniguruma的路径'
~~~
libiconv的安装(php 7.4需要安装)
~~~
wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz
tar -zxvf libiconv-1.16.tar.gz
cd libiconv-1.16
./configure --prefix=/usr/local
make
make install
ldconfig
编译php7.4的时候加上-liconv
make ZEND_EXTRA_LIBS='-liconv'
~~~
在更新php版本后,所有的php扩展都需要使用make clean 清理编译缓存,重新编译安装。否则会由于版本不一致报
Unable to initialize module 无法初始化对应模块的错误
#### 4. 添加用户和组
`groupadd -r www && adduser -r -g www -s /bin/false -d /alidata/www -M www`
查看用户
`cat /etc/passwd`
查看组
`cat /etc/group`
#### 5. 对php7进行配置
下面代码按需求修改后全部复制进去一次性执行(php7.3去掉 --with-mcrypt, --enable-gd-native-ttf, --with-libmbfl
)
~~~
./configure \
--prefix=/alidata/server/php \
--with-config-file-path=/alidata/server/php/etc \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-soap \
--with-xmlrpc \
--with-openssl \
--with-pcre-regex \
--with-sqlite3 \
--with-zlib \
--enable-bcmath \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--with-cdb \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-openssl-dir \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-json \
--enable-mbstring \
--enable-mbregex \
--enable-mbregex-backtrack \
--with-onig \
--enable-pdo \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-zlib-dir \
--with-pdo-sqlite \
--with-readline \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-libxml-dir \
--with-xsl \
--enable-zip \
--enable-mysqlnd-compression-support \
--with-pear \
--enable-opcache \
--enable-pcntl \
--enable-posix
~~~
![](https://box.kancloud.cn/ab7c3b76b741ca6a5286d880816f0eec_975x739.PNG)
#### 6. 编译安装php7
`make && make install`
看到下图信息说明安装成功 (如果重新编译需要先make clean清理之前的已经编译的可执行文件)
#### 7. 查看php版本
`/alidata/server/php/bin/php -v`
![](https://box.kancloud.cn/3c3ab7c0d3c458bcdc03826b4478d496_974x744.PNG)
#### 8. 创建配置文件
创建www.conf配置文件
~~~
cd /alidata/server/php/etc/php-fpm.d
cp www.conf.default www.conf
~~~
创建php-fpm.conf配置文件
~~~
cd /alidata/server/php/etc
cp php-fpm.conf.default php-fpm.conf
~~~
创建php.ini配置文件
将安装源文件目录里的php.ini-production或者php.ini-development修改后缀拷贝到php安装目录的etc文件夹内
~~~
cd /home/php/php-7.4.1
cp php.ini-production /alidata/server/php/etc/php.ini
~~~
#### 9. 将bin和sbin路径加入到path变量中。
配置环境变量
`vim /etc/profile`
加入下面内容
~~~
PATH=/user/local/cmake/bin:$PATH
PATH=/alidata/server/mysql/bin:$PATH
PATH=/alidata/server/php/bin:$PATH
export PATH
~~~
保存后执行source命令使配置立即生效
`source /etc/profile`
#### 10. 配置php-fpm到系统服务
~~~
cp /home/php/php-7.4.1/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm
~~~
配置php-fpm.conf
`vim /alidata/server/php/etc/php-fpm.conf
`
将pid(;pid = run/php-fpm.pid)前的;去掉。
#### 12. 配置开机自动启动
```
chkconfig --add /etc/init.d/php-fpm
chkconfig php-fpm on
```
#### 13. 配置nginx解析php文件
~~~
cd /alidata/server/nginx/conf
vim nginx.conf
~~~
将php解析前的#都去掉,如下图。然后保存修改。
~~~
location ~ .*\.(php|php5)?$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
~~~
nginx重新加载配置文件
`service nginx reload`
![](https://box.kancloud.cn/4544e3b0046bc8226014fd25539127ff_833x594.PNG)
#### 14. 创建一个php文件
如果设置了根目录,在根目录里面新建
`vi /alidata/server/nginx/html/phpinfo.php`
输入如下代码
`<?php phpinfo(); ?>`
保存
配置没问题就会看到下面的页面
![](https://box.kancloud.cn/9b21c89f4d4bff06aaaf6e59a8e07313_1886x686.PNG =770x280)