温馨提示×

Laravel在Linux环境如何部署

小樊
46
2025-07-25 15:52:02
栏目: 智能运维

在Linux环境下部署Laravel应用程序需要遵循以下步骤:

  1. 安装必要的软件:

    • PHP(建议版本7.3或更高)
    • Composer(PHP依赖管理工具)
    • Nginx或Apache Web服务器
    • MySQL或其他数据库系统(如PostgreSQL)
  2. 安装PHP扩展: Laravel需要以下PHP扩展:OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype和JSON。可以使用以下命令安装这些扩展:

    sudo apt-get install php-common php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath
    
  3. 安装并配置Web服务器:

    • 对于Nginx,创建一个新的站点配置文件,例如/etc/nginx/sites-available/laravel,并添加以下内容:
    server {
        listen 80;
        server_name example.com; # 替换为您的域名
        root /path/to/your/laravel/project; # 替换为您的Laravel项目路径
    
        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; # 根据您的PHP版本更改
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
            include fastcgi_params;
        }
    
        location ~ /\.(?!well-known).* {
            deny all;
        }
    }
    
    • 对于Apache,请确保启用了mod_rewrite模块,并在.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>
    
    • 重启Web服务器以应用更改:
    sudo service nginx restart # 对于Nginx
    sudo service apache2 restart # 对于Apache
    
  4. 设置文件权限:

    • 更改Laravel项目的存储和缓存目录权限,以便Web服务器可以写入这些目录:
    sudo chown -R www-data:www-data /path/to/your/laravel/project/storage
    sudo chown -R www-data:www-data /path/to/your/laravel/project/bootstrap/cache
    
  5. 配置数据库:

    • .env文件中设置数据库连接信息:
    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=your_database_name
    DB_USERNAME=your_database_user
    DB_PASSWORD=your_database_password
    
    • 创建数据库并运行迁移:
    php artisan migrate
    
  6. 优化Laravel:

    • 使用以下命令生成应用程序密钥:
    php artisan key:generate
    
    • 使用以下命令优化Laravel配置:
    php artisan config:cache
    php artisan route:cache
    php artisan view:cache
    

现在,您的Laravel应用程序应该在Linux环境下成功部署并运行。访问您在Web服务器配置中设置的域名,您应该能看到Laravel应用程序的主页。

0