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

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

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

下列教學是使用nano指令,如果習慣vi可以改為vi
未安裝nano 則輸入

sudo yum install nano -y

Step 1-加入套件源

EPEL 套件庫

sudo yum install epel-release -y
1607325831612

Remi 套件庫

sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
1607325879420

編輯Nginx 套件庫

sudo nano /etc/yum.repos.d/nginx.repo
1607086711141

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

1607086802832

重新更新套件

sudo yum update -y
1607087801135

Step 2-安裝LENP套件(nginx phe mariaDB)

使用yum指令一次安裝需要的所有套件

sudo yum install nginx php70-php-fpm mariadb-server -y
LEMP

Step 3-設定

Nginx

允許防火牆讓 HTTP、HTTPS 封包通過

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
1607088488240 3

啟動服務,並且開機後自動啟動

sudo systemctl restart nginx
sudo systemctl enable nginx
1607088570574 1

修改預設主站台設定檔

sudo nano /etc/nginx/conf.d/default.conf

server {
    listen       80;
    server_name  localhost;

    charset utf-8;
    access_log  /var/log/nginx/access.log  main;

    root   /usr/share/nginx/html;
    index  index.php index.html index.htm;

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

    error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

1607088727838

因為 SELinux 會限制 Nginx 寫入動作,所以還要打開主目錄的存取權限

sudo chcon -R -t httpd_sys_rw_content_t /usr/share/nginx/html
1607088796620

重新啟動nginx

sudo systemctl reload nginx
1607329258587

在瀏覽器輸入IP,檢閱是否正常

1607329314016

PHP-FPM

Nginx需要配合PHP-FPM 來啟用 PHP 的支援

修改 PHP 的主設定檔

sudo nano /etc/opt/remi/php70/php.ini
1607329501699

找到 ;cgi.fix_pathinfo=1,將 1 改成 0,並把註解;拿掉
cgi.fix_pathinfo=0

1607329718849

修改 PHP-FPM 的主設定檔

sudo nano /etc/opt/remi/php70/php-fpm.d/www.conf
1607330305441

配合 Nginx 修改下列設定值

user = nginx
group = nginx
listen.owner = nobody
listen.group = nobody

1607090652440

MariaDB

啟動 MariaDB Server,並讓它在開機後自動啟動

sudo systemctl restart mariadb
sudo systemctl enable mariadb
1607333765786

進行安全性的設定

mysql_secure_installation

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

1607334311228

是否設定root帳號密碼:Y or Enter
輸入您要設定的密碼兩次

1607334421125

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

1607334517438

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

1607338028197

刪除測試資料庫:Y or Enter

1607338147248

重新載入設定

1607338211709

安裝 PHP 的模組,讓 PHP 可以連接 MariaDB

sudo yum -y install php70-php-mysqlnd
1607338423036

重新啟動 PHP-FPM

sudo systemctl restart php70-php-fpm
1607338505284

現在,您可以開始使用 LEMP 環境,運作您的系統了

參考資料

https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-centos-7