Wampserver 2.5 多站点配置方法

写在开头:本文适用于wampserver2.5版本,和wamp的老版本配置有语法上的区别,笔者正是因为被老版本的配置办法给整迷糊了所以才总结了一篇针对2.5版本的配置方法,如果您还停留在1.x或着已经到了3.x以上,请节省您宝贵的时间

wamp是一个集成了apache、php、mysql的运行环境

几个月前笔者开始使用wamp2.5学习php,由于那时候刚刚入门而且重心在于学习php,所以在配置wamp的时候参照一些网上的文章配置来配置去瞎猫碰死耗子配好了,心想能用就行了管他呢。

今天笔者动了下wamp的配置文件,想新配个站点,发现怎么都配不好,一怒之下卸载wampserver重新来过,搞了好几个小时终于搞明白怎么样配好一个自己的站点,废话不多说大家跟着笔者从一个新安装好的wampserver开始配置多站点。

整个配置过程我们一共要用到3个文件,请大家先打开这些文件方便下面修改 
C:/Windows/System32/drivers/etc 
下的 hosts文件

D:/wamp/bin/apache/apache2.4.9/conf/extra 
下的 httpd-vhosts.conf

D:/wamp/bin/apache/apache2.4.9/conf 
下的 httpd.conf

1. 编辑httpd.conf 
查看

LoadModule php5_module "d:/wamp/bin/php/php5.5.12/php5apache2_4.dll"PHPIniDir d:/wamp/bin/php/php5.5.12Include conf/extra/httpd-vhosts.conf

这三句,如果它们被#注释了的话,去掉# 
说明一下,第三句话一般注释的,去掉注释后就能开启配置站点

然后就不用管httpd.conf了。

2.编辑 httpd-vhosts.conf 
上面那步的第三句话就是让本文件的配置起作用

我们看到23~30行,这就是一个配置站点的范例,你可以参照它写一个,也可以按照我下面的标准写一个站点信息

<VirtualHost *:80>    DocumentRoot "e:/PhpProject/"    ServerName localhost2.com     <Directory "e:/PhpProject/">        Options Indexes FollowSymLinks        AllowOverride all        Require all granted    </Directory></VirtualHost>

以上是我复制来粘贴去最后琢磨出来最精简的写法,少一句不行,多一句累赘

DocumentRoot "e:/PhpProject/" 毫无疑问是你自己的站点路径ServerName localhost2.com 是告诉浏览器你输入这个你就能访问你自己的站点这个服务名最好是一个url的形式比如我写的那样,不然你输入到某些坑爹浏览器他直接给你跳转到百度搜索结果了<Directory "e:/PhpProject/">        Options Indexes FollowSymLinks        AllowOverride all        Require all granted</Directory>这段很关键,是给你自己的站点设置权限,不然没法访问

3.编辑 hosts文件

毕竟咱用的站点实在虚拟服务器上运行的,还得把我们的服务名告诉机器 
这最后一步就是告诉本主机你的站点名 
做法是在本文件最后添上

127.0.0.1 localhost2.com

按照以上流程配置完以后,重启wamp所有服务,在浏览器输入localhost2.com 
就能访问到自己的站点了。

常见的问题 
wampserver默认用的是80端口,有时候会被其他程序占用,当被占用的时候,你只需在httpd-vhosts.conf 里面找到

Listen 0.0.0.0:80Listen [::0]:80

在它后面再添个自定义的端口号,最好6000以上,比如下面的

Listen 0.0.0.0:8080Listen [::0]:8080

然后配置站点信息的时候,在

<VirtualHost *:80>

中把80改成自己的端口号,就可以顺利地访问自己的站点了。

结语

以上方法全是笔者今天配了好几个小时总结而来的,大多数是复制粘贴的工作,对强大的wampserver没有很细致的了解,只是简单粗暴地配置运行而已,大家如果想要更细致地了解wamp2.5的新特性,可以去那帮法国朋友的官网了解一下。

php实现伪静态的方法

mod_rewrite是Apache的一个非常强大的功能,它可以实现伪静态页面。下面我详细说说它的使用方法
1.检测Apache是否支持mod_rewrite
通过php提供的phpinfo()函数查看环境配置,通过Ctrl+F查找到“Loaded Modules”,其中列出了所有apache2handler已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。
如果没有开启“mod_rewrite”,则打开目录 您的apache安装目录“/apache/conf/” 下的 httpd.conf 文件,通过Ctrl+F查找到“LoadModule rewrite_module”,将前面的”#”号删除即可。
如果没有查找到,则到“LoadModule” 区域,在最后一行加入“LoadModule rewrite_module ,modules/mod_rewrite.so”(必选独占一行),然后重启apache服务器即可。
2.让apache服务器支持.htaccess
如何让自己的本地APACHE服务器支持”.htaccess”呢?其实只要简单修改一下apache的httpd.conf设置就可以让 APACHE支 持.htaccess了。打开httpd.conf文件(在那里? APACHE目录的CONF目录里面),
用文本编辑器打开后,查找
Options FollowSymLinks
AllowOverride None
改为
Options FollowSymLinks
AllowOverride All
就可以了。
3.建立.htaccess 文件
有1种最简单的方法建立.htaccess文件:
用记事本 打开,点击文件–另存为,在文件名窗口输入”.htaccess”,注意是整个绿色部分,
也就是包含英文引号,然后点击保存就行了。
4.rewrite规则学习
我们新建一个.htaccess文件之后,就在里面写入以下内容:
RewriteEngine on #rewriteengine为重写引擎开关on为开启off为关闭
RewriteRule ([0-9]{1,})$index.php?id=$1
我讲解一下RewriteRule:RewriteRule是重写规则,支持正则表达式的,上面的([0-9]{1,})是指由数
字组成的,$是结束标志,说明是以数字结束!
好吧,现在我们可以实现伪静态页面了,写下一下的规则:
RewriteEngine on
RewriteRule ([a-zA-Z]{1,})-([0-9]{1,}).html$index.php?action=$1&id=$2
([a-zA-Z]{1,})-([0-9]{1,}).html$是规则,index.php?action=$1&id=$2是要替换的格式,$1代表第
一个括号匹配的值,$2代表第二个,如此类推!!
我们写一个处理的PHP脚本:
index.php
PHP代码
echo ‘你的Action是:’ . $_GET['action'];
echo ‘
’;
echo ‘你的ID是:’ . $_GET['id'];
?>
好了,我们现在在浏览器中输入:
localhost/page-18.html
输出的是:
你的Action是:page
你的ID是:18

php5不报错,只出现空白页的解决办法

php5不报错,只出现空白页的解决办法
出错就停止执行,而不报错的解决方法如下

解决方法:

修改PHP.ini,将 display_errors   =   Off 改为 display_errors   =   On

修改PHP.ini,将 error_reporting = E_ALL 前面加上分号,即屏蔽此句,再找到error_reporting = E_ALL & ~E_NOTICE,将此句前面的分号去掉,也就是说将前者替换成后者再执行报错。

重启APACHE,再试不会出现空白页而不报错的情况了。