web環境搭建之Linux–nginx-php-mysql

技術小阿哥發表於2017-11-28

環境:Linux CentsOs 6.7 32位

任務:搭建web環境:Linux–nginx-php-mysql


(1)安裝PHP包括一些附加件:

1
yum install php php-mysql php-gd php-imap php-ldap php-mbstring php-odbc php-pear php-xml php-xmlrpc

(2)安裝MySQL客戶端及伺服器:

1
2
3
4
5
6
7
8
9
10
11
yum -y install mysql         #安裝客戶端   可以查詢一下 yum search mysql
 
yum install mysql-server     #安裝伺服器
 
chkconfig --level 345 mysql on     #設定mysql自啟動 可以不要
 
service mysqld start         #開啟mysql服務
 
mysql_secure_installation  #設定mysql使用者根據英文提示完成配置,需要給root使用者設定密碼,
#其他按需要設定,一般是回車到底 第一次使用mysql沒有密碼直接回車,然後會提示給root使用者設定
密碼,然後直接一直回車就OK了。

(3)安裝nginx:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#直接yum安裝需要更新一下yum源,方法及檔案如下:
 
#1.在  /etc/yum.repos.d 資料夾下新建 nginx.repo 檔案
cd /etc/yum.repos.d
vim nginx.repo
 
#新增以下內容 :
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
 
#檢視yum是否完成更新:
 
yum list| grep nginx
 
返回內容(類似即可,版本不同可能會有差異):
nginx.i386                                  1.10.1-1.el6.ngx            @nginx 
nginx-debug.i386                            1.8.0-1.el6.ngx             nginx   
nginx-debuginfo.i386                        1.10.1-1.el6.ngx            nginx   
nginx-module-geoip.i386                     1.10.1-1.el6.ngx            nginx   
nginx-module-image-filter.i386              1.10.1-1.el6.ngx            nginx   
nginx-module-njs.i386                       1.10.1.0.0.20160414.1c50334fbea6-1.el6.ngx
                                                                        nginx   
nginx-module-perl.i386                      1.10.1-1.el6.ngx            nginx   
nginx-module-xslt.i386                      1.10.1-1.el6.ngx            nginx   
nginx-nr-agent.noarch                       2.0.0-9.el6.ngx             nginx   
pcp-pmda-nginx.i686                         3.10.9-6.el6                base
 
#yum源更新完畢,開始安裝nginx
  
yum install -y nginx
 
#安裝完成

(4)安裝  php-fpm  使nginx解釋php(說法不標準):

  這個地方是最重要的地方,因為預設情況下Nginx和PHP他倆之間是一點感覺沒有的。在之前,很多朋友都搭建過Apache+PHP,Apache+PHP編譯後生成的是模組檔案,而Nginx+PHP需要PHP生成可執行檔案才可以,所以要利用fastcgi技術來實現Nginx與PHP的整合,這個只要我們安裝是啟用FastCGI即可。此次我們安裝PHP不僅使用了FastCGI,而且還使用了PHP-FPM這麼一個東東,PHP-FPM說白了是一個管理FastCGI的一個管理器,它作為PHP的外掛存在,在安裝PHP要想使用PHP-FPM時就需要把PHP-FPM以補丁的形式安裝到PHP中,而且PHP要與PHP-FPM版本一致,這是必須的,切記!

1
2
yum install -y php-fpm #有需要的可以先查詢下,yum search php-fpm
                       #可能需要更新解決依賴,yum會搞定...只需要看著安裝完成就可以了

(5)配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
1.配置 ngingx :
 
# nginx 的配置檔案在 /etc/nginx/ 下 和 /etc/nginx/conf.d 
 
(1)/etc/nginx/檔案下的配置檔案是 nginx.conf
 
#該配置檔案不需要配置
 
#nginx.conf配置解釋:http://blog.csdn.net/tjcyjd/article/details/50695922
 
(2) /etc/nginx/conf.d 下的配置檔案 default.conf
    cd /etc/nginx/conf.d
    vim default.conf
 
server {
    listen       80;
    server_name  localhost;
 
    #charset koi8-r;
    #access_log  /var/log/nginx/log/host.access.log  main;
 
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
     #修改為:index  index.html index.htm index.php;
    }
 
    #error_page  404              /404.html;
 
    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
 
    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ .php$ {
    #    proxy_pass   http://127.0.0.1;
    #}
      
    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#nginx 不像Apache 它是將php檔案交給php執行才能正常顯示,通過上句可以它是通過 9000 埠發給PHP的
    #
    location ~ .php$ {
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME   /script$fastcgi_script_name;
       #修改為:fastcgi_param  SCRIPT_FILENAME   /usr/share/nginx/html$fastcgi_script_name;
#/usr/share/nginx/html   為php檔案所在地址
        include        fastcgi_params;
    }
 
    # deny access to .htaccess files, if Apache`s document root
    # concurs with nginx`s one
    #
    #location ~ /.ht {
    #    deny  all;
    #}
}
 
2.配置php-fpm :
 
#配置檔案為: /etc/php-fpm.conf 和 /etc/php-fpm.d/www.conf
 
#因為其預設配置中監聽的埠為 9000 所以不需要修改,可以直接使用


注意:這段程式碼在修改後要把前面的#號註釋刪掉!

   location ~ .php$ {

        root           html;

        fastcgi_pass   127.0.0.1:9000;

        fastcgi_index  index.php;

        fastcgi_param  SCRIPT_FILENAME   /script$fastcgi_script_name;

       #修改為:fastcgi_param  SCRIPT_FILENAME   /usr/share/nginx/html$fastcgi_script_name;

#/usr/share/nginx/html   為php檔案所在地址

        include        fastcgi_params;

    }

(6)測試

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#在 /usr/share/nginx/html 下
#將自帶的 index.html 重新命名或者刪除
cd /usr/share/nginx/html
#重新命名:
mv index.html index.html.bak
#刪除:
rm -f index.html
 
#新建php檔案:
vim index.php
 
<?php
     phpinfo(); 
?>
 
 
#開啟服務:
service nginx restart
service php-fpm restart
 
 
#主機訪問:127.0.0.1

本文轉自 nw01f 51CTO部落格,原文連結:http://blog.51cto.com/dearch/1790382,如需轉載請自行聯絡原作者


相關文章