Windows 下 php5+apache+mysql5 配置解说
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
相关文章
- VPN可以虚拟出一个专用网络,让远处的计算机和你相当于处在同一个局域网中,而中间的数据也可以实现加密传输,用处很大,特别是在一些大公司,分公司处在不同的区域。...2016-01-27
- 这篇文章主要介绍了Windows批量搜索并复制/剪切文件的批处理程序实例,需要的朋友可以参考下...2020-06-30
- 这篇文章主要为大家详细介绍了C#创建一个简单windows窗体应用的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
- 这篇文章主要介绍了Powershell 查询 Windows 日志的方法,需要的朋友可以参考下...2020-06-30
- 这篇文章主要介绍了jquery自定义插件开发之window的实现过程的相关资料,需要的朋友可以参考下...2016-05-09
- 这篇文章主要介绍了C#实现windows form限制文本框输入的方法,涉及C#限制文本框输入的技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
- 本文实例讲述了JS实现不使用图片仿Windows右键菜单效果代码。分享给大家供大家参考,具体如下:这里演示JS不使用图片仿Windows右键菜单效果,这款代码灵活使用了文鼎字,配合CSS和JS做出了这个和系统右键菜单很相似的东东。...2015-10-23
- 本篇文章主要介绍了详解Windows下安装Nodejs步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ...2017-05-22
C# Windows API应用之基于GetDesktopWindow获得桌面所有窗口句柄的方法
这篇文章主要介绍了C# Windows API应用之基于GetDesktopWindow获得桌面所有窗口句柄的方法,结合实例形式分析了GetDesktopWindow函数用于获取窗口句柄的具体使用方法与相关注意事项,需要的朋友可以参考下...2020-06-25- 作为一个新生事物,Linux吸引了不少眼球,但是它能否快捷、方便地与Windows资源共享,是一个很重要的问题。大家知道,Windows之间可以利用“网络邻居”来实现资源共享,而Linux...2016-11-25
- 这篇文章主要介绍了利用C#修改Windows操作系统时间,帮助大家更好的利用c#操作系统,感兴趣的朋友可以了解下...2020-12-08
Apache启动报错No space left on device: AH00023该怎么解决
Apache启动报错No space left on device: AH00023错误可能是进程导致了,虽然小编不知道什么原因但网上提供的解决办法确实是可以解决我们的问题,下面来看看。对于这类错误是因为linux系统的ipc信号量造成的,apache启动时...2015-10-21- 本文我们将分享apache配置黑名单和白名单,apache层的账户权限控制,以及apache黑名单白名单过滤功能,apache rewrite规则实现白名单。 apache配置黑名单和白名单的两...2016-09-14
C#3.0使用EventLog类写Windows事件日志的方法
这篇文章主要介绍了C#3.0使用EventLog类写Windows事件日志的方法,以简单实例形式分析了C#写windows事件日志的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25- 今天在用百度工具检测时发,发现有个提示如下 原来可以开启gzip啊,因为我的是apache所以和iis不同,经过网站搜索开启方法如下 一,找到你的httpd.conf文件,打开找到如下 ...2016-01-28
浅谈vue 组件中的setInterval方法和window的不同
这篇文章主要介绍了浅谈vue 组件中的setInterval方法和window的不同,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-30- 下面小编就为大家带来一篇jquery自定义插件——window的实现【示例代码】。小编觉得挺不错的,现在分享给大家,也给大家做个参考...2016-05-09
解决PHPstudy Apache无法启动的问题【亲测有效】
这篇文章主要介绍了PHPstudy Apache无法启动的问题及解决方法【亲测有效】,本文给大家总结了三种方法供大家参考,需要的朋友可以参考下...2020-10-30apache http server遇到了一个问题,需要关闭
重装系统后,重新安装了xamp,最近启动的时候经常报apache http server遇到了一个问题,需要关闭,显示如图: 解决方法:查看szModName报错的模块,然后把PHP安装目录下对应的模块...2016-01-28Windows Server 2012 R2或2016无法安装.NET Framework 3.5.1的解决方法
这篇文章主要为大家详细介绍了Windows Server 2012 R2或2016无法安装.NET Framework 3.5.1,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-07-06