#! /bin/bash
# 切换到安装包存放目录
cd /server/data/packages
# 下载 PHP 源码包(如果需要)
#wget https://www.php.net/distributions/php-8.3.0.tar.gz || exit 1
# 解压 PHP 源码包
tar -xzvf php-8.3.0.tar.gz || exit 1
sudo yum -y install cmake gcc g++ ncurses-devel libtirpc-devel rpcgen libxml2-devel sqlite-devel libpng-devel oniguruma-devel
# 创建 PHP 安装目录和配置文件目录
mkdir -p /server/php/8.3.0/
mkdir -p /server/php/8.3.0/etc
sudo yum install libcurl-devel
# 切换到 PHP 源码目录
cd php-8.3.0
# 配置 PHP 安装选项
./configure
--prefix=/server/php/8.3.0/
--with-config-file-path=/server/php/8.3.0/etc
--enable-fpm
--with-gd
--enable-gd-jis-conv
--enable-mysqlnd
--enable-mbstring
--with-openssl
--with-curl
--with-zlib
--with-pdo-mysql
--with-fpm-user=nginx
--with-fpm-group=nginx
--with-mysqli
--with-sockets
# 编译并安装 PHP
make && make install || exit 1
# 创建 PHP 命令的软链接
# 目标软链接的路径
TARGET_LINK="/usr/local/bin/php"
# PHP 命令的实际路径
PHP_COMMAND="/server/php/8.3.0/bin/php"
# 检查软链接是否存在
if [ ! -e "$TARGET_LINK" ]; then
# 如果不存在,则创建软链接
sudo ln -s "$PHP_COMMAND" "$TARGET_LINK"
echo "软链接已创建: $TARGET_LINK -> $PHP_COMMAND"
else
echo "软链接已存在: $TARGET_LINK"
fi
# 复制 PHP 配置文件
cp /server/data/packages/php-8.3.0/php.ini-production /server/php/8.3.0/etc/php.ini
# 启动 PHP-FPM
find / -name "php-fpm.conf" -print | while read -r file; do
cp -v "$file" /server/php/8.3.0/etc/
done
#mv /server/php/8.3.0/etc/php-fpm.d/www.conf.default /server/php/8.3.0/etc/php-fpm.d/www.conf
sudo /server/php/8.3.0/sbin/php-fpm
# 检查 PHP-FPM 进程是否运行
ps -ef | grep php-fpm | grep -v grep
php --ini
# 检查 PHP 版本
php --version
# 安装PECL
cd /server/php/8.3.0/bin/
sudo wget http://pear.php.net/go-pear.phar -O go-pear.php
sudo php go-pear.php
sudo ./php go-pear.php
# 搜索Swoole扩展
sudo ./pecl search swoole
# 安装Swoole扩展
sudo ./pecl install swoole < /dev/null
# 显示PHP配置文件路径
./php --ini
# 获取PHP配置文件路径
PHP_INI_PATH=$(./php --ini | grep "Loaded Configuration File" | awk -F: '{print $2}' | sed 's/ //g')
# 检查是否已存在Swoole扩展的配置行
if ! grep -q "extension=swoole.so" "$PHP_INI_PATH"; then
# 使用sed在php.ini文件的末尾添加Swoole扩展的配置行
sed -i '$a\extension=swoole.so' "$PHP_INI_PATH"
echo "Swoole扩展已添加到$PHP_INI_PATH"
else
echo "Swoole扩展的配置已存在于$PHP_INI_PATH"
fi
echo "Swoole扩展安装和配置完成。"
欢迎关注拓行公众号,分享各种技术博客文章
拓行——奋勇进取,开拓未来,砥砺前行

最后修改:2024 年 06 月 18 日
© 允许规范转载