本文首發於爛泥行天下php
如今公司使用的都是ubuntu系統,這幾天因爲個別項目須要,須要搭建一個LNMP環境。爲了快速搭建這個環境,我使用是apt-get方式進行安裝。具體的操做步驟,看下面的文章。html
PS:按照在centos系統下nginx與php-fpm集成是行不通的,由於按照centos下配置的話,nginx訪問的主頁是空白的。mysql
1、安裝nginxnginx
咱們首先來安裝nginx,使用以下命令:sql
sudo apt-get -y install nginx數據庫
nginx安裝完畢後,咱們來查看nginx都安裝了什麼文件。使用以下命令進行查看,以下:ubuntu
dpkg -S nginxcentos
經過上圖,咱們能夠看出nginx默認的安裝位置是/etc/nginx目錄,並且nginx的配置文件nginx.conf也是在該目錄下。服務器
除此以外,nginx的默認網站目錄在/usr/share/nginx/html下,默認nginx網站配置文件爲/etc/nginx/sites-available/目錄下的default文件。dom
如今咱們來啓動nginx,可使用以下命令:
sudo /etc/init.d/nginx start
sudo service nginx start
以上兩條命令均可以啓動nginx,我我的比較傾向於使用第一條命令,由於這個是直接經過nginx的啓動腳原本啓動的。
netstat –tunlp
sudo lsof -i :80
經過網頁進行訪問看看實際效果,以下:
或者經過curl命令進行訪問,以下:
curl http://192.168.1.9
2、安裝php與php-fpm
nginx安裝完畢後,咱們如今來安裝php與php-fpm,使用以下命令,以下:
sudo apt-get -y install php5 php5-fpm php5-cli
查看php版本,以下:
php5 -v
3、nginx與php-fpm集成
nginx與php安裝完畢後,咱們如今開始把nginx與php集成。其實nginx與php集成是經過fastcgi來實現,而fastcgi咱們通常使用的是php-fpm。
php-fpm與nginx通訊方式有兩種,一種是TCP方式,一種是unix socket方式。
TCP方式就是使用TCP端口鏈接,通常是127.0.0.1:9000。
Socket是使用unix domain socket鏈接套接字/dev/shm/php-cgi.sock(不少教程使用路徑/tmp,而路徑/dev/shm是個tmpfs,速度比磁盤快得多),在服務器壓力不大的狀況下,tcp和socket差異不大,可是在壓力比較滿的時候,使用套接字方式,效果確實比較好。
3.1 TCP方式
先來修改nginx的默認網站文件default,以下:
sudo vi /etc/nginx/sites-available/default
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params; }
如今來修改nginx的fastcgi_params文件,添加以下命令。
注意:這個命令必定要添加,不然nginx與php集成後,網頁會顯示空白。
sudo vi /etc/nginx/fastcgi_params
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
修改nginx的默認主頁,以下:
sudo vi /usr/share/nginx/html/index.php
<?php phpinfo(); ?>
如今咱們再來修改php的配置文件php.ini,以下:
sudo vi /etc/php5/fpm/php.ini +758
除此以外,咱們還須要修改php-fpm的配置文件www.conf,以下:
sudo vi /etc/php5/fpm/pool.d/www.conf
listen = 127.0.0.1:9000
以上修改完畢後,咱們如今來重啓nginx與php-fpm,以下:
sudo /etc/init.d/nginx restart
sudo /etc/init.d/php5-fpm restart
如今咱們來訪問nginx,以下:
http://192.168.1.9/index.php
如今來查看系統的端口,以下:
netstat -tunlp
以上就是php-fpm與nginx的TCP通訊方式。
3.2 socket方式
修改nginx的默認網站文件default,以下:
sudo vi /etc/nginx/sites-available/default
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params; }
如今再來修改php-fpm的配置文件www.conf,以下:
sudo vi /etc/php5/fpm/pool.d/www.conf
listen = /var/run/php5-fpm.sock
其餘的修改和TCP方式鏈接的是同樣的,如今咱們再來重啓nginx與php-fpm。以下:
sudo /etc/init.d/nginx restart
sudo /etc/init.d/php5-fpm restart
如今咱們再來看看,php-fpm是否佔用系統端口。以下:
能夠看到此時php-fpm並無佔用系統端口。
4、安裝mysql
如今來開始安裝mysql,以下:
sudo apt-get –y install mysql-server mysql-client php5-mysql
mysql安裝完畢後,咱們如今來使用php鏈接mysql。建立ilanni.php文件,內容以下:
sudo vi /usr/share/nginx/html/ilanni.php
<?php
$host='127.0.0.1';
$root='root';
$pwd='123456';
$con= mysql_connect($host,$root,$pwd);
if ( $con == false ) {
echo "connect false";
} else{
echo "connect true";
}
?>
如今來經過php來訪問mysql,以下:
經過上圖,咱們能夠看到php已經正常鏈接mysql數據庫,這也說明mysql也已經安裝成功。