ホームページ >バックエンド開発 >PHPチュートリアル >Windows のアセンブリと構成 Apache PHP サーバー

Windows のアセンブリと構成 Apache PHP サーバー

WBOY
WBOYオリジナル
2016-06-13 12:35:422580ブラウズ

Windows のインストールと構成 Apache PHP サーバー

Apache サーバーのダウンロードとインストール

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

PHP サーバーをダウンロードしてインストールします

公式サイトからダウンロードするのがベストです。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 をダウンロードしました。

Apache サーバーと PHP サーバーの構成

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

4. php.ini で、extension_dir をインストールしたパスの ext に変更します (例: extension_dir = "D:my projectphp-5.4.20-Win32-VC9-x86ext")。

Apache サーバーと PHP サーバーのテスト

1.upload.html のコードは次のとおりです:

<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>


2.upload_file_web.php コードは次のとおりです:

<?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 パスに配置します。

4. Apache の httpd ファイルで実行順序を変更します。

ディレクトリインデックスアップロード.html

5. テストのために、DocumentRoot の下のアップロード フォルダーにファイルをアップロードできます。

$_FILES について

これはファイルのグローバル配列ですが、C++ と IE でテストしたときは、 file_put_contents("abb.txt", var_export($_FILES,true));

を使用しました。

印刷内容は以下のように異なります。

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


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。