1、環境準備php
咱們先介紹下環境和實驗中所須要的包html
環境:mysql
我使用的是centos7.4的系統linux
建議關掉selinux和影響到80端口的防火牆策略nginx
程序包:web
nginx(使用系統默認帶的光盤裏的包,固然也能夠本身編譯安裝,可是搭建我的博客不建議,由於不必)sql
mariadb-server(數據庫使用maridb-server也是系統本地鏡像裏的)數據庫
php-fpm(用來管理php程序的,另外nginx不支持php模塊)apache
php-mysql(用來事項php與數據庫鏈接)vim
wordpress程序包,官網地址:https://wordpress.org/download/
wordpress主題:https://wordpress.org/themes/
# yum install nginx mariadb-server php-fpm php-mysql -y
# systemctl enable nginx mariadb php-fpm 設置開機自啓
2、各服務配置
Nginx
寫nginx的配置文件也有兩種方式,直接寫主配置裏,和寫到conf.d文件夾下,這裏使用第二種,其實沒啥區別
# vim /etc/nginx/nginx.conf
在http配置段裏添加
http {
fastcgi_cache_path /var/cache/nginx/fcgi_cache levels=1:2:1 keys_zone=fcgicache:20m inactive=120s; #特別注意:用來設置緩存的一些參數,當你要作多虛擬主機時必定要在從新設置以個並在server配置段裏修改
}
這個主要是定義緩存的一些配置,可直接拿來用
# vim /etc/nginx/conf.d/blog.conf #必須conf後綴
server {
listen 80 ; #監聽地址
server_name blog.luckynm.cn ; #域名
root /data/wordpress ; #web的根路徑
index index.php index.html index.hml; #默認索引
location / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location ~* \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_cache fcgicache;
fastcgi_cache_key $request_uri;
fastcgi_cache_valid 200 302 10m;
fastcgi_cache_valid 301 1h;
fastcgi_cache_valid any 1m;
}
location ~* ^/(status|ping)$ { #用來查看網站的狀態信息,能夠不添加
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
include fastcgi_params;
}
location /files { #用來在網頁訪問文件夾,至關於作了個文件夾映射,可根據我的狀況添加
root /data/wordpress;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
}
nginx的配置基本就這些,若有疑問能夠聯繫我
MySQL
在命令行輸入mysql進入數據庫
數據庫的話能夠再作些安全配置,這裏就不演示啦
# mysql
MariaDB [(none)]> create user 'ningmeng'@'localhost' identified by 'XXXXXXX'; 建立個給wordpress使用的鏈接數據庫的帳號
MariaDB [(none)]> create database wordpress; 建立數據庫
MariaDB [(none)]> grant all privileges on wordpress.* to 'ningmeng'@'%'; 給ningmeng用戶受權
建議建立好後登錄測試一下
mysql -uningmeng -pXXXXXX
Php-Fpm
它有好多的參數能夠設置,也有好多坑,在這裏會給你們說一下須要注意的地方
# vim /etc/php-fpm.d/www.conf
user = nginx #設置所屬者所屬組,不設置的話在裝wordpress升級主題時有各類各樣的權限問題
group = nginx
pm = ondemand #推薦使用這個模式,對他的詳細介紹參考http://blog.luckynm.cn/?p=65
pm.max_children = 50 #這些均可以配置也能夠默認,看狀況
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.status_path = /status
pm.status_path = /status #後面這三個是用來設置在web頁面上查看服務器狀態信息的,配合nginx種server段的配置使用
ping.path = /ping
ping.response = pong
Wordpress
在作好前面的步驟後先不要啓動,由於它們啓動可能會有順序問題
把下載下來的wordpress包傳到本地,能夠從新建一個文件夾存放也能夠直接放到/root目錄下
建議使用中文的包wordpress-4.9.4-zh_CN.tar.gz
# mkdir -pv /data 建立data目錄,這個要和nginx中root定義的根要一致
# tar xvf wordpress-4.9.4-zh_CN.tar.gz -C /data/ 解壓到/data目錄下
# chown -R nginx:nginx /data/wordpress 修改所屬者所屬組,不應沒辦法換主題升級插件,等一系列問題
# cd /data/wordpress
# mv wp-config-sample.php wp-config.php 設置配置文件
# vim wp-config.php
define('DB_NAME', 'wordpress'); WordPress數據庫的名稱
define('DB_USER', 'ningmeng'); MySQL數據庫用戶名
define('DB_PASSWORD', '970628'); MySQL數據庫密碼
define('DB_HOST', 'localhost'); MySQL主機
啓動
systemctl start mariadb php-fpm
systemctl start nginx
注意:php-fpm必定要在nginx前啓動,要否則會提示找不到緩存文件夾
總結
以上就是咱們搭建博客的所有內容,在搭建過程當中必定要注意一些配置的細節,又可能一個參數沒配,整個架構都起不來,這篇文章也僅表明我本身的看法,不一樣的系統有不一樣的配置,我總結了下日常小夥伴們可能遇到的問題,在這裏和你們分享下:
解決辦法:都是權限的問題,在php-fpm的/etc/php-fpm.d/www.conf裏修改所屬者所屬組,默認時apacheuser = nginx group = nginx問題描述:服務器內存小,mysql老自動停機解決辦法: 優化下pfp-fpm就好啦,本文中提到啦優化的方式,或參考:http://blog.luckynm.cn/?p=65若是想要實現讓nginx顯示文件夾目錄可參考:http://blog.luckynm.cn/?p=120 本文或許遺漏了某些細節,若是有疑問請留言。---------------------