PHP的安裝及Nginx與PHP-FPM整合

操作系統:CentOS Linux release 7.9

實戰任務:安裝PHP、Nginx與PHP-FPM的整合

操作步驟如下:

1.安裝依賴庫

# yum -y install libjpeg libjpeg-devel  libpng libpng-devel freetype freetype-devel  libxml2 libxml2-devel zlib zlib-devel curl curl-devel  openssl openssl-devel 

2.編譯安裝PHP7

[root@Linux tool]# wget -c http://mirrors.sohu.com/php/php-7.2.3.tar.gz

[root@Linux php-7.2.3]# ./configure --prefix=/usr/local/php7 --enable-fpm --with-fpm-user=www --with-fpm-group=www   --with-pdo-mysql=mysqlnd   --with-mysqli=mysqlnd  --with-zlib --with-curl --with-gd  --with-jpeg-dir --with-png-dir --with-freetype-dir  --with-openssl --enable-mbstring --enable-xml --enable-session --enable-ftp --enable-pdo --enable-tokenizer --enable-zip

[root@Linux php-7.2.3]# make -j 8 && make install

[root@Linux php-7.2.3]# cp php.ini-production  /usr/local/php7/lib/php.ini

[root@Linux php-7.2.3]# cp sapi/fpm/php-fpm.service /usr/lib/systemd/system/

3.PHP-FPM配置文件

[root@Linux php7]# cp /usr/local/php7/etc/php-fpm.conf.default  /usr/local/php7/etc/php-fpm.conf

[root@Linux php7]# cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

[root@Linux php-fpm.d]# pwd

/usr/local/php7/etc/php-fpm.d

[root@Linux php-fpm.d]# cat www.conf

user = www

group = www

listen = 127.0.0.1:9000

pm = dynamic

pm.max_children=100

pm.start_servers=20

pm.min_spare_serves=10

pm.max_spare_servers=50

#上面的參數值是錯誤的,先保持默認參數,不能隨意修改,否則導致PHP-FPM服務無法啓動。

[root@Linux /]# cat /usr/lib/systemd/system/php-fpm.service 

[root@Linux /]# systemctl enable php-fpm

[root@Linux /]# systemctl start php-fpm

4.配置Nginx來支持PHP

 location / {

            root   /www/html/;

            index  index.html  index.php;

        }

location ~ \.php$ {

            root         /www/html/;

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME   /www/html$fastcgi_script_name;

            include        fastcgi_params;

        }

#訪問的時候說找不到php文件,將上面的$fastcgi_script_name前加上存放文件的路徑即可。

5.測試服務是否啓動

[root@Linux /]# ps -ef|grep nginx

root      3843     1  0 16:54 ?        00:00:00 nginx: master process ./nginx

nginx     3844  3843  0 16:54 ?        00:00:00 nginx: worker process

nginx     3845  3843  0 16:54 ?        00:00:00 nginx: worker process

nginx     3846  3843  0 16:54 ?        00:00:00 nginx: worker process

root     16097 29641  0 17:08 pts/2    00:00:00 grep --color=auto nginx

root     25925 16795  0 15:21 pts/1    00:00:00 vi nginx.conf

[root@Linux /]# ps -ef|grep php-fpm

root     17669 29641  0 17:09 pts/2    00:00:00 grep --color=auto php-fpm

root     21425     1  0 16:27 ?        00:00:00 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf)

www      21426 21425  0 16:27 ?        00:00:00 php-fpm: pool www

www      21427 21425  0 16:27 ?        00:00:00 php-fpm: pool www

6.測試Nginx對PHP的解析

image.png

7.測試PHP連接MySQL

1)通過MySQLi方式連接MySQL

[root@Linux html]# cat mysqli.php 

<?php

$conn=mysqli_connect('127.0.0.1','root','********','mysql');

if(!$conn){

   die("數據庫連接錯誤".mysqli_connect_error());

  }else{

   echo  "<center><font size='+4'  color='red'>MySQLi數據庫連接成功!</font></center>";

  }

?>

image.png

2)通過pdo-mysql方式連接MySQL

[root@Linux html]# cat pdomysql.php 

<?php

  try{

   $pdo=new pdo('mysql:host=127.0.0.1;dbname=mysql','root','*******');

  }catch(PDDException $e){

  echo  '數據庫連接錯誤';

  }

  echo  "<center><font size='+4' color='red'>pdo-mysql數據庫連接成功!</font></center>"

?>

image.png

8.操作技巧:

# vi /etc/profile

PATH=/usr/local/php7/bin:$PATH

export PATH

#source /etc/profile

[root@Linux /]# php -v

PHP 7.2.3 (cli) (built: Feb  3 2021 14:41:48) ( NTS )

Copyright (c) 1997-2018 The PHP Group

Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

[root@Linux /]# php-fpm -v

PHP 7.2.3 (fpm-fcgi) (built: Feb  3 2021 14:41:49)

Copyright (c) 1997-2018 The PHP Group

Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章