學習centos之快速搭建LNMP環境

爛泥行天下發表於2016-05-12

以前在centos下安裝軟體都是喜歡原始碼安裝,不過昨天因為一個事情需要一個centos 下的LNMP環境。反倒不會搞了,今天特意記錄下,以備後續使用。

一、安裝nginx

我們先來安裝nginx,如下:

yum -y install nginx

clip_image001

通過上圖,我們可以看到目前的yum源中是沒有nginx軟體包的。我們需要安裝包含nginx的yum源,如下:

rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

clip_image002

檢視剛剛安裝的rpm包,如下:

rpm -ql nginx-release-centos-6-0.el6.ngx.noarch

clip_image003

通過上圖,我們可以很明顯的看出剛剛安裝的rpm包,只是新新增了一個nginx的yum源。檢視該yum源,如下:

cat /etc/yum.repos.d/nginx.repo

clip_image004

或者直接修改yum倉庫,新增以下內容:

  [nginx]
  name=nginx repo
  baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
  gpgcheck=0
  enabled=1

現在我們再來通過yum來安裝nginx,如下:

yum -y install nginx

clip_image005

通過上圖,我們可以很明顯的看出nginx已經安裝。

現在來檢視nginx安裝的位置及其檔案,如下:

rpm -ql nginx

clip_image006

通過上圖,我們可以很明顯的看出nginx預設安裝到/etc/nginx目錄,而nginx的預設網站安裝到/usr/share/nginx/html目錄下。

現在我們來啟動nginx,並訪問nginx。如下:

/etc/init.d/nginx start

curl http://192.168.1.124

clip_image007

clip_image008

檢視nginx執行時使用的使用者,如下:

ps -ef |grep nginx

clip_image009

通過上圖,我們可以很明顯的看出nginx是root使用者啟動,但是nginx執行時使用的是nginx這個使用者。

二、安裝php及php-fpm

安裝php及php-fpm,使用如下命令:

yum -y install php php-fpm

clip_image010

檢視php-fpm安裝的位置及其檔案,如下:

rpm -ql php-fpm

clip_image011

啟動php-fpm,使用如下命令:

/etc/init.d/php-fpm start

ps -ef |grep php-fpm

netstat -tunlp |grep 1355

clip_image012

通過上圖,我們可以看出php-fpm執行時使用apache這個使用者,而且php-fpm監聽的是本機的9000埠。

如果要修改php-fpm執行時的使用者及埠的話,我們可以通過修改php-fpm配置檔案/etc/php-fpm.d/www.conf,如下:

cat /etc/php-fpm.d/www.conf |grep -v ‘^;’|grep -v ^$

clip_image013

三、nginx與php整合

nginx與php整合是通過fastcgi來實現,而fastcgi我們一般使用的是php-fpm。在第二章,我們已經啟動php-fpm,現在我們來修改nginx配置檔案使其支援php。

現在我們修改nginx的預設網站配置檔案default.conf,如下:

cat /etc/nginx/conf.d/default.conf

server {

listen 80;

server_name localhost;

location / {

root /usr/share/nginx/html;

index index.php index.html index.htm;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

location ~ .php$ {

root /usr/share/nginx/html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

}

clip_image014

以上配置完畢後,我們再重啟nginx和php-fpm,如下:

/etc/init.d/nginx restart

/etc/init.d/php-fpm restart

clip_image015

clip_image016

以上是修改nginx的預設網站,現在我們新加一個nginx虛擬主機,並使其支援php,如下:

vi /etc/nginx/conf.d/ilanni.conf

server {

listen 80;

server_name test.ilanni.com;

location / {

root /ilanni;

index index.php index.html index.htm;

}

location ~ .php$ {

root /ilanni;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

}

clip_image017

nginx虛擬主機配置檔案完畢後,現在來建立虛擬主機ilanni的index.php,如下:

mkdir /ilanni

vi /ilanni/index.php

<?php phpinfo(); ?>

clip_image018

修改ilanni目錄的所屬使用者,如下:

chown nginx:nginx -R /ilanni/

ll /ilanni/

clip_image019

如上圖所示,我們現在把ilanni這個目錄修改為nginx執行時使用的使用者nginx。

現在我們再來修改php-fpm執行時的使用者,如下:

vi /etc/php-fpm.d/www.conf

clip_image020

我們來重啟nginx與php-fpm,如下:

/etc/init.d/nginx restart

/etc/init.d/php-fpm restart

clip_image021

clip_image022

通過上圖,我們可以看到nginx的虛擬主機已經可以正確解析php。

四、安裝mysql

安裝MySQL,使用如下命令:

yum -y install mysql mysql-server php-mysql

clip_image023

安裝完畢後,啟動mysql。如下:

/etc/init.d/mysqld start

clip_image024

現在我們在nginx預設網站建立一個mysql.php檔案,用來連線mysql資料庫。mysql.php內容如下:

cat /usr/share/nginx/html/mysql.php

<?php

$host=’localhost’;

$root=’root’;

$pwd=”;

$con= mysql_connect($host,$root,$pwd);

if ( $con == false ) {

echo “connect false”;

} else{

echo “connect true”;

}

?>

clip_image025

重啟nginx、php-fpm、mysql,如下:

/etc/init.d/nginx restart

/etc/init.d/php-fpm restart

/etc/init.d/mysqld restart

clip_image026

現在通過訪問該mysql.php檔案,如下:

http://192.168.1.124/mysql.php

clip_image027

通過上圖,我們可以很明顯的看出php已經解析mysql.php檔案,並且也已經成功的連線mysql資料庫。


相關文章