LNMP環境搭建
引導語:前面我們做過LAMP環境的搭建,而對于後起之秀nginx而言,其性能相對apache提高了很多, 故本實驗借助于nginx來LNMP環境,
環境搭建分三步:mysql綠色包安裝,php源碼包安裝,nginx源碼包安裝
1)首先通過源碼安裝mysql,解壓後,可通過目錄下的INSTALL-BINARY來進行操作;
To install and use a MySQL binary distribution, the basic command
sequence looks like this:
shell> groupadd mysql #建立mysql組
shell> useradd -r -g mysql mysql #建立mysql使用者并使其屬于mysql組
shell> cd /usr/local
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
shell> ln -s full-path-to-mysql-VERSION-OS mysql#建立軟連結,本實驗中直接重名
shell> cd mysql
shell> chown -R mysql . #修改mysql目錄及下所有檔案的使用者為mysql
shell> chgrp -R mysql .#修改mysql目錄及下所有檔案的使用者組為mysql
shell> scripts/mysql_install_db --user=mysql#初始化mysql資料庫
shell> chown -R root .#修改目前目錄下的所有者為root
shell> chown -R mysql data #修改data目錄及其下的所有檔案為的所有者改為mysql
# Next command is optional#下面指令是可選的(本案例省略)
shell> cp support-files/my-medium.cnf /etc/my.cnf#複制并不用編輯該配置檔案,預設情況即可
shell> bin/mysqld_safe --user=mysql &#以mysql使用者啟動mysql
# Next command is optional#下面指令是可選的
shell> cp support-files/mysql.server /etc/init.d/mysql.server
2)如上面語句一樣,先建立mysql使用者與組,并将解壓後的軟體包重命名為mysql,圖中1修改mysql目錄的權限,2是初始化mysql資料庫;
<a href="http://img1.51cto.com/attachment/201210/230947483.jpg" target="_blank"></a>
3)按照INSTALL-BINARY修改權限:chwon -R root . ; chwon -R mysql data;
4)修改好了,看是否能正常啟動mysql服務,發現并不能用service來啟動mysqld服務;
<a href="http://img1.51cto.com/attachment/201210/231028335.jpg" target="_blank"></a>
5)将support-files下mysql.server複制到/etc/init.d/下并命名為mysqld;
[root@centos support-files]# cp mysql.server /etc/init.d/mysqld
6)加載mysql的庫檔案,與頭檔案(1是編輯mysql.conf;2是檢視mysql庫檔案是否正常加載上了)
在mysql.conf檔案中寫入内容:/usr/local/mysql/lib
<a href="http://img1.51cto.com/attachment/201210/231344723.jpg" target="_blank"></a>
7)建立軟連結來包含mysql的頭檔案;
[root@centos include ] # pwd
/usr/include
[root@centos include ] # ln -s /usr/local/mysql/include/ mysql
2.nginx相關包安裝
Ⅰ、安裝libevent
a.首先檢測環境yun grouplist|less
Development Tools
Development Libraries
Legacy Software Development
X Software Development這幾個組包是否安裝
注:對應成中文就是:Development Libraries 開發庫; Development Tools 開發工具;
Legacy Software Development 老的軟體開發; X Software Development X軟體開發;
例:yum groupinstall "Development Libraries",注意一定要加引号。
b.yum install gcc openssl-devel pcre-devel(主要是支援位址重寫) zlib-devel
c.将所需的libevent軟體包解壓到/usr/local/src下,執行 ./configure; make ; make install
d.安裝libevent後,要手動加載libevent庫檔案,
建立/etc/ld.so.conf.d/libevent.conf檔案 在其中加入/usr/local/lib
Ⅱ、安裝nginx
1)首先建立nginx組與使用者
groupadd -r nginx
useradd -r -g nginx -s /bin/false -M nginx
2)将nginx源碼包解壓後,并切換其目錄下執行安裝:
./configure \
--prefix=/usr/local/nginx \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_flv_module \
--with-http_stub_status_module \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/tmp/nginx/client/ \ (此行可以不要)
--http-proxy-temp-path=/var/tmp/nginx/proxy/ \
--http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ \
--with-pcre
make
make install
3)安裝後執行nginx指令會發現如下圖:
<a href="http://blog.51cto.com/attachment/201211/213444155.jpg" target="_blank"></a>
4)建立目錄,再次啟動nginx,用netstat檢視相關端口;
[root@host html]# netstat -utlpn |grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 28071/nginx
5)nginx安裝好後,我們來安裝php的源碼包吧,
3.PHP源碼包安裝
1)将所需源碼包解壓到/usr/loacl/src/,并切換到該目錄,執行安裝:
--prefix=/usr/local/php \
--with-mysql=/usr/local/mysql/ \
--with-zlib --enable-xml --disable-rpath \
--enable-bcmath --with-gd \
--enable-shmop --enable-sysvsem \
--with-curl --with-curlwrappers --enable-fpm\
--with-openssl --with-mhash --enable-sockets \
--with-ldap --with-ldap-sasl --with-xmlrpc -enable-zip --enable-soap \
make
2)複制php的配置檔案
cp php.ini-development /usr/local/php/php.ini保持初始狀态即可
3)複制一份php-fpm的主配置檔案
cd /usr/local/php/
cp -p etc/php-fpm.conf.defaultetc/php-fpm.conf
并做如下修改:
将listen = 127.0.0.1:9000這行注釋掉
listen = /var/run/php-fpm/php-fpm.sock
<a href="http://blog.51cto.com/attachment/201211/214028661.jpg" target="_blank"></a>
4)根據修改項建立php-fpm目錄
[root@server ~]# mkdir /var/run/php-fpm
[root@server ~]# /usr/local/php/sbin/php-fpm //啟動php-fpm
5)修改nginx的配置檔案/etc/nginx/nginx.conf,
6)如下圖編輯nginx主目錄/usr/local/nginx/html/index.php檔案,
<a href="http://blog.51cto.com/attachment/201211/214946843.jpg" target="_blank"></a>
7)在測試機用浏覽器通路,如下圖,說明php與nginx關聯成功,
a.關聯php成功;
<a href="http://blog.51cto.com/attachment/201211/215515461.jpg" target="_blank"></a>
b.可以正常連接配接資料庫;
<a href="http://blog.51cto.com/attachment/201211/215544389.jpg" target="_blank"></a>
既然環境搭好了,那我們就在此基礎上來搭建一下Dvbbs吧,
Dvbbs安裝配置
1.将軟體包解壓後将所需upload目錄上傳到/usr/local/nginx/html/命名為dvbbs
<a href="http://blog.51cto.com/attachment/201211/231723903.jpg" target="_blank"></a>
3.記得修改相關目錄的權限為777,在同意“安裝協定”後,進入資料庫設定,如下圖:
<a href="http://blog.51cto.com/attachment/201211/231737181.jpg" target="_blank"></a>
4.在設定論壇分類、論壇插件後,Dvbbs将開始初始化過程,在初始化完成後即可根據提供的位址通路論壇,
<a href="http://blog.51cto.com/attachment/201211/231807172.jpg" target="_blank"></a>
要注意dvbbs和wordpress各自的存放目錄,本實驗均放在/usr/local/nginx/html/下以各自名命名的目錄下。
實作基于主機頭的虛拟主機
1.在nginx的主配置檔案/etc/nginx/nginx.conf添加如下内容:
<a href="http://blog.51cto.com/attachment/201211/232430185.jpg" target="_blank"></a>
2,重新開機nginx服務,由于沒有配置dns伺服器,修改客戶機的host檔案,添加
192.168.142.2 blog.liuyuan51.com
192.168.142.2 bbs.liuyuan51.com
3,客戶機host檔案修改後,通路如下
<a href="http://blog.51cto.com/attachment/201211/232632117.jpg" target="_blank"></a>
<a href="http://blog.51cto.com/attachment/201211/232452680.jpg" target="_blank"></a>
php編譯安裝時錯誤
1、/usr/local/src/php-5.3.7/sapi/cli/php: error while loading sharedlibraries: libmysqlclient.so.18: cannot open shared object file: No such fileor directory
mysql編譯安裝忘記導入庫檔案了,導入庫就可以解決。
[root@centos ld.so.conf.d]# pwd
/etc/ld.so.conf.d
[root@centos ld.so.conf.d]# cp qt-i386.conf mysql.conf
[root@centos ld.so.conf.d]# cat mysql.conf
/usr/local/mysql/lib
[root@centos ld.so.conf.d]# ldconfig //重新加載動态連結庫
2、Generating phar.phar
chmod: cannot access `ext/phar/phar.phar':No such file or directory
在對php進行configure的時候,隻需要在./configure的後面加上--without-pear 即可.
啟動php-fpm時報錯
[06-Jun-2013 16:42:15] ALERT: [pool www]pm.min_spare_servers(0) must be a positive value
[06-Jun-2013 16:42:15] ERROR: failed topost process the configuration
[06-Jun-2013 16:47:39] WARNING: [pool www]pm.start_servers is not set. It's been set to 20.
配置php-fpm.conf
#vim etc/php-fpm.conf
pm.start_servers = 20
pm.max_spare_servers = 35
pm.min_spare_servers = 5
本文轉自 劉園 51CTO部落格,原文連結:http://blog.51cto.com/colynn/1054394