Roy-Try-Catch
← Back to list

【Laravel】Laravel部署於Ubuntu (Nginx,MariaDB)

Roy • Updated 2026-02-27 11:03:43

本篇介紹如何在 Ubuntu Linux 的環境中,安裝 Nginx 伺服器、MariaDB 資料庫,打造 PHP 架構開發與佈署環境。

# 更新系統套件
sudo apt update
sudo apt dist-upgrade
# 安裝 Nginx、PHP、MariaDB、Composer 等套件
sudo apt install composer php-curl php-mysql php-fpm php-mbstring php-tokenizer php-xml php-json php-common php-dev nginx mariadb-server redis-server supervisor

建立Laravel專案

Laravel 專案的建立非常簡單,只要使用 Composer 這個自動化工具就可以快速建立一個新專案:

# 進入/var/www
cd /var/www/
# 建立新的 Laravel 專案
composer create-project --prefer-dist laravel/laravel {專案名稱}

設定php.ini

Ubuntu預設php.ini位置為/etc/php/{php-version}/fpm/php.ini

需修改php的extension

# 進入/etc/php/{php-version}/fpm/ 編輯php.ini
vim php.ini
# 調整php.ini參數(參考)
cgi.fix_pathinfo=0
extension=bz2
extension=curl
extension=ftp
extension=fileinfo
extension=gd2
extension=gettext
extension=mbstring
extension=exif
extension=mysqli 
extension=openssl
extension=pdo_mysql

設定Nginx

Ubuntu預設Nginx位置為/etc/nginx

建立sites-available的laravel.conf

server {
 listen 80;
 listen [::]:80;

 # 網頁目錄
 root /var/www/{專案名稱}/public;

 # 伺服器名稱
 server_name {your_domain};

 location / {
 try_files $uri /index.php?$query_string;
 root /var/www/{專案名稱}/public;
 index index.php index.html;
 }

 location ~ \.php$ {
 fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
 fastcgi_index index.php;
 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
 include fastcgi_params;
 }

 error_page 403 404 /404.html;
 location = /40x.html{

 }
 error_page 500 502 503 504 /50x.html;
 location = /50x.html {
 }

 #301永久轉址(443),轉址時,改變Request Method為GET,無法保留POST資料
 #return 301 https://$host$request_uri;
 #308永久轉址,轉址時,不改變Request Method,能保留POST資料
 #return 308 https://$host$request_uri; 
 
}

設定完.conf之後,利用軟連結(ln)至sites-enabled

# 進入/etc/nginx/sites-enabled
cd /etc/nginx/sites-enabled
# 設定軟連結
sudo ln -s ../sites-available/laravel.conf

設定完成後重新開啟Nginx

# 重新啟動Nginx
sudo nginx -s reload

設定Mysql

在安裝好 MariaDB 資料庫後,使用前建議先調整一下安全性的設定:

# MariaDB/MySQL 資料庫安全性設定
sudo mysql_secure_installatio

設定好之後,使用 root 管理者帳號登入 MariaDB 資料庫:

# 使用root登入
sudo mysql -u root -p

建立Laravel使用的資料庫

# 使用root登入
CREATE DATABASE laravel;

新增一位DB User給予資料庫權限

# 建立一般使用者帳號
CREATE USER `user`@`localhost` IDENTIFIED BY 'yourpassword';

# 設定帳號權限
GRANT ALL ON laravel.* TO `user`@`localhost`;

# 讓設定生效
FLUSH PRIVILEGES;

或者是給予全域的超級管理員

# 建立一般使用者帳號
CREATE USER `user`@`%` IDENTIFIED BY 'yourpassword';

# 設定帳號權限
GRANT ALL PRIVILEGES ON *.* TO 'user';

# 讓設定生效
FLUSH PRIVILEGES;

設定Laravel專案

Laravel 專案的設定都寫在專案的根目錄 .env裡面,接下來我們要修改.env檔案。

# 進入專案
cd /var/www/{專案名稱}
# 建立新的env
cp .env.example dev.env
# 建立軟連結
ln -s dev.env .env

寫入DB相關參數

DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

Comments

感謝分享

Roy • 2022-03-16 13:48

<p>謝謝大大分享,非常有用的筆記!!</p>

巨垂1 • 2021-09-03 03:03

請先登入