centos7.4编译安装PHP7.3.7
准备工作
- cmake-3.15.1.tar.gz
- libzip-1.5.2.tar.gz
- php-7.3.7.tar.gz
操作步骤
- 安装依赖
```
yum install gcc autoconf gcc-c++
yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel readline readline-devel libxslt libxslt-devel
yum install systemd-devel
yum install openjpeg-devel
yum install libicu libicu-devel
```
- 安装cmake高版本
```
# 解压
tar -zxvf cmake-3.15.1.tar.gz
# 进入解压目录,安装
cd ./bootstrap
make && make install
```
- 安装libzip高版本
```
# 解压
tar -zxvf libzip-1.5.2.tar.gz
# 进入解压目录,安装
cd ./libzip-1.5.2
mkdir build
cd build
cmake ..
make && make install
```
- 安装PHP7.3.7
```
cd ./php-7.3.7
./configure --enable-fpm --with-fpm-systemd --with-libxml-dir --enable-xmlreader --enable-xmlwriter --with-xmlrpc --with-bz2 --with-pcre-dir --enable-mysqlnd --with-mysql-sock --with-mysqli --with-pdo-mysql --with-pdo-sqlite --enable-opcache --enable-pcntl --enable-mbstring --enable-soap --enable-zip --enable-calendar --enable-bcmath --enable-exif --with-pcre-regex --with-xsl --enable-ftp --enable-intl --enable-sockets --with-openssl --with-mhash --with-zlib --with-zlib-dir --with-curl --with-gettext --with-gd --enable-exif --enable-gd-jis-conv --with-png-dir --with-jpeg-dir --with-freetype-dir
# 2019/08/02 补充
# --enable-gd-jis-conv 参数会引发报错“imagettftext(): any2eucjp(): invalid code in input string”
```
- 可能出现的错误
```
# configure: error: off_t undefined; check your library configuration
echo '/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64'>>/etc/ld.so.conf
# 更新配置
ldconfig -v
```
- 可能出现的错误,内存不足
```
# virtual memory exhausted: Cannot allocate memory
# 虚拟机安装时没有设置swap或者设置内存太小。
mkdir /opt/images/
dd if=/dev/zero of=/opt/images/swap bs=1024 count=2048000
mkswap /opt/images/swap
swapon /opt/images/swap
# 查看虚拟内存大小
free -m
# 安装完成,可以取消文件虚拟内存,删除
swapoff /opt/images/swap
rm -f /opt/images/swap
```
![php编译成功](/uploads/article/20190729/bc0e84c8b0cad6599f5a3db40e5c1d248c1a61b7.png "php编译成功")
-安装
```
make && make install
```
![PHP安装成功](/uploads/article/20190729/03cdc1ed2e5160e722d78edf7374a0bae4fb72ed.png "PHP安装成功")
- 拷贝 `php.ini` 及 `php-fpm.conf` 配置文件
```
cp ./php.ini-production /usr/local/lib/php.ini
cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf
cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf
```
- 启动php-fpm
```
/usr/local/sbin/php-fpm
```
- 可能出现的问题
```
#ERROR: Unable to globalize '/usr/local/NONE/etc/php-fpm.d/*.conf' (ret=2) from /usr/local/etc/php-fpm.conf at line 143.
# 143行 include=NONE/etc/php-fpm.d/*.conf 改为:
vi /usr/local/etc/php-fpm.conf
include=etc/php-fpm.d/*.conf
```
![](/uploads/article/20190729/f9110dfff6767bf617b070de663a74382caa02d1.png)
![](/uploads/article/20190729/f9be5a01634cc3281e49ca2c5c138bb0a84eddfe.png)
- 正常启动截图
![](/uploads/article/20190729/ec63a00796c6a45a83d3925194f23a9d72f499e8.png)