温馨提示×

ubuntu php如何迁移

小樊
48
2026-09-25 16:21:58
栏目: 编程语言

在 Ubuntu 上“PHP 迁移”通常有以下几种常见场景,我先按最常见的几种给你说明,你可以对照自己的情况选:


一、Ubuntu 系统升级时迁移 PHP(例如 20.04 → 22.04)

1. 查看当前 PHP 版本

php -v

2. 安装新版本 PHP(以 PHP 8.1 为例)

sudo apt update
sudo apt install php8.1 php8.1-cli php8.1-fpm

3. 安装常用扩展

sudo apt install php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml

4. 切换 PHP 版本(CLI)

sudo update-alternatives --set php /usr/bin/php8.1

5. Web 服务切换(Apache / Nginx)

Apache

sudo a2dismod php7.4
sudo a2enmod php8.1
sudo systemctl restart apache2

Nginx

修改 www.conf 指向新 PHP:

sudo nano /etc/nginx/sites-enabled/default

确认:

fastcgi_pass unix:/run/php/php8.1-fpm.sock;
sudo systemctl restart nginx php8.1-fpm

二、从旧 PHP 版本升级(如 7.4 → 8.2)

1. 添加 sury 源(Ubuntu 官方源版本较旧时)

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update

2. 安装新版本

sudo apt install php8.2 php8.2-fpm

3. 迁移配置文件

/etc/php/7.4/ → /etc/php/8.2/

手动对比:

  • php.ini
  • www.conf
  • pool.d

⚠️ 注意:PHP 8.x 对语法更严格,老代码可能报错


三、迁移 PHP 项目(代码 + 环境)

1. 备份

tar -czvf project.tar.gz /var/www/html/project
mysqldump -u root -p dbname > db.sql

2. 新服务器安装 PHP + Web 服务

sudo apt install php8.2 nginx mysql-server

3. 恢复项目

cp -r project /var/www/html/
mysql dbname < db.sql

4. 设置权限

chown -R www-data:www-data /var/www/html/project
chmod -R 755 /var/www/html/project

四、Docker 方式迁移(推荐)

FROM php:8.2-fpm
RUN docker-php-ext-install pdo_mysql

迁移只需:

docker compose up -d

五、常见坑提醒

✅ short_open_tag 已不推荐
✅ mysql_* 函数已移除
✅ count() 不能用于 null
✅ 扩展名变化(如 php7.4-xdebug → php8.2-xdebug)


如果你能告诉我:

  • Ubuntu 版本
  • PHP 当前 / 目标版本
  • Web 服务(Apache / Nginx / CLI)
  • 是否涉及项目代码

我可以直接给你精确的一步到位命令。

0 踩