WindowsでPHPサポートとMySQLサーバーを使用してApacheをインストールする方法without WAMPServerやXAMPPなどのすぐに使用できるパッケージを使用しますか?
まず、Apache for Windowsの Platform Specific Notes を読むことをお勧めします-他のOSにはないサービスとして実行するなど、Windows固有の機能について説明します。 。
これらのプラットフォーム固有の注意事項で述べたように、ApacheはWindows用のバイナリを提供しませんが、バイナリを提供するいくつかのサードパーティサイトへのリンクがあります。たとえば、 Apache Lounge です。
そのWebサイトから、32ビットバージョン(win32)または64ビットバージョン(Win64)のいずれかをダウンロードできます。OSが64ビットの場合は、常に64ビットバージョンのソフトウェアをインストールする必要がありますが、 '64ビットモジュールも使用する必要があります。つまり、32ビットモジュールしかない場合は、32ビットApacheをダウンロードします。
これを書くときに使用したバージョンは次のとおりです:Apache 2.4.10 Win64。この回答が最後に更新されたときの最新バージョン: Apache 2.4.38 Win64 (投稿の下部にある編集日を見てください)。
ダウンロードしたら、Apache24
フォルダーをハードドライブのルートに展開するだけで、C:\Apache24\bin
のようなパスが得られます。
コマンドラインウィンドウを開き(Windows + Rを入力し、cmd
と入力してEnterキーを押します)、ディレクトリをC:\Apache24\bin
に変更し、httpd.exe
を実行します。通常、エラーは出力されません。
MSVCR110.dll
がシステムにないことを示すエラーダイアログが表示される場合は、 Visual Studio 2012のVisual C++再頒布可能パッケージ をインストールする必要があります。ビットバージョン:32ビットシステムの場合はvcredist_x86.exe
、64ビットシステムの場合はvcredist_x64.exe
。
ポート80にバインドできないというエラーが表示された場合は、別のアプリケーションがそのポートを使用しているかどうかを確認します。Skypeはデフォルトでポート80および443を使用することがわかっています。 接続の詳細設定で「着信接続の代替としてポート80と443を使用する」のチェックを外す 、Skypeを再起動して変更を適用すると、問題なくApacheを起動できるはずです。
Could not reliably determine the server's fully qualified domain name
のような警告は今のところ無視できます。
Windowsファイアウォールは、Apacheが特定のネットワークで通信することを許可するようプロンプトを表示する場合があります。デフォルト設定を使用することをお勧めします。ホームネットワークと職場ネットワークで許可しますが、パブリック/信頼できないネットワークでは許可しません。
次に、ブラウザを開いてhttp://localhost
を参照します。It works !
というページが表示されている場合は、Apacheインストールが機能していることを意味します。
コマンドプロンプトでCtrl + Cを押すと、現在実行中のApacheを停止できるようになりました。
システムの完全修飾ドメイン名を特定できないという警告が表示された場合は、C:\Apache24\conf\httpd.conf
を編集し、ServerName
変数を編集して修正します(コメントに既にあるはずです。コメントを外して変更してください)。
ServerName <yourhostname>
<yourhostname>
をシステムのホスト名またはlocalhost
に置き換えます。
最後に、システムの起動時に(誰もログインしていない場合でも)サーバーを自動的に実行したい場合は、サービスとして実行する必要があります-新しい(管理者としての)コマンドプロンプトで、次のように入力します:
httpd.exe -k install
これで、他のWindowsサービスと同じように制御できる「Apache2.4」という名前のサービス(Windows + Rを入力してから「services.msc」を入力してEnterキーを押す)に新しいサービスが追加されました。
localhost
のみに制限する-optional開発目的でこれを設定している場合、アクセスできる人以外に誰もアクセスできないようにしたい場合は、ファイアウォールが既にそれを処理する必要がありますが、ローカルからのリクエストを受け入れるようにApacheに指示して、セキュリティの別のレイヤーを追加しましょうマシンのみ。
Apacheの構成ファイルC:\Apache24\conf\httpd.conf
を開き、デフォルトのディレクトリブロック<Directory "c:/Apache24/htdocs">
を検索します。
最後にRequire all granted
行があるはずです。これは誰でもこのサーバーにアクセスできることを意味します。ローカルマシンからのアクセスのみを許可するRequire local
を作成しましょう。
また、Apacheにループバックインターフェイスのみにバインドするように指示することもできます。その場合、上記のファイアウォールとアクセス制御ディレクティブの両方が失敗しても、サーバーはインターネット全体に対して開かれません。
このために、Listen
ディレクティブを見つけて(デフォルトでは80
に設定されます)、次のように変更します。
Listen 127.0.0.1:80
Listen [::1]:80
最初の行は自明であり、2行目は最初の行と同等のIPv6です。ブラケットは、IPv6表記でアドレスとポートを区切るために使用されます。
ファイルを保存します。すでにサーバーを実行している場合は、変更を考慮に入れて再起動し、localhost
のみがアクセスできるようになり、他のすべてのユーザーは403 Forbidden
を取得します。
Windowsシステムへのインストールについて 公式PHPドキュメント を読むことをお勧めします。
公式の PHP for Windowsダウンロードページ から最新のPHPバイナリをダウンロードし、Apacheインストールのビットバージョン(x86 for 32ビット、x64 for 64ビット)。
非スレッドセーフバージョンは、CGIバイナリとして実行している場合のみです-詳細 here 。
私が使用したバージョンはこれです:PHP 5.6.2 VC11 x64 Thread Safe。この回答が最後に更新された最新バージョン: PHP 7.3.3 VC15 x64 Thread Safe (投稿の下部にある編集日をご覧ください)。
ハードドライブのルートに空のPHP
フォルダーを作成し、以前にダウンロードしたアーカイブをそこに解凍します。C:\PHP\ext
のようなパスが必要です。
C:\PHP
で、php.ini-production
またはphp.ini-development
(必要に応じて)の名前をphp.ini
に変更します。
そのphp.ini
ファイルを開き、extension_dir = "ext"
を検索して、その行のコメントを解除します(最初の;
を削除します)。これにより、デフォルトの拡張子dirがext
に設定されます(これはC:\PHP\ext
に解決され、この投稿の以前のバージョンのようにext/
をすべての拡張子のパスに手動で追加する必要がなくなります。
次に、C:\Apache24\conf\httpd.conf
を編集して、そのPHPを使用するようにApacheを構成します。すべてのLoadModule
行の後に、以下を追加します。
(以下はPHP 7の場合only)
LoadModule php7_module "c:\php\php7Apache2_4.dll"
<IfModule php7_module>
AddHandler application/x-httpd-php .php
AddType application/x-httpd-php .php .html
PHPIniDir "c:\php"
</IfModule>
(以下はPHP 5の場合only)
LoadModule php5_module C:/PHP/php5Apache2_4.dll
<IfModule php5_module>
DirectoryIndex index.html index.php
AddHandler application/x-httpd-php .php
PHPIniDir "C:/PHP"
</IfModule>
C:\Apache24\bin
でコマンドプロンプトを開き、httpd.exe
を実行して、Apacheを手動で起動してみます-エラーが表示されない場合は、構成ファイルが有効でPHPが最も可能性の高い作業。
PHPのインストールをテストするには、info.php
のようなファイルを<?php phpinfo();
で作成し、http://localhost/info.php
に移動します。システムに関するかなりの情報とPHPインストールとそのすべてのモジュール。 「内部サーバーエラー」のような何か他のものを得る場合それは何かが間違っていることを意味します。
これで、現在のApacheプロセスを終了(コンソールでCtrl + C)してサービスを開始できます。次の部分はApacheと対話せず、既に起動したサーバーで実行できます。
Composerは、パッケージマネージャーのような、PHPの依存関係管理用のツールです。 PHPパッケージ、さらにはフレームワーク全体を簡単にインストールできます。
ComposerではPHP OpenSSL拡張機能を有効にする必要があるため、C:\PHP\php.ini
で有効にします。
テキストエディターの検索機能を使用してphp_openssl.dll
を検索します。既にコメント行が存在するはずです。その行のコメントを外してください。
ComposerのWindowsインストーラーを ダウンロードページ からダウンロードするか、これを使用してください 直接リンク 。
手順に従って、PHPへのパスを求められたら、C:\PHP
を参照し、php.exe
を選択します。
これで、Composerがシステム全体にインストールされ、どこからでも使用できるようになりました。試して、新しいコマンドプロンプトを開くだけです(既に開いているものは読む必要があるため使用できません) Composerのインストーラーによって設定された新しいPATH
変数)およびタイプcomposer
。
Nice ASCII-artロゴと次のようなものを取得する必要があります。
Composer version e87bc894daf8d5f8e77a01dd7ae5f0446ae30b14 2014-05-01 15:40:28
PHPからMySQLデータベースにアクセスする場合は、php_mysqli
やphp_pdo_mysql
などの拡張機能を有効にする必要があります。両方を有効にすることをお勧めします。
PHPの構成ファイルC:\PHP\php.ini
をテキストエディターで開き、php_mysqli
またはphp_pdo_mysql
を検索します。既に存在しているはずなので、コメントを外します。
完了、 mysqli
または PDO
を使用して、MySQLデータベースにアクセスできるようになりました。
MySQLインストーラーのダウンロードページ で、Webインストーラーmysql-installer-web-community-xxxxx.msi
をダウンロードします。
Mysql-installer-web-community-5.6.21.1.msiを使用しました。この回答が最後に更新された最新バージョン: mysql-installer-web-community-8.0.15.0.msi (投稿の下部にある編集日をご覧ください)。
MySQLのビットバージョンはApacheやPHPのバージョンと一致する必要はありませんが、64を使用することは依然として有益ですが、インストーラーはシステムに応じて適切なバージョン(32ビットまたは64ビット)を自動的にインストールしますシステムの-bitバージョンは、 GBのRAM 以上を活用するためにサポートしています。これは、データベースサーバーが大量のRAMを使用する傾向があるため、非常に重要です。
インストーラーの手順に従ってください。開発用にこれをインストールする場合、Developer default
が最適なオプションになります。ネイティブGUIクライアントであるMySQL Workbenchもインストールするため、遅いWebをインストールする必要がありません。コマンドラインクライアントの使用に慣れていない場合は、PHPMyAdminなどのベースのツール。
すべてがインストールされると、インストーラはいくつかの基本的な設定値を尋ねます。ネットワーク上の別のマシンからデータベースにアクセスする場合を除き、「ネットワークアクセス用にファイアウォールポートを開く」を無効にすることをお勧めします。
ルートパスワードを設定します-開発目的のみであり、ファイアウォールがネットワークからの着信接続をブロックする場合、強力なパスワードは必要ありません。
最後に、トレイアイコンを右クリックして[アクション]-> [オプション]を選択し、Run at Windows Startup
チェックボックスをオフにして適用すると、不要なMySQL Notifierを無効にできます。これにより、数MBのRAMが節約され、起動時にマシンの速度が低下することを回避できます。
これで、サービスとして実行され、ユーザーに依存しない完全に機能するWAMPサーバーができました(誰もログインしていない場合でもアクセス可能です)。
このセキュリティについてはわからないことに注意してください、開発目的では、ファイアウォールはApache(ポート80および/または443)の着信接続をブロックする必要があるため、これはかなり安全だと思いますMySQL(ポート3306)
これはWindows 7のインストールでテストされましたが、Vista、Windows 8、おそらくWindows Server 2008/2012でも正常に動作するはずです-そうでない場合は自由にコメントや投票を行ってください
上記の回答の指示は2017年7月現在で完全に機能しますが、PHP 7を使用する場合は、その回答の中ではなく次の行をC:\Apache24\conf\httpd.conf
に追加する必要がありますPHP 5)[すべてのLoadModule
行の後に次を追加]:
LoadModule php7_module C:/PHP/php7Apache2_4.dll
<IfModule php7_module>
DirectoryIndex index.html index.php
AddHandler application/x-httpd-php .php
PHPIniDir "C:/PHP"
</IfModule>
すべてのパスが正しいことを確認してください。 PHPディレクトリにphp7Apache2_4.dll
がない場合は、間違ったパッケージをダウンロードした可能性があります。