在Linux系统中升级或安装PHP 7.0需要根据不同的发行版选择合适的方法,以下是详细步骤,涵盖备份、源配置、安装及测试全流程,确保操作安全可靠。
升级前的准备工作
在开始操作前,务必备份现有PHP配置、扩展及网站数据,避免升级过程中出现数据丢失或服务中断,需备份的关键文件包括:
- PHP配置文件:通常位于
/etc/php/
目录下(如旧版本为/etc/php5/
或/etc/php7.0/
) - Web服务器配置(Apache/Nginx):如Apache的
httpd.conf
、Nginx的nginx.conf
及站点配置文件 - 网站根目录数据:通过
tar
命令打包备份,例如tar -czvf website_backup.tar.gz /var/www/html
不同发行版的PHP 7.0安装与升级
Ubuntu/Debian系统
Ubuntu 16.04及Debian 8默认支持PHP 7.0,若需从旧版本(如PHP 5.x)升级,需先添加第三方源并卸载旧版本。
步骤1:添加PHP 7.0源
使用ppa:ondrej/php
源(官方维护的PHP源,包含多版本支持):
sudo apt-get update sudo apt-get install -y software-properties-common sudo add-apt-repository ppa:ondrej/php sudo apt-get update
步骤2:卸载旧版本PHP(可选)
若已安装旧版本PHP,需先卸载避免冲突:
sudo apt-get purge --auto-remove php* php-common
步骤3:安装PHP 7.0及常用扩展
sudo apt-get install -y php7.0 php7.0-fpm php7.0-mysql php7.0-curl php7.0-gd php7.0-mbstring php7.0-xml php7.0-zip
说明:php7.0-fpm
用于Nginx/Apache+PHP-FPM模式,php7.0-mysql
支持MySQL数据库,php7.0-curl
、php7.0-gd
等为常用扩展,可根据实际需求增减。
步骤4:配置Web服务器
- Apache:安装
libapache2-mod-php7.0
并启用模块sudo apt-get install -y libapache2-mod-php7.0 sudo a2enmod php7.0 sudo systemctl restart apache2
- Nginx:需配置PHP-FPM,编辑站点配置文件(如
/etc/nginx/sites-available/default
),修改以下内容:location ~ .php$ { fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; }
保存后重启Nginx:
sudo systemctl restart nginx
CentOS/RHEL系统
CentOS 7默认源未提供PHP 7.0,需通过EPEL或Remi源安装。
步骤1:安装EPEL和Remi源
sudo yum install -y epel-release sudo yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm sudo yum install -y yum-utils sudo yum-config-manager --enable remi-php70 # 启用PHP 7.0源
步骤2:卸载旧版本PHP(可选)
sudo yum remove php* php-common
步骤3:安装PHP 7.0及常用扩展
sudo yum install -y php php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
步骤4:配置Web服务器
- Apache:安装
php
模块并重启sudo yum install -y php sudo systemctl restart httpd
- Nginx:与Ubuntu类似,需配置PHP-FPM,确保
/etc/php-fpm.d/www.conf
中的listen
地址与Nginx配置一致(默认为0.0.1:9000
),重启服务:sudo systemctl restart php-fpm nginx
常用PHP 7.0扩展说明
下表列出部分常用扩展及其功能,可根据项目需求选择性安装:
扩展名称 | 功能说明 | 适用场景 |
---|---|---|
php7.0-mysql | MySQL数据库支持 | 需连接MySQL数据库的项目 |
php7.0-fpm | FastCGI进程管理器 | Nginx/Apache+PHP-FPM模式 |
php7.0-curl | HTTP请求支持 | 调用API、爬虫等场景 |
php7.0-gd | 图像处理 | 图片上传、验证码生成等 |
php7.0-mbstring | 多字节字符串处理 | 中文处理、UTF-8编码支持 |
php7.0-xml | XML解析支持 | 读取/生成XML文件的场景 |
php7.0-zip | ZIP压缩/解压支持 | 文件压缩包处理 |
升级后测试
- 检查PHP版本:创建
info.php
文件(/var/www/html/info.php
为<?php phpinfo(); ?>
,访问http://服务器IP/info.php
,查看版本是否为“PHP 7.0.x”。 - 检查扩展加载:在
info.php
页面搜索“Loaded Extensions”,确认所需扩展(如mysql、curl)是否已启用。 - 测试网站功能:访问现有网站,检查数据库连接、文件上传等功能是否正常,若无异常则删除
info.php
(避免泄露配置信息)。
相关问答FAQs
Q1:升级PHP 7.0后网站无法访问,如何排查?
A:首先检查Web服务器错误日志(如Apache的/var/log/httpd/error_log
,Nginx的/var/log/nginx/error.log
),确认是否为PHP模块加载失败或PHP-FPM服务异常,其次检查PHP配置文件语法(php -l /etc/php/7.0/fpm/php.ini
),若语法错误需修正,最后确认网站目录权限是否正确(如www-data
或nginx
用户可读)。
Q2:如何确认PHP 7.0是否成功安装并启用所需扩展?
A:通过命令行输入php -v
查看PHP版本,若显示“PHP 7.0.x”则安装成功,检查扩展启用情况:php -m
列出所有已加载扩展,或在浏览器访问info.php
页面,在“Loaded Extensions”部分查找目标扩展名称,若扩展未启用,需重新安装对应扩展包并重启PHP-FPM服务(sudo systemctl restart php7.0-fpm
)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/16726.html