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

运行结果如下:

在这里插入图片描述

可以看到,此次访问并没有成功。
此次的报错是【no route to host】,这是什么意思?百度翻译的解答是【没有到主机的路由】,因此,可以猜测,这是没有安装httpd 服务的问题,暂时还不确定是否和php 的配置相关。
接下来,我们就先将httpd 服务的安装解决,再来对php 进行二度测试。

三、安装httpd

3.1 安装并启动httpd

安装httpd 只需要输入以下命令:

yum install -y  httpd

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

systemctl start httpd.service
service httpd status

运行结果如下:


Centos 7 nginx+php 实现公网访问_第1张图片
在这里插入图片描述

可以看到,httpd 的状态是【active(running)】,也就是运行中的状态,这说明,我们的httpd 服务已经启功了。

3.2 再次访问php 首页

输入以下命令:

curl loclahost

运行结果如下:

Centos 7 nginx+php 实现公网访问_第2张图片
在这里插入图片描述

可以看到,此次访问是很成功的,在页面中输出了一个表格,用以显示相关的配置信息。

四、安装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

运行结果如下:


在这里插入图片描述

可以看到,我的nginx 配置文件是/etc/nginx/nginx.conf 。
接下来,我们对该文件进行修改,输入以下命令:

vi /etc/nginx/nginx.conf

运行结果如下:


Centos 7 nginx+php 实现公网访问_第3张图片
在这里插入图片描述

看完整个文件,并没有发现有端口的痕迹。那么究竟端口的配置是在哪里呢?
看到文件最后,【include】这一行也有配置文件的踪迹,那么我们就进去这个目录查看一番。

cd /etc/nginx/conf.d/
ls

运行结果如下:


在这里插入图片描述

可以看到,在这个目录下,有一个配置文件,名为default.conf ,那么我们就来看看这里有没有端口的配置,输入以下命令:

vi default.conf

运行结果如下:


Centos 7 nginx+php 实现公网访问_第4张图片
在这里插入图片描述

可以看到,这次的配置文件就有端口的配置,我们将80 改为88 ,然后保存退出。

4.4 公网访问

接下来,启动nginx ,输入以下命令:

service nginx restart

运行结果如下:


Centos 7 nginx+php 实现公网访问_第5张图片
在这里插入图片描述

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


在这里插入图片描述

在安全组开发端口后,就可以访问到nginx 的首页了。
在Windows 主机的浏览器输入:公网 ip:88 ,就可以看到以下页面了。
Centos 7 nginx+php 实现公网访问_第6张图片
在这里插入图片描述

五、安装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 7 nginx+php 实现公网访问_第7张图片
在这里插入图片描述

可以看到,php-fpm 已经启动了,但是,只有这个可还不能在外网访问到php 文件。

六、让 nginx 可以执行 php

6.1 修改配置

修改nginx 的配置文件,输入以下命令:

vi /etc/nginx/conf.d/default.conf

运行结果如下:


Centos 7 nginx+php 实现公网访问_第8张图片
在这里插入图片描述

找到上图中的位置,取消这个location 的注释,并进行修改,如下图所示:


Centos 7 nginx+php 实现公网访问_第9张图片
在这里插入图片描述

注:需要保证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 7 nginx+php 实现公网访问_第10张图片
在这里插入图片描述

如果出现上图的结果,那么此次的nginx+php 外网访问实现就完成了。

至此,本文结束。我是陈冰安,一个Java学习者。欢迎关注我的公众号【暗星涌动】,愿与你一同进步。

你可能感兴趣的:(Centos 7 nginx+php 实现公网访问)