在开始适配前,必须完成以下环境检查,确保升级过程顺利。
登录服务器,通过命令行或探针文件获取当前PHP环境信息:
```php ```将上述代码保存为info.php并上传至网站根目录,通过浏览器访问,记录以下关键信息:
访问迅睿CMS官方GitHub仓库,查看最新版本对PHP的要求:
官方仓库地址:https://github.com/ruirui-tech/xunruicms
在Release页面查看版本说明,确认目标PHP版本(如迅睿CMS 4.6.0要求PHP ≥ 7.3)。
执行以下三个备份步骤,缺一不可:
mysqldump -u用户名 -p密码 数据库名 > backup_日期.sqltar -czf xunrui_backup_日期.tar.gz /网站路径/根据服务器系统选择对应的升级方法。
移除旧版本PHP,安装新版本:
```bash 查看当前PHP版本 php -v 移除旧版本(以PHP 7.2为例) yum remove php72w php72w-cli php72w-common php72w-fpm php72w-mysqlnd 安装PHP 7.4 yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm yum install yum-utils yum-config-manager --enable remi-php74 yum install php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-xml php-curl php-opcache php-zip ```安装完成后,执行以下命令确认:
```bash php -v php -m | grep -E "mysqli|gd|mbstring|xml|curl|zip" ```输出应显示目标PHP版本和必需的扩展。
根据PHP版本差异,需要修改以下文件。
编辑dayrui/Config/Services.php,找到以下代码:
```php // 原代码(PHP 7.3及以下) public function __construct() { parent::__construct(); } ```修改为:
```php // 修改后(PHP 7.4+) public function __construct() { parent::__construct(); // 初始化操作移至此处 $this->initialize(); } ```在dayrui/System/Controllers/Base.php中,查找并替换:
```php // 替换所有 ereg() 函数为 preg_match() // 原代码 if (ereg("^[0-9]+$", $input)) {} // 修改为 if (preg_match("/^[0-9]+$/", $input)) {} ```
编辑.env文件,修改错误报告配置:
```env 开发环境配置 APP_DEBUG = true ERROR_REPORTING = E_ALL & ~E_DEPRECATED 生产环境配置 APP_DEBUG = false ERROR_REPORTING = E_ALL & ~E_DEPRECATED & ~E_STRICT ```编辑php.ini文件,修改以下参数:
```ini ; 内存限制 memory_limit = 256M ; 执行时间 max_execution_time = 300 ; POST数据大小 post_max_size = 100M upload_max_filesize = 100M ; 时区设置 date.timezone = Asia/Shanghai ; 禁用危险函数 disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru ```编辑站点Nginx配置文件:
```nginx server { listen 80; server_name yourdomain.com; root /var/www/xunruicms; index index.php index.html; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } 静态文件缓存 location ~ \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { expires 30d; add_header Cache-Control "public, immutable"; } } ```systemctl stop nginx php7.4-fpmsystemctl start php7.4-fpm nginx升级完成后,按顺序检查以下功能:
curl -I https://yourdomain.com 返回HTTP 200如果遇到问题,按以下步骤排查:
问题1:500内部服务器错误
查看Nginx错误日志:tail -f /var/log/nginx/error.log
查看PHP错误日志:tail -f /var/log/php7.4-fpm.log
问题2:数据库连接失败
检查.env文件数据库配置:
```env 数据库配置示例 DATABASE_HOST = localhost DATABASE_PORT = 3306 DATABASE_NAME = xunruicms DATABASE_USER = root DATABASE_PASSWORD = your_password DATABASE_PREFIX = dr_ ```问题3:文件权限错误
执行权限修复命令:
```bash 进入网站根目录 cd /var/www/xunruicms 设置目录权限 find . -type d -exec chmod 755 {} \; 设置文件权限 find . -type f -exec chmod 644 {} \; 特殊目录权限 chmod -R 777 cache/ chmod -R 777 uploadfile/ chmod -R 777 config/ ```在php.ini中添加:
```ini [opcache] opcache.enable=1 opcache.memory_consumption=256 opcache.interned_strings_buffer=16 opcache.max_accelerated_files=10000 opcache.revalidate_freq=2 opcache.fast_shutdown=1 ```编辑config/database.php:
```php // 数据库配置优化 $db['default'] = [ 'hostname' => 'localhost', 'database' => 'xunruicms', 'username' => 'root', 'password' => 'your_password', 'charset' => 'utf8mb4', 'pconnect' => FALSE, // 改为短连接 'cache_on' => FALSE, 'cachedir' => '', 'dbcollat' => 'utf8mb4_general_ci', 'swap_pre' => '', 'encrypt' => FALSE, 'compress' => FALSE, 'stricton' => FALSE, 'failover' => [], 'save_queries' => FALSE // 生产环境关闭查询记录 ]; ```完成以上所有步骤后,迅睿CMS已成功适配新PHP版本。定期检查官方更新,及时应用安全补丁。
易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图