1. 程式人生 > >分離部署LNMP搭建WORDPRESS詳細步驟

分離部署LNMP搭建WORDPRESS詳細步驟

fast 相關 ket 帳戶 prefix www 基礎 視頻 NPU

分離部署LNMP搭建WORDPRESS

  • LNMP是一個基於CentOS/Debian編寫的Nginx、PHP、MySQL、PHPMyAdmin。LNMP代表的就是:Linux系統下Nginx+MySQL+PHP這種網站服務器架構。
  • Nginx較為穩定、功能豐富、安裝配置簡單、低系統資源,Nginx既可以在內部直接支持PHP,也可以支持作為HTTP代理服務器對外進行服務。
  • Nginx用C編寫,不論是系統資源開銷還是CPU使用效率都比Perlbal好得多。
  • wordpress是一款開源免費的產品,利用php和mysql來開發的博客程序(也有很多人改為網站)。wordpress的功能非常強大,有眾多的插件。沒錯,WordPress是世界上最好的博客程序,但是如果你單純的認為WordPress只是一 款博客程序的話,那就大錯特錯。通過WordPress插件和主題,我們可以將這款博客程序擴展成我們需要的、功能不凡的另類用途,例如CMS、鏈接目錄、論壇、WIKI、電子商務、項目管理、微博、SNS、視頻、圖片網站等等。但是它的安裝卻是很簡單,安裝的辦法可以從官網上獲取,程序也可以從官網上下載。貼上wordpress的官網地址:https://cn.wordpress.org/
  • 很多人在搭建的時候都是使用的一臺機器來部署LNMP環境,但是我們在實際的工作中一般都是分離部署的。也就是說MySQL是MySQL;它是一臺單機,分離部署自己跑自己的服務,提高效率。

    技術分享圖片
    OS:centos 7
    Nginx IP:192.168.92.132
    PHP IP:192.168.92.128
    MySQL IP:192.168.92.130
    一 首先安裝nginx

yum安裝軟件和源碼包安裝異同
yum安裝的優缺點

優點:安裝東西,方便快捷,特別是不用考慮包依賴
缺點:安裝過程,人為無法幹預,不能按需,安裝。源裏面有什麽就安裝什麽,安裝的版本也比較低。

源碼包安裝的優缺點

優點:編譯安裝過程,可以設定參數,按照需求,進行安裝,並且安裝的版本,可以自己選擇,靈活性比較大
缺點:由於安裝包過新或者是其他問題,導致依賴的包沒有,或者版本過低。這個時候就要解決包的依賴問題,linux系統中有的包,一個依賴一個,可能裝一個小東西,就要解決一堆包的依賴問題,花很多時間解決包的依賴問題,得不嘗失。

NGINX的優點:

  1. Nginx是俄羅斯人編寫的十分輕量級的HTTP服務器,Nginx,它的發音為“engine X”,是一個高性能的HTTP和反向代理服務器,同時也是一個IMAP/POP3/SMTP 代理服務器.Nginx是由俄羅斯人 Igor Sysoev為俄羅斯訪問量第二的 Rambler.ru站點開發.
  2. Nginx以事件驅動(epoll)的方式編寫,所以有非常好的性能,同時也是一個非常高效的反向代理、負載平衡。但是Nginx並不支持cgi方式運行,原因是可以減少因此帶來的一些程序上的漏洞。所以必須使用FastCGI方式來執行PHP程序。
  3. 由於Nginx本身的一些優點,輕量,開源,易用,越來越多的公司使用nginx作為自己公司的web應用服務器,本文詳細介紹nginx源碼安裝的同時並對nginx進行優化配置。
  4. Nginx 是一個高性能的 Web 和反向代理服務器, 它具有有很多非常優越的特性:

  5. 作為 Web 服務器:相比 Apache,Nginx 使用更少的資源,支持更多的並發連接,體現更高的效率,這點使 Nginx 尤其受到虛擬主機提供商的歡迎。能夠支持高達 50,000 個並發連接數的響應,感謝 Nginx 為我們選擇了 epoll and kqueue 作為開發模型.

  6. 作為負載均衡服務器:Nginx 既可以在內部直接支持 Rails 和 PHP,也可以支持作為 HTTP代理服務器 對外進行服務。Nginx 用 C 編寫, 不論是系統資源開銷還是 CPU 使用效率都比 Perlbal 要好的多。

  7. 作為郵件代理服務器: Nginx 同時也是一個非常優秀的郵件代理服務器(最早開發這個產品的目的之一也是作為郵件代理服務器),Last.fm 描述了成功並且美妙的使用經驗。

  8. Nginx 安裝非常的簡單,配置文件 非常簡潔(還能夠支持perl語法),Bugs非常少的服務器: Nginx 啟動特別容易,並且幾乎可以做到7*24不間斷運行,即使運行數個月也不需要重新啟動。你還能夠在 不間斷服務的情況下進行軟件版本的升級。

  9. 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

分離部署LNMP搭建WORDPRESS詳細步驟