天天看點

ngnix之lnmp環境搭建及Dvbbs搭建

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