在Linux環境下部署Laravel項目,你需要遵循以下步驟:
首先,確保你的Linux系統已經安裝了PHP、Composer、Nginx(或Apache)和MySQL。然后,通過SSH進入你的項目目錄,運行以下命令來安裝項目的依賴:
composer install
復制.env.example文件并重命名為.env:
cp .env.example .env
使用文本編輯器打開.env文件,配置數據庫連接、郵件服務器等相關信息。
運行以下命令生成Laravel應用密鑰:
php artisan key:generate
這將在.env文件中設置APP_KEY。
如果你的項目包含數據遷移或數據填充文件,運行以下命令來執行它們:
php artisan migrate
php artisan db:seed
配置Web服務器以指向Laravel項目的public目錄。以下是一個Nginx配置示例:
server {
listen 80;
server_name example.com;
root /path/to/your/laravel/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模塊,并在項目根目錄下創建一個.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>
對于Nginx,運行以下命令:
sudo service nginx restart
對于Apache,運行以下命令:
sudo service apache2 restart
確保Laravel項目的storage和bootstrap/cache目錄具有可寫權限:
sudo chmod -R 775 storage bootstrap/cache
如果你的項目使用隊列,你需要配置隊列驅動(例如Redis或Beanstalkd)并在服務器上啟動隊列監聽器。例如,對于Redis,你可以運行以下命令:
php artisan queue:work --daemon --queue=high,default
現在,你的Laravel項目應該已經在Linux環境下成功部署并運行。訪問你在Nginx或Apache配置中設置的域名,你應該能看到Laravel項目的首頁。