0
user-people-family-house-home

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

本篇介紹如何在 Ubuntu Linux; 的環境中,安裝 Nginx 伺服器、MariaDB 資料庫,打造 PHP 架...

Posted by Roy on 2023-07-13 22:11:19 Views

本篇介紹如何在 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_installation

設定好之後,使用 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=

View Comments

謝謝大大分享,非常有用的筆記!!


感謝分享