Centos7 LEMP環境建置(Linux,NGINX,MariaDB, PHP)

Linux web架站套件 ,大都是使用LAMP架構,不過在一些環境中
可以改用 LEMP 架構 ( Linux Nginx MariaDB PHP ),
會更輕巧化 ,如果要使用LAMP可參考此篇
Debian10 LAMP環境建置(Linux,Apache,MySQL, PHP)

這邊我們使用Debian10 來做範例,使用MariaDB來替代MySQL,
MariaDB在相容上與MySQL一致,因此不需擔心會有系統及操作上的問題
如果您尚未安裝Debian10 可以參考以以下安裝範例
Debian 10(Buster)安裝
當系統準備就緒即可開始安裝

Setp1 安裝Nginx 和設置防火牆

為了讓網站訪問者顯示網頁,使用Nngix,性能及穩定性卓越
使用apt管理器安裝之前,先更新apt數據庫,接著安裝Nginx

sudo apt update
sudo apt install nginx -y
lemp

如果您的主機提示沒有sudo指令
輸入下列命令安裝sudo

apt install sudo -y

啟UFW防火牆,允許Nginx服務通過,如沒有安裝防火牆,則略過此步驟

sudo ufw allow 'Nginx HTTP'

檢查防火牆狀態

sudo ufw status
Image 7 2

在瀏覽器輸入IP,檢驗Nginx是否運作

http://your_server_ip
Image 8

Step2 安裝 MariaDB

現在網頁伺服器已運作,接下來需要安裝資料庫,用來儲存與管理數據

使用Debian的apt管理器安裝MariaDB

sudo apt install mariadb-server -y
Image 9

進行安全性的設定

sudo mysql_secure_installation

預設是未設置密碼,這邊不用輸入密碼按下Enter

Image 10

是否設定root帳號密碼:Y or Enter

Image 11

是否移除匿名帳號:Y or Enter

Image 12

限制root帳戶為本地連線:Y or Enter

Image 13

刪除測試資料庫:Y or Enter

Image 14

重新載入設定:Y or Enter

Image 15

完成後,輸入以下命令登錄MariaDB控制台

sudo mariadb
Image 16

為了提高安全性,我們建立一個名稱為example_database的資料庫,並設置較少的權限

CREATE DATABASE example_database;
Image 17

建立一個新用戶,並賦予上述新建的資料庫所有權限
“password”自行更改為更安全的密碼

GRANT ALL ON example_database.* TO 'example_user'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
Image 18

更新資料庫權限

FLUSH PRIVILEGES;
Image 19

離開控制台

exit

Image 20

登入mariaDB測試剛建立的使用者帳號

mariadb -u example_user -p
Image 21

登入之後,顯示資料庫,確認有example_database的使用權限

SHOW DATABASES;
Image 22

離開控制台

exit

到這邊,資料庫系統已建立,準備安裝PHP

Step3 安裝PHP

使用apt管理器安裝PHP及PHP模組

sudo apt install php-fpm php-mysql -y
Image 23

在Debian10,Nginx默認啟用一個服務區塊,配置在var / www / html,
如果您只有一個網站,使用上很方便,但如果是多個網站,管理上會不方便,
這邊將var / www / html保留默認目錄,使用your_domain為名創建一個根目錄

sudo mkdir /var/www/your_domain
Image 24

配置$USER分配目錄的所有權,$USER為您當前的系統使用者

sudo chown -R $USER:$USER /var/www/your_domain
Image 25

使用命令編輯器,在Nginx的sites-available目錄中打開一個新的配置文件

複製貼上以下內容,儲存後離開

sudo nano /etc/nginx/sites-available/your_domain
server {
    listen 80;
    listen [::]:80;

    root /var/www/your_domain;
    index index.php index.html index.htm;

    server_name your_domain;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
    }
}
Image 26
Image 27

啟動上述配置的文件

sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
Image 28

檢查Nginx配置文字是否有文法錯誤
如果發現錯誤,查看前述編輯文件內容複製時,是否有更動到內容

sudo nginx -t
Image 29

重新啟動Nginx

sudo systemctl reload nginx
Image 31

Step5 測試PHP網頁

建立一個簡單的PHP腳本來確認Nginx能夠處理PHP的請求

nano /var/www/your_domain/info.php
Image 32

編輯並輸入下列PHP代碼,儲存後離開

<?php
phpinfo();
?>
Image 36

打開瀏覽器測試建立好的web server是否正常運作PHP script

http://your_domain/info.php

出現此頁面後,表示PHP正常工作,此頁面提供一些有關伺服器的資訊,
為了避免將此資訊內容讓其他用戶看見,輸入以下指令刪除它,
如果之後您需要在檢視此頁面,可以依照上述步驟再建立檢視

Image 35
nano rm /var/www/your_domain/info.php
Image 37

現在您已經完成 LAMP 環境建置,您將可以使用來運作您的網站或應用程式

參考

https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mariadb-php-lemp-stack-on-debian-10