温馨提示×

Debian PHP应用如何迁移

小樊
56
2025-10-02 05:51:12
栏目: 编程语言

Debian系统PHP应用迁移步骤

1. 迁移前准备

  • 备份现有环境:备份项目代码(tar -czvf project_backup.tar.gz /var/www/html)、数据库(mysqldump -u root -p dbname > dbname.sql)及PHP配置文件(cp -r /etc/php /etc/php_backup),避免数据丢失。
  • 检查依赖兼容性:列出项目所需的PHP版本、扩展(如php-mysqlphp-curl)及系统库,确保新环境支持。

2. 新系统环境配置

  • 更新系统:运行sudo apt update && sudo apt upgrade -y,确保系统包为最新版本。
  • 安装PHP及扩展:根据项目需求安装对应PHP版本(如PHP 8.2)及必要扩展。例如,安装PHP 8.2及常用扩展:
    sudo add-apt-repository ppa:ondrej/php  # 添加Ondrej Surý的PPA(支持多PHP版本)
    sudo apt update
    sudo apt install php8.2 php8.2-cli php8.2-fpm php8.2-mysql php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml php8.2-zip
    
  • 配置Web服务器
    • Nginx:编辑站点配置文件(/etc/nginx/sites-available/your-site),添加以下内容(根据PHP版本调整fastcgi_pass路径):
      server {
          listen 80;
          server_name your-domain.com;
          root /path/to/new/project;
          index index.php index.html;
          location / { try_files $uri $uri/ =404; }
          location ~ \.php$ {
              include snippets/fastcgi-php.conf;
              fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
              fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          }
          location ~ /\.ht { deny all; }
      }
      
      启用站点并重启Nginx:sudo ln -s /etc/nginx/sites-available/your-site /etc/nginx/sites-enabled/ && sudo nginx -t && sudo systemctl restart nginx
    • Apache:启用PHP模块(sudo a2enconf php8.2-fpm)并重启服务:sudo systemctl restart apache2

3. 迁移项目文件与数据库

  • 迁移代码:使用rsyncscp将备份的代码复制到新服务器指定目录(如/var/www/html):
    rsync -avz --delete user@old-server:/path/to/old/project/ /path/to/new/project/
    
  • 迁移数据库:将旧数据库导入新服务器:
    mysql -u root -p dbname < dbname.sql
    
    迁移后需更新项目配置文件(如config/database.php.env)中的数据库连接信息(主机、用户名、密码)。

4. 权限与环境设置

  • 设置文件权限:确保Web服务器用户(通常为www-data)拥有项目目录的读写权限:
    sudo chown -R www-data:www-data /path/to/new/project
    sudo find /path/to/new/project -type f -exec chmod 644 {} \;
    sudo find /path/to/new/project -type d -exec chmod 755 {} \;
    
  • 调整PHP配置:若项目需要特定PHP参数(如memory_limitupload_max_filesize),修改/etc/php/8.2/fpm/php.ini或项目对应的www.conf文件,重启PHP-FPM使配置生效:sudo systemctl restart php8.2-fpm

5. 测试与上线

  • 功能测试:访问新服务器的项目URL(如http://your-domain.com),检查页面加载、功能链接、表单提交等是否正常。
  • 查看日志排查问题:若出现错误,查看Nginx(/var/log/nginx/error.log)、PHP-FPM(/var/log/php8.2-fpm.log)或项目日志(如Laravel的storage/logs/laravel.log),定位并解决问题。
  • 更新DNS记录:若域名指向旧服务器,需将DNS解析更新为新服务器的IP地址,等待生效。

6. 迁移后维护

  • 监控性能:使用工具(如tophtopNew Relic)监控服务器CPU、内存、磁盘使用情况,确保新环境稳定运行。
  • 定期备份:设置自动备份策略(如每天备份代码和数据库),防止数据丢失。

0