首頁  >  文章  >  後端開發  >  在 Ubuntu 上輕鬆部署 Laravel:LEMP Stack 初學者指南

在 Ubuntu 上輕鬆部署 Laravel:LEMP Stack 初學者指南

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-09-20 06:55:32492瀏覽

Easy Laravel Deployment on Ubuntu: A Beginner

使用 LEMP 堆疊(Linux、Nginx、MySQL、PHP)在 Ubuntu 上部署 Laravel 應用程式可能看起來令人畏懼,但逐步分解它使其易於管理。本指南將引導您完成從伺服器設定到部署 Laravel 應用程式的過程。

先決條件:

  • 您應該有一個Ubuntu 伺服器(本地或雲,例如AWS、DigitalOcean)。
  • 對終端有基本的熟悉。
  • 網域(可選,但建議)。

第 1 部分:設定 LEMP 堆疊

第 1 步:更新系統

首先確保您的伺服器是最新的。

sudo apt update && sudo apt upgrade -y

第2步:安裝Nginx

Nginx 將為您的應用程式提供服務。

sudo apt install nginx -y

安裝後,您可以啟動並啟用 Nginx 在啟動時運行:

sudo systemctl start nginx
sudo systemctl enable nginx

您可以透過在瀏覽器中存取伺服器的 IP 位址來驗證 Nginx 是否正在運作。

第三步:安裝MySQL

接下來,我們將安裝 MySQL 資料庫伺服器。

sudo apt install mysql-server -y

保護 MySQL 安裝:

sudo mysql_secure_installation

這將提示您設定 root 密碼並刪除不安全的預設值。

第四步:安裝PHP

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: ...)

第 2 部分:為 Laravel 設定 MySQL

第1步:登入MySQL

以root使用者登入MySQL控制台:

sudo mysql

第 2 步:建立資料庫

為 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;

第 3 步:測試資料庫

確保新的資料庫使用者可以連線:

mysql -u laravel_user -p

系統會提示您輸入密碼,然後輸入:

SHOW DATABASES;

您應該在清單中看到 laravel_app。


第 3 部分:安裝 Laravel

第 1 步:安裝 Composer

Laravel 使用 Composer 作為其相依性管理器。安裝作曲家:

sudo apt install composer -y

第 2 步:建立 Laravel 項目

導覽至要安裝 Laravel 的目錄(例如 /var/www/):

cd /var/www/
composer create-project --prefer-dist laravel/laravel laravel_app

步驟3:設定目錄權限

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

步驟 4:設定 .env 文件

在 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

第 4 部分:為 Laravel 設定 Nginx

第 1 步:建立新的 Nginx 伺服器區塊

我們將為 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 位址。

步驟2:啟用Nginx配置

透過建立指向已啟用網站的符號連結來啟用新的 Nginx 設定:

sudo ln -s /etc/nginx/sites-available/laravel_app /etc/nginx/sites-enabled/

第 3 步:測試並重新載入 Nginx

測試 Nginx 設定以確保沒有語法錯誤:

sudo nginx -t

如果一切正常,重啟Nginx:

sudo systemctl reload nginx

第 5 部分:最後步驟

第 1 步:運行 Laravel 遷移

運行 Laravel 遷移來設定資料庫:

cd /var/www/laravel_app
php artisan migrate

第 2 步:存取應用程式

您現在應該能夠透過在瀏覽器中導航到伺服器的 IP 或網域來存取 Laravel 應用程式。您將看到預設的 Laravel 歡迎頁面。

步驟 3:啟用 HTTPS(可選但建議)

如果您有域名,請使用 Let's Encrypt 保護您的網站:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain

依照說明安裝 SSL 憑證。 Certbot 會自動設定 Nginx 將 HTTP 流量重新導向到 HTTPS。


第 6 部分:可選:設定 Laravel 佇列和調度程序

Laravel 隊列:

佇列處理諸如發送電子郵件或在背景處理作業等任務。

  1. 設定佇列驅動程式(例如 Redis 或資料庫)。
  2. 執行 Laravel 佇列工作程序:
   php artisan queue:work

Laravel 調度程式:

使用 Laravel 的任務排程功能來執行清除快取、發送每日電子郵件等任務

  1. 將 Laravel cron 條目加入您的 crontab 中:
   sudo crontab -e

新增以下行:

   * * * * * php /var/www/laravel_app/artisan schedule:run >> /dev/null 2>&1

Conclusion:

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn