web-dev-qa-db-ja.com

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

WindowsでPHPサポートとMySQLサーバーを使用してApacheをインストールする方法without WAMPServerやXAMPPなどのすぐに使用できるパッケージを使用しますか?

47
user256743

アパッチ

まず、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キーを押す)に新しいサービスが追加されました。

Apacheのアクセスを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を取得します。

PHP

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と対話せず、既に起動したサーバーで実行できます。

作曲者-optional

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拡張機能-optional

PHPからMySQLデータベースにアクセスする場合は、php_mysqliphp_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-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でも正常に動作するはずです-そうでない場合は自由にコメントや投票を行ってください

63
user256743

PHP 7

上記の回答の指示は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がない場合は、間違ったパッケージをダウンロードした可能性があります。

5
rahuldottech