凡事不求甚解,遇事必定抓瞎——PHP开发Apache服务器配置备忘录

照此配置流程,绝对一路畅通,可保无虞。

昨天弄了个PHP小程序,想在本地跑一下测试,可是工作电脑没有安装环境,于是下载了一个wamp,一路畅通,Apache、Mysql、PHP就全有了。启动wamp服务,在浏览器里输入“http://localhost”,访问正常,跳出wamp首页。于是,下面想把自己的CrashServer网站配置到Apache里,可以通过虚拟域名在本地访问测试,结果遇到不少问题,今日一通Google研究,终于任督二脉全通。

1、首先,Apache的配置文件是httpd.conf和httpd-vhosts.conf,我们先来看下wamp安装好后,httpd.conf的默认配置。

DocumentRoot "d:/wamp/www/"

<Directory />
    AllowOverride none
    Require all denied
</Directory>

<Directory "d:/wamp/www/">
    Options Indexes FollowSymLinks
    AllowOverride all
    Require local
</Directory>

# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

 

要想通过虚拟域名访问网站,就需要配置一下httpd-vhosts.conf。那么需要启动httpd-vhosts.conf,因为默认是关闭的,所以把配置文件中#Include conf/extra/httpd-vhosts.conf前面的#去掉。于是httpd-vhosts.conf启用了,那么我们去编辑httpd-vhosts.conf这个文件。

2、httpd-vhosts.conf文件的位置,在apache目录下的conf/extra,上面的Include conf/extra/httpd-vhosts.conf其实已经告诉了你它的位置。

在这个文件中,添加配置我上面的CrashServer网站:

NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "D:/wamp/www/CrashServer"
    ServerName crash.com
</VirtualHost>

首先,我的CrashServer是放在wamp/www下面的,这是wamp默认的网站目录,其次,我想在本地测试的时候,用crash.com就能访问到CrashServer,于是配置如上。

在这里,为了让我们能通过crash.com访问本地站点,所以需要修改hosts文件,添加 127.0.0.1  crash.com。

到这里,配置完毕了,于是重启Apache,输入crash.com访问,结果正常访问。但是,当以localhost访问时,原来出现的是wamp的主页,现在却显示CrashServer了,于是还要在hosts里追加 127.0.0.1  localhost,在httpd-vhosts.conf中,追加上localhost的站点配置,现在看起来就是这样了:

NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "D:/wamp/www"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "D:/wamp/www/CrashServer"
    ServerName crash.com
</VirtualHost>

OK,到此基本可以结束了,网站都配置好了,看起来非常非常的简单。但是对于我却不是这样的,我昨天碰到了如下问题。

首先,我的CrashServer一开始不是放在wamp/www下的,而是放在E:\360Downloads下面的,于是就有了如下配置:

<VirtualHost *:80>
    DocumentRoot "E:/360Downloads/CrashServer"
    ServerName crash.com
</VirtualHost>

这没错吧,路径都对,虚拟域名也对,可是访问的时候,却提示403 Forbidden,没有权限。于是Google,哦,知道了原来是要给CrashServer目录加上权限,于是修改配置如下:

<VirtualHost *:80>
    DocumentRoot "E:/360Downloads/CrashServer"
    ServerName crash.com

    <Directory E:/360Downloads/CrashServer>
        Order Allow,Deny
        Allow from All
        Require all granted
    </Directory>
</VirtualHost>

重启Apache,访问正常了。首先,新增的Directory,是可以在httpd.conf中添加的,也可以在httpd-vhosts.conf中添加,我认为在后者里面添加更好,配置内容更加清晰明了,项目目录权限跟随着项目站点配置。在上面新增的Directory中,我们给了360Downloads下的CrashServer目录加了权限,允许访问了,所以就不再提示403 Forbidden了。

这个问题,现在写起来是这么的简单轻松,可问题出现的时候,却很让人困扰和郁闷。对于项目在wamp/www之外的,需要给项目目录权限才可,注意:

Order Allow,Deny
Allow from All
Require all granted

这三条缺一不可,这是配置了允许外部计算机访问服务器站点。

3、今天问题解决后,想到通过同一局域网下的其他设备访问我的站点,于是用手机,在浏览器中输入我的电脑的ip,不能访问,再次Google,原来需要修改在httpd.conf中的配置:

<Directory "d:/wamp/www/">
    Options Indexes FollowSymLinks
    AllowOverride all
    Require local
</Directory>

其中,Require local,没Google出来,但看名字知道,是只允许本地访问,于是改成Require all granted,允许所有请求访问,手机就可以访问了。

参考,http://roteg.iteye.com/blog/1465380,这里是访问验证配置的解释。

这里,有篇老外写的配置博文,很好,https://www.kristengrote.com/blog/articles/how-to-set-up-virtual-hosts-using-wamp#wamp-step-7,但是唯独一点,在他的Step 7的时候,给项目目录添加权限:

<Directory C:/Users/Kristen/Documents/Projects>
    Order Deny,Allow
    Allow from all
</Directory>

却恰恰少了Require all granted,导致最后还是403 Forbidden,搞得我非常郁闷。

此配置是在如下wamp环境进行的:

至此,在Apache下配置PHP站点,全部完成。

时间: 2024-10-10 15:10:32

凡事不求甚解,遇事必定抓瞎——PHP开发Apache服务器配置备忘录的相关文章

