WAMPServerやXAMPPのようなすぐに使えるパッケージを使わずに、PHPサポートのApacheとMySQLサーバをWindowsにインストールするには?
51 None 2014-04-30
Apache
最初に、Windows 用の Apache の プラットフォーム固有の注意事項 を読むことをお勧めします – 他の OS にはない、おそらく今まで使ったことのないサービスとしての動作など、Windows 固有の機能が説明されています
これらのプラットフォーム固有の注意事項で述べたように、Apache は Windows 用のバイナリを提供していませんが、 Apache Lounge のようなバイナリを提供するいくつかのサードパーティのサイトへのリンクがあります
そのウェブサイトから、32ビット版(win32)と64ビット版(Win64)のどちらかをダウンロードすることができます – もしあなたのOSが64ビットならば、常に64ビット版のソフトウェアをインストールしようとするべきですが、64ビットモジュールを使用する必要があることに注意してください
これを書いたときに使用したバージョンは以下の通りです。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 C++ Redistributable for Visual Studio 2012 をインストールする必要があります。32ビットシステムではvcredist_x86.exe
を、64ビットシステムではvcredist_x64.exe
を選択してください
高度な接続設定で “着信接続の代替としてポート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 “という名前の新しいサービスがServices (Windows+Rで “services.msc “と入力してEnterキーを押します)に追加されました
Apache のアクセスを localhost
のみに制限する – オプション
開発目的で設定しているのであれば、自分以外の誰にもアクセスできないようにしたいと思います
Apache の設定ファイル C:\Apache24\conf\httpd.conf
を開き、デフォルトのディレクトリブロック <Directory "c:/Apache24/htdocs">
を検索します
これは誰でもこのサーバにアクセスできることを意味します。これをローカルマシンからのアクセスのみを許可する Require local
にしてみましょう
また、ループバックインターフェースにのみバインドするように Apache に指示することもできます。 そうすることで、ファイアウォールと上記のアクセス制御ディレクティブの両方が失敗しても、 サーバはインターネット全体には開放されません
そのためには、Listen
ディレクティブを見つけて (デフォルトでは 80
に設定されています)、次のように変更してください
Listen 127.0.0.1:80
Listen [::1]:80
最初の行は自己説明的なもので、2番目の行は最初の行のIPv6相当のもので、IPv6表記ではアドレスとポートを分離するためにカッコが使われています
ファイルを保存してください。もしあなたがすでにサーバを実行しているならば、私たちの変更を考慮に入れて再起動してください
PHP
Windows システムへのインストールについては、公式の PHP ドキュメントを読むことをお勧めします
公式のPHP for Windows ダウンロードページから最新のPHPバイナリをダウンロードし、お使いのApacheのビットバージョン(32ビットならx86、64ビットならx64)に合わせてスレッドセーフなバージョンを選択してください
スレッドセーフではないバージョンは CGI バイナリとして実行されている場合のみです – 詳細は こちら をご覧ください
私が使用したバージョンは、この .PHP 5.6.2 VC11 x64 スレッドセーフです。この回答が最後に更新されたときの最新バージョンです。PHP 7.3.3 VC15 x64 Thread Safe(投稿の一番下の編集日を見てください)
ハードドライブのルートに空のPHP
フォルダを作成し、そこに以前ダウンロードしたアーカイブを展開します
C:\PHP
では、php.ini-production
またはphp.ini-development
の名前を(何をしたいかによりますが)php.ini
に変更します
php.ini
ファイルを開き、extension_dir = "ext"
を検索して、その行のコメントを外してください (最初の ;
を削除してください)。これにより、デフォルトの拡張子のディレクトリが ext
に設定されます (これは C:\PHP\ext
に解決され、この記事の以前のバージョンのように、すべての拡張子のパスに手動で ext/
を前置する必要がなくなります)
C:\Apache24\conf\httpd.conf
– LoadModule
のすべての行の後に、次のように追加します
(以下はPHP 7のみ)
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>
(以下はPHP5の場合のみ)
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 が動いている可能性が高いことを意味します
info.php
のように <?php phpinfo();
を含むファイルを作成して http://localhost/info.php
にアクセスすることで、PHP のインストールをテストすることができます – システムや PHP のインストール、すべてのモジュールに関する情報を見ることができるはずです。もし、”Internal server error” のような何かが表示された場合は、何かが間違っていることを意味します
現在の Apache プロセスを kill して (コンソールで Ctrl+C)、サービスを開始することができます
コンポーザー – オプション
Composer は、パッケージマネージャのような PHP の依存関係管理ツールです。PHP のパッケージやフレームワーク全体を簡単にインストールすることができます
ComposerではPHPのOpenSSL拡張機能を有効にする必要があるので、C:\PHP\php.ini
で有効にしてみましょう
テキストエディタの検索機能を使ってphp_openssl.dll
を検索してください
では、ダウンロードページから Composer の Windows インストーラーをダウンロードしてください
PHPへのパスを求められたら、C:\PHP
を参照してphp.exe
を選択します
これで、Composer はシステム全体にインストールされ、どこからでも使用できるようになりました。新しいコマンド・プロンプトを開いて (すでに開いているコマンド・プロンプトは使用できません)、Composer のインストーラで設定された新しい変数 PATH
を読み込む必要があるので、composer
と入力します
あなたは素敵なアスキーアートのロゴとこのような何かを取得する必要があります
Composer version e87bc894daf8d5f8e77a01dd7ae5f0446ae30b14 2014-05-01 15:40:28
PHP MySQL 拡張機能 – オプション
PHP から MySQL データベースにアクセスしたい場合は、php_mysqli
や php_pdo_mysql
のような拡張機能を有効にする必要があります
PHP の設定ファイル C:\PHP\php.ini
をテキストエディタで開き、 php_mysqli
か php_pdo_mysql
を検索します
これで、mysqli
またはPDO
を使ってMySQLデータベースにアクセスできるようになりました
MySQL
MySQLインストーラダウンロードページで、Webインストーラmysql-installer-web-community-xxxxx.msi
をダウンロードしてください
mysql-installer-webcommunity-5.6.21.1.msiを使用しました。この回答が最後に更新されたときの最新バージョンです。mysql-installer-webcommunity-8.0.15.0.msi(投稿の一番下の編集日を見てください)
インストーラは自動的にシステムに応じて適切なバージョン(32ビットまたは64ビット)をインストールします。MySQLのビットバージョンはApacheやPHPのものと一致する必要はありませんが、3GBのRAM以上を利用するために、システムがサポートする64ビットバージョンを使用することはまだ有益ですが、データベースサーバは多くのRAMを使用する傾向があるため、これは非常に重要です
インストーラの手順に従ってください。開発用にインストールする場合は、Developer default
が最良の選択肢となります。ネイティブのGUIクライアントであるMySQL Workbenchもインストールされるので、コマンドラインクライアントの使用に慣れていない場合は、PHPMyAdminのような遅いWebベースのツールをインストールする必要はありません
すべてがインストールされると、インストーラはいくつかの基本的な設定値を尋ねてくるので、ネットワーク上の別のマシンからデータベースにアクセスしたい場合を除き、”Open firewall port for network access “を無効にすることをお勧めします
ルートパスワードの設定 – 開発目的のみで、ファイアウォールがネットワークからの着信接続をブロックしている場合は、強力なパスワードは必要ありません
最後に、トレイアイコンを右クリックして Actions -> Options を選択し、Run at Windows Startup
チェックボックスのチェックを外して適用することで、無駄な MySQL Notifier を無効にすることができます。これで数MBのRAMを節約でき、起動時のマシンの速度低下を防ぐことができます
これで、サービスとして動作し、ユーザーに依存しない(誰もログインしていなくてもアクセス可能)完全に機能するWAMPサーバーを手に入れることができます
開発目的では、ファイアウォールが Apache (ポート 80 と 443) と MySQL (ポート 3306) の両方の着信接続をブロックする必要があるので、これはかなり安全だと思います
これはWindows 7のインストールでテストされましたが、Vista、Windows 8、そして場合によってはWindows Server 2008/2012でも正常に動作するはずです
67 None 2014-04-30
PHP 7
上記の回答の指示は2017年7月現在では完全に動作しますが、PHP 7を使用したい場合は、その回答にあるもの(PHP 5でのみ動作するもの)ではなく、C:\Apache24\conf\httpd.conf
に以下の行を追加する必要があります[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
がない場合は、間違ったパッケージをダウンロードしている可能性があります
8 undo 2017-07-02