linux

Linux服务器上Laravel如何部署应用

小樊
36
2025-12-16 09:09:24
栏目: 云计算

在Linux服务器上部署Laravel应用通常涉及以下几个步骤:

  1. 准备工作

    • 确保你的Linux服务器已经安装了PHP、Nginx或Apache、MySQL或PostgreSQL等必要的软件。
    • 确保服务器的防火墙设置允许HTTP(80)和HTTPS(443)流量。
  2. 安装Composer: Composer是PHP的依赖管理工具,用于安装和管理Laravel及其依赖包。

    curl -sS https://getcomposer.org/installer | php
    sudo mv composer.phar /usr/local/bin/composer
    
  3. 上传Laravel应用: 使用FTP、SCP或其他文件传输方法将你的Laravel应用上传到服务器上的一个目录中,例如/var/www/yourapp

  4. 设置文件权限: Laravel需要对其存储目录和缓存目录有写权限。

    sudo chown -R www-data:www-data /var/www/yourapp
    sudo chmod -R 755 /var/www/yourapp
    sudo chmod -R 777 /var/www/yourapp/storage
    sudo chmod -R 777 /var/www/yourapp/bootstrap/cache
    
  5. 安装依赖: 进入你的Laravel应用目录,使用Composer安装依赖。

    cd /var/www/yourapp
    composer install
    
  6. 配置环境变量: 复制.env.example文件并编辑它以匹配你的服务器环境。

    cp .env.example .env
    nano .env
    

    .env文件中设置数据库连接、APP_NAME、APP_ENV、APP_KEY等信息。

  7. 生成应用密钥: 如果你还没有APP_KEY,可以使用以下命令生成一个。

    php artisan key:generate
    
  8. 运行迁移: 运行数据库迁移以创建必要的数据库表。

    php artisan migrate
    
  9. 优化: 你可以使用Laravel的优化命令来提高性能。

    php artisan optimize
    
  10. 配置Web服务器: 对于Nginx,你需要创建一个新的服务器块文件,指向你的Laravel应用的public目录。对于Apache,你需要启用mod_rewrite并配置.htaccess文件。

    Nginx示例

    server {
        listen 80;
        server_name yourdomain.com www.yourdomain.com;
    
        root /var/www/yourapp/public;
        index index.php index.html index.htm;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location ~ \.php$ {
            include snippets/fastcgi-php.conf;
            fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根据你的PHP版本调整
        }
    
        location ~ /\.ht {
            deny all;
        }
    }
    

    Apache示例: 确保mod_rewrite已启用,并在你的Laravel应用的public目录中创建或编辑.htaccess文件。

    <IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options -MultiViews -Indexes
        </IfModule>
    
        RewriteEngine On
    
        # Handle Authorization Header
        RewriteCond %{HTTP:Authorization} .
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    
        # Redirect Trailing Slashes If Not A Folder...
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_URI} (.+)/$
        RewriteRule ^ %1 [L,R=301]
    
        # Handle Front Controller...
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^ index.php [L]
    </IfModule>
    
  11. 重启Web服务器: 重启Nginx或Apache以应用配置更改。

    sudo systemctl restart nginx
    # 或者
    sudo systemctl restart apache2
    
  12. 访问你的应用: 在浏览器中输入你的服务器地址,你应该能够看到你的Laravel应用。

请注意,这些步骤可能会根据你的具体需求和服务器配置有所不同。确保在生产环境中使用HTTPS来保护用户数据的安全。

0
看了该问题的人还看了