基于CentOS 7 编译安装PHP 7.4

#!/bin/bash
# 编译安装php
. /etc/init.d/functions
#PHP版本
PHP_version=php-7.4.11
TAR=tar.xz
PHP=${PHP_version}.${TAR}
# php安装路径
PHP_DIR=/apps/php
# CPU数量
CPUS=`lscpu|grep "^CPU(s)"|awk '{print $2}'`
color () {
if [[ $2 -eq 0 ]];then
echo -e "\e[1;32m$1\t\t\t\t\t\t[ OK ]\e[0;m"
else
echo $2
echo -e "\e[1;31m$1\t\t\t\t\t\t[ FAILED ]\e[0;m"
fi
}
download_php (){
cd /opt
if [ -e ${PHP} ];then
color "php安装包已存在" 0
else
color "开始下载php" 0
wget https://www.php.net/distributions/${PHP}
if [ $? -ne 0 ];then
color "下载失败!" 1
color "请检查网络是否正常" 1
exit 1
fi
fi
}
install_php () {
color "----------------开始安装php-----------" 0
color "开始安装依赖包" 0
yum -y install gcc openssl-devel libxml2-devel bzip2-devel libmcrypt-devel sqlite-devel \
oniguruma-devel bison re2c php-devel &>/dev/null
cd /opt
download_php
tar -xvf ${PHP} -C /usr/local/src
cd /usr/local/src
ln -s ${PHP_version} php
cd php
color "开始编译" 0
./configure --prefix=${PHP_DIR} \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl \
--with-zlib \
--with-config-file-path=/etc \
--with-config-file-scan-dir=/etc/php.d \
--enable-mbstring \
--enable-xml \
--enable-sockets \
--enable-fpm \
--enable-maintainer-zts \
--disable-fileinfo
sleep 1
make -j ${CPUS} && make install
if [ $? -eq 0 ];then
color "编译完成" 0
else
color "退出,编译失败!" 1
exit 1
fi
# 生成配置文件
cp php.ini-production /etc/php.ini
cd ${PHP_DIR}/etc
cp php-fpm.conf.default php-fpm.conf
cd php-fpm.d
cp www.conf.default www.conf
cat > www.conf <<EOF
[www]
user = nginx
group = nginx
listen = 127.0.0.1:9000
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
pm.status_path = /pm_status
ping.path = /ping
access.log = log/\$pool.access.log
slowlog = log/\$pool.log.slow
EOF
useradd -r -s /sbin/nologin www
color "创建www用户" 0
mkdir -pv ${PHP_DIR}/log
cp /usr/local/src/php/sapi/fpm/php-fpm.service /usr/lib/systemd/system/php-fpm.service
systemctl daemon-reload
systemctl enable --now php-fpm
systemctl is-active php-fpm
if [ $? -ne 0 ];then
color "php-fpm服务启动失败" 1
exit 1
fi
color "php安装完成!" 0
}
install_php
exit 0

若make失败,提示错误collect2: ld returned 1 exit status make,编辑Makefile,找到以EXTRA_LIBS开头的这一行,在该行尾部添加 -llber,然后重新可继续进行make && make install

posted @   areke  阅读(614)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示