本篇介紹如何在 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=
謝謝大大分享,非常有用的筆記!!
Comment by 巨垂1 At 2021-09-03 11:03:05
Comment by Roy At 2022-03-16 21:48:15