部署项目:特定域名访问站点指定文件夹

搭建好 PHP 开发环境之后,接下来就可以 copy 准备好的业务代码到站点目录中,随时发布网站了。可是如何访问站点中的网页呢?直接访问自己的公网 ip 即可访问到站点网页,可是想优雅一些就需要准备一个域名了。

一级域名(baidu.com)也叫作顶级域名,注册一级域名是需要付费的。

而二级域名(image.baidu.com)是一级域名的延伸,所以只要购买了一级域名,二级域名是可以任意配置的。

其实(www.baidu.com)也是二级域名,只是大家已经习惯使用www为前缀的二级域名作为网站的主域名而已。

通过DNS解析服务商,可以为每个二级域名绑定不同的主机IP,这样即使只有一个主域名也可以架设多个网站了。

如果你只有一台主机,并且要在上面建立多个项目,还得通过子域名的方式访问,那么你需要配置 Apache 才行。

分配网站域名

1 . 首先域名解析,将自己的域名(我的域名是 fatxin.cn)解析到公网 ip ,一段时间后,访问 fatxin.cn 就等同于访问公网 ip 了。(前提是开发环境搭建成功)

2 .  添加子域名:在一级域名解析,添加记录。如先添加一个demo,即生成二级协作域名 demo.fatxin.cn;(既然要实现Apache 配置多站点访问就得多准备几个域名,域名需要钱的,有了一个域名,理论上就可以配置无限个二级域名了)

3 . 在云服务器中,找到 Apache 中的配置文件 ..\apache2.4\conf\httpd.conf ,定位到下面内容:

#Include conf/extra/httpd-vhosts.conf

去掉注释,即:

Include conf/extra/httpd-vhosts.conf

4 . 在文件 ..\apache2.4\conf\extra 中打开  httpd-vhosts.conf  文件,并将所有内容注释掉(删除掉也行),添加下面代码:


    AllowOverride all
    Require all granted


NameVirtualHost *:80


  ServerAdmin 「管理员邮箱」
  DocumentRoot 「项目根目录」
  ServerName 「二级域名」
  ServerAlias 「域名别名」
  ErrorLog 「错误日志」
  CustomLog 「访问日志」

解释上面代码:

Directory 标签用于给所有目录设置访问权限

AllowOverride all 允许 .htaccess 对URL进行重写 / AllowOverride none 忽略 .htaccess 文件

Require all granted 允许外部访问 / Require all denied 禁止外部访问

NameVirtualHost 是固定形式,用于使 VirtualHost 标签生效

VirtualHost 标签用于为二级域名绑定虚拟主机

每一个二级域名对应一个 VirtualHost 标签,有多少二级域名,就需要多少个 VirtualHost 标签

DocumentRoot 和 ServerName 是必填项,其余可选

注意:由于 www 域名属于特殊的二级域名,所以它也需要在 httpd-vhosts.conf 文件中注册

修改完 Apache 的配置文件后,必须重启服务器配置即可生效。

附上我的源代码:


 AllowOverride all
 Require all granted


NameVirtualHost *:80

# 首页

# ServerAdmin [email protected]
 DocumentRoot "c:/web/Apache2.4/htdocs/wp"
 ServerName fatxin.cn
# ServerAlias www.fatxin.cn
# ErrorLog "logs/dummy-host.example.com-error.log"
# CustomLog "logs/dummy-host.example.com-access.log" common


# 作品集

 DocumentRoot "c:/web/Apache2.4/htdocs/demo"
 ServerName demo.fatxin.cn

重启Apache之后,访问 www.fatxin.cn 即是访问站点目录(htdocs)中的wp文件夹,访问 demo.fatxin.cn 即是访问站点目录(htdocs)中的 demo 文件夹。

将 业务代码 上传到站点目录中的文件夹中即可。当然,上面说的都是需要拥有域名、云服务器的前提,作为学生一枚,搞个低配的服务器还是不需要花很多金币的。

本地上部署项目

如何在本地上部署项目?更加简单,只需要配置 hosts 和 httpd.conf 即可。

1.在 host 文件(C:\Windows\System32\drivers\etc)中添加「127.0.0.1 自定义域名」,如:

127.0.0.1    phplayer.com

这样输入 phplayer.com 就相当于输入 127.0.0.1 访问到服务器站点了。但要为不同的域名请求分配不同的处理路径,还需要修改 httpd.conf 文件 。在 apache\apache2.4\httpd.conf 文件中添加下面代码:


 DocumentRoot "c:/web/Apache2.4htdocs/phplayer/"
 ServerName phplayer.com

或者:


 DocumentRoot "c:/web/Apache2.4/htdocs/phplayer/"
 ServerName phplayer.com
 
 Require local
 

重启 Apache ,访问phplayer.com 即相当于访问 127.0.0.1/phplayer了。

Directory 是用户可以访问的目录,和项目路径保持一致。注意 Directory 中的参数 Require local,它的意思是只允许本地访问,如果你把它改成 Require all granted,那么任何人都可以访问这个目录了。

部署过程知识点就这么些了,也没遇到什么坑,一切顺利,就这样吧,exit;

你可能感兴趣的:(开发环境)