Linux centos lnmp环境配置nginx1.16+php7.3

安装lnmp环境
nginx:
1.16.1
php:7.3.16

一:安装基础工具:
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

二:安装 Nginx
地址:http://nginx.org/en/download.html
查找需要的版本,这里以1.16.1 为例:
wget https://nginx.org/download/nginx-1.16.1.tar.gz

解压:
tar -zxvf nginx-1.16.1.tar.gz
cd nginx-1.16.1
./configure --prefix=/usr/local/nginx

make
make install

启动nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf (最安全的启动方式)
或者
cd /usr/local/nginx/sbin/
./nginx
./nginx -s stop # 此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。
./nginx -s quit # 此方式停止步骤是待nginx进程处理任务完毕进行停止。
./nginx -s reload #启动

重启Nginx (cd /usr/local/nginx/sbin)
./nginx -s quit
./nginx

设置开机自启动:
即在rc.local增加启动代码就可以了。

vi /etc/rc.local
增加一行 /usr/local/nginx/sbin/nginx
设置执行权限:

chmod 755 rc.local

##安装配置步骤
####1、安装需要的支持包
selinux可能会致使编译安装失败,我们先禁用它。永久禁用,需要重启生效
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
临时禁用,不需要重启 setenforce 0
安装必备工具
yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel libzip

####3、安装PHP环境
安装支持库
gd、freetype、libjpeg前面已经安装好,直接使用就可以了
更新libzip
wget https://nih.at/libzip/libzip-1.2.0.tar.gz

rpm -e libzip --nodeps

tar -xf libzip-1.2.0.tar.gz
cd libzip-1.2.0

./configure
make

make install

安装php
解压php安装包
cd /usr/local
tar -xf php-7.3.16.tar.gz

cd php-7.3.16
开始安装php
./configure --prefix=/usr/local/php --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-config-file-path=/usr/local/php/conf --disable-rpath --enable-soap --with-libxml-dir --with-xmlrpc --with-openssl --with-mhash --with-pcre-regex --with-zlib --enable-bcmath --with-bz2 --enable-calendar --with-curl --enable-exif --with-pcre-dir --enable-ftp --with-gd --with-openssl-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-freetype-dir --enable-gd-jis-conv --with-gettext --with-gmp --with-mhash --enable-mbstring --with-onig --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib-dir --with-readline --enable-shmop --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-libxml-dir --with-xsl --enable-zip --with-pear

配置PHP时出现的提示,报错信息为: configure: error: off_t undefined; check your library configuration 。
解决方案:
(1)输入以下命令,添加搜索路径到配置文件:
echo ‘/usr/local/lib64
/usr/local/lib
/usr/lib
/usr/lib64’>>/etc/ld.so.conf
(2)更新配置
ldconfig -v

重新执行上面的configure

复制zipconf.h文件
cp /usr/local/lib/libzip/include/zipconf.h /usr/local/include/zipconf.h
make
make install

安装完成后配置php-fpm服务

修改fpm配置php-fpm.conf.default文件名称
mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
复制php.ini配置文件
cp php.ini-production /usr/local/php/etc/php.ini
编辑文件php.ini,将cgi.fix_pathinfo = 1前面的“;”去掉
复制php-fpm启动脚本到init.d
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
赋予执行权限
chmod +x /etc/init.d/php-fpm
添加为启动项
chkconfig --add php-fpm
设置开机启动
chkconfig php-fpm on
systemctl enable php-fpm

按照标准,给php-fpm创建一个指定的用户和组
创建群组
groupadd www
创建一个用户,不允许登陆和不创主目录
useradd -s /sbin/nologin -g www -M www
复制拓展配置文件
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
立即启动php-fpm
service php-fpm start
或者
/etc/init.d/php-fpm start

php-fpm优化,注意一个fpm进程大约20M,我这个机器是小内存的虚拟机,因此开启2个就可以。大内存的话,根据情况换算。
vi php-fpm.conf
pm = dynamic
pm.max_children = 20
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 6
request_terminate_timeout = 100

修改nginx
nginx+php的配置比较简单,核心就一句话----
把请求的信息转发给9000端口的PHP进程,
让PHP进程处理 指定目录下的PHP文件.

如下例子:
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME d o c u m e n t r o o t document_root documentrootfastcgi_script_name;
include fastcgi_params;
}

1:碰到php文件,
2: 把根目录定位到 html,
3: 把请求上下文转交给9000端口PHP进程,
4: 并告诉PHP进程,当前的脚本是 $document_root$fastcgi_scriptname


vi /etc/nginx/nginx.conf
index index.php index.html index.htm;
//加入index.php

location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html$fastcgi_script_name;
        include        fastcgi_params;
    }

(注:PHP会去找这个脚本并处理,所以脚本的位置要指对)

配置php
编辑文件php.ini,在文件末尾添加cgi.fix_pathinfo = 1
vi etc/php.ini
重启nginx php-fpm
service nginx restart
service php-fpm restart

建立info.php文件
vi /usr/share/nginx/html/info.php

<?php phpinfo(); ?>

测试nginx是否解析php
本地浏览器输入:192.168.3.16/info.php
显示php界面 环境搭建成功

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值