ホームページ >バックエンド開発 >PHPチュートリアル >Windows のアセンブリと構成 Apache PHP サーバー
Windows のインストールと構成 Apache PHP サーバー
参考: http://blog.csdn.net/wujunokay/article/details/12707259
公式サイトからダウンロードするのがベストです。zip とインストールがあります。私がダウンロードしたものは解凍後、直接使用できます。
バージョンについてですが、php5apache2_2.dllが入っていないものもあります。バージョンの判断方法は?
v6c にはさらに次の 2 つのバージョンがあります:
vc6 x86 非スレッドセーフ
vc6 x86 スレッドセーフ
上記の 2 つのバージョンのうち、スレッドセーフではないバージョンの php がインストール プロセスにあります
Apache のオプションはありません:
セットアップする Web サーバーを選択します
iis fastcgi
他の CGI
Web サーバーをセットアップしないでください
スレッド セーフ バージョンには、インストール中に Apache 2.2.x モジュール オプションがあります:
セットアップする Web サーバーを選択します
Apache 2.2.x モジュール
apache CGI
iis fastcgi
iis CGI
ンサピ
西丹
ネットサーブ Web サーバー
他の CGI
Web サーバーをセットアップしないでください
php5apache2_2.dll を使用したい場合は、x86 スレッド セーフ シリーズをダウンロードする必要があります。php-5.4.20-Win32-VC9-x86 をダウンロードしました。
1. php インストール ディレクトリ内のファイル php.ini-development の名前を php.ini に変更します。
2. Upload_tmp_dir = パス (upload_tmp_dir="D:myphpTmp" など) を構成します。
3. Apache の httpd ファイルに以下を追加します。
LoadModule php5_module "d:/my Program/php-5.4.20-Win32-VC9-x86/php5apache2_2.dll"
PHPIniDir "d:/私のプログラム/php-5.4.20-Win32-VC9-x86"
AddType application/x-httpd-php .php .html .htm
<html> <body> <form action="upload_file_web.php" method="post" enctype="multipart/form-data"> <label for="file">Filename:</label> <input type="file" name="file" id="file" /> <br /> <input type="submit" name="submit" value="Submit" /> </form> </body> </html>
<?php //$file = $_GET['filename']; //file_put_contents("aaa.txt", var_export($file,true)); file_put_contents("abb.txt", var_export($_FILES,true)); upload_file(); function upload_file() { $error; if ($_FILES["trackdata"]["error"] > 0) { //echo "Error: " . $_FILES["trackdata"]["error"] . "<br />"; $error = "200"; } else { //echo "Upload: " . $_FILES["trackdata"]["name"] . "<br />"; //echo "Type: " . $_FILES["trackdata"]["type"] . "<br />"; //echo "Size: " . ($_FILES["trackdata"]["size"] / 1024) . " Kb<br />"; //echo "Stored in: " . $_FILES["trackdata"]["tmp_name"]. "<br />" ; } 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 パスに配置します。
ディレクトリインデックスアップロード.html
5. テストのために、DocumentRoot の下のアップロード フォルダーにファイルをアップロードできます。
を使用しました。
印刷内容は以下のように異なります。IE をクリックすると次のように表示されます:
配列 (
'ファイル' =>
配列 (
'名前' => 'test3.txt',
'type' => 'text/plain',
'tmp_name' => 'D:\my Program\php-5.4.20-Win32-VC9-x86\temp\php49A.tmp',
'エラー' => 0,
'サイズ' => 16、
)、
)
vc++ クライアントの使用は次のようになります:
配列 (
'トラックデータ' =>
配列 (
'名前' => 'test3.txt',
'type' => 'application/x-www-form-urlencoded',
'tmp_name' => 'D:\my Program\php-5.4.20-Win32-VC9-x86\temp\php49F.tmp',
'エラー' => 0,
'サイズ' => 16、
)、
)
その理由はVCにあります
strFormat += _T("Content-Disposition: form-data; name="trackdata"; filename="%s"");
strFormat += _T("rn");
//strFormat += _T("Content-Type: audio/wav");
strFormat += _T("Content-Type: application/x-www-form-urlencoded");
strFormat += _T("rn");
strFormat += _T("コンテンツ転送エンコーディング: バイナリ");
Upload.html 内
a9668bd4d44eba65bdd88749b4a93570
したがって、引用する場合は
となります。
$_FILES["trackdata"]["error"]、_FILES["trackdata"]["type"]、_FILES["trackdata"]["name"]、および
$_FILES["ファイル"]["エラー"]、_FILES["ファイル"]["タイプ"]、_FILES["ファイル"]["名前"]。
まず、私は PHP に詳しくありません。C++ ファイルのアップロードおよびダウンロード機能を実装するには、Apache http サーバーを使用する必要があります。最初に Apache サーバーをインストールしましたが、まだアップロードが成功しないことがいくつかありました。インターネット上の情報を確認し、PHP サーバーをインストールすると、アップロードが成功することが確認されました。つまり、Apache サーバーの構成に問題はなく、PHP も C++ も問題ありません。問題は、C++ が URL を呼び出すと、データがサーバーに渡されることです。北京で PHP に取り組むネットユーザーに感謝します。彼の熱心な協力により、アップロード機能を実現するために C++ と PHP をデバッグすることができました。現時点ではテストは合格したとしか言えませんが、性能や機能にはまだまだ最適化が必要な部分がたくさんあります。いくつかの問題に遭遇することもありますが、それを解決する方法を見つければ、必ず何かを得ることができます。
転載する場合は元のリンクを示してください: http://blog.csdn.net/wujunokay/article/details/12833127