apache2.4.25とphp5.6.30とMySQL5.7.18をWindowsPC(Windows10)にインストールしたときのメモ
20170609
coskx
0.動作する組み合わせ
apache: win32-VC14
php: win32-VC11-x86
の組み合わせで動作するので20170524では
httpd-2.4.25-win32-VC14.zip
php-5.6.30-Win32-VC11-x86.zip
を使用する。
httpd-2.4.25-win64-VC14.zip
php-5.6.30-Win32-VC11-x64.zip
の組み合わせについては試していないのでわからない。
1.Apache2.4.25
ApacheはWWWサーバを実現するソフトであり,WindowsPCでも動作させることができる。
1-1.Apache2.4.25をダウンロード
http://httpd.apache.org
において,Apache HTTP Server 2.4.25 Released 内の download に進み
Apache HTTP Server 2.4.25 (httpd): 2.4.25 is the latest available version
内の Binaries に進み
Index of /software/apache//httpd/binaries
の
win32
に入る
Index of /dist/httpd/binaries/win32
の
Downloading Apache for Windows
にApache HTTP Server Project はbinaryファイルは配布しないので,個々のサイトで配布している
と書いてある。その中に「Apache Lounge」というところがあるので,
http://www.apachelounge.com/download/
ここで,ダウンロードする。
「Apache 2.4.25 Win64」と「Apache 2.4.25 Win32」があるので
httpd-2.4.25-win32-VC14.zip
をダウンロード。
1-2.Apache2.4.25をインストール
httpd-2.4.25-win32-VC14.zipを解凍すると,中にApache24フォルダがある。これをC:\にコピーする。
1-3.apache2.4の起動
(Apache Webサーバーの起動)
adminでコマンドプロンプトを立ち上げて,C:\Apache24\binをカレントDirにする
>cd C:\Apache24\bin
Apache Webサーバーを実行できるかどうかテスト
>httpd.exe
コマンドプロンプト内には何も表示されないが,
ブラウザで「http://localhopst/」
「It works!」が表示されたら成功。
ApacheがWebサーバとして動作している。
このコマンド(httpd.exe)で立ち上げを行うと,エラーメッセージで
エラー内容が判明することがあるので,
後でhttpd.confの記述などで問題が生じた時にもこの作業は有用である。
ApacheMonitor使用時には,ApacheMonitorで,Apacheをstopさせてから,
httpd.exe で,Apacheを起動する。
Apacheを終了したい場合は「コントロール+C」を打つか,コマンドプロンプトを閉じる。
再度コマンドプロンプトを管理者権限で起動する。
>cd C:\Apache24\bin
でカレントディレクトリを移動して
>httpd.exe -k install
でインストールする。Windowsがfirewall許可を求めてくるので許可する。
ブラウザで「http://localhopst/」
「It works!」が表示されたら成功してることが確認できる。
http://localhost/はhttp://localhost/index.htmlのことであり,
C:\Apache24\htdocs\index.htmlがブラウザから見えている。
>httpd.exe -k uninstall
でアンインストールできるが,ここでは実行しない。
windowsのサービス設定でapache2.4の自動起動を手動起動に変更してもよい。
学習用環境では,PC起動時にapache2.4が,自動的に立ち上がる必要はない。
1-4.ApacheMonitorの起動
(Apache Webサーバーの起動停止を任意に行えるようにする)
C:\Apache24\bin の ApacheMonitor.exeを実行
タスクトレイでApacheMonitorのアイコン右クリックでOpen Apache Monitor
Start Stop が切り替えられる。Startにして
ApacheServerがサービスを開始する。
ブラウザでhttp://localhost/を見ると「It works!」が表示され無事サービス開始が確認できる。
firewall通過を許可しているので、他のPCのブラウザからも
http://xx.xx.xx.xx/
で見える。xx.xx.xx.xxは当該PCのIPアドレス
http://localhost/はhttp://localhost/index.htmlのことであり,
C:\Apache24\htdocs\index.htmlがブラウザから見えている。
2.PHP5.6.30
PHPはWWWサーバ上で動作するプログラミング言語である。動的Webサイトを構築するのに使われている。
2-1.PHP5.6.30をインストール(PHP 5.6 (5.6.30))
http://php.net/downloads.php
Current Stable PHP 5.6.30 の Windows downloads へ進み
http://windows.php.net/download#php-5.6
PHP 5.6 (5.6.30)に4つバージョンがあるところで
(x64ではなく,x86でthreadsafeのものを選ぶ)
「VC11 x86 Thread Safe zip」
解凍するとphp-5.6.30-Win32-VC11-x86のフォルダが出来るので,
C:\php フォルダを作って,php-5.6.30-Win32-VC11-x86のフォルダの中身をすべて移動する。
(C:\php\php.exeができれば成功)
それから、C:\php フォルダ中の
php.ini-development ファイルを同じフォルダ内にコピーし、ファイル名を php.ini に変更して
中身を変更する。( php.ini はphpの設定ファイルである。)
2-2.MSVCR110.dllをインストール
MSVCR110.dllが必要なので(重要)
https://www.microsoft.com/ja-jp/download/details.aspx?id=30679
(★重要★ VSU4\vcredist_x86.exe が必要。新しいバージョンが公開されているが,この古いバージョンでなければ動作しない)
こちらからVSU4\vcredist_x86.exe
をダウンロードしてインストール
(このdllは,Visual Studio 2012 でビルドされた C++ アプリケーションを実行するために必要なランタイム コンポーネント)
2-3.php.iniを設定
ファイル: C:\php\php.ini
------------------------------------------------------
php.iniにアップロードできるファイルサイズの制限が記述されているので、それを変更する。
upload_max_filesize = 512M
post_max_size = 512M
memory_limit = 512M
max_execution_time = 0
default_charset = "UTF-8"
↓
default_charset =
; PHP's default setting for include_path is ".;/path/to/php/pear"
; http://php.net/include-path
include_path = ".;c:\php\includes"
; http://php.net/doc-root
doc_root = "C:\Apache24\htdocs"
extension_dir = "C:\php\ext" ディレクトリextの場所を設定
以下を有効にする(行頭の;をとる)
extension=php_curl.dll
extension=php_mbstring.dll ; mbxxxxの関数を使うため
extension=php_exif.dll ; Must be after mbstring as it depends on it
extension=php_mysql.dll ←文頭のコメントアウト(;)をはずす mysqlを使うとき
extension=php_mysqli.dll ←文頭のコメントアウト(;)をはずす mysqlを使うとき
extension=php_openssl.dll
extension=php_pdo_mysql.dll
date.timezone ="Asia/Tokyo"
3.httpd.confの設定
次に、Apacheの設定ファイルであるhttpd.confを、PHPを読み込むように書き換える。
以下の部分を書き加えた。
ファイル: C:\Apache24\conf\httpd.conf
------------------------------------------------------
・ServerRoot: 行の次に,次の2行を追加 安全のためにサーバ情報を隠す
意味ないかもしれないが、おまじない。
ServerSignature Off
ServerTokens ProductOnly
・次の行を探して,有効にして1行追加 安全のためにサーバ情報を隠す
LoadModule headers_module modules/mod_headers.so
Header unset X-Powered-By
・<Directory "c:/Apache24/htdocs">の中,ディレクトリ構造を見えないようにするため
Options Indexes FollowSymLinks
↓
Options FollowSymLinks
・<IfModule dir_module>の中,index.phpも有効にする
DirectoryIndex index.html
↓
DirectoryIndex index.html index.php
・次の内容をファイルの末尾に付け加えた。
#PHPを使うために必要である
LoadModule php5_module "c:\php\php5apache2_4.dll"
<IfModule php5_module>
# configure the path to php.ini
PHPIniDir "C:\php"
AddHandler application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>
#.c,.cpp,のファイルをブラウザ内に表示するために必要である。
AddType text/plain .c
AddType text/plain .cpp
AddType text/plain .h
以上の2ファイルを書き換えて保存したら、Apacheを再起動する。
Apacheの操作は、Windows画面のタスクバー右下に常駐しているApacheのアイコンから。
Apache2.4→Restartで再起動できる。
起動に失敗したら,管理者権限のコマンドプロンプトで
>C:\Apache24\bin\httpd.exe
でエラーメッセージが得られる。UTF-8でのメッセージのようだ。
ここまでの作業が成功していれば,この段階でC:\Apache24\htdocs内にindex.htmlがあれば,
(1)サーバが稼働しているPCでは,ブラウザで「http://localhost/index.html」のようにアクセスすると
index.htmlを閲覧できる。
(2)サーバ以外のPCでは,サーバの名前がDNSで得られる環境ならば,
(サーバの名前がpolarstar.tokyo-ct.ac.jpなら)
ブラウザで「http://polarstar.tokyo-ct.ac.jp/index.html」で閲覧できる。
失敗談
2度と同じ失敗を繰り返さないために失敗の様子も大事なので残しておく。
「1」のApache単体のインストールに成功し,ブラウザで「It
worsk!」も見えて安心し,ApacheMonitorでのstarat/stopも出来るようになった。そして,「2」のphpもインストールが終
わり,「3」の「httpd.conf」を設定し,
ApacheMonitorでRestartした。しかし,再起動に失敗した。
このような場合は,「1.3」に戻り,「>httpd.exe」で起動すると起動時のエラーメッセージが見える。
エラーメッセージでは,httpd.confのXX行目にある「LoadModule php5_module "c:\php\php5apache2_4.dll"」が実行できないと指摘された。その後1行ほど,表示できない文字コードらしきものでエラーが表示されているようだったが,読めるようにはできなかった。
"c:\php\php5apache2_4.dll"も適正な場所にあるので,原因不明であった。答えは「Apache Lounge」にあった。
「2.2」でインストールする時に「MSVCR110.dll」の名前だけでネット検索してインストールしたため,
VS2012以降の最新バージョンをインストールしてしまったことが原因であった。
「VSU4\vcredist_x86.exe」
でネット検索してインストールするべきであった。
★ここまでの注意点
(1)phpのパスを記述するところは全部で3か所
php.ini内にディレクトリextをフルパスで記述するところが1か所
httpd.conf内に2か所(2行)
(2)文字コードに関してはphp.ini中に1か所のみ
初期状態では
default_charset = "UTF-8"
だが,右辺を消去してデフォルト文字コードは設定しないことにしておく
4.PHP5.6.30の動作確認
無事にApacheを再起動できたら、テスト用のPHPファイルを作ってみる。
中身は以下のように書きます。
ファイル: C:\Apache24\htdocs\info.php ←新しく作る
中身は---------------------
<?php
phpinfo();
?>
---------------------------
そしてこのファイルにアクセスしてみる。
http://localhost/info.php
青っぽい表がずらーっとある、phpinfoのphpの設定一覧画面()が表示されたら成功。
5.Windowsのファイアウォールの設定
既にここまでの設定でうまく設定されているので,ここでの以下の作業は不要であると思われる。
Windows ファイアウォールでWebサーバ用にport80を開く必要がある。
コントロールパネル → セキュリティ → ファイアウォール
【Windowsファイアウォール】の左メニューの【詳細設定】を開くと、
【セキュリティが強化されたWindowsファイアウォール】が表示されます。
【受信の規則】を選択し、右側で【新しい規則】をクリックします。
【ポート】を選択し、次へ。
TCPの方にチェックを入れ、特定のローカルポートに【80】と入力し次へ。
接続を許可するにチェックを入れ次へ。
ドメイン,プライベート,パブリックの3つにチェックを入れ次へ。
名前を適当に【Apache24 TCP】とし完了。
6.MySQL5.7.18のインストール
(1)MySQLのwindows用バイナリをダウンロード
http://www-jp.mysql.com/
「ダウンロード」
MySQL Community Edition (GPL)
Community (GPL) Downloads ≫
MySQL Community Downloads
(Current Generally Available Release: 5.7.18)
Windows(x86, 32 & 64-bit), MySQL Installer MSI
をダウンロードへ進む
Note: MySQL Installer is 32 bit, but will install both 32 bit and 64 bit binaries.
と書いてあるので、安心して
(mysql-installer-community-5.7.18.1.msi)側のWindows (x86, 32-bit), MSI Installer
を使うことにする。
Begin Your Download - mysql-installer-community-5.7.18.1.msi
ここでLoginを求められるが,「No thanks, just start my download.」
でダウンロードできる。
mysql-installer-community-5.7.18.1.msi
をダウンロードして置く。
(2)MySQLのインストール
msiの実行(mysql-installer-community-5.7.11.0.msi)を起動
ライセンス同意画面が表示されたら【I accept the term in the license agreement】(同意する)を選ぶ
Choosing a Setup Typeの画面が表示されたらFullを選択
C:\Program FilesMySQLにインストールされる
データは
ProgramData\MySQL\MySQL Server 5.7\data
に設定される。
Checking Requirements の画面 何もしないで先に進む
ここで1つエラーが出て、インストールできないものがあると表示されたが気にしない。
Installation すべて選択されているのでそのまま Execute
次にInstallerが起動する。
nextで先に進む。
Product Configuration
nextで先に進む。
Type and Networking
●Standalone MySQL Server / Classic MySQL Replication
config type → Development Machine
レEnable TCP/IP Networking
Port Number: 3306
レOpen Firewall port for network access これがなかった
Root account Password
ID:root ← IDは「root」に決まっている
password: rootpwd
Windows Service
Service Name:MySQL57(デフォルト)
start the MySQL Server at System Startupのチェックをはずす(使用時以外に勝手にサービスが起動しないようにするため)
Plugins and Extensions
なし
Apply Server Configuration
Execute
Finish
Product Configration
そのまま次へ
Connect To Server
check
next
Apply Server Configuration
Execute
Finish
Product Coniguration
next
Installation Complete
start MySQL Workbench は起動しないのでチェックを外す。
Finish
C:\Program Files\MySQLにインストールされる
exeは
C:\Program Files\MySQL\MySQL Server 5.7\bin
データは
C:\ProgramData\MySQL\MySQL Server 5.7\data
に設定される。(ProgramDataはWindowsの隠しフォルダ)
(3)Pathの設定
pathが通っていないようなので,付け足す。
コントロール パネル→システムとセキュリティ→システム→システムの詳細設定
→環境変数→Pathを選択して編集 新規で以下を追加
C:\Program Files\MySQL\MySQL Server 5.7\bin
(4)MySQLの動作確認
cmdなどで【mysql -u root -p】を実行し、rootのパスワードを入力し、【Welcome to the MySQL…】が表示されればインストールは成功
phpからMySQLが呼び出せるか確認する Apacheの再起動をする
ブラウザからhttp://localhost/info.phpにアクセスし、MySQLの項目があればOK
(5)テスト
ID:root(pass=rootpwd) でログインして使用するデータベース:testuserDB を作成し,
テスト用にデータテーブルmygoodlistを作成した。
コマンドプロンプトを立ち上げて,次のように入力する。
>mysql -u root -p
Enter password: rootpwd ←ここの表示は実際には********になる。
create database testuserDB;
use testuserDB;
create table mygoodlist(ID int, name varchar(20), price int);
insert into mygoodlist (ID, name, price) values (1, "みかん", 100);
insert into mygoodlist (ID, name, price) values (2, "りんご", 150);
insert into mygoodlist values (3, "りんご青森", 200);
select * from mygoodlist;
これでテーブルが表示される。
drop database testuserdb;
quit;
これで終了