1. 程式人生 > >LNMP環境配置

LNMP環境配置

php版本 註意 inux system x86 安裝 ima sel 安裝軟件

一 準備軟件包
L:LIinux操作系統
N:Nginx服務器
M:Mariadb(mysql)數據庫
P:Php(本次以php為講解),Python,Perl

1,服務器
nginx
2,數據庫
mariadb,mariadb-server,mariadb-devel
mariadb(數據庫客戶端軟件)、mariadb-server(數據庫服務器軟件)、mariadb-devel(其他客戶端軟件的依賴包)
3,php
php(解釋器),php-fpm(進程管理服務),php-mysql(php的數據庫擴展包)

二 安裝軟件
1,nginx
#yum -y install gcc openssl-devel pcre-devel zlib-devel

gcc:c語言解釋器
openssl:讓nginx支持ssl協議,即可以搭建安全web(https)
pcre-devel:nginx支持正則
zlib-devel:nginx支持壓縮

#useradd -s /sbin/nologin nginx #出於安全,為nginx創建用戶
#tar -xf nginx-1.12.2.tar.gz -C ./ #減壓到當前目錄
#cd /nginx-1.12.2
.#/configure --prefix=/usr/local/nginx \

--user=nginx \
--user=nginx \
--with-http_ssl_module

#make && make install
#ln -s /usr/local/nginx /sbin/ #做個軟鏈接,方便啟動

2,mariadb
#yum -y install mariadb mariadb-server mariadb-devel

3,php
#yum -y install php php-mysql
#rpm -ivh php-fpm-5.4.16-42.el7.x86_64.rpm #這個軟件要自己取下載

二 啟動服務檢測是否安全成功
1,nginx
#nginx #啟動

#nginx -s stop #關閉
#nginx -s reload #重新讀取nginx配置文件
#netstat -utnlp | grep :80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 32428/nginx

2,mariadb
#systemctl start mariadb #啟動服務
#systemctl status mariadb      #查看服務狀態
#systemctl enable mariadb      #設置服務開機啟動
[root@proxy ~]# netstat -tunlp | grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 3115/mysqld

3,php
systemctl start php-fpm       #啟動服務
systemctl status php-fpm      #查看服務狀態
systemctl enable php-fpm       #設置服務開機啟動
[root@proxy ~]# netstat -tunlp | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 5577/php-fpm: maste

4,註意事項
為了確保本次實驗做得容易,建議關閉防火墻和SELinux
#firewall-cmd --set-default-zone=trusted     #設置防火墻為trusted
#setenforce 0                #設置SELinux為Permissive

三 配置LNMP平臺

1,nginx配置
#vim /usr/local/nginx/conf/nginx.conf #修改如下配置
location / {
root html;
index index.php index.html index.htm;
#設置默認首頁為index.php,當用戶在瀏覽器地址欄中只寫域名或IP,不說訪問什麽頁面時,服務器會把默認首頁index.php返回給用戶
}
location ~ .php$ {       #~:正則匹配根目錄下.php結尾的 .轉義
root html;
fastcgi_pass 127.0.0.1:9000; #將請求轉發給本機9000端口,PHP解釋器
fastcgi_index index.php;
include fastcgi.conf; #註意這一行不要寫錯,把主配置文件的改成這個,不然不成功,特提示
}
[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload
#請先確保nginx是啟動狀態,否則運行該命令會報錯,報錯信息如下:
#[error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

2,mysql配置
提示:mysql配置可以不用做,我只是分享一下mysql一些知識
#mysqladmin -uroot password ‘123456‘ #第一次安裝成功修改mysql密碼為123456
#mysql -uroot -p123456 #登錄mariadb數據庫

show databases; #查看有多少數據庫
select user,host,password from user where password=‘‘ ; #查看user表中密碼為空的字段
delete from user where password=‘‘ #為了安全刪除免密碼登錄的用戶

3,php-fpm配置
[root@proxy etc]# vim /etc/php-fpm.d/www.conf #本次搭建不需要修改,只是想分享一下字段的意思
[www]
listen = 127.0.0.1:9000 //PHP端口號
pm.max_children = 32 //最大進程數量
pm.start_servers = 15 //最小進程數量
pm.min_spare_servers = 5 //最少需要幾個空閑著的進程
pm.max_spare_servers = 32 //最多允許幾個進程處於空閑狀態

四 測試
1,編寫測試用例
#vim /usr/local/nginx/test.php #測試php是否能正常解釋php代碼
<?php
print phpinfo(); #輸出php版本信息等
?>

#vim /usr/local/nginx/mysql.php #測試是否能連接數據庫
<?php
$mysqli = new mysqli(‘localhost‘,‘root‘,‘123456‘,‘mysql‘);
//註意:root為mysql賬戶名稱,密碼需要修改為實際mysql密碼,無密碼則留空即可
if (mysqli_connect_errno()){
die(‘Unable to connect!‘). mysqli_connect_error();
}
$sql = "select * from user";
$result = $mysqli->query($sql);
while($row = $result->fetch_array()){ #輸出mysql用戶host,name
printf("Host:%s",$row[0]);
printf("</br>");
printf("Name:%s",$row[1]);
printf("</br>");
}
?>

2,瀏覽器測試
# firefox http://192.168.4.5/test.php #本機的ip ,這個具體情況具體而定,寫的是你計算機服務器的地址

技術分享圖片

# firefox http://192.168.4.5/mysql.php
技術分享圖片

五 總結
  如果你測試都通過了,恭喜你已經搭建成功了,想了解更多的nginx詳細配置和功能的可以去看下我相應的其他文章,web安全等.

LNMP環境配置