WindowsにApache、PHP、MySQLを手動でインストールするには?

mysql php web-development webserver windows

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.confLoadModule のすべての行の後に、次のように追加します

(以下は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_mysqliphp_pdo_mysql のような拡張機能を有効にする必要があります

PHP の設定ファイル C:\PHP\php.ini をテキストエディタで開き、 php_mysqliphp_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


タイトルとURLをコピーしました