ホームページ > バックエンド開発 > PHPチュートリアル > win7 64 ビット Apache http サーバー + PHP 構成

win7 64 ビット Apache http サーバー + PHP 構成

WBOY
リリース: 2016-07-25 09:12:06
オリジナル
1130 人が閲覧しました

1. まず、apache http サーバーをダウンロードします (当初は公式 Web サイトからダウンロードしたかったのですが、長時間探しても見つからなかったので、この Web サイトから古いバージョンをダウンロードしました)。 : http://download.csdn .net/download/chang87812/7175961

PHP のダウンロード: 同様に、公式 Web サイト (URL: (http://windows.php.net/downloads/releases/)) から最新バージョンをダウンロードしました

しかし、設定後に問題が発生しました。

問題は次のとおりです: httpd: D:/PHP/server/httpd-2.2-x64/conf/httpd.conf の 129 行目の構文エラー: D:/ApaServ/php/php5apache2_4.dll をサーバーにロードできません: a3.

その理由は、このファイルはバージョンに対応している必要があり、そうでない場合はロードできないためです。その後、同じプロンプトが再び表示されましたが、php5.4.8 に変更されました。174 行目で、「D:ApaServphpphp5apache2_4.dll」のアクティブ化コンテキストの生成に失敗しました。 依存アセンブリ vcredist_x86.exe が見つかりません。その後、解決策は次のとおりです。 vcredist_x86.exe を再インストールします。これは、Apache をインストールする前にインストールされていたため、内部のファイルが書き換えられた可能性があります。オンラインでも調べました。 C:Program FilesMicrosoft Visual Studio 8VCredi stDebug_NonRedistx86Microsoft.VC80.DebugCRT のような場所に次のファイルを見つけました。

msvcm80d.dll msvcp80d.dll msvcr80d.dll Microsoft.VC80.DebugCRT.manifest これらのファイルをターゲット上にコピーします。マシンの場合は、実行中のプログラムと同じフォルダーに置くか、system32 の下に置くと、正しく実行されます。
他のリリース バージョン、MFC プログラムなどの場合は、redist の下の対応するフォルダーにファイルをコピーするだけです。
フォルダーの後に記号があります。

このヒントを受け取った後、私はこれを思い出しました。

その後、php5.5をインストールするときに、再びこのエラーメッセージが表示されました。最初は自分の理解に従ってVC++2010ランタイムライブラリをインストールしましたが、どのようにデバッグしても、依然としてこのエラーが発生しました。インターネットから VC の最高バージョンの ++2012 ランタイム ライブラリをダウンロードすると、すぐに成功しました。 (この理由はインターネットで見つけましたが、実践していません。もう VC++2012 ランタイム ライブラリをインストールしたくないです!!!)

そこで、インターネットで古いバージョンの PHP を見つけました。ダウンロード URL: http://download.csdn.net/download/tonyyxm/5428271

2.Apacheをインストールします

1. 32 ビット Apache とは異なり、exe ファイルにパッケージ化して直接インストールできます。まず、httpd-2.2.19-win64 を E:/server/apache- httpd-2.2.19-win64/ ( /*E は特定のサーバー ファイルが配置されているドライブ文字です */)

2. 管理者としてコマンド プロンプトを実行し ([スタート]、[プログラム]、[アクセサリ])、「E:/server/apache-httpd-2.2.19-win64/

」と​​入力します。

3. httpd -k installを実行します

ここで問題が発生しました: winNT サービス マネージャーを開けませんでした

解決策: インストール中に、ソフトウェアが Windows 7 の「ユーザー アカウント制御」(UAC) と競合することが判明しました。まず UAC をオフにしてください (コントロール パネル - ユーザー アカウントとファミリー セキュリティ - システムとセキュリティ - アクション センター)。 「ユーザーアカウント制御の変更」があるので、「通知しない」に変更すれば再起動が必要になります。インストールが完了したら、元に戻してください。

4. httpd.conf を変更します。ここでの設定は 32 ビット システムの場合と同じです

(1) ServerRoot「E:/server/httpd-2.2.19-win64/」を変更します

(2) 下に進むと、#LoadModule vhost_alias_module modules/mod_vhost_alias.so など、Apache によって有効化された関数モジュールが表示されます。

後で追加されたモジュール:

LoadModule php5_module "E:/Server/php-5.3.6-Win32-VC9-x64/php5apache2_2.dll"

PHPiniDir "E:/Server/php-5.3.6-Win32-VC9-x64/"

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

(3) 引き続き下に進み、DocumentRoot "E:/Code/PHP/" 行を見つけて Web ページ ファイル ディレクトリを設定します。この行は # 行の後の

directory 設定に対応するように変更する必要があります。 DocumentRoot を

に設定します 5. コマンドプロンプトで httpd -k start を再度実行します。エラーは発生せず、Apache サービスが正常に開始されます。

6. Apache サーバーをシャットダウンします: httpd -k shutdown を実行します

3.PHPを設定する

1. 前述したように、php ディレクトリを E:/Server/php-5.3.6-Win32-VC9-x64/ に解凍します。これは、前の手順で Apache に設定した LoadModule の場所に対応します。

2. php.ini-development を php.ini に変更します。

3. php.ini を開き、extension_dir を見つけて、その値を E:/Server/php-5.3.6-Win32-VC9-x64/ext/ に変更します。これは、php ファイルが配置されているディレクトリです

4. 拡張機能のリストを見つけて、;extension=php_gd2.dll、;extension=php_mysql.dll、;extension=php_mysqli.dll の前の「;」を削除して、拡張機能を有効にします。のみであり、機能に応じて調整できます。異なる要件が必要ですが、対応する拡張機能を有効にしてください

5. (オプション) date.timezone の値を Asia/Shanghai に設定します。つまり、date.timezone =Asia/Shanghai です。

6. E:/Code/PHP/ に次の内容の test.php ファイルを作成します。

phpinfo(); ?>

次に、ブラウザのアドレスバーに http://localhost/test.php と入力します

上記の設定プロセスは他の人に属しています。私が設定した後、次の 2 つの問題が発生しました:

1. httpd: サーバーの完全修飾を確実に判断できませんでした

解決策:

前書き: Apache は実行できますが、「httpd.exe: 192.168 を使用してサーバーの完全修飾ドメイン名を確実に決定できませんでした。他のものがポート 80 を占有しています。」というエラーが表示されました。コマンドプロンプトで netstat -ano と入力し、すべての接続の PID を確認します。タスク マネージャーでこの PID に対応するプログラムを見つけます。1 つの項目については、[表示] - [] を選択します。タスクマネージャーで「列」を選択してください

アプリケーションを起動すると、システムに必要なポートが他のプログラムによって占有されていることがよくあります。必要なポートを誰が占有しているかをどうやって知ることができますか? 多くの人が疑問に思っていますが、これはかなりの頭痛の種です。これは非常に簡単な方法です。誰が 80 ポートを占有しているかを確認する必要がある場合は、Windows プラットフォームで次のコマンドを実行します。 C:>netstat -aon | findstr "80" TCP 127.0.0.1:80 0.0.0.0:0 LISTENING 2448
ポートがプロセス番号 2448 のプロセスによって占有されていることがわかりましたか? 次のコマンドの実行を続けます:
C:>tasklist|findstr " 2448"
thread.exe 2016 Console 0 16,064 K
それは非常に明らかです、スレッドがポートを占有しています、それを強制終了してください
2 番目のステップで見つからない場合は、タスク マネージャーを開いて、どのプロセスが 2448 であるかを確認してから、それを殺します。
必要に応じて他のポートを確認してください。 80 を変更するだけです
追加: このエラー (httpd.exe: ServerName に 192.168.1.111 を使用して、サーバーの完全修飾ドメイン名を確実に決定できませんでした) の原因は、DNS が正しく構成されていないためであることがわかりました。 DNS を設定する必要はありません。httpd.conf の先頭に ServerName localhost:80 を追加するだけです

2. 「(OS 10013) アクセス許可で許可されていない方法でソケットにアクセスしようとしました。: make_sock: アドレス 0.0.0.0:80 にバインドできませんでした」


解決策:
ポートを変更し、.apacheconfhttpd.conf を開き、その中の 80 をすべて 81 に変更し、保存して Apache を再起動すれば OK。

ポートを変更した後、次の URL にアクセスします: http://localhost:81/test.php

スクリーンショット:

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート