建站:建立本地测试服务器
来源:互联网 发布:海岛奇兵震爆数据 编辑:程序博客网 时间:2024/05/22 14:21
手写网站,网站不能总是放在远程服务器上,这样的话测试起来可能会比较麻烦,一次次连接 ftp,一次次通过一个反人类的界面操作目录结构,一次次地等待……
这样效率太低了有木有!
尤其是,当你的站点中包含了子域的时候,用绝对路径引用,如果不做测试服务器的话,就不得不上传,测试,更改,再上传。宛然一个怪圈。(至于为什么会有子域什么的,参见另一篇博文:网站规划)
所以,我的办法是:
- 在本地搭建一台测试用 web服务器,保持与站点相同或相似的配置。
- 在本地搭建一台 DNS 服务器,在测试的时候,配置域名指向本机。
由于个人习惯原因,主要以 os x 平台来演示。 windows 上操作雷同。
搭建web服务器:
平台:Apache+PHP 经典配置,本地可以先不装 MySQL
具体的配置方法,请自行 google。只做基本配置即可。花点时间看看 apache 和 php 官网的文档,会非常有帮助。
特殊的配置:
- 在 Apache 中配置子站点。比如,我在站点中分离了图片服务,所有的图片源均指向 image.sincegrown.com。因此,在本地配置的时候,也需要建立相应地服务器,并建立相应地目录结构
- 为了方便调试未来的脚本,需要开启 php 的 XDebug。以 eclipse 为例,参考以下博文:
- 参考这一篇博文对eclipse的配置
- 参考这一篇博文对PHP的配置
- 相关参数详解
搭建 DNS 服务器:
其实这一块才是本文的重点。
对于子站点,为了方便调试,我试过很多办法。最初的时候,没有什么好的本地化方法,只好先用绝对路径。临上传的时候再手动修改路径。这个方法实在是又笨又累。于是开始探索,搜索。Dreamweaver 这种比较全能的 IDE好像也不提供这个功能(也或许是我没找到)。在搜索引擎上搜索,也没有找到什么好用的方法。于是自己思索出这么一个 DNS 招数来。
具体的思路就是:
- 将本机 DNS 服务列表顶端添加本机 ip;
- 在本机启动 DNS 服务器,在解析过程中,搜寻的顺序依次为:本机配置文件——223.5.5.5——8.8.4.4——8.8.8.8——114.114.114.114;
- 将@,www,image, 以及其他子域名指向本机 ip;
- 在本机配置上述所有子域名相应地站点。这一步在上面“搭建 web 服务器”中完成。
下面是 server.app 里地配置:
- 点击右面的 edit 按钮,打开 forwarding 配置,输入上面所说的搜寻顺序里地服务器地址:
- 点击左下角的“+”号,编写本机配置。如无必要,不需要进行高级设置。在这里,我们只需要简单地域名解析就可以。
首先,我有一个设想。早些时候,我在本机搭建了一个 ftp 服务器,给学校里其他同学提供资源下载服务。现在这个服务已经停止。因为我想把所有的服务转向 http。
但是,如果用买来的虚拟主机提供文件服务的话,又慢,又不划算。鉴于用户只有校内的同学(即同一内网的机器之间),所以在本机搭建 DNS 服务器的用意,在于这里:
把校内用户的访问,导向校内主机。让需要文件服务的同学修改一次 dns 设置,比让他们每次都输入 IP地址,要方便的多。
因此,你可以看到,我在上面填写的 ip 地址,是内网 ip,而不是127.1
至于我自己,在这里配置好以后,就可以以“全线下”的方式写网站了。写好调试好,上传到服务器,只要关掉 DNS 服务器,或者修改 dns 列表,或者开启网络加速服务,就可以。
您呢,如果您是用 mac 的话,相信每次切换状态,点一个“on/off”开关,总比修改一次 hosts 要来的方便。
0 0
- 建站:建立本地测试服务器
- [web开发]建立本地php MySQL Apache测试服务器
- Python建立本地服务器
- vmware ubuntu 下建立本地SVN服务器
- 在本地建立SVN服务器的步骤
- 建立Git Hub 与本地 Git 服务器
- Mac Python建立简单的本地服务器
- 服务器上没问题,本地测试出现问题
- Android真机测试访问本地服务器
- Android真机测试 连接本地服务器
- Android本地服务器搭建与测试
- Android真机连接本地服务器测试
- 视频直播本地测试服务器搭建
- Android真机测试访问本地服务器
- 发布本地项目到Lunix测试服务器
- android studio手机连接本地服务器测试
- 利用apiary.io测试本地服务器
- Nginx服务器安装本地HTTPS测试环境
- oracle ebs workflow notification如何清空邮件队列中的邮件?
- [python]将搜狗(sogou)的细胞词库转换为mmseg的词库
- STL list链表的用法详解
- layoutSubviews何时调用的问题
- libxml/HTMLparser.h file not found 解决方法 (libxml.dylib错误处理)
- 建站:建立本地测试服务器
- 关于JS定时器的一些总结
- 【安卓篇】四大组件●Service服务介绍及生命周期
- hdu 1016 Prime Ring Problem
- 【CH Round #48 - Streaming #3(NOIP模拟赛Day1)】 题解
- 双WaitForMultipleObjects机制
- 欢聚时代Linux下的主动防御
- ZOJ 3019 Puzzle
- Undefined symbols for architecture i386或者armv7: “_OBJC_CLASS_$_XXX