A. 如何搭建 LNMP環境
應網友需求,特地寫上一篇關於Linode VPS配念升老置LNMP環境和搭建wordpress的文章。其實這篇文章也不會寫詳細的如何配置lnmp,因為lnmp.org官網本身就有詳細的教程和軍哥的論壇後援技術支持。這里主要敘述一些我當初實施過程中的思路和心得。希望能幫到一些還沒入門的朋友。其實我自己並非技術人員,為什麼走到後來還是使用VPS,喂有這么做才能解決一些問題,說多了都是淚唉。
因來我博客的大都為外貿業務員,當然也是直奔如何構建wordpress網站的。這時你首要做的事情肯定就是購買空間主機來完成網站的建笑頌設。空間主機與VPS有著很大的區別,具體的區別就不用專業術語了,估計說了也很難讓大眾一下子明白,就舉一個例子吧。空間主機就像你去買一台電腦,人家幫你把盤分好、系統裝完全,往後你只管安裝自己需要的軟體使用就好。而VPS則是相當於你買完電腦後,需要你自己親手分區把系統裝完全之後再下載各種軟體等供日常使用。所以如果你並非web技術人員,而只是想建一個網站並且日後做電商使用,是沒有必要購買VPS來自行搭建環境的,這里的環境是指網站建設和運行所需要的系統配置。所以購買主機空間最佳,然後一鍵安裝wordpress,是多麼容易的事。這里首推bluehost與godaddy的國外空間。
如果你是web技術人員,想要嘗試自行構架環境並做更深層次的技術使用,那麼建議你購買Linode家的VPS,本著負責任的態度,我只推薦自己使用過覺得不錯的,速度快,價格中等,被牆的幾率最小,不行就搬唄,Linode售後是很nice的。當你已經做完VPS的初始配置之後,需要給這台機器配置網站程序需要的運行環境,而wordpress則需要Linux、PHP、Mysql的構架。正因為人們想把事情變的更為簡單,才有了LNMP的誕生。
LNMP一鍵安裝包是什麼?
你將安裝包上傳到VPS中,用命令來執行安裝包,它將自動安裝完所有內容,就類似於一鍵安裝電腦系統的概念,嗯。
中文官方網站:LNMP.org 軍哥的論壇有你出現常見問題的全面解決方案。
安裝包下載
安裝指南
添加虛擬主機 (建站的步驟)
wordpress安裝包
建議仔升新手們本著耐心,積極學習的態度看完lnmp.org中的每一個步驟,並且實際手動的去操作,出現問題從軍哥的交流中找找解決方案。有志者事竟成。
B. 電腦上的LNMP是什麼,它的作用是什麼。
LNMP代表的就是:Linux系統下Nginx+MySQL+PHP這種網站伺服器架構。 Linux是一類Unix計算機操作系統的統稱,是目前最流行的免費操作系統。代表版本有:debian、centos、ubuntu、fedora、gentoo等。[1] Nginx是一個高性能的HTTP和反向代理伺服器,也是一個IMAP/POP3/SMTP代理伺服器。[2] Mysql是一個小型關系型資料庫管理系統。[3] Php是一種 HTML 內嵌式的語滑飢言,念高是一種在伺服器端執行的嵌入HTML文檔的腳本語言信高返。[3][4] 這四種軟體均為免費軟體,組合到一起,成為一個免費、高效的網站服務系統。
C. LAMP和LNMP區別是什麼
LAMP和LNMP區別:
1、定義不同:
lamp:是Web應用軟體組合。
lnmp:指的是一個基於CentOS/Debian編寫的Nginx、PHP、MySQL、phpMyAdmin、eAccelerator一鍵安裝包。
2、作用不同:
lamp:是Linux(操作系統)、ApacheHTTP 伺服器。一般用來建立喊猜web應用平台。
lnmp:是用來在Linux系統下Nginx+MySQL+PHP這種網站中搭建伺服器架譽瞎構。
3、用戶評價不同:
lamp:LAMP是最強大的鄭虛型網站解決方案。
lnmp:lnmp搭建的Linux系統,是目前最流行的免費操作系統。
4、軟體組件不同:
lamp:Linux、Apache、MySQL、PHP,Perl 或 Python。
lnmp:Nginx、MySQL、PHP、PHPMyAdmin、Apache(可選)、Zend Optimizer(可選)、eAccelerator(可選)、ionCube(可選)、PureFTPd(可選)、VsFTPd(可選)。
5、適用環境不同:
lamp:
系統支持:CentOS-5 (32bit/64bit)、CentOS-6 (32bit/64bit)等linux系統
內存要求:≥256M
lnmp:
CentOS 5.8 32Bit / 64Bit
CentOS 6.2 32Bit / 64Bit
CentOS 6.3 32Bit / 64Bit
D. 如何配置LNMP環境搭建wordpress網站
個人建弊輪春站的辦法很簡單,首先網站伺服器選擇1核2G1M,40G高效雲盤。要准備以下的資料
選擇雲伺服器,租耐例如阿里或者騰訊等
國內伺服器要備案,hk和國外伺服器不用。
建立網站環境,這時候用lnmp環境,速度更快,安裝 wp程序。
安裝桐亮wp過程就很簡單了,按照頁面提示輸入資料庫名、賬號密碼,然後輸入網站title,後台賬號密碼,郵箱,安裝成功就可以了
解析域名到伺服器
WordPress程序選擇的主機配置應該支持php。支持偽靜態。首選Linux系統主機。
E. CentOS 7 用戶怎樣安裝 LNMP
LNMP動態網站部署架悔廳豎構是一套由Linux + Nginx + MySQL + PHP組成的動態網站系統解決方案。LNMP中的字母L是Linux系統的意碧大思,不僅可以是RHEL、CentOS、Fedora,還可以是Debian、Ubuntu等系統。在使用源碼包安裝服務程序之前,首先要讓安裝主機具備編譯程序源碼的環境,他需要具備C語言、C++語言、Perl語言的編譯器,以及各種常見的編譯支持函數庫程序。因此請先配置妥當Yum軟體倉庫,然後把下面列出的這些軟伏李件包都統統安裝上:
[root@linuxprobe ~]# yum install -y apr* autoconf automake bison bzip2 bzip2* compat* cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gd gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libgomp libxml2 libxml2-devel libXpm* libtiff libtiff* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils telnet t1lib t1lib* nasm nasm* wget zlib-devel
Loaded plugins: langpacks, proct-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
………………省略部分安裝過程………………
Installing:
apr x86_64 1.4.8-3.el7 rhel7 103 k
apr-devel x86_64 1.4.8-3.el7 rhel7 188 k
apr-util x86_64 1.5.2-6.el7 rhel7 92 k
apr-util-devel x86_64 1.5.2-6.el7 rhel7 76 k
autoconf noarch 2.69-11.el7 rhel7 701 k
automake noarch 1.13.4-3.el7 rhel7 679 k
bison x86_64 2.7-4.el7 rhel7 578 k
bzip2-devel x86_64 1.0.6-12.el7 rhel7 218 k
compat-dapl x86_64 1:1.2.19-3.el7 rhel7 109 k
compat-db-headers noarch 4.7.25-27.el7 rhel7 48 k
compat-db47 x86_64 4.7.25-27.el7 rhel7 795 k
compat-gcc-44 x86_64 4.4.7-8.el7 rhel7 10 M
compat-gcc-44-c++ x86_64 4.4.7-8.el7 rhel7 6.3 M
compat-glibc x86_64 1:2.12-4.el7 rhel7 1.2 M
compat-glibc-headers x86_64 1:2.12-4.el7 rhel7 452 k
compat-libcap1 x86_64 1.10-7.el7 rhel7 19 k
compat-libf2c-34 x86_64 3.4.6-32.el7 rhel7 155 k
compat-libgfortran-41 x86_64 4.1.2-44.el7 rhel7 142 k
compat-libtiff3 x86_64 3.9.4-11.el7 rhel7 135 k
compat-openldap x86_64 1:2.3.43-5.el7 rhel7 174 k
cpp x86_64 4.8.2-16.el7 rhel7 5.9 M
fontconfig-devel x86_64 2.10.95-7.el7 rhel7 128 k
freetype-devel x86_64 2.4.11-9.el7 rhel7 355 k
gcc x86_64 4.8.2-16.el7 rhel7 16 M
gcc-c++ x86_64 4.8.2-16.el7 rhel7 7.1 M
………………省略部分安裝過程………………
Complete!
[root@linuxprobe ~]# cd /usr/local/src
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/cmake-2.8.11.2.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/Discuz_X3.2_SC_GBK.zip
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/freetype-2.5.3.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/jpegsrc.v9a.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/libgd-2.1.0.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/libmcrypt-2.5.8.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/libpng-1.6.12.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/libvpx-v1.3.0.tar.bz2
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/mysql-5.6.19.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/nginx-1.6.0.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/openssl-1.0.1h.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/php-5.5.14.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/pcre-8.35.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/t1lib-5.1.2.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/tiff-4.0.3.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/yasm-1.2.0.tar.gz
[root@linuxprobe src] # wget https://www.linuxprobe.com/Software/zlib-1.2.8.tar.gz
[root@linuxprobe src]# ls
zlib-1.2.8.tar.gz libmcrypt-2.5.8.tar.gz pcre-8.35.tar.gz
cmake-2.8.11.2.tar.gz libpng-1.6.12.tar.gz php-5.5.14.tar.gz
Discuz_X3.2_SC_GBK.zip libvpx-v1.3.0.tar.bz2 t1lib-5.1.2.tar.gz
freetype-2.5.3.tar.gz mysql-5.6.19.tar.gz tiff-4.0.3.tar.gz
jpegsrc.v9a.tar.gz nginx-1.6.0.tar.gz yasm-1.2.0.tar.gz
libgd-2.1.0.tar.gz openssl-1.0.1h.tar.gz
CMake是Linux系統中一款常用的編譯工具。要想通過源碼包安裝服務程序,就一定要嚴格遵守上面總結的安裝步驟—下載及解壓源碼包文件、編譯源碼包代碼、生成二進制安裝程序、運行二進制的服務程序安裝包。接下來在解壓、編譯各個軟體包源碼程序時,都會生成大量的輸出信息,下文中將其省略,請讀者以實際操作為准。
[root@linuxprobe src]# tar xzvf cmake-2.8.11.2.tar.gz
[root@linuxprobe src]# cd cmake-2.8.11.2/
[root@linuxprobe cmake-2.8.11.2]# ./configure
[root@linuxprobe cmake-2.8.11.2]# make
[root@linuxprobe cmake-2.8.11.2]# make install
20.2.1 配置Mysql服務
[root@linuxprobe cmake-2.8.11.2]# cd ..
[root@linuxprobe src]# useradd mysql -s /sbin/nologin
創建一個用於保存MySQL資料庫程序和資料庫文件的目錄,並把該目錄的所有者和所屬組身份修改為mysql。其中,/usr/local/mysql是用於保存MySQL資料庫服務程序的目錄,/usr/local/mysql/var則是用於保存真實資料庫文件的目錄。
[root@linuxprobe src]# mkdir -p /usr/local/mysql/var
[root@linuxprobe src]# chown -Rf mysql:mysql /usr/local/mysql
接下來解壓、編譯、安裝MySQL資料庫服務程序。在編譯資料庫時使用的是cmake命令,其中,-DCMAKE_INSTALL_PREFIX參數用於定義資料庫服務程序的保存目錄,-DMYSQL_DATADIR參數用於定義真實資料庫文件的目錄,-DSYSCONFDIR則是定義MySQL資料庫配置文件的保存目錄。由於MySQL資料庫服務程序比較大,因此編譯的過程比較漫長,在此期間可以稍微休息一下。
[root@linuxprobe src]# tar xzvf mysql-5.6.19.tar.gz
[root@linuxprobe src]# cd mysql-5.6.19/
[root@linuxprobe mysql-5.6.19]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/var -DSYSCONFDIR=/etc
[root@linuxprobe mysql-5.6.19]# make
[root@linuxprobe mysql-5.6.19]# make install
[root@linuxprobe mysql-5.6.19]# rm -rf /etc/my.cnf
[root@linuxprobe mysql-5.6.19]# cd /usr/local/mysql
[root@linuxprobe mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var
把系統新生成的MySQL資料庫配置文件鏈接到/etc目錄中,然後把程序目錄中的開機程序文件復制到/etc/rc.d/init.d目錄中,以便通過service命令來管理MySQL資料庫服務程序。記得把資料庫腳本文件的許可權修改成755以便於讓用戶有執行該腳本的許可權:
[root@linuxprobe mysql]# ln -s my.cnf /etc/my.cnf
[root@linuxprobe mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@linuxprobe mysql]# chmod 755 /etc/rc.d/init.d/mysqld
編輯剛復制的MySQL資料庫腳本文件,把第46、47行的basedir與datadir參數分別修改為MySQL資料庫程序的保存目錄和真實資料庫的文件內容。
[root@linuxprobe mysql]# vim /etc/rc.d/init.d/mysqld
………………省略部分輸出信息………………
39 #
40 # If you want to affect other MySQL variables, you should make your changes
41 # in the /etc/my.cnf, ~/.my.cnf or other MySQL configuration files.
42
43 # If you change base dir, you must also change datadir. These may get
44 # overwritten by settings in the MySQL configuration files.
45
46 basedir=/usr/local/mysql 47 datadir=/usr/local/mysql/var
48
………………省略部分輸出信息………………
[root@Linuxprobe mysql]# service mysqld start
Starting MySQL. SUCCESS!
[root@linuxprobe mysql]# chkconfig mysqld on
[root@linuxprobe mysql]# vim /etc/profile
………………省略部分輸出信息………………
64
65 for i in /etc/profile.d/*.sh ; do
66 if [ -r "$i" ]; then
67 if [ "${-#*i}" != "$-" ]; then
68 . "$i"
69 else
70 . "$i" >/dev/null
71 fi
72 fi
73 done
74 export PATH=$PATH:/usr/local/mysql/bin
75 unset i
76 unset -f pathmunge
[root@linuxprobe mysql]# source /etc/profile
[root@linuxprobe mysql]# mkdir /var/lib/mysql
受限制,沒辦法全部搬運,可網路 免費電子書 linux就該這么學,第20章,復制文章中的命令來安裝
F. 502 bad gateway怎麼解決
502 Bad Gateway是一種報錯提示,這一錯誤並不意味著上游伺服器已關閉(無響應網關/代理),而是上游伺服器和網關/代理不同意的協議交換數據。
第一種原因:目前lnmp一鍵安裝包比較多的問題就是502 Bad Gateway,大部分情況下原因是在安裝php前,腳本中某些lib包可能沒有安裝上,造成php沒有編譯安裝成功。解決辦法:可以嘗試根據lnmp一鍵安裝包中的腳本手動安裝一下,看看是什麼睜咐棗錯誤導致的。
第二種原因:在php.ini里,eaccelerator配置項一定要放在Zend Optimizer配置之前,否則也可能引起502 Bad Gateway
第三種原因:在安裝好使用過程中出現502問題,一般是因為默認php-cgi進程是5個,可能因為phpcgi進程不夠用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 將其中的max_children值適當增加。
第四種原因:php執行超時,修改/usr/local/php/etc/php.ini 將max_execution_time 改為300。
第五種原因:磁碟空間不足,如mysql日誌佔用大量空間。
第六種原因:查看php-cgi進程是否在運行。
另外的解決辦法:
Nginx 502 Bad Gateway的含義是請求的PHP-CGI已經執行,但是由於某種原因(一般是讀取資源的問題)沒有執行完畢而導致PHP-CGI進程終止,一般來說Nginx 502 Bad Gateway和php-fpm.conf的設置有關。
php-fpm.conf有兩個至關重要的參數,一個是max_children,另一個是request_terminate_timeout,但是這個值不是通用的,而是需要自己計算的。
在安裝好使用過程中出現502問題,一般是因為默認php-cgi進程是5個,可能因為phpcgi進程不夠用而造成502,需要修改/usr/local/php/etc/php-fpm.conf 將其中的max_children值適當增加。
計算的方式如下:如果伺服器性能足夠好,且寬頻資源足夠充足,PHP腳本沒有系循環或BUG的簡態話可以直接將 request_terminate_timeout設置成0s。0s的含義是讓PHP-CGI一直執行下去而沒有悉拆時間限制。如果做不到這一點,也就 是說PHP-CGI可能出現某個BUG,或者寬頻不夠充足或者其他的原因導致PHP-CGI假死那麼就建議給 request_terminate_timeout賦一個值,這個值可以根據伺服器的性能進行設定。一般來說性能越好可以設置越高,20分鍾-30分 鍾都可以。
而max_children這個值又是怎麼計算出來的呢?這個值原則上是越大越好,php-cgi的進程多了就會處理的很快,排隊的請求就會很少。 設置max_children也需要根據伺服器的性能進行設定,一般來說一台伺服器正常情況下每一個php-cgi所耗費的內存在20M左右。
按照官方的答案,排查了相關的可能,並結合了網友的答案,得出了下面的解決辦法:
1、查看php fastcgi的進程數(max_children值)代碼:netstat -anpo | grep 「php-cgi」 | wc -l
5(假如顯示5)
2、查看當前進程,代碼:top觀察fastcgi進程數,假如使用的進程數等於或高於5個,說明需要增加(根據機器實際狀況而定)
3、調整/usr/local/php/etc/php-fpm.conf 的相關設置
<value name=」max_children」>10</value>
<value name=」request_terminate_timeout」>60s</value>
max_children最多10個進程,按照每個進程20MB內存,最多200MB。
request_terminate_timeout執行的時間為60秒,也就是1分鍾。