linux 安装nginx php

3 篇文章 0 订阅
3 篇文章 0 订阅

在安装nginx 之前

确保系统安装了g++、gcc、openssl-devel、pcre-devel和zlib-devel软件,可通过如图所示命令进行检测,如果以安装我们可以卸载:

yum install gcc-c++
yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel
yum install openssl openssl-devel

## 如果已安装,则remove掉
yum remove nginx

在官网上下载
wget http://nginx.org/download/nginx-1.14.2.tar.gz

  1. 解压安装包
    tar -zxvf nginx-1.14.2.tar.gz
    解压完成以后 移动到
mv  nginx-1.14.2  /usr/local/nginx-1.14.2
yum -y install pcre-devel
yum -y install openssl openssl-devel
./configure --prefix=/usr/local/nginx
make
make install

到sbin 启动即可
启动 ./nginx
停止 ./nginx -s stop
重启 ./nginx -s reload

启动nginx以后
如果是虚拟机配置的挂需要关闭防火墙
查看进程
ps -ef | grep nginx

关闭防火墙的方法为:

1. 永久性生效

开启:chkconfig iptables on

关闭:chkconfig iptables off

2. 即时生效,重启后失效

开启:service iptables start

关闭:service iptables stop

centos8

systemctl start firewalld.service

关闭防火墙

systemctl stop firewalld.service

开启防火墙

systemctl enable firewalld.service

禁用防火墙

systemctl disable firewalld.service

在浏览器输入虚拟机ip 地址就好
ngix 欢迎页面

2.去官网下载php
php-7.2.13.tar.gz

tar -zxvf php-7.2.13.tar.gz

解压完成后mv php-7.2.13 /urs/local/php-7.2.13
然后老三步
7.4

https://blog.csdn.net/assasin0308/article/details/103896363

./configure  --prefix=/usr/local/php74 --with-config-file-path=/usr/local/php74/etc --with-fpm-user=nginx --with-fpm-group=nginx --enable-fpm --enable-opcache --enable-inline-optimization --disable-debug --disable-rpath --enable-shared -enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mysqlnd-compression-support --with-iconv-dir --with-zlib --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem  --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --enable-intl --enable-ftp --enable-gd --enable-gd-jis-conv --with-jpeg --with-freetype --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --with-zip --enable-soap --with-gettext --disable-fileinfo --with-pear --disable-phar --enable-maintainer-zts --with-ldap=shared --without-gdbm

7.2

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-soap --with-libxml-dir --with-xmlrpc --with-openssl --with-mcrypt --with-mhash --with-pcre-regex --with-sqlite3 --with-zlib --enable-bcmath --with-iconv --with-bz2 --enable-calendar --with-curl --with-cdb --enable-dom --enable-exif --enable-fileinfo --enable-filter --with-pcre-dir --enable-ftp --with-gd --with-openssl-dir --with-jpeg-dir --with-png-dir --with-zlib-dir --with-freetype-dir --enable-gd-native-ttf --enable-gd-jis-conv --with-gettext --with-gmp --with-mhash --enable-json --enable-mbstring --enable-mbregex --enable-mbregex-backtrack --with-libmbfl --with-onig --enable-pdo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-zlib-dir --with-pdo-sqlite --with-readline --enable-session --enable-shmop --enable-simplexml --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-libxml-dir --with-xsl --enable-zip --enable-mysqlnd-compression-support --with-pear --enable-opcache


https://www.jianshu.com/p/2d8898e25f1b
./configure --prefix=/usr/local/php

make
make install

安装完成后 添加配置文件到对应的目录中

cp php.ini-development /usr/local/php/lib/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin

然后设置php.ini,使用: vim /usr/local/php/lib/php.ini 打开php配置文件找到cgi.fix_pathinfo配置项,这一项默认被注释并且值为1,根据官方文档的说明,这里为了当文件不存在时,阻止Nginx将请求发送到后端的PHP-FPM模块,从而避免恶意脚本注入的攻击,所以此项应该去掉注释并设置为0
在这里插入图片描述

设置完毕保存并退出

如果不需要创建用户 直接root用户创建
php-fpm --help 找到-R
直接 sbin目录./php-fpm -R 强制允许

另外注意一个地方就是php.ini配置文件的位置可以在编译前配置参数中设置,编译参数可以写成:–with-config-file-path=/usr/local/php 这样的话php就回去指定的目录下读取php.ini配置文件,如果不加这个参数默认位置就是php安装目录下的lib目录,具体也可以在phpinfo()输出界面查看,如果php.ini放到其他位置,php读取不到,那么所有的配置修改后都是不生效的,这点要注意
此时首先应该创建web用户:

groupadd www-data
useradd -g www-data www-data

然后网上一些教程说让修改php-fpm.conf添加以上创建的用户和组,这时候使用 vim /usr/local/php/etc/php-fpm.conf 打开文件后找不到官方所提示的位置:
在这里插入图片描述
  
  如果此时随便在一个位置添加,那么接下来启动php-fpm的时候,会报目录找不到的错误,所以不要在php-fpm.conf中添加用户和组,这个时候翻到php-fpm.conf最后一行会发现如下内容(如果编译时添加–prefix选项以下位置会自动补全,默认是下面是空的,要注意)
  在这里插入图片描述

这里引入了php-fpm.d目录下所有的conf配置文件,但是NONE需要修改为我们的实际目录/usr/local/php,当然我这里编译好是下面这样的:
  在这里插入图片描述

默认情况下etc/php-fpm.d/下有一个名为www.conf.defalut的配置用户的文件,执行下面命令复制一个新文件并且打开:

cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
vim /usr/local/php/etc/php-fpm.d/www.conf

默认user和group的设置为nobody,将其改为www-data

在这里插入图片描述

修改完成之后,保存并退出,然后执行以下命令启动php-fpm服务:

/usr/local/bin/php-fpm

启动完毕之后,php-fpm服务默认使用9000端口,使用 netstat -tln | grep 9000 可以查看端口使用情况:

在这里插入图片描述

然后执行 vim /usr/local/nginx/nginx.conf 编辑nginx配置文件,具体路径根据实际的nginx.conf配置文件位置编辑,下面主要修改nginx的server {}配置块中的内容,修改location块,追加index.php让nginx服务器默认支持index.php为首页:
在这里插入图片描述
然后配置.php请求被传送到后端的php-fpm模块,默认情况下php配置块是被注释的,此时去掉注释并修改为以下内容:
在这里插入图片描述
这里面很多都是默认的,root是配置php程序放置的根目录,主要修改的就是fastcgi_param中的/scripts为$document_root

修改完上面的,回到nginx.conf第一行,默认是#user nobody; 这里要去掉注释改为user www-data;或者user www-data www-data;表示nginx服务器的权限为www-data

修改完这些保存并退出,然后重启nginx:

/usr/local/nginx/nginx -s stop
/usr/local/nginx/nginx 

接下来编辑一个测试的php程序,在nginx下的html目录下创建test.php文件,打印一下php配置:

<?php phpinfo(); ?>

在这里插入图片描述

停止php-fpm 模块

pkill php-fpm
重启 sbin/目录下运行php-fpm

https://blog.csdn.net/weixin_44847002/article/details/105597700

https://blog.csdn.net/qq_32828933/article/details/103756240 php 报错

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值