摘要:提示如果你真打算采用這種編譯安裝的話,請(qǐng)至少安排半天時(shí)間來(lái)完成。在安裝完成后可以再設(shè)置小點(diǎn)內(nèi)存跑安裝的時(shí)候請(qǐng)按順序安裝。
我們?yōu)槭裁床捎肔NMP這種架構(gòu)?
采用Linux、PHP、MySQL的優(yōu)點(diǎn)我們不必多說。
Nginx是一個(gè)小巧而高效的Linux下的Web服務(wù)器軟件,是由 Igor Sysoev 為俄羅斯訪問量第二的 Rambler.ru 站點(diǎn)開發(fā)的,已經(jīng)在一些俄羅斯的大型網(wǎng)站上運(yùn)行多年,目前很多國(guó)內(nèi)外的門戶網(wǎng)站、行業(yè)網(wǎng)站也都在是使用Nginx,相當(dāng)?shù)姆€(wěn)定。
Nginx相當(dāng)?shù)姆€(wěn)定、功能豐富、安裝配置簡(jiǎn)單、低系統(tǒng)資源……
Linux采用的是centos,軟件包統(tǒng)一放在/usr/local/src目錄下.由于 centos源比較老,而且更新起來(lái)也比較慢,此處建議你換成163源。提示:如果你真打算采用這種編譯安裝php的話,請(qǐng)至少安排半天時(shí)間來(lái)完成。如果是在虛擬機(jī)里測(cè)試的話,建議調(diào)大內(nèi)存以讓時(shí)間更短,我本機(jī)給了虛擬機(jī)2G內(nèi)存。在安裝完成后可以再設(shè)置小點(diǎn)內(nèi)存跑.安裝的時(shí)候請(qǐng)按順序安裝。
更改yum源
更換到163源 cd /etc/yum.repos.d/wget http://mirrors.163.com/.help/CentOS6-Base-163.repo mv CentOS-Base.repo CentOS-Base.repo.bak mv CentOS6-Base-163.repo CentOS-Base.repo先更新一下
yum clean all
yum makecache
yum update(這步比較慢,建議先不要運(yùn)行)
準(zhǔn)備lnmp安裝環(huán)境
先采用yum包安裝一些依賴的東西
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers make cmake libtool* git tree
下載一些軟件都放在/usr/local/src下
使用wget命令下載即可
附上軟件包地址(軟件包都是我一個(gè)一個(gè)在網(wǎng)上找的,可能軟件包下載地址會(huì)失效,你可以給我發(fā)郵件或者你百度搜一個(gè))
所需要的軟件包:
mhash-0.9.9.9
http://jaist.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz
mcrypt-2.6.8
http://jaist.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz
ncurses
http://down1.chinaunix.net/distfiles/ncurses-5.9.tar.gz
pcre-8.31.tar.bz2
http://exim.mirror.fr/pcre/pcre-8.31.tar.bz2
zlib-1.2.8.tar.gz
http://iweb.dl.sourceforge.net/project/libpng/zlib/1.2.8/zlib-1.2.8.tar.gz
freetype-2.3.5.tar.bz2
http://down1.chinaunix.net/distfiles/freetype-2.3.5.tar.bz2
openssl-1.0.1c.tar.gz
http://down1.chinaunix.net/distfiles/openssl-1.0.1c.tar.gz
php-5.5.29.tar.bz2
http://cn2.php.net/distributions/php-5.5.29.tar.bz2
安裝libiconv
cd /usr/local/src wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz tar zxvf libiconv-1.14.tar.gz cd libiconv-1.14/ ./configure --prefix=/usr/local make && make install
在我make && make install的時(shí)候出現(xiàn)錯(cuò)誤了error: ‘gets’ undeclared here (not in a function)。如果你不要遇到遇到,如果遇到請(qǐng)做如下修改:(國(guó)外的這文章記錄了http://www.itkb.ro/kb/linux/patch-libiconv-pentru-glibc-216)
cd libiconv-1.14/srclib
編輯stdio.in.h文件,搜索這句話
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
把這句刪除換成如下幾句
#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16) _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); #endif
然后
cd .. make && make install
下載并安裝libmcrypt
cd /usr/local/src wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz tar -zxvf libmcrypt-2.5.7.tar.gz cd libmcrypt-2.5.7 ./configure make make install cd libltdl/ ./configure --enable-ltdl-install make make install
安裝mbash
cd /usr/local/src tar -jxvf mhash-0.9.9.9.tar.bz2 cd mhash-0.9.9.9 ./configure make make install
下載并安裝mcript
cd /usr/local/src tar zxvf mcrypt-2.6.8.tar.gz cd mcrypt-2.6.8/注意一下這步運(yùn)行下,不然下面可能報(bào)錯(cuò)
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
./configure make make install ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4 ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8 ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2 ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1 ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config
安裝mysql(mysql5.6.13)
先檢查一下mysql是否已經(jīng)存在了,如果存在就刪除mysql
rpm -qa | grep mysql
我的顯示如下(如果沒有任何顯示就表示沒有mysql呢)mysql-libs-5.1.73-3.el6_5.i686
如果存在就卸載mysqlrpm -e mysql-libs-5.1.73-3.el6_5.i686 --nodeps
此時(shí)再運(yùn)行rpm -qa | grep mysql
發(fā)現(xiàn)沒有任何顯示添加一個(gè)mysql用戶(nologin用戶并且沒有家目錄)
useradd -M -s /sbin/nologin mysql
初次編譯mysql的時(shí)候時(shí)間比較長(zhǎng),請(qǐng)耐心等待吧
cd /usr/local/src tar -zxf mysql-5.6.13.tar.gz cd mysql-5.6.13注意下面是cmake .注意點(diǎn)
cmake . make && make install復(fù)制mysql配置文件
cp support-files/my-default.cnf /etc/my.cnf創(chuàng)建系統(tǒng)數(shù)據(jù)庫(kù)表
cd /usr/local/mysql scripts/mysql_install_db --user=mysql更改權(quán)限
cd /usr/local/mysql chown -R root:mysql . chown -R mysql:mysql data把mysql添加到系統(tǒng)服務(wù)中去
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
啟動(dòng)mysql啟動(dòng)的時(shí)候,一直不動(dòng)的話按下enter.,就行了/usr/local/mysql/bin/mysqld_safe --user=mysql &
查看mysql是否啟動(dòng)netstat -tunpl | grep 3306
或者pstree,看到有mysqld進(jìn)程也行 修改mysql密碼/usr/local/mysql/bin/mysqladmin -u root password "xxxxx"
進(jìn)入mysql中刪除空密碼和匿名用戶/usr/local/mysql/bin/mysql -u root -p select host,user,password from mysql.user; delete from mysql.user where password="" or user=""; flush privileges;也可以在mysql修改用戶密碼(只是說明一下)
set password form "root"@"localhost" = password("123456");
關(guān)閉mysql的時(shí)候可以使用/usr/local/mysql/bin/mysqladmin -u root -p shutdown
把mysql添加到開機(jī)啟動(dòng)vim /etc/rc.local
在最后再加一行/usr/local/mysql/bin/mysqld_safe --user=mysql &
最后做一個(gè)軟鏈接方便使用mysqlln -s /usr/local/mysql/bin/mysql /usr/bin/
nginx安裝
nginx安裝前編譯安裝pcre zlib openssl[openssl安裝用./config]
pcre安裝
cd /usr/local/src tar -jxf pcre-8.31.tar.bz2 cd pcre-8.31 ./configure make && make install
zlib安裝
cd /usr/local/src tar -zxf zlib-1.2.8.tar.gz cd zlib-1.2.8 ./configure make && make install
openssl安裝
cd /usr/local/src tar -zxf openssl-1.0.1c.tar.gz cd openssl-1.0.1c ./config make && make install
安裝Nginx
cd /usr/local/src useradd -M -s /sbin/nologin nginx解壓Nginx
tar -zxf nginx-2.0.1.tar.gz cd tengine-2.0.1注意的是with-pcre這些都指向/usr/local/src這種目錄
./configure --with-pcre=/usr/local/src/pcre-8.31 --with-http_ssl_module --with-zlib=/usr/local/src/zlib-1.2.8 --with-openssl=/usr/local/src/openssl-1.0.1c
make && make install
做軟鏈接方便nginx啟動(dòng)ln -s /usr/local/nginx/sbin/nginx /usr/bin/
修改nginx配置文件vim /usr/local/nginx/conf/nginx.conf
把#user nobody 改成 user nginx;
nginx -t啟動(dòng)nginx
nginx說一下nginx啟動(dòng)的一些事情 一般來(lái)說在nginx的配置文件修改后進(jìn)行如下操作,nginx -t檢測(cè)一下配置文件是否正確,如果正確的話 再使用nginx -s reload 使nginx平滑啟動(dòng) 把nginx添加到開機(jī)啟動(dòng)
vim /etc/rc.local
在最后新加一行/usr/local/nginx/sbin/nginx
查看nginx是否啟動(dòng)netstat -tunpl | grep 80
pstree 看下有沒有nginx就行了
安裝php
cd /usr/local/src useradd -M -s /sbin/nologin php tar -jxf php-5.5.12.tar.bz2 cd php-5.5.12
./configure --enable-opcache --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring=all --with-pdo-mysql --enable-sockets --enable-mbstring --enable-fpm --with-curl --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --enable-xml --with-gd --with-mcrypt --with-libxml-dir=/usr --enable-xml --with-openssl --with-iconv=/usr/local/iconv
make ZEND_EXTRA_LIBS="-liconv" make install
cp php.ini-development /usr/local/php/etc/php.ini配置php-fpm
cd /usr/local/php/etc cp php-fpm.conf.default php-fpm.conf vim php-fpm.conf
將
`user = nobody
group = nobody`
改為
`user = php
group = php`
/usr/local/php/sbin/php-fpm
把php-fpm添加到開機(jī)啟動(dòng)vim /etc/rc.local
最后一行加上/usr/local/php/sbin/php-fpm
修改nginx配置文件使之支持php
vim /usr/local/nginx/conf/nginx.conf #location ~ .php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; # include fastcgi_params; #}
修改為
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; }也順便把gzip給開啟下吧
gzip on前面的#去掉
修改完配置之后
nginx -s reload
ok,現(xiàn)在來(lái)測(cè)試一下環(huán)境
cd /usr/local/nginx cd html vim test.php
寫上
然后訪問一下localhost/test.php,正常的話,就一切正常了
如果出問題的話,請(qǐng)看nginx有沒有啟動(dòng),php-fpm有沒有啟動(dòng)
注明幾個(gè)問題如果修改php配置文件的時(shí)候,需要重啟php-fpm就可以了
先關(guān)閉php-fpmpkill php-fpm
然后運(yùn)行/usr/local/php/sbin/php-fpm
就可以了可以看到php-fpm就啟動(dòng)了pstree可以看到這個(gè)進(jìn)程pstree
為了更方便的使用php和php-fpm,我做了兩個(gè)鏈鏈接
ln -s /usr/local/php/sbin/php-fpm /usr/bin/
ln -s /usr/local/php/bin/php /usr/bin/nmp安裝就徹底完成了,有什么問題可以聯(lián)系我QQ1017109588 [這里沒沒講到如何優(yōu)化一些配置的問題,以后可以會(huì)寫文章分析]
在些也特別說明一下nginx如何支持path_info這種形式。配置文件中可以這樣寫。當(dāng)然可能對(duì)你不需要
location ~ ^(.+.php)(.*)$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^(.+.php)(.*)$; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; include fastcgi_params; }LNMP環(huán)境搭建完成 你還可以裝一些擴(kuò)展 例如memcache redisd等
總結(jié)總結(jié):編譯安裝的過程中 操作系統(tǒng)環(huán)境不同 軟件包依賴 可能會(huì)出現(xiàn)一些報(bào)錯(cuò)
遇到報(bào)錯(cuò)不要慌張 可以去Google一下 大部分的問題都可以解決
還可以在文章下面評(píng)論 貼上你的報(bào)錯(cuò)信息 博主可以幫你看看哦
原文地址https://wujunze.com/lnmp_compile_install.jsp轉(zhuǎn)載請(qǐng)保留原文鏈接
參考
Nginx官方文檔
MySQL官方文檔
PHP官方文檔
等技術(shù)文檔
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30345.html
摘要:目前,我們看到的老蔣采用的部署的環(huán)境,在鏡像中配置,于是我們會(huì)稱作為。有沒有一件傻瓜式安裝工具腳本呢這里老蔣要推薦的來(lái)自國(guó)內(nèi)比較老牌且一直更新維護(hù)的一鍵安裝包,我們可以較為直觀且無(wú)人值守的安裝需要的網(wǎng)站服務(wù)器環(huán)境。如今我們建站較多的還是會(huì)選擇VPS云服務(wù)器,很少會(huì)去選擇虛擬主機(jī),固然前者有很多的優(yōu)點(diǎn)。不過相比虛擬主機(jī)不同的是,VPS云服務(wù)器需要我們自己配置WEB環(huán)境,而且我們較多的還是會(huì)選擇...
摘要:需要注意的是按照上的編譯方式,第一次可以安裝成功,卸載后第二次安裝就為提示沒有找到對(duì)應(yīng)的路徑錯(cuò)誤。要保證和配置的用戶名和用戶組是統(tǒng)一的。 帶圖片博文鏈接 為了避免每次安裝都要折騰好久,記錄一下編譯安裝的詳細(xì)教程 PHP環(huán)境下載 本文的PHP下載地址: `wget http://cn2.php.net/distributions/php-7.2.0.tar.gz` NGXIN環(huán)境下載 ...
摘要:需要注意的是按照上的編譯方式,第一次可以安裝成功,卸載后第二次安裝就為提示沒有找到對(duì)應(yīng)的路徑錯(cuò)誤。要保證和配置的用戶名和用戶組是統(tǒng)一的。 帶圖片博文鏈接 為了避免每次安裝都要折騰好久,記錄一下編譯安裝的詳細(xì)教程 PHP環(huán)境下載 本文的PHP下載地址: `wget http://cn2.php.net/distributions/php-7.2.0.tar.gz` NGXIN環(huán)境下載 ...
摘要:第一個(gè)人記憶中這款工具至今估計(jì)有十年左右時(shí)間當(dāng)初也是個(gè)人站長(zhǎng)為方便自己使用環(huán)境配置開發(fā)的。第二一鍵腳本也是由于個(gè)人站長(zhǎng)提供的,經(jīng)過幾年的改善目前也是比較完善。 早年我們?nèi)绻贚inux服務(wù)器配置網(wǎng)站環(huán)境的時(shí)候一般如何操作的?安裝cPanel面板?這個(gè)是要花錢的,記憶中好像每個(gè)月需要十多美元,對(duì)于普通的個(gè)人站長(zhǎng)用戶來(lái)說確實(shí)是不小的費(fèi)用。即便我們用破解版也不行,因?yàn)檫@個(gè)牽扯到安全問題。那我...
閱讀 2804·2021-09-01 10:30
閱讀 1691·2019-08-30 15:52
閱讀 983·2019-08-29 18:40
閱讀 1139·2019-08-28 18:30
閱讀 2407·2019-08-23 17:19
閱讀 1335·2019-08-23 16:25
閱讀 2715·2019-08-23 16:18
閱讀 2992·2019-08-23 13:53