在离线环境下部署 PHP 环境需要解决诸多依赖问题,尤其是在银河麒麟操作系统上。本文记录了部署过程中常见报错及解决办法,帮助您高效完成离线环境下的 PHP 部署。
1. 环境说明
- 操作系统: 银河麒麟(aarch64 架构)
- PHP 版本: PHP 7.4.33
- 特殊要求:
- 无法连接外网。
- 所需依赖需手动下载。
- 配置 PHP-FPM 支持 Web 服务。
- 安装扩展
swoole
。
2. 前期准备
2.1 获取安装包和依赖
- 在联网机器上访问银河麒麟的离线镜像站:
- 下载以下 RPM 包及其依赖:
- PHP 核心包:
php-7.4.33.tar.gz
- 所需依赖包:
libcurl
libxslt
oniguruma
libgcrypt-devel
libgpg-error-devel
- Swoole 扩展源码包:
swoole-src-4.8.13.tar.gz
- PHP 核心包:
2.2 传输文件
将上述文件传输至服务器,统一放置在 /www/php/
目录下。
3. 安装基础依赖
3.1 检查和安装基础工具
sudo yum install gcc gcc-c++ make autoconf libtool -y
3.2 手动安装依赖
进入 RPM 包存放目录,安装必要的依赖:
cd /www/php
sudo rpm -Uvh libcurl*.rpm libxslt*.rpm oniguruma*.rpm libgcrypt-devel*.rpm libgpg-error-devel*.rpm
验证依赖是否安装成功:
rpm -qa | grep -E "libcurl|libxslt|oniguruma|libgcrypt|libgpg-error"
在离线环境的银河麒麟服务器部署 PHP 环境完整指南
在离线环境下部署 PHP 环境需要解决诸多依赖问题,尤其是在银河麒麟操作系统上。本文记录了部署过程中常见报错及解决办法,帮助您高效完成离线环境下的 PHP 部署。
1. 环境说明
- 操作系统: 银河麒麟(aarch64 架构)
- PHP 版本: PHP 7.4.33
- 特殊要求:
- 无法连接外网。
- 所需依赖需手动下载。
- 配置 PHP-FPM 支持 Web 服务。
- 安装扩展
swoole
。
2. 前期准备
2.1 获取安装包和依赖
- 在联网机器上访问银河麒麟的离线镜像站:
- 下载以下 RPM 包及其依赖:
- PHP 核心包:
php-7.4.33.tar.gz
- 所需依赖包:
libcurl
libxslt
oniguruma
libgcrypt-devel
libgpg-error-devel
- Swoole 扩展源码包:
swoole-src-4.8.13.tar.gz
- PHP 核心包:
2.2 传输文件
将上述文件传输至服务器,统一放置在 /www/php/
目录下。
3. 安装基础依赖
3.1 检查和安装基础工具
bashCopy codesudo yum install gcc gcc-c++ make autoconf libtool -y
3.2 手动安装依赖
进入 RPM 包存放目录,安装必要的依赖:
bashCopy codecd /www/php
sudo rpm -Uvh libcurl*.rpm libxslt*.rpm oniguruma*.rpm libgcrypt-devel*.rpm libgpg-error-devel*.rpm
验证依赖是否安装成功:
bashCopy coderpm -qa | grep -E "libcurl|libxslt|oniguruma|libgcrypt|libgpg-error"
4. 编译安装 PHP
4.1 解压源码
cd /www/php
tar -xzf php-7.4.33.tar.gz
cd php-7.4.33
4.2 配置 PHP
执行以下命令配置 PHP:
./configure --prefix=/www/php74 \
--with-config-file-path=/www/php74/etc \
--enable-mbstring \
--with-curl \
--with-zlib \
--enable-soap \
--enable-intl \
--with-openssl \
--with-mysqli \
--enable-fpm \
--with-jpeg \
--with-freetype \
--enable-gd \
--enable-exif \
--with-gettext \
--with-xsl \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-bz2 \
--enable-calendar \
--with-mhash \
--enable-opcache
5. 常见报错及解决
5.1 报错:缺少 libxslt-devel
错误提示:
Package 'libxslt', required by 'virtual:world', not found
解决方法:
下载 libxslt-devel 和对应的依赖:
libgcrypt-devel
libgpg-error-devel
安装:
sudo rpm -Uvh libgcrypt-devel*.rpm libgpg-error-devel*.rpm libxslt-devel*.rpm
6. 安装 Swoole 扩展
6.1 准备
- 解压 Swoole 源码包:
cd /www/php
tar -xzf swoole-src-4.8.13.tar.gz
cd swoole-src-4.8.13
为 PHP 扩展准备工具:
/www/php74/bin/phpize
6.2 编译安装 Swoole
- 配置和编译:
./configure --with-php-config=/www/php74/bin/php-config --enable-openssl
make -j$(nproc) && make install
- 安装完成后,
swoole.so
会被放置于扩展目录/www/php74/lib/php/extensions/no-debug-non-zts-20190902/
。
6.3 配置 php.ini
在 /www/php74/etc/php.ini
中添加:
extension=swoole.so
7. 配置和验证
7.1 配置 PHP-FPM
- 复制必要的配置文件:
cp /www/php/php-7.4.33/php.ini-development /www/php74/etc/php.ini
cp /www/php74/etc/php-fpm.conf.default /www/php74/etc/php-fpm.conf
cp /www/php74/etc/php-fpm.d/www.conf.default /www/php74/etc/php-fpm.d/www.conf
启动 PHP-FPM:
/www/php74/sbin/php-fpm
验证服务是否正常:
ps aux | grep php-fpm
7.2 测试 PHP
- 创建测试文件:
echo "<?php phpinfo();" > /var/www/html/info.php
- 在浏览器中访问
http://<服务器IP>/info.php
,查看 PHP 信息页面。
7.3 测试 Swoole
创建简单的 HTTP 服务:
<?php
$http = new Swoole\Http\Server("0.0.0.0", 9501);
$http->on("request", function ($request, $response) {
$response->end("Hello Swoole!");
});
$http->start();
运行后访问 http://<服务器IP>:9501
。
8. 总结
通过以上步骤,我们成功在离线环境的银河麒麟服务器上部署了 PHP 环境,并安装了 Swoole 扩展。本文详细记录了安装过程中遇到的依赖问题及解决方法,为离线部署提供了完整的参考。希望本教程对您有所帮助!