使用 LEMP 堆疊(Linux、Nginx、MySQL、PHP)在 Ubuntu 上部署 Laravel 應用程式可能看起來令人畏懼,但逐步分解它使其易於管理。本指南將引導您完成從伺服器設定到部署 Laravel 應用程式的過程。
首先確保您的伺服器是最新的。
sudo apt update && sudo apt upgrade -y
Nginx 將為您的應用程式提供服務。
sudo apt install nginx -y
安裝後,您可以啟動並啟用 Nginx 在啟動時運行:
sudo systemctl start nginx sudo systemctl enable nginx
您可以透過在瀏覽器中存取伺服器的 IP 位址來驗證 Nginx 是否正在運作。
接下來,我們將安裝 MySQL 資料庫伺服器。
sudo apt install mysql-server -y
保護 MySQL 安裝:
sudo mysql_secure_installation
這將提示您設定 root 密碼並刪除不安全的預設值。
Laravel 需要 PHP,所以讓我們安裝它以及一些必要的擴充功能:
sudo apt install php-fpm php-mysql php-cli php-xml php-mbstring php-curl php-zip -y
驗證 PHP 安裝:
php -v
您應該會看到類似以下內容:
PHP 7.x.x (cli) (built: ...)
以root使用者登入MySQL控制台:
sudo mysql
為 Laravel 應用程式建立新的資料庫和使用者:
CREATE DATABASE laravel_app; CREATE USER 'laravel_user'@'localhost' IDENTIFIED BY 'strong_password'; GRANT ALL PRIVILEGES ON laravel_app.* TO 'laravel_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
確保新的資料庫使用者可以連線:
mysql -u laravel_user -p
系統會提示您輸入密碼,然後輸入:
SHOW DATABASES;
您應該在清單中看到 laravel_app。
Laravel 使用 Composer 作為其相依性管理器。安裝作曲家:
sudo apt install composer -y
導覽至要安裝 Laravel 的目錄(例如 /var/www/):
cd /var/www/ composer create-project --prefer-dist laravel/laravel laravel_app
Laravel 要求 Web 伺服器可寫入某些目錄:
sudo chown -R www-data:www-data /var/www/laravel_app sudo chmod -R 775 /var/www/laravel_app/storage sudo chmod -R 775 /var/www/laravel_app/bootstrap/cache
在 Laravel 專案根目錄中,開啟 .env 檔案並設定資料庫設定:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel_app DB_USERNAME=laravel_user DB_PASSWORD=strong_password
我們將為 Laravel 專案建立一個 Nginx 設定檔。
sudo nano /etc/nginx/sites-available/laravel_app
將以下配置新增至檔案:
server { listen 80; server_name your_domain_or_ip; root /var/www/laravel_app/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.x-fpm.sock; # Change this to the correct PHP version. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } }
將 your_domain_or_ip 替換為您的實際網域名稱或伺服器 IP 位址。
透過建立指向已啟用網站的符號連結來啟用新的 Nginx 設定:
sudo ln -s /etc/nginx/sites-available/laravel_app /etc/nginx/sites-enabled/
測試 Nginx 設定以確保沒有語法錯誤:
sudo nginx -t
如果一切正常,重啟Nginx:
sudo systemctl reload nginx
運行 Laravel 遷移來設定資料庫:
cd /var/www/laravel_app php artisan migrate
您現在應該能夠透過在瀏覽器中導航到伺服器的 IP 或網域來存取 Laravel 應用程式。您將看到預設的 Laravel 歡迎頁面。
如果您有域名,請使用 Let's Encrypt 保護您的網站:
sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d your_domain
依照說明安裝 SSL 憑證。 Certbot 會自動設定 Nginx 將 HTTP 流量重新導向到 HTTPS。
佇列處理諸如發送電子郵件或在背景處理作業等任務。
php artisan queue:work
使用 Laravel 的任務排程功能來執行清除快取、發送每日電子郵件等任務
sudo crontab -e
新增以下行:
* * * * * php /var/www/laravel_app/artisan schedule:run >> /dev/null 2>&1
You’ve successfully deployed a Laravel application on an Ubuntu server using the LEMP stack. From here, you can continue to develop your application, secure it, and monitor it for performance.
If you encounter any issues, check the Nginx error logs at /var/log/nginx/error.log or Laravel logs at /var/www/laravel_app/storage/logs/laravel.log.
With these steps, you've completed a full hands-on Laravel deployment!
以上是在 Ubuntu 上輕鬆部署 Laravel:LEMP Stack 初學者指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!