Centos|Centos 7 nginx+php 实现公网访问

@[TOC]
一、环境配置 主机:Windows 10
服务器供应商:阿里云
服务器操作系统:Centos 7.4 64位
二、安装php 2.1 环境安装 通过yum install xx 命令可以进行各种工具及环境的安装。
现在,我们需要先安装php 环境,只需要输入以下命令:

yum install -y php

2.2 修改首页 安装完成后,我们必须进行测试,方可保证此次安装没有出现问题。
现在,我们修改php 的首页来进行测试。
首先,先来到php 文件的存放位置
cd /var/www/html

通过 vi xxx 命令可以对某个文件进行编辑。
我们需要编辑的是php 的首页,只需要输入以下命令:
vi index.php

按下键盘字母【a】开始编辑,输入以下内容( 显示配置信息 ):

编辑完成后,按下【Esc】键,再输入
:wq

回车,即可保存本次修改并退出。
2.3 访问首页 通过curl url 可以达到浏览器访问url 的效果。
我们现在需要访问php 的首页,只需要输入以下命令:
curl localhost

运行结果如下:
Centos|Centos 7 nginx+php 实现公网访问
文章图片
在这里插入图片描述
可以看到,此次访问并没有成功。
此次的报错是【no route to host】,这是什么意思?百度翻译的解答是【没有到主机的路由】,因此,可以猜测,这是没有安装httpd 服务的问题,暂时还不确定是否和php 的配置相关。
接下来,我们就先将httpd 服务的安装解决,再来对php 进行二度测试。
三、安装httpd 3.1 安装并启动httpd 安装httpd 只需要输入以下命令:
yum install -yhttpd

安装完成后,启动httpd 并查看其是否真的已经启动:
systemctl start httpd.service service httpd status

运行结果如下:

Centos|Centos 7 nginx+php 实现公网访问
文章图片
在这里插入图片描述
可以看到,httpd 的状态是【active(running)】,也就是运行中的状态,这说明,我们的httpd 服务已经启功了。
3.2 再次访问php 首页 输入以下命令:
curl loclahost

运行结果如下:
Centos|Centos 7 nginx+php 实现公网访问
文章图片
在这里插入图片描述
可以看到,此次访问是很成功的,在页面中输出了一个表格,用以显示相关的配置信息。
四、安装nginx 4.1 添加资源库 首先,我们先添加nginx 的资源库,输入以下命令:
vi /etc/yum.repos.d/nginx.repo

在文件中添加以下内容:
[nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1

4.2 安装nginx 安装nginx 只需要输入以下命令:
yum install -y nginx

nginx 的默认端口是80 ,为了避免端口冲突,我们需要修改一下nginx 的端口。
4.3 修改端口 查看nginx 的配置文件,输入以下命令:
nginx -t

运行结果如下:

Centos|Centos 7 nginx+php 实现公网访问
文章图片
在这里插入图片描述
【Centos|Centos 7 nginx+php 实现公网访问】可以看到,我的nginx 配置文件是/etc/nginx/nginx.conf 。
接下来,我们对该文件进行修改,输入以下命令:
vi /etc/nginx/nginx.conf

运行结果如下:

Centos|Centos 7 nginx+php 实现公网访问
文章图片
在这里插入图片描述
看完整个文件,并没有发现有端口的痕迹。那么究竟端口的配置是在哪里呢?
看到文件最后,【include】这一行也有配置文件的踪迹,那么我们就进去这个目录查看一番。
cd /etc/nginx/conf.d/ ls

运行结果如下:

Centos|Centos 7 nginx+php 实现公网访问
文章图片
在这里插入图片描述
可以看到,在这个目录下,有一个配置文件,名为default.conf ,那么我们就来看看这里有没有端口的配置,输入以下命令:
vi default.conf

运行结果如下:

Centos|Centos 7 nginx+php 实现公网访问
文章图片
在这里插入图片描述
可以看到,这次的配置文件就有端口的配置,我们将80 改为88 ,然后保存退出。
4.4 公网访问 接下来,启动nginx ,输入以下命令:
service nginx restart

运行结果如下:

Centos|Centos 7 nginx+php 实现公网访问
文章图片
在这里插入图片描述
但此时,我们还无法在公网访问到nginx 的首页,因为在阿里云服务器上还没有开发80 或88 端口。
具体流程为:
进入阿里云的控制台 -> 云服务器ECS ->实例 ->具体实例 ->本实例安全组 ->具体安全组的配置规则 -> 手动添加

Centos|Centos 7 nginx+php 实现公网访问
文章图片
在这里插入图片描述
在安全组开发端口后,就可以访问到nginx 的首页了。
在Windows 主机的浏览器输入:公网 ip:88 ,就可以看到以下页面了。
Centos|Centos 7 nginx+php 实现公网访问
文章图片
在这里插入图片描述 五、安装php-fpm 何为php-fpm ?
php-fpm即php-Fastcgi Process Manager。
php-fpm是 FastCGI 的实现,并提供了进程管理的功能。
进程包含 master 进程和 worker 进程两种进程。
master 进程只有一个,负责监听端口,接收来自 Web Server的请求,
而 worker 进程则一般有多个(具体数量根据实际需要配置), 每个进程内部都嵌入了一个 PHP 解释器,是 PHP代码真正执行的地方。
也就是说,想要执行PHP 文件,就必须安装php-fpm 这个工具。
输入以下命令:
yum install -y php-fpm.x86_64

安装完成后,启动php-fpm ,输入以下命令:
service php-fpm start

运行结果如下:

Centos|Centos 7 nginx+php 实现公网访问
文章图片
在这里插入图片描述
可以看到,php-fpm 已经启动了,但是,只有这个可还不能在外网访问到php 文件。
六、让 nginx 可以执行 php 6.1 修改配置 修改nginx 的配置文件,输入以下命令:
vi /etc/nginx/conf.d/default.conf

运行结果如下:

Centos|Centos 7 nginx+php 实现公网访问
文章图片
在这里插入图片描述
找到上图中的位置,取消这个location 的注释,并进行修改,如下图所示:

Centos|Centos 7 nginx+php 实现公网访问
文章图片
在这里插入图片描述
注:需要保证root 和fastcgi_parm 的路径一样。root 指能被外网访问的php 文件的存放路径。
使用nginx -t 命令可以查看nginx 的配置文件是否有错误:
nginx -t

配置文件无误后重启nginx :
service nginx restart

6.2 公网访问php 文件 进入nginx 配置文件中自己设置的php 文件存放路径:
cd /usr/share/nginx/html/

在该目录下新建一个测试文件:
vi test.php

添加以下内容,并保存退出:

接下来,就可以进行最后的测试了。
在Windows 主机的浏览器输入
公网 IP:88/test.php

运行结果如下:

Centos|Centos 7 nginx+php 实现公网访问
文章图片
在这里插入图片描述 如果出现上图的结果,那么此次的nginx+php 外网访问实现就完成了。
至此,本文结束。我是陈冰安,一个Java学习者。欢迎关注我的公众号【暗星涌动】,愿与你一同进步。

    推荐阅读