CentOS7.4编译安装PHP7.3.7

2019-07-29 PHP 1636

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)
0