apaqi php,windows装配和配置阿帕奇+PHP服务器

本文详细介绍了在Windows环境下如何下载和配置Apache与PHP服务器,包括选择正确的PHP版本,修改Apache配置文件以加载PHP模块,以及进行文件上传功能的测试。在配置过程中遇到了$_FILES全局数组在不同客户端显示不同的问题,并给出了原因分析。最后,通过C++客户端与PHP服务器的交互实现了文件上传功能。
摘要由CSDN通过智能技术生成

windows安装和配置阿帕奇+PHP服务器

下载和安装阿帕奇服务器

参考:http://blog.csdn.net/wujunokay/article/details/12707259

下载和安装PHP服务器

这个最好到官方网站下载,有zip,也有安装的,我下载的是zip的,解压后,就可以直接用了。

关于版本有的里面没有php5apache2_2.dll,原因是版本不对,如何来判断版本呢?

v6c又有两个版本如下:

vc6 x86 non thread safe

vc6 x86 thread safe

以上两个版本中,non thread safe版的php在安装过程中,

没有apache的选项:

select the web server you wish to setup

iis fastcgi

other cgi

do not setup a web server

而thread safe版的安装过程中有apache 2.2.x module选项:

select the web server you wish to setup

apache 2.2.x module

apache cgi

iis fastcgi

iis cgi

nsapi

xitami

netserve web server

other cgi

do not setup a web server

如果要用php5apache2_2.dll,就要下载 x86 thread safe 系列的,我下载的是php-5.4.20-Win32-VC9-x86。

配置阿帕奇和PHP服务器

1.将你php安装目录下的文件php.ini-development改名字为php.ini。

2.配置upload_tmp_dir =路径,比如upload_tmp_dir="D:\myphpTmp"。

3.在阿帕奇的httpd文件里增加:

LoadModule php5_module "d:/my program/php-5.4.20-Win32-VC9-x86/php5apache2_2.dll"

PHPIniDir "d:/my program/php-5.4.20-Win32-VC9-x86"

AddType application/x-httpd-php .php .html .htm

4.在php.ini里:extension_dir改成自己安装的路径里的ext,比如:extension_dir = "D:\my program\php-5.4.20-Win32-VC9-x86\ext"。

测试阿帕奇和PHP服务器

1.upload.html里代码如下:

Filename:

2.upload_file_web.php代码如下:

0)

{

//echo "Error: " . $_FILES["trackdata"]["error"] . "

";

$error = "200";

}

else

{

//echo "Upload: " . $_FILES["trackdata"]["name"] . "

";

//echo "Type: " . $_FILES["trackdata"]["type"] . "

";

//echo "Size: " . ($_FILES["trackdata"]["size"] / 1024) . " Kb

";

//echo "Stored in: " . $_FILES["trackdata"]["tmp_name"]. "

" ;

}

if (file_exists("upload/" . $_FILES["trackdata"]["name"]))

{

//echo $_FILES["trackdata"]["name"] . " already exists. ";

$error = "201";

}

else

{

move_uploaded_file($_FILES["trackdata"]["tmp_name"],"upload/" . $_FILES["trackdata"]["name"]);

//echo "Stored in: " . "upload/" . $_FILES["trackdata"]["name"];

$error = 202;

}

echo $error ;

return $error;

}

?>

3.将这2个文件放到httpd配置的DocumentRoot的路径下。

4.在阿帕奇的httpd文件修改这里的执行顺序:

DirectoryIndex upload.html

5.测试,可以把文件上传到DocumentRoot下的upload文件夹里。

关于$_FILES

这个是一个文件的全局数组,但是我在用C++和IE测试的时候,用file_put_contents("abb.txt", var_export($_FILES,true));

打印出来内容不一样,如下:

点IE里是这样的:

array (

'file' =>

array (

'name' => 'test3.txt',

'type' => 'text/plain',

'tmp_name' => 'D:\\my program\\php-5.4.20-Win32-VC9-x86\\temp\\php49A.tmp',

'error' => 0,

'size' => 16,

),

)

用vc++客户端是这样的:

array (

'trackdata' =>

array (

'name' => 'test3.txt',

'type' => 'application/x-www-form-urlencoded',

'tmp_name' => 'D:\\my program\\php-5.4.20-Win32-VC9-x86\\temp\\php49F.tmp',

'error' => 0,

'size' => 16,

),

)

查找原因,分析如下:

原因是在VC中

strFormat += _T("Content-Disposition: form-data; name=\"trackdata\"; filename=\"%s\"");

strFormat += _T("\r\n");

//strFormat += _T("Content-Type: audio/wav");

strFormat += _T("Content-Type: application/x-www-form-urlencoded");

strFormat += _T("\r\n");

strFormat += _T("Content-Transfer-Encoding: binary");

在upload.html里

所以在引用的时候分别是

$_FILES["trackdata"]["error"]、_FILES["trackdata"]["type"]、_FILES["trackdata"]["name"]和

$_FILES["file"]["error"]、_FILES["file"]["type"]、_FILES["file"]["name"]。

后记

首先,对php不熟悉,要用阿帕奇http服务器实现c++文件上传和下载功能,先是装了阿帕奇服务器,但始终不能上传成功,在网上找一些资料,装了php服务器,可以上传成功,然后装了php服务器,测试结果是可以上传成功。那就说明阿帕奇服务器配置应该是没问题的,php这边可以,那c++也可以。那问题就是c++如果调用url,吧数据传递给服务器的问题了。这里要感谢一个网友,是北京的做php的,有他的热心帮助,才调试通c++和php,实现上传的功能。目前只能说,测试通了,还有很多性能和功能需要优化的。同样会遇到一些问题,不过只要想办法去解决,一定会有所收获的。

转载请注明原创链接:http://blog.csdn.net/wujunokay/article/details/12833127

相关文章

相关视频

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值