分離部署LNMP搭建WORDPRESSphp
不少人在搭建的時候都是使用的一臺機器來部署LNMP環境,可是咱們在實際的工做中通常都是分離部署的。也就是說MySQL是MySQL;它是一臺單機,分離部署本身跑本身的服務,提升效率。node
OS:centos 7
Nginx IP:192.168.92.132
PHP IP:192.168.92.128
MySQL IP:192.168.92.130
一 首先安裝nginxmysql
yum安裝軟件和源碼包安裝異同
yum安裝的優缺點linux
優勢:安裝東西,方便快捷,特別是不用考慮包依賴 缺點:安裝過程,人爲沒法干預,不能按需,安裝。源裏面有什麼就安裝什麼,安裝的版本也比較低。
源碼包安裝的優缺點nginx
優勢:編譯安裝過程,能夠設定參數,按照需求,進行安裝,而且安裝的版本,能夠本身選擇,靈活性比較大 缺點:因爲安裝包過新或者是其餘問題,致使依賴的包沒有,或者版本太低。這個時候就要解決包的依賴問題,linux系統中有的包,一個依賴一個,可能裝一個小東西,就要解決一堆包的依賴問題,花不少時間解決包的依賴問題,得不嘗失。
NGINX的優勢:c++
Nginx 是一個高性能的 Web 和反向代理服務器, 它具備有不少很是優越的特性:web
做爲 Web 服務器:相比 Apache,Nginx 使用更少的資源,支持更多的併發鏈接,體現更高的效率,這點使 Nginx 尤爲受到虛擬主機提供商的歡迎。可以支持高達 50,000 個併發鏈接數的響應,感謝 Nginx 爲咱們選擇了 epoll and kqueue 做爲開發模型.sql
做爲負載均衡服務器:Nginx 既能夠在內部直接支持 Rails 和 PHP,也能夠支持做爲 HTTP代理服務器 對外進行服務。Nginx 用 C 編寫, 不管是系統資源開銷仍是 CPU 使用效率都比 Perlbal 要好的多。數據庫
做爲郵件代理服務器: Nginx 同時也是一個很是優秀的郵件代理服務器(最先開發這個產品的目的之一也是做爲郵件代理服務器),Last.fm 描述了成功而且美妙的使用經驗。vim
Nginx 安裝很是的簡單,配置文件 很是簡潔(還可以支持perl語法),Bugs很是少的服務器: Nginx 啓動特別容易,而且幾乎能夠作到7*24不間斷運行,即便運行數個月也不須要從新啓動。你還可以在 不間斷服務的狀況下進行軟件版本的升級。
nginx的英文官方網站是:http://www.nginx.org/ 在這裏咱們能夠直接查看Nginx的各個版本號。Nginx的軟件有三種版本:穩定版,開發板,和歷史穩定版。開發板更新的較快,包含最近的功能和BUG修復,但同時也可能會遇到新的BUG,開發板的更新一旦穩定下來就會被歸入穩定版中。穩定版更新的較慢,可是軟件的BUG會不多,能夠做爲企業的首選,所以一般建議使用穩定版。固然在實際工做中,選擇穩定版時,儘可能避免使用最新的版本,選擇比已出來的最近版晚6-10個月的版本比較好。在本章咱們選擇1.12.2穩定版本
start:開始環境搭建,首先是安裝NGINX
Nginx主機:
1)檢查並安裝Nginx基礎依賴包pcre-devel openssl-devel
名稱中帶有"devel"字符串的軟件包是必需要安裝的
2)安裝pcre-devel以及openssl-devel
yum install -y openssl-devel pcre-devel
3)開始安裝Nginx 操做命令以下:
mkdir -p /home/yankerp/tools
cd /home/yankerp/tools/
wget http://nginx.org/download/nginx-1.12.2.tar.gz
useradd -M -s /sbin/nologin nginx
tar zxf nginx-1.12.2.tar.gz
cd nginx-1.12.2/
在咱們編譯安裝前咱們能夠隱藏Nginx軟件名稱以及版本號以下:
Pwd
vim src/core/nginx.h
修改HTTP頭信息中的connection字段,防止回顯具體版本號
vim src/http/ngx_http_header_filter_module.c
有時候咱們頁面程序出現錯誤,Nginx會代咱們返回相應的錯誤代碼,回顯的時候,會帶上nginx和版本號,咱們把他隱藏起來
vim src/http/ngx_http_special_response.c
以上修改完成後正式安裝以下:
./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre --with-http_ssl_module --with-http_gzip_static_module --user=nginx --group=nginx
make && make install
--with-http_dav_module #增長PUT,DELETE,MKCOL:建立集合,COPY和MOVE方法
--with-http_stub_status_module #獲取Nginx的狀態統計信息
--with-http_addition_module #做爲一個輸出過濾器,支持不徹底緩衝,分部分相應請求
--with-http_sub_module #容許一些其餘文本替換Nginx相應中的一些文本
--with-http_flv_module #提供支持flv視頻文件支持
--with-http_mp4_module #提供支持mp4視頻文件支持,提供僞流媒體服務端支持
--with-http_ssl_module #啓用ngx_http_ssl_module
安裝完成後的優化:
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
啓動Nginx
netstat -anput | grep nginx
此時Nginx服務正式安裝完成,咱們開放80端口,在windows打開瀏覽器輸入http://192.168.xx.xx也就是nginx服務器的IP地址若是看到如下圖片,就表示Nginx已經啓動了。
開放80.
firewall-cmd --add-port=80/tcp
firewall-cmd --add-port=80/udp
瀏覽器訪問測試就行
安裝PHP
1) 安裝相關的依賴包
yum -y install gcc gcc-c++ libxml2-devel libcurl-devel openssl-devel bzip2-deve
2) 安裝libmcrypt
wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
tar zxf libmcrypt-2.5.7.tar.gz
d libmcrypt-2.5.7/
./configure --prefix=/usr/local/libmcrypt && make && make install
3) 正式安裝php
下載php安裝源碼包
wget http://cn2.php.net/distributions/php-5.6.27.tar.gz
解壓源碼包,並安裝(編譯過程稍微有點長)
tar zxf php-5.6.27.tar.gz
tar zxf php-5.6.27.tar.gz
./configure --prefix=/usr/local/php5.6 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-mhash --with-mcrypt=/usr/local/libmcrypt --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-maintainer-zts && make && make install
編譯安裝完後咱們建立Nginx用戶,要求UID和GID和Nginx機器上的一致!
groupadd -g 1001 nginx
useradd -u 900 nginx -g nginx -s /sbin/nologin
tail -1 /etc/passwd
提供PHP的配置文件及提供腳本
[root@php php-5.6.27]# cp php.ini-production /etc/php.ini
[root@php php-5.6.27]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@php php-5.6.27]# chmod +x /etc/init.d/php-fpm
[root@php php-5.6.27]# chkconfig --add php-fpm
[root@php php-5.6.27]# chkconfig php-fpm on
修改php主配置,並編輯以下:
[root@php php-5.6.27]# cp /usr/local/php5.6/etc/php-fpm.conf.default /usr/local/php5.6/etc/php-fpm.conf
[root@php php-5.6.27]# vim /usr/local/php5.6/etc/php-fpm.conf
修改內容以下:
pid = run/php-fpm.pid
user = nginx
group = nginx
listen = 192.168.92.128:9000 //PHP主機的IP地址
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
修改完成後啓動php服務
Service php-fpm start
Netstat -anput | grep php
到這裏咱們的php完成!
PHP測試頁面成功以後就說明nginx支持轉發PHP的資源請求了,接下來部署wordpress我的站點:
安裝MySQL:
在centos7中默認自帶了mariadb須要卸載
• rpm -qa | grep mariadb
• mariadb-libs-5.5.44-2.el7.centos.x86_64
rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64 --nodeps
1) 下載MySQL二進制安裝包
wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.18-linux-glibc2.5-x86_64.tar.g
2) 解壓MySQL二進制包把解壓的文件拷貝到/usr/local/mysql下,而後進入mysql目錄查看
3) tar zxf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
4) mv mysql-5.7.18-linux-glibc2.5-x86_64 /usr/local/mysql
5) cd /usr/local/mysql/
3)優化執行路徑
echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/prof
source /etc/profile
4)建立data以及log目錄以下:
cd /usr/local/mysql/
mkdir data
mkdir log
6) 建立mysql用戶和組
groupadd mysql && useradd -r -g mysql -s /bin/false mysql
7) 創建MySQL主配置文件
vim /etc/my.cnf
[root@mysql mysql]# cat /etc/my.cnf
[client]
socket=/usr/local/mysql/mysql.sock
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
pid-file=/usr/local/mysql/data/mysqld.pid
socket=/usr/local/mysql/mysql.sock
log_error=/usr/local/mysql/log/mysql.err
8) 設置相應的權限並初始化MySQL
[root@mysql mysql]# chmod 750 data/ && chown -R mysql . && chgrp -R mysql . && bin/mysqld --initialize --user=mysql
8)複製啓動腳本並啓動MySQL數據庫
[root@mysql mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld && service mysqld start
到這裏MySQL正式安裝完畢
在部署前咱們在數據庫服務器上建立wordpress數據庫及受權賬戶
mysql> create database wordpress;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on wordpress.* to yankerp@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.00 sec)
wordpress搭建
在nginx主機上解壓wordpress壓縮包
[root@nginx ~]# tar zxf wordpress-4.9.1-zh_CN.tar.gz
[root@nginx ~]# mv wordpress/ /www/
在php主機上一樣的操做
[root@php ~]# tar zxf wordpress-4.9.1-zh_CN.tar.gz
[root@php ~]# mv wordpress/ /www
訪問測試:http://192.168.92.132/
這是在8上出的問題,未解決,,,,,,,,,,
再開一個機子上了5.7,沒毛病了,,,,,,
連上數據庫了
在數據庫主機上能夠看用戶
Wordpress拓展:
CMS
CMS是Content Management System的縮寫,意爲」內容管理系統「, 可讓你不須要學習複雜的建站技術,不須要學習太多複雜的HTML語言,你就可以利用CMS構建出一個風格統一功能強大的專業網站。
在這 推薦一款插件Filosofo Home-Page Control,以及兩篇文章:
《5個簡單的步驟把 WordPress 打形成 CMS》
《11 款CMS風格的Wordpress主題模板收集》
連接目錄
連接目錄一個經過分類和子 分類進行分類排序的網頁連接集。
免費的目錄腳本是很是好的,可是他們運行於 WordPress 以外,因此並非咱們想要得。
WP Link Directory
WP Link Directory是一個WordPress的連接目錄插件,讓你保持一個連接目錄,並容許其餘網站管理員申請連接到您的網站。它能夠檢查連接狀況,甚至 檢查其餘網站的Pagerank並接受或拒絕您指定的標準爲基礎的環節。
其主要特色是:
• 自動檢查由指定的Pagerank網頁連接。
•在目錄中顯示全部站點的PageRank。
•顯示每一個連接的詳細信息。
•提供多種語言。
•當有新的網址提交時,會自動通知管理員。
•能夠和你當前使用的主題無縫的結合
論 壇
論壇做爲一個社區網站是必備的一個功能模塊,可是當咱們使用discuz、phpwind、phpbb等這些優秀的 論壇程序時,不得不佩服他的功能強大,可是咱們有沒有自問過:」本身的網站須要這麼複雜的程序嗎?」,因而許多優秀的、注重效率、知足基本功能的論壇程序 受到小站長的追捧。
WordPress團隊開發了一個簡單的論壇程序bbpress(有 點像百度貼吧)可是咱們有時就是須要再簡單點的論壇,這時咱們可使用WordPress插件論壇來擴展:Simplepress(《WordPress 論壇插件:Simple Forum》)
WP-Forum(《wordpress 插件之WP-Forum:打造一個輕量級的wordpress論壇》)
WIKI
Wiki 系統屬於一種人類知識網格系統,咱們能夠在Web的基礎上對Wiki文本進行瀏覽、創wiki建、更改,並且建立、更改、發佈的代價遠比HTML文本小; 同時Wiki系統還支持面向社羣的協做式寫做,爲協做式寫做提供必要幫助;最後,Wiki的寫做者天然構成了一個社羣,Wiki系統爲這個社羣提供簡單的 交流工具。與其它超文本系統相比,Wiki有使用方便及開放的特色,因此Wiki系統能夠幫助咱們在一個社羣內共享某領域的知識。
插件推 薦:WP-WIKI
安裝WP-WIKI插件後,添加了發佈 WordPress的頁面或文章的」wiki維基編輯」 功能,當你編輯文章或者頁面的屏幕的主編輯框下面會添加一個新的Wordpress Wiki複選框,你選中它後,那麼就意味着任何人能夠登錄到你的網站以一個WikiEditor維基編輯人的身份編輯這些特定的頁面(測試時好像須要用戶 名和密碼),若是你點擊一箇舊的修訂連接,他只是展現讓你詳閱全部舊的修訂連接。
電子商務
用 WordPress作個電子商務網站,工做之餘在網上賣點小東西,呵呵,是否是很不錯的想法,若是你有這樣的想法,那麼,你就去作吧,爲你介紹一款強大的 插件WP e-Commerce。
WP e-Commerce是一款電子商務購物車插件程序,它不只操做方便而且功能強大,能夠獨立頁面顯示也能夠嵌入到側邊欄中,很是適合在線銷售你的服務和產 品。此外它還內置多種包括Paypal等在內的支付網關,讓收款和資金週轉更加快捷有效!
支付網關:讓你輕鬆接受在線支付
簡 化結算:讓客戶有更好的購物體驗
社會化網絡:更輕鬆的推薦你的產品
緊湊的WordPress整合:安裝方便
更 多的點擊和更好的銷售:讓更多的人瞭解你的新產品
項目管理
在WordPress上輕 鬆的建立並展現你的項目,跟蹤項目和任務的進度。
推薦插件:WP-Project、WP-Advanced-Trac
微博
如今微博很火,就像當年的博客進入中國同樣。可是中國微博異於twitter, 在中國微博:娛樂、資訊,而twitter上是:資訊、娛樂。
在這微博混戰的年代、在這追求新鮮與個性的時代,我註冊了幾乎全部能註冊的 微博,可是真正使用的也就是幾個。
在這推薦一個很是強大的WordPress主題:P2主題,這是一款專門的微博主題。
《P2 主題打造真正的多用戶微博》
SNS
又是一個當下很是火的網絡服務,可是微博來臨的時 候,SNS卻黯然失色啦,只能說互聯網的興奮點只能是新生事物
推薦插件:BuddyPress,與WordPress師出同門,質量仍是能夠保證的。 BuddyPress主要包含了我的信息、博客、朋友圈、小組、微博客、狀態更新和相冊等功能
視頻網站
WordPress經過在2.9版本中加強了視頻嵌入功能,尤爲是對國外網站視頻的插入更是智能化。
若是咱們想經過 WordPress創建一個視頻網站的話,我想沒有比採用 VodPod主題更好了。 《WordPress視頻主題VodPod使用教程》
圖片網站 若是是單純的添加一個 相冊的話,我想採用NextGEN Gallery插件最好不過啦《21款 Wordpress圖片相冊插件/ Gallery Plugins》。 可是若是是創建一個圖片網站的話,那麼選擇一款好的圖片 主題更爲重要:《推薦8款wordpress圖片模板》。 另外再推薦兩款插件:Yet another photoblog 和 PhotoQ Wordpress Photoblog Plugin