CentOS7 + NMP

情境

最近開始接觸 Centos 試著架設網站,使用了 Nginx、PHP-FPM、MariaDB,順便稍微把操作程序做個記錄,至於那些重要的觀念再另闢章節吧。

環境

ver: CentOS 7 DVD

準備

  1. 先安裝 epel (Nginx 在這裡才有,還有 php-mcrypt)
    sudo yum install epel-release.noarch

安裝 Nginx

安裝 nginx

sudo yum install nginx

常駐 nginx 服務

sudo systemctl enable nginx.service

啟動 nginx

sudo systemctl start nginx.service

測試 nginx

ps aux | grep nginx

看到這樣的訊息就是成功了

root 23323 0.0 0.0 110016 132 ? Ss 08:30 0:00 nginx: master process /usr/sbin/nginx 
nginx 23324 0.0 0.0 112580 304 ? S 08:30 0:00 nginx: worker process

安裝 PHP

安裝 php 以及相關的 extension

sudo yum install php.x86_64 php-common.x86_64 php-gd.x86_64 php-mcrypt.x86_64 php-mbstring.x86_64 php-fpm.x86_64 php-xml.x86_64 php-mysql.x86_64

設定 /etc/php.ini 檔案

cgi.fix_pathinfo=0
...
display_errors = 1

設定 /etc/php-fpm.d/www.conf 檔案

listen = /var/run/php-fpm/php-fpm.sock
...
user = nginx
group = nginx

常駐 php 服務

sudo systemctl enable php-fpm.service

啟動 php

sudo systemctl start php-fpm.service

回頭補設定 /etc/nginx/conf.d/default.conf (視情況,有的是要改 /etc/nginx/nginx.conf 裏面的 server)

server { 
    listen 80; 
    server_name burn-lab.com; 
    root /var/www; 
    index index.php index.html index.htm; 

    location / { 
        try_files $uri $uri/ =404; 
    } 
    error_page 404 /404.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 unix:/var/run/php-fpm/php-fpm.sock; 
        fastcgi_index index.php; 
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
        include fastcgi_params; 
    } 
}

改完重啟 nginx

sudo systemctl restart nginx

測試 php
直接在 /var/www/ 裡面隨便放個 php 檔案,連線看看 php 有沒有成功跑出來。

正常來說一定會失敗,因為沒有打開防火牆。讓我們稍微加快腳步一下…

sudo firewall-cmd --add-service=http --permanent
sudo systemctl reload firewalld.service

安裝 MariaDB

安裝 mariadb

sudo yum install mariadb mariadb-server

常駐 mariadb 服務

sudo systemctl enable mariadb.service

啟動 mariadb

sudo systemctl start mariadb.service

接下來就是使用預設帳號 root ,預設密碼是無來登入 mariadb。就跟使用 mysql 一模一樣。我自己是習慣開立一個新的帳號給 wordpress 用啦。
如果想要從外部可以連線至 mariadb,也請記得開一下防火牆。

sudo firewall-cmd –add-service=mysql –permanent
sudo systemctl reload firewalld.service

就這樣,基本環境就建立好了,之後再來講要怎麼架設 wordpress。