Yum安装Nginx和Php7

Nginx安装

我的环境CentOS7.4,本身存在nginx安装包直接用了,如果没有可以参考安装源

安装源

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

安装Nginx

yum install nginx

Nginx启动、重启、关闭和状态查看

systemctl start nginx
systemctl restart nginx
systemctl status nginx
systemctl stop nginx

Nginx开机启动

systemctl enable nginx

PHP安装

安装源

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

PHP安装

安装基本功能,后期需要扩展其他功能模块

yum -y install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64

php-fpm安装

进程管理器,用于解析PHP,常用与Apache、Nginx做对接使用。

yum -y install php70w-fpm php70w-opcache

php-fpm启动、重启、关闭和状态查看

systemctl start nginx
systemctl restart nginx
systemctl status nginx
systemctl stop nginx

php-fpm开机启动

systemctl enable nginx

Nginx配置修改

Nginx如果需要和PHP配合使用,需要针对Nginx的配置做简单修改
修改/etc/nginx/nginx.conf(不同服务器安装位置可能不一样,可以使用locate找一下)
注意root对应路径即为php项目路径

location ~ \.php$ {
	fastcgi_buffers 256 128k;
	chunked_transfer_encoding off;
	root           /zhuyuan/wordpress;
	fastcgi_pass   127.0.0.1:9000;
	fastcgi_index  index.php;
	fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
	include        fastcgi_params;
}

我以为到此就结束了,开始我在运行的时候始终给我一个报错‘no file’,查看url的http状态404
两个问题

  • 文件路径没有权限
    文件路径没有权限,这个很好理解。上面所有安装都是在root用户下执行的。而我的项目是单独放在zhuyuan的用户下的。我想当然的就把项目使用root用户安装了一遍(实际上不用),但是最后还是不行,继续往下面看。
  • 服务宿主没有权限
    通过yum安装Nginx的master宿主是root,但是Nginx的worker是nginx。php-fpm的master宿主是root,而worker却是apache。(这个地方找了好久才发现,ε=(´ο`*)))唉)

继续修改配置:
修改/etc/nginx/nginx.conf(不同服务器安装位置可能不一样,可以使用locate找一下)

#有的版本可能没有那么直接增加一个
user nobody;

修改为PHP应用所属的用户,我的是zhuyuan

user zhuyuan;

修改/etc/php-fpm.d/www.conf (不同服务器安装位置可能不一样,可以使用locate找一下)

user = apache
group = apache
;listen.owner = nobody
;listen.group = nobody

修改为PHP应用所属的用户,我的是zhuyuan

user = zhuyuan
group = zhuyuan
;listen.owner = zhuyuan
;listen.group = zhuyuan

重启Nginx和php-fpm服务

systemctl restart nginx
systemctl restart php-fpm

这下终于好了,(o)/!!!

那么这里需要明确一下,一般应用不会采用root去管理,而是单独开启一个账号去部署运行,所以上面的直接修改为root用户也是不行的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值