Windows 下 php5+apache+mysql5 配置解说

 更新时间:2016年11月25日 16:25  点击:2199

 1. apache的安装。同样适合大多数人的一路next,next过程中可能需要填写server domain,admin email等类似的东西,这个可以跳过,但是要注意端口的选择,默认情况下是只有80与8080端口可供选取,当然安装成功之后可以自己随意修改listen的端口,这个地方避免与iis默认80的重复,可以选择8080端口。next后安装成功之后的情况就不说了。可能有的盆有安装完成之后在apache server monitor中找不到apache服务,在services.msc中也找不到与apache有关的服务,我刚好遇到这个问题,解决方法也很简单:管理员身份运行cmd,切换至目录 $apache2.2$binhttpd.exe -k install 就差不多了,我搞的一次提示error,但还是出现了服务,点击start依旧可以运行,正常情况下提示安装成功并开始testing httped.conf...至此,apache的安装就算完毕,当然大家可以进行测试一下,可以打开httpd.conf,修改大约164行的documentroot配置节,我是这样修改的:documentroot "c:/",注意如果没搞过或者是怕找不回默认的httpd.conf可以先备份一个或者,把你要修改的配置节先注释一个。然后找到大约194行的<directory 节点,修改为<directory "c:/">,也就是你要访问的网站的目录,然后重启apache,在浏览器中输入:http://localhost:8080/testing.html看看吧。

  2.mysql教程的安装。好像mysql的安装没什么太需要注意的吧,就是有个是否允许远程访问,如果你只是做测试,那么就不要选中,如果是服务器,那也慎重考虑一下安全问题。

  3.php教程环境的安装,如上所说,下载php环境解压之后,在c盘根目录下建立名为apahe group的文件夹,在apache group目录下再建立一个文件夹名为php5,因为我下载的php版本为php-5.3.5-win32-vc9-x86.zip,所以5就是当前运行环境的版本号啊,呵呵,我抄一个高人的。然后将下载包里的所有文件拷贝到php5文件夹中,在其中找到名为php.ini-production的文件,将它重命名为php.ini。打开php.ini,找到short_open_tag,将默认为“short_open_tag= off”改为“short_open_tag =on”,即让php支持简短标签写法,如在设置为off时,在写程序时用<?=$xxx;?>会报错,要写成<?phpecho $xxx;?>才行。然后在php.ini中找到extension_dir = "./"这一行,将其修改为extension_dir = "c:/apache group/php5/ext",这样php运行环境就能根据此目录找到其所需要的扩展插件的位置了,注意要删除行前的分好”;“。然后找到windows extensions配置模块,在其下边依次寻找

extension=php_mbstring.dll
extension=php_gd2.dll
extension=php_mysql.dll

然后将前面的分号“;”,打开php环境对mysql等过程的支持,这样php程序中采可以进行连接数据库教程等的操作。最后找到disable_functions = ,将其修改为disable_functions =
passthru,exec,system,popen,chroot,escapeshellcmd,escapeshellarg,shell_exec,proc_open,proc_get_status。完成之后php运行环境的地址就是:c:apache groupphp5,这个地址将在后续的apache配置中用到。

  4.apache配置以对php的支持。打开$apache2.2$confhttpd.conf,找到#loadmodule ssl_module modules/mod_ssl.so这行,在其后,加入如下几行:

# 指定php.ini文件所在位置

phpinidir "c:apache groupphp5"

# 指定php程序的解析模块

loadmodule php5_module "c:apache groupphp5php5apache2_2.dll"

# 指定所要解析的文件的扩展名

addtype application/x-httpd-php .php

# 指定php源代码扩展名

addtype application/x-httpd-php-source .phps教程 

保存退出,此时apache+mysql+php5的运行环境就搭建完毕,你可以在测试目录中新建一个文件phpinfo.php,其中写入:<?php phpinfo(); ?>,然后通过http://localhost:8080/phpinfo.php进行访问。如果成功的话

html表单上传代码


<form enctype="multipart/form-data" action="upload.php教程" method="post">
<input type="hidden" name="max_file_size" value="100000">
<input name="userfile" type="file">  
<input type="submit" value="上传文件">
</form>

下面 是php文件上传功能代码

 

function uploadfile($type,$name,$ext,$size,$error,$tmp_name,$targetname,$upload_dir)
{
$max_size = 2000000;
$file_mimes = array('image/pjpeg','image/jpeg','image/jpg','image/gif','image/png');
$file_exts = array('.jpg','.gif','.png','.jpg','.gif','.png');
$file_path = $upload_dir.$targetname;
if(!is_dir($upload_dir))
{
if(!mkdir($upload_dir))
die("文件上传目录不存在并且无法创建文件上传目录");
if(!chmod($upload_dir,0755))
die("文件上传目录的权限无法设定为可读可写");
}
if($size>$max_size)
die("上传的文件大小超过了规定大小");
if($size == 0)
die("请选择上传的文件");
if(!in_array($type,$file_mimes) || !in_array($ext,$file_exts))
die("请上传符合要求的文件类型");
if(!move_uploaded_file($tmp_name, $file_path))
die("复制文件失败,请重新上传");
switch($error)
{
case 0:
return ;
case 1:
die("上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值");
case 2:
die("上传文件的大小超过了 html 表单中 max_file_size 选项指定的值");
case 3:
die("文件只有部分被上传");
case 4:
die("没有文件被上传");
}
}

   简单的说

    memcache是总的缓存系统项目名称,容易和php教程中的memcache混淆。

    我们常提到memcache其实是php中的memcache,即php的memcached扩展支持。

    我们常提到memcached是服务端主程序文件,服务端安装程序。

    为了让你的程序飞起来,必须安装memcached服务端程序和php的memcached扩展,所以如果您要使用memcache来缓存系统,memcache和memcached两样我们都需要安装。

    安装memcache

# cd /usr/local/src
# wget http://pecl.php.net/get/memcache-2.2.5.tgz
# gzip -d memcache-2.2.5.tgz
# tar xvf memcache-2.2.5.tar
# cd memcache-2.2.5 

    以下几句,是以php所在目录为/usr/local/php为例,如果您的php有变化,请自行替换几句中/usr/local/php的部分

# /usr/local/php/bin/phpize
# ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config --with-zlib-dir
# make && make install 

    将memcache加入php扩展

    # vi /etc/php.ini(/etc/php.ini地址为我的php.ini位置,如果你不知道你的php.ini在哪里,可以用# find / -name php.ini进行查找,或者传个探针phpinfo,找到configuration file (php.ini) path)中php.ini的位置.

    末尾加入

    按键盘上的 i 开始编辑

    ctrl+f翻页拉到最下面在[zend]之前加入

extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
extension=memcache.so 

    按esc键,再输入

    :wq

    保存退出

    重启你的web服务器,比如apache

/etc/init.d/httpd restart 

    下面刷新下php探针,看下是不是有这个了,有的话就是装好了

memcache
version  2.2.5memcache
version  2.2.5 

 

下面安装memcached

    装memcached首先需要安装安装libevent

    如果是centos可以yum安装

# yum install libevent-devel 

    如果不支持yum的系统,可以这样装libevent

# cd /usr/local/src
# wget http://www.monkey.org/~provos/libevent-1.4.12-stable.tar.gz
# tar vxf libevent-1.4.12-stable.tar.gz
# cd libevent-1.4.12
# ./configure --prefix=/usr/local/libevent
# make && make install 

    接续安装memcached

# cd /usr/local/src
# wget http://cloud.github.com/downloads/saberma/saberma.github.com/memcached-1.4.4.tar.gz
# tar vxf memcached-1.4.4.tar.gz
# cd memcached-1.4.4
# ./configure --prefix=/usr/local/memcached
# make && make install 

    安装完后启动memcached并分配32m内存(32为使用内存数,可按自身情况修改)

/usr/local/memcached/bin/memcached -d -m 32 -l 127.0.0.1 -p 11211 -u root 

    将memcached加入启动项

# vi /etc/rc.d/rc.local 

    按键盘上的 i 开始编辑

    在最后加入

/usr/local/memcached/bin/memcached -d -m 32 -l 127.0.0.1 -p 11211 -u root 

    按esc键,再输入

    :wq

    保存退出

    如果需要,可以reboot一下,不过不用reboot应该已经生效~

    加速效果测试

    用没有什么负载的discuz x1做个测试,未启用时

gmt+8, 2010-9-12 09:08, processed in 0.038893 second(s), 2 queries. 

    缓存启用后的效果,不过总体感觉vps教程上效果不如用eaccelerato缓存加入效果那么明显

gmt+8, 2010-9-12 09:08, processed in 0.008383 second(s), 2 queries, memcache on. 

    完成

下面安装memcached

    装memcached首先需要安装安装libevent

    如果是centos可以yum安装

# yum install libevent-devel 

    如果不支持yum的系统,可以这样装libevent

# cd /usr/local/src
# wget http://www.monkey.org/~provos/libevent-1.4.12-stable.tar.gz
# tar vxf libevent-1.4.12-stable.tar.gz
# cd libevent-1.4.12
# ./configure --prefix=/usr/local/libevent
# make && make install 

    接续安装memcached

# cd /usr/local/src
# wget http://cloud.github.com/downloads/saberma/saberma.github.com/memcached-1.4.4.tar.gz
# tar vxf memcached-1.4.4.tar.gz
# cd memcached-1.4.4
# ./configure --prefix=/usr/local/memcached
# make && make install 

    安装完后启动memcached并分配32m内存(32为使用内存数,可按自身情况修改)

/usr/local/memcached/bin/memcached -d -m 32 -l 127.0.0.1 -p 11211 -u root 

    将memcached加入启动项

# vi /etc/rc.d/rc.local 

    按键盘上的 i 开始编辑

    在最后加入

/usr/local/memcached/bin/memcached -d -m 32 -l 127.0.0.1 -p 11211 -u root 

    按esc键,再输入

    :wq

    保存退出

    如果需要,可以reboot一下,不过不用reboot应该已经生效~

    加速效果测试

    用没有什么负载的discuz x1做个测试,未启用时

gmt+8, 2010-9-12 09:08, processed in 0.038893 second(s), 2 queries. 

    缓存启用后的效果,不过总体感觉vps上效果不如用eaccelerato缓存加入效果那么明显

gmt+8, 2010-9-12 09:08, processed in 0.008383 second(s), 2 queries, memcache on. 

    完成

<?php教程
if (!isset($_server["http_referer"]))
echo "no referer";
else
echo $_server["http_referer"];
?>

如果直接点击上面的链接,那么页面会显示referer页面的链接。
复制代码 代码如下:

set http = createobject("msxml2.xmlhttp")
http.open "get","http://www.111cn.net/test/referer.php",false
http.setrequestheader "referer","http://www.111cn.net"
http.send
wscript.echo http.responsetext


但是如果我用vbs调用msxml2.xmlhttp组件访问这个页面,返回的却是no referer。实在匪夷所思,难道我的代码写错了?


于是google了一下“vbs伪造http referer”,发现搜出来的内容大部分和这篇文章一样,不用看又是复制粘贴,你抄我的,我抄你的,抄来抄去不知道到底是谁的,而且还是错的!
那篇文章第一个例子是asp教程的


复制代码 代码如下:

dim http
set http=server.createobject("msxml2.xmlhttp")
http.open "get",url,false
http.setrequestheader "referer","http://www.fromdomain.cn/"
http.send()

开始我还以为asp下的vbs和我直接双击运行的vbs不一样,asp下的比较牛逼,可以改referer。为此我还专门装了iis测试,发现返回的照样是no referer。后来才看到下面的留言,“原谅我对asp不熟,给不了你什么帮助,自己查点其他资料参考一下吧”,“这我没怎么玩asp了,代码只是参考来的,asp的没测试过”。

我真的不想骂人,不熟你写也就算了,起码测试一下吧,没有测试过的代码你也好意思贴上来?后来在千一网络(这个网络貌似不错)看到一个比较靠谱的答案,referer在asp和ajax中是无法通过设置header来更改的。

怒了,既然xmlhttp组件不行,我用socket来写总行了吧!(注:不是所有电脑上都注册了winsock组件)


从当前文件夹添加全部 *.hlp 文件到压缩文件 help.rar 中

winrar a help *.hlp

从文件添加注释可以使用 -z<文件> 开关。
winrar c -zinfo.txt dummy

这样,我们就可以通过php教程调用cmd,运行上述两个winrar参数来做到批量修改rar文件的注释及添加压缩包的文件.需要注意的是,php在安全模式打开的情况下是不能直接调用cmd的.

下面的代码就是我通过我的数据库教程读取出文件路径并最终实现批量修改rar文件注释的方法.因为数据库是access,我新建了一个odbc源.同时rar.exe及cmd.exe都在1.php同目录下

<?
$id=$_get[id];
if($id==”")
{
echo “参数错误”;
exit;
}
if($id>=400)
{
echo “全部结束”;
exit;
}
$db=odbc_connect(”dw”,”",”");
$sql=”select * from `download` where `id`=$id”;
$query=odbc_exec($db,$sql);
$filename=odbc_result($query,2);
if($filename==”")
{

}
$filename=str_replace(”#1′,”",$filename);
$filename=str_replace(”#2′,”",$filename);
$filename=”soft/”.$filename;
echo $filename.”<br>”;
        if(!file_exists($filename))
        {
        echo “文件不存在,转到下一个id”;
        $id++;
        echo “<meta http-equiv=’refresh’

content=’0;url=../test/1.php?id=$id’>”;     
        exit;
        }//读出文件名,并检查文件是否存在
else
{
`winrar a $filename 使用说明.txt`;
echo “插入说明文件成功”;
$id++;
echo “<meta http-equiv=’refresh’ content=’0;url=../test/1.php?id=$id’>”;
}
odbc_close($db);
?>

 
 


××××××××××××××××××××
最近采集流行,可能许多朋友都尝试通过采集数据来建设一个内容丰富完善的站点.
可是,在某些时候我们通常采集得到的rar文件都被批量加了注释,这个时候如果将这些数据放到自己的站上无异于为人家做广告.
最近我也碰到了这样的问题,为此大伤脑筋,后来仔细的翻看winrar的帮助文件发现我们可以通过下面的方法来做到批量修改.
我们打开winrar的帮助文件,帮助文件中提到了在命令行模式下修改rar文件注释及添加压缩文档的两个参数分别为ac,winrar的说明文件如下:
从当前文件夹添加全部 *.hlp 文件到压缩文件 help.rar 中
winrar a help *.hlp

从文件添加注释可以使用 -z<文件> 开关。
winrar c -zinfo.txt dummy

[!--infotagslink--]

相关文章