因为特殊需要,今天要把centos 7里面的php换成到php 7的版本,为了不影响已经安装的其他php版本和程序,这次准备手动编译安装。
第一步:下载php源码
wget https://www.php.net/distributions/php-7.4.33.tar.gz
第二步:安装依赖
如果是第一次安装,可以把需要的依赖都先装一遍,例如下面几个可以先装上。
yum -y install gcc gcc-c++
yum -y install libxml2-devel openssl-devel curl-devel libjpeg-devel libpng-devel libicu-devel freetype-devel openldap-devel openldap openldap-devel oniguruma-devel libxslt-devel
第三步:编译
编译安装的参数有很多,常用的已经添加,如果需要其他扩展具体可以参考这篇文章:https://www.cnblogs.com/jimmycan/articles/12495557.html,一般按照我这个编译大多数程序都能正常运行。
./configure \
 --prefix=/usr/local/php74 \
 --with-config-file-path=/usr/local/php74/etc \
 --with-config-file-scan-dir=/usr/local/php74/conf.d \
 --enable-fpm \
 --with-fpm-user=www \
 --with-fpm-group=www \
 --enable-mysqlnd \
 --with-mysqli=mysqlnd \
 --with-pdo-mysql=mysqlnd \
 --with-iconv-dir \
 --with-freetype=/usr/local/freetype \
 --with-jpeg \
 --with-zlib \
 --enable-xml \
 --disable-rpath \
 --enable-bcmath \
 --enable-shmop \
 --enable-sysvsem \
 --enable-inline-optimization \
 --with-curl \
 --enable-mbregex \
 --enable-mbstring \
 --enable-intl \
 --enable-pcntl \
 --enable-ftp \
 --enable-gd \
 --with-openssl \
 --with-mhash \
 --enable-pcntl \
 --enable-sockets \
 --with-xmlrpc \
 --with-zip \
 --enable-soap \
 --with-gettext \
 --enable-opcache \
 --with-xsl \
 --with-pear \
 --with-webp
因为我是跳过第二步,直接编译,碰到一个依赖出错就安装哪个。

sqlite扩展依赖安装
yum install sqlite-devel

webp扩展依赖安装
yum install libwebp-devel

mbstring 扩展依赖安装
yum install oniguruma-devel
大概就是缺少什么依赖就安装哪个。

安装
make ZEND_EXTRA_LIBS='-liconv'
make install
这个过程需要一段时间,比较慢。
第四步:配置文件
复制php.ini配置文件并修改。
cp php.ini-production /usr/local/php74/etc/php.ini
sed -i 's/post_max_size =.*/post_max_size = 50M/g' /usr/local/php74/etc/php.ini
sed -i 's/upload_max_filesize =.*/upload_max_filesize = 50M/g' /usr/local/php74/etc/php.ini
sed -i 's/;date.timezone =.*/date.timezone = PRC/g' /usr/local/php74/etc/php.ini
sed -i 's/short_open_tag =.*/short_open_tag = On/g' /usr/local/php74/etc/php.ini
sed -i 's/;cgi.fix_pathinfo=.*/cgi.fix_pathinfo=0/g' /usr/local/php74/etc/php.ini
sed -i 's/max_execution_time =.*/max_execution_time = 300/g' /usr/local/php74/etc/php.ini
添加php-fpm.conf配置
cat >/usr/local/php74/etc/php-fpm.conf<<EOF
 [global]
 pid = /usr/local/php74/var/run/php-fpm.pid
 error_log = /usr/local/php74/var/log/php-fpm.log
 log_level = notice
 [www]
 listen = /usr/local/php74/var/run/php-cgi.sock
 listen.backlog = -1
 listen.allowed_clients = 127.0.0.1
 listen.owner = www
 listen.group = www
 listen.mode = 0666
 user = www
 group = www
 pm = dynamic
 pm.max_children = 10
 pm.start_servers = 2
 pm.min_spare_servers = 1
 pm.max_spare_servers = 6
 pm.max_requests = 1024
 pm.process_idle_timeout = 10s
 request_terminate_timeout = 100
 request_slowlog_timeout = 0
 slowlog = var/log/slow.log
 EOF
第五步:启动
cp sapi/fpm/init.d.php-fpm /etc/init.d/php74-fpm
chmod +x /etc/init.d/php74-fpm 
chkconfig php74-fpm on
/etc/init.d/php74-fpm start
centos 7中编译安装php 7已经安装完成。
正文完
                                                    微信搜一搜“奇悦电脑科技”或扫描二维码关注我们
                                
                            
                        