PHP开发Apache服务器配置

照此配置流程,绝对一路畅通,可保无虞. 昨天弄了个PHP小程序,想在本地跑一下测试,可是工作电脑没有安装环境,于是下载了一个wamp,一路畅通,Apache.Mysql.PHP就 全有了.启动wamp服务,在浏览器里输入“http://localhost”,访问正常,跳出wamp首页.于是,下面想把自己的 CrashServer网站配置到Apache里,可以通过虚拟域名在本地访问测试,结果遇到不少问题,今日一通Google研究,终于任督二脉全通. 1.首先,Apache的配置文件是httpd.c

在 Eclipse 中开发 Apache Derby 应用程序

概述 本文的目的是向您展示如何在 Eclipse 集成开发环境(IDE)中使用几种不同的工具,例如 Java Development Tools.IBM? DB2? plug-ins for Eclipse 和 IBM integration plug-in for Derby,以便开发 Apache Derby 应用程序. 本文将介绍一个典型 Derby 应用程序的整个开发周期,从数据库的创建开始,然后经历 JDBC 客户机应用程序的开发,存储过程和函数的开发,最后是解决方案的开发.本文还将描

Android开发--Apache服务器安装,解决Apache服务无法启动的问题

昨天学习Android XML解析的时候,想在自己的电脑上搭建一个最简单的Web服务器来存放一段XML文本,然后在Android程序中解析,查找了一些资料后,看到Apache服务器比较容易上手,使用范围也比较广泛,于是就决定使用它了. 1.下载Apache服务器安装包,地址:http://httpd.apache.org/download.cgi 我选择了2.4.12这个版本,在Apache官网找了半天以为会有.msi的安装包,但是却一直没找到,好吧没有就没有了(想偷懒却没有提供一键安装包,唉)

[每日一学]apache camel|BDD方式开发apache camel|Groovy|Spock

开发apache camel应用,最好的方式就是tdd,因为camel的每个组件都是相互独立并可测试的. 现在有很多好的测试框架,用groovy的Spock框架的BDD(行为测试驱动)是比较优秀和好用的. 首先, 我们从最简单的processor开始. 先写测试用例: package com.github.eric.camel import org.apache.camel.Exchangeimport org.apache.camel.impl.DefaultCamelContextimpor

教你遇事最有水平的处理方法

1 .学会沉默(如果他只是想拿你撒气) 有时候,你被人误解,你不想争辩,所以选择沈默.本来就不是所有的人都得了解你,因此你认为不必对全世界喊话.却也有时候,你被最爱的人误解,你难过到不想争辩,也只有选择沈默. 全世界都可以不懂你,但他应该懂,若他竟然不能懂,还有什么话可说?生命中往往有连舒伯特都无言以对的时刻,毕竟不是所有的是非都能条列清楚,甚至可能根本没有真正的是与非.那么,不想说话,就不说吧,在多说无益的时候,也许沈默就是最好的解释. 2.学会平静(坦然面对) 在你跌入人生谷底的时候,你身旁

遇事最有水平的处理方法

1 .学会沉默(如果他只是想拿你撒气) 有时候,你被人误解,你不想争辩,所以选择沈默.本来就不是所有的人都得了解你,因此你认为不必对全世界喊话.却也有时候,你被最爱的人误解,你难过到不想争辩,也只有选择沈默. 全世界都可以不懂你,但他应该懂,若他竟然不能懂,还有什么话可说?生命中往往有连舒伯特都无言以对的时刻,毕竟不是所有的是非都能条列清楚,甚至可能根本没有真正的是与非.那么,不想说话,就不说吧,在多说无益的时候,也许沈默就是最好的解释. 2.学会平静(坦然面对) 在你跌入人生谷底的时候,你身旁

微信开发 ---- 设置服务器配置

配置服务器: ①  进入个人公众号------>开发----->基本配置-------->设置我们的服务器配置 URL是我们的服务器页面,我们有的操作都是需要在这个页面完成的,我们只有去访问这个页面微信才会给我们回应. 你现在直接点提交是不会成功的. ②编写代码 创建一个Mvc项目.添加一个 WeixinController  控制器 其中:  WeixinConfig配置 BaseAPI则是一个类,在类库里面 然后发布该项目到服务器上.域名是在www.sealee.xin下 ③点击提交

使用Scala开发Apache Kafka的TOP 20大好用实践

本文作者是一位软件工程师,他对20位开发人员和数据科学家使用Apache Kafka的方式进行了最大限度得深入研究,最终将生产实践环节需要注意的问题总结为本文所列的20条建议. Apache Kafka是一个广受欢迎的分布式流媒体平台,New Relic.Uber以及Square等数千家公司都在使用它构建可扩展.高吞吐量.可靠的实时流媒体系统.例如,New Relic的Kafka集群每秒处理超过1500万条消息,总数据速率接近1 Tbps. Kafka在应用程序开发人员和数据科学家中非常受欢迎,

cocos2dx3.2 android平台搭建开发环境纠错备忘录

平台:win32 + android cocos2d版本:3.2 搭建cocos2d-x android 常见问题: 问题1: Android platform not specified, searching a default one...Can't find right android-platform for project :"F:\cocos2d-x-3.1.1\tests\cpp-tests\proj.android".The android-platform shoul