基于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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!