下面给你一套从 Ubuntu 上迁移 PHP-FPM 的完整思路与实操步骤,适用于:
php -v
php-fpm -v
查看版本和使用的 SAPI。
查看当前 PHP-FPM 池配置:
ls /etc/php/*/fpm/pool.d/
查看服务名:
systemctl list-units | grep fpm
sudo apt update
sudo apt install -y software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install -y php8.2-fpm php8.2-cli
常用扩展:
sudo apt install -y \
php8.2-mysql \
php8.2-curl \
php8.2-gd \
php8.2-mbstring \
php8.2-xml \
php8.2-zip \
php8.2-opcache
旧服务器:
/etc/php/8.2/fpm/php.ini
/etc/php/8.2/fpm/php-fpm.conf
拷贝到新服务器相同路径(或手动合并差异)。
⚠️ 注意:
php.ini 中路径、内存、上传限制等要检查旧服务器:
/etc/php/8.2/fpm/pool.d/www.conf
新服务器:
/etc/php/8.2/fpm/pool.d/
常见需要检查的项:
user = www-data
group = www-data
listen = /run/php/php8.2-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 50
如果有多个站点,建议一个站点一个 pool,例如:
/etc/php/8.2/fpm/pool.d/site1.conf
/etc/php/8.2/fpm/pool.d/site2.conf
rsync -avz /var/www/ user@newserver:/var/www/
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"
</FilesMatch>
✅ 确保用户一致:
id www-data
✅ 修复权限:
chown -R www-data:www-data /var/www
chmod -R 755 /var/www
sudo systemctl restart php8.2-fpm
sudo systemctl enable php8.2-fpm
sudo systemctl status php8.2-fpm
验证 PHP:
php -i | grep "Loaded Configuration File"
或创建测试文件:
<?php phpinfo(); ?>
检查:
ls -l /run/php/
chown -R www-data:www-data /var/lib/php/sessions
如果你愿意,我可以:
✅ 给你旧 → 新服务器一键迁移脚本
✅ 帮你对比 php.ini 差异
✅ 针对 Laravel / WordPress / ThinkPHP 做专项迁移方案
直接告诉我你的 Ubuntu 版本 + PHP 版本 + Web 服务 即可。