晓波博客

争做优秀原创个人博客。

php7.3编译安装

好久没有写博客了,沉寂很久。拖延症和懒惰都没有改变,人生不值得~~
1. 进入正题,本次安装基于centos7.2.其他版本理论上都差不多,编译安装比较灵活点,当然如果有公网可以用yum,那样才是最方便的,一般编译用来升级或者没有公网的生产系统用的比较多。当然技术党除外,哈哈。
2. 首先下载libzip1.2.0.tar.gz,这个是依赖包之一,但是php7.3需要大于0.11版本cenots7的只有0.10所以找源码包编译安装。不要下载太新的libzip要不然编译会报cmake版本过低。
wget https://libzip.org/download/libzip-1.2.0.tar.gz
解压libzip
tar xvf libzip-1.2.0.tar.gz
安装
./configure --prefix=/usr/
make && make install

ln -s /usr/local/lib/libzip/include/zipconf.h /usr/local/include/  #软连接头文件,要不然make的时候会有如下问题
没有链接头文件就会出现这样的问题:

然后下载php的安装包:
wget https://www.php.net/distributions/php-7.3.6.tar.gz 

#安装依赖:
yum install -y gcc gcc-c++  libjpeg libjpeg-devel bzip2 bzip2-devel libxslt libxslt-devel pcre pcre-devel freetype freetype-devel libpng libpng-devel libxml2-devel libxml2 curl curl-devel libzip libzip-devel systemd-devel cmake*

#解压进入安装目录
tar xvf php-7.3.6.tar.gz
cd php-7.3.6/
#这里的的参数可以根据需要调整,不同参数可能需要不同的依赖,减少参数可以相应的编译时间。
./configure --prefix=/usr/local/php --sysconfdir=/etc/ --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip --with-fpm-systemd
完成截图

进行编译:
make -j4

编译安装:
make install

请注意上方编译后的提示,执行一下如下脚本。
/root/php-7.3.6/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin

#软连接相关文件
ln -s -f phar.phar /usr/local/php/bin/phar
ln -s /usr/local/php/sbin/php-fpm /usr/bin/
ln -s /usr/local/php/sbin/php-fpm /usr/sbin/
ln -s /usr/local/php/bin/* /usr/bin/
ln -s /usr/local/php/bin/* /usr/sbin/

#拷贝服务启动文件到systemd中
cp sapi/fpm/php-fpm.service /etc/systemd/system/
chmod 755 /etc/systemd/system/php-fpm.service

#拷贝php的配置文件
cp sapi/fpm/php-fpm.conf /etc/
cp /etc/php-fpm.d/www.conf.default /etc/php-fpm.d/www.conf
启动php-fpm的后端解释进程
#加入开机自启
systemctl enable php-fpm.service
#启动php-fpm
systemctl start php-fpm.service
#查看状态
systemctl status php-fpm.service

安装pdo_mysql驱动,不装的话连接不了mysql数据库
#在php的解压目录,安装PHP的pdo_mysql的连接器
cd ext/pdo_mysql/

#生成configure文件
/usr/local/php/bin/phpize

#编译到php安装目录
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/

make && make install

#上面的路径有可能不一样。
#编辑php.ini
vim /etc/php.ini
#最后面插入
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/pdo_mysql.so

#最后我们需要隐藏php的版本信息,防止别人利用php版本进行版本漏洞攻击
#关闭版本回显:
vim /etc/php.ini
把
expose_php = On
改成
expose_php = off

#重启php-fpm
systemctl restart php-fpm
完成了,很简单。多做做就完全没有问题。

本文由 xiaobo 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

评论已关闭