LNMP之PHP服务的安装(FastCGI方式)

前言

环境:Centos7.9 php-7.4.16.tar.gz
nginx的安装和mysql的安装这里就不说了,需要了解nginx和mysql的安装,请看本人另外两篇《Linux下安装mysql(yum、二进制包、源码包)》、《nginx的安装及配置文件详解》,本文就默认你已经安装好nginx和mysql了,这里就直接开讲PHP的安装。

PHP的安装

PHP程序在开发及运行的时候大多会调用一些函数库,虽然这些函数库不是必须安装的,但在生产环境中一般都需要安装,同时也避免PHP程序在运行时出现问题,所以建议安装下面的这些依赖:

yum -y install sqlite-devel zlib zlib-devel libxmi2 libxmi2-devel libjpeg libjpeg-devel  libjpeg-turbo libjpeg-turbo-devel  libiconv libiconv-devel

#注意:如果发现yum源里没有个别包,安装不了,则自行网上下载tar包源码编译安装吧;

tar -xvzf php-7.4.16.tar.gz -C /usr/local/
cd /usr/local/
mkdir php
cd php-7.4.16
./configure \
--prefix=/usr/local/php \					#php的安装路径
--with-mysql=/usr/local/mysql \				#这一句指定mysql的路径
--with-iconv-dir=/usr/local/libiconv \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir \
--enable-xml \
--disable-rpath \
--enable-safe-mode \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--with-curlwrappers \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--enable-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with--openssh \
--with-mhash \
--enable--pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--enable-short-tags \
--enable-zend-multibyte \
--enable-static \
--with-xsl \
--with-fpm-user=nginx \							#指定运行fpm进程的用户,当然你也可以创建一个php用户
--with-fpm-group=nginx \						#指定运行fpm进程的用户组
--enable-ftp

#预编译可以指定很多参数,这里我就指定一些其他参数,生产中根据实际情况来指定参数,预编译过程中出现报错一般是缺少依赖包,根据错误提示安装对
#的依赖包即可;

make	
make install 

配置文件

cp /usr/local/php-7.4.16/php.ini-production /usr/local/php/lib/php.ini  					#复制解压缩包配置文件到安装目录
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf					#把配置文件复制一份
cp /usr/local/php/etc/php-fpm.d/www.conf.default  /usr/local/php/etc/php-fpm.d/www.conf  	#把配置文件复制一份

配置文件这里先不说,暂时使用默认配置即可;

php安装目录文件

[root@master php]# tree -L 3  /usr/local/php/				#查看php的安装目录都有哪些文件
/usr/local/php/
├── bin														#php相关命令目录
│   ├── pear
│   ├── peardev
│   ├── pecl
│   ├── phar -> phar.phar
│   ├── phar.phar
│   ├── php													#php命令,运行该命令可以直接解析php文件,如./php index.php
│   ├── php-cgi
│   ├── php-config
│   ├── phpdbg
│   └── phpize												#源码编译扩展时用到该命令
├── etc														#配置文件目录
│   ├── pear.conf
│   ├── php-fpm.conf										#php-fpm进程配置文件
│   ├── php-fpm.d
│   │   └── www.conf
│   └── php.ini
├── include													#php默认类库
│   └── php
│       ├── ext
│       ├── include
│       ├── main
│       ├── sapi
│       ├── TSRM
│       └── Zend
├── lib														#php第三方扩展类库
│   └── php
│       ├── Archive
│       ├── build
│       ├── Console
│       ├── data
│       ├── doc
│       ├── extensions
│       ├── OS
│       ├── PEAR
│       ├── pearcmd.php
│       ├── PEAR.php
│       ├── peclcmd.php
│       ├── Structures
│       ├── System.php
│       ├── test
│       └── XML
├── php														#man文档存放目录
│   ├── man
│   │   ├── man1
│   │   └── man8
│   └── php
│       └── fpm
├── sbin													#php-fpm可执行文件存放目录
│   └── php-fpm												#php-fpm可执行文件
└── var														#日志文件存放目录
    ├── log
    │   └── php-fpm.log
    └── run

34 directories, 20 files

启动PHP服务php-fpm

#先启动nginx和mysql服务
[root@web02 ~]# nginx
[root@web02 ~]# service mysql.server start
Starting MySQL.. SUCCESS!
[root@web02 ~]#


#添加PHP环境变量
vim /etc/profile
PHP_DIR=/usr/local/php/sbin
PATH=$PATH:$NGINX_DIR:$MYSQL_DIR:$PHP_DIR
[root@web02 ~]# php-fpm				#启动php-fpm
[root@web02 ~]# ps -ef | grep php-fpm | grep -v grep			#进程以及启动
root        3064       1  0 23:47 ?        00:00:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
nginx       3065    3064  0 23:47 ?        00:00:00 php-fpm: pool www
nginx       3066    3064  0 23:47 ?        00:00:00 php-fpm: pool www
[root@web02 ~]# lsof -i :9000			#默认监听9000端口
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
php-fpm 3064  root    9u  IPv4  31289      0t0  TCP localhost:cslistener (LISTEN)
php-fpm 3065 nginx    5u  IPv4  31289      0t0  TCP localhost:cslistener (LISTEN)
php-fpm 3066 nginx    5u  IPv4  31289      0t0  TCP localhost:cslistener (LISTEN)

ps:php-fpm并没有提供停止命令,所以使用pkill php-fp停止即可。

配置nginx支持PHP

mkdir /usr/local/nginx/html/php/		#创建php目录
vim /usr/local/nginx/html/php/index.php			#新建index.php文件并添加以下几句内容
<?php
phpinfo();
?>

vim /usr/local/nginx/conf/nginx.conf		#编辑nginx配置文件,在原来虚拟主机上添加多一个location,内容如下
location ~ \.php$ {
            root           html/php;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;    #  或者 fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include       fastcgi_params;
        }


网页测试:
http://192.168.56.102/php/index.php
在这里插入图片描述
至此,nginx能正确解析php文件了。安装完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值