linux

Linux上Laravel项目如何部署

小樊
51
2025-10-09 22:15:18
栏目: 智能运维

在Linux上部署Laravel项目通常涉及以下几个步骤:

  1. 安装必要的软件

    • 确保你的Linux服务器上安装了PHP、Nginx或Apache、MySQL或PostgreSQL、Composer等必要的软件。
  2. 上传项目文件

    • 使用FTP、SCP或其他文件传输方法将你的Laravel项目文件上传到服务器上的一个目录中,例如/var/www/your_project
  3. 设置文件权限

    • 为了确保Laravel的存储和缓存目录可写,你需要设置正确的文件权限:
      sudo chown -R www-data:www-data /var/www/your_project
      sudo chmod -R 755 /var/www/your_project
      sudo chmod -R 777 /var/www/your_project/storage
      sudo chmod -R 777 /var/www/your_project/bootstrap/cache
      
  4. 配置环境变量

    • 在项目根目录下创建一个.env文件,并根据你的服务器环境配置相应的变量,例如数据库连接信息、APP_NAME等。
    • 确保.env文件的权限设置正确,以防止敏感信息泄露:
      chmod 600 /var/www/your_project/.env
      
  5. 安装依赖

    • 在项目根目录下运行以下命令来安装PHP依赖:
      composer install
      
  6. 生成应用密钥

    • 如果你还没有生成Laravel应用密钥,可以使用以下命令生成:
      php artisan key:generate
      
  7. 运行数据库迁移

    • 运行数据库迁移以创建必要的数据库表:
      php artisan migrate
      
  8. 配置Web服务器

    • 根据你使用的Web服务器(Nginx或Apache),配置虚拟主机以指向你的Laravel项目。

    对于Nginx,你可能需要一个像这样的配置:

    server {
        listen 80;
        server_name your_domain.com;
        root /var/www/your_project/public;
    
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-Content-Type-Options "nosniff";
    
        index index.php;
    
        charset utf-8;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location = /favicon.ico { access_log off; log_not_found off; }
        location = /robots.txt  { access_log off; log_not_found off; }
    
        error_page 404 /index.php;
    
        location ~ \.php$ {
            fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
            include fastcgi_params;
        }
    
        location ~ /\.(?!well-known).* {
            deny all;
        }
    }
    

    对于Apache,你可能需要启用mod_rewrite并配置一个像这样的虚拟主机:

    <VirtualHost *:80>
        ServerName your_domain.com
        DocumentRoot /var/www/your_project/public
    
        <Directory /var/www/your_project/public>
            AllowOverride All
            Order allow,deny
            allow from all
        </Directory>
    
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    
  9. 重启Web服务器

    • 重启Nginx或Apache以应用配置更改:
      sudo systemctl restart nginx
      
      或者
      sudo systemctl restart apache2
      
  10. 运行队列工作(如果需要):

    • 如果你的应用使用了队列,你可能需要启动队列监听器:
      php artisan queue:work
      
  11. 设置定时任务(如果需要):

    • 如果你的应用使用了任务调度,确保在服务器上设置了Cron作业来运行php artisan schedule:run

以上步骤应该可以帮助你在Linux服务器上部署Laravel项目。根据你的具体需求和环境,可能还需要进行一些额外的配置。

0
看了该问题的人还看了