2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > LNMP之PHP服务的安装(FastCGI方式)

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

时间:2018-10-09 21:17:45

相关推荐

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 phpcd 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#预编译可以指定很多参数,这里我就指定一些其他参数,生产中根据实际情况来指定参数,预编译过程中出现报错一般是缺少依赖包,根据错误提示安装对#的依赖包即可;makemake 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@iflytek 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└── run34 directories, 20 files

启动PHP服务php-fpm

#先启动nginx和mysql服务[root@web02 ~]# nginx[root@web02 ~]# service mysql.server startStarting MySQL.. SUCCESS![root@web02 ~]##添加PHP环境变量vim /etc/profilePHP_DIR=/usr/local/php/sbinPATH=$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 wwwnginx 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 NAMEphp-fpm 3064 root 9u IPv4 312890t0 TCP localhost:cslistener (LISTEN)php-fpm 3065 nginx 5u IPv4 312890t0 TCP localhost:cslistener (LISTEN)php-fpm 3066 nginx 5u IPv4 312890t0 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文件并添加以下几句内容<?phpphpinfo();?>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文件了。安装完成。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。