温馨提示×

Laravel项目在Linux中如何迁移

小樊
65
2025-06-01 00:09:43
栏目: 智能运维

在Linux系统中迁移Laravel项目,可以按照以下步骤进行:

1. 准备工作

  • 备份数据库:在迁移之前,确保备份了当前项目的数据库。
  • 安装依赖:确保目标服务器上安装了PHP、Composer以及Laravel所需的依赖。

2. 下载项目

  • 使用Git

    git clone <repository-url> /path/to/new/location
    cd /path/to/new/location
    
  • 使用FTP/SFTP:将项目文件从旧服务器下载到新服务器。

3. 安装依赖

  • 进入项目目录并运行Composer安装依赖:
    composer install --no-interaction --prefer-dist --optimize-autoloader
    

4. 配置环境变量

  • 复制.env.example文件并重命名为.env
    cp .env.example .env
    
  • 编辑.env文件,配置数据库连接、邮件服务、队列等设置。

5. 生成应用密钥

  • 如果还没有生成应用密钥,运行以下命令:
    php artisan key:generate
    

6. 迁移数据库

  • 运行数据库迁移:
    php artisan migrate
    

7. 优化

  • 优化Laravel应用:
    php artisan optimize
    

8. 配置Web服务器

  • Nginx

    server {
        listen 80;
        server_name yourdomain.com;
    
        root /path/to/new/location/public;
        index index.php index.html index.htm;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location ~ \.php$ {
            fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
        }
    }
    
  • Apache

    <VirtualHost *:80>
        ServerName yourdomain.com
        DocumentRoot /path/to/new/location/public
    
        <Directory /path/to/new/location/public>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
    
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    

9. 重启Web服务器

  • Nginx

    sudo systemctl restart nginx
    
  • Apache

    sudo systemctl restart apache2
    

10. 测试

  • 访问你的域名,确保Laravel应用正常运行。

注意事项

  • 确保目标服务器上的PHP版本与开发环境一致。
  • 检查文件权限,确保Web服务器有足够的权限访问项目文件和目录。
  • 如果使用的是缓存服务(如Redis),确保在.env中正确配置了相关设置,并运行相应的迁移命令。

通过以上步骤,你应该能够成功地将Laravel项目从旧服务器迁移到新服务器。

0