今頃やっと統合環境に手を出してみた。ので、そのインストールメモ。
EclipseにするかNetBeansにするか迷ったのだけど、PHP対応の面から判断すると、Eclipseではリファクタリングができないなど、NetBeansの方が圧倒的に機能豊富らしい。というわけで、NetBeans。
インストールしたもの
- Java SE 8u5 64bit版
- NetBeans 8.0
- PHP 5.5.14 スレッドセーフ64bit版
- Apache 2.4.9 64bit版
- MySQL 5.6.9 64bit版
- Xdebug 2.2.5 PHP5.5 VC11 64bit版
PHP、Apache、MySQLはXAMPPを入れるとまとめてインストールできるが、32bit版しかない上にPHPのバージョンアップへの追随がやや遅い。(現時点でPHP最新バージョン5.5.14に対してXAMPPは5.5.11とか。) PHPは自分の使いたいバージョンをインストールしておきたいので、XAMPPは使わずひとつずつインストールすることにした。
環境はWindows 7 Professional版SP1。
NetBeansインストール
- NetBeansダウンロードページからPHP対応のものをダウンロードしてインストールしようとしたら、64bit対応版をダウンロードすべしと警告された。
64bit版はOracleからダウンロードできるので、あらためてダウンロード。Javaのみダウンロードしてインストールすれば良い。64bit版Javaをインストールした後は、もとからインストールされていた32bit版Javaをアンインストールしておく。
OracleからオールインワンタイプのNetBeansインストーラもダウンロード可。こちらからダウンロードすると、Java単体テスト環境のJUnitインストールも選択できる。が、自分はPHPだけ開発できれば良いので、最初にダウンロードしたものをそのまま利用。
- インストーラを起動。
- ライセンス内容を確認して同意。ライセンスはGPL2。
- インストールフォルダを選択。特にこだわりもないので、そのままにした。
- 自動更新確認にはチェックを入れたままにしておき、インストール開始。
- しばし待つ。
- インストール完了。
PHPインストール
-
PHP Windowsのダウンロードページより、スレッドセーフな64bit版を選択してダウンロード。(「x64 Thread Safe」と書かれたところからダウンロード。)
-
インストールフォルダを作成し(C:\PHPとか)、その下にダウンロードしたZIPファイルの中身を展開する。
-
コントロールパネル>システムとセキュリティ>システム>システムの詳細設定>環境変数からシステム環境変数の「Path」にPHPをインストールしたフォルダへのパスを追加しておく。
Apacheインストール
-
Apache LoungeのダウンロードページからApache Win64をダウンロード。
-
インストールフォルダを作成し(C:\Apacheとか)その下にダウンロードしたZIPファイルの中のApache24の下にあるファイルをすべて展開する。
-
環境変数の「Path」にApacheをインストールしたフォルダの下のbinへのパスを追加。
-
conf\httpd.conf次のように編集。ServerRoot、DocumentRoot、htdocのDirectory、cgi-binのDirectoryのパスをそれぞれ変更。
ServerRoot "c:/apache" Listen 80 LoadModule access_compat_module modules/mod_access_compat.so LoadModule actions_module modules/mod_actions.so LoadModule alias_module modules/mod_alias.so LoadModule allowmethods_module modules/mod_allowmethods.so LoadModule asis_module modules/mod_asis.so LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule authn_core_module modules/mod_authn_core.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authz_core_module modules/mod_authz_core.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule cgi_module modules/mod_cgi.so LoadModule dir_module modules/mod_dir.so LoadModule env_module modules/mod_env.so LoadModule include_module modules/mod_include.so LoadModule isapi_module modules/mod_isapi.so LoadModule log_config_module modules/mod_log_config.so LoadModule mime_module modules/mod_mime.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule php5_module "c:/php/php5apache2_4.dll" <IfModule unixd_module> User daemon Group daemon </IfModule> ServerAdmin admin@your.domain ServerName www.your.domain <Directory /> AllowOverride none Require all denied </Directory> DocumentRoot "c:/home/www" <Directory "c:/home/www"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> <IfModule dir_module> DirectoryIndex index.html index.php </IfModule> <Files ".ht*"> Require all denied </Files> ErrorLog "logs/error.log" LogLevel warn <IfModule log_config_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common <IfModule logio_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio </IfModule> CustomLog "logs/access.log" common </IfModule> <IfModule alias_module> ScriptAlias /cgi-bin/ "c:/apache/cgi-bin/" </IfModule> <IfModule cgid_module> </IfModule> <Directory "c:/apache/cgi-bin"> AllowOverride None Options None Require all granted </Directory> <IfModule mime_module> TypesConfig conf/mime.types AddType application/x-compress .Z AddType application/x-gzip .gz .tgz AddHandler application/x-httpd-php .php </IfModule> <IfModule proxy_html_module> Include conf/extra/proxy-html.conf </IfModule> <IfModule ssl_module> SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule> PHPIniDIr "c:/php"
強調表示してあるのが変更点。
- ServerRootのパス変更
- LoadModuleでphp5apach32.dllを追加
- ServerAdminの連絡先アドレス変更
- ServerName設定
- DocumentRootのパス変更
- Directoryのhtdoc定義のパス変更
- DirectoryIndexにindex.php追加
- ScriptAliasのパス変更
- Directoryのcgi-bin定義のパス変更
- AddHandlerにPHP用定義追加
-
コマンドプロンプトからhttpdを起動してエラーが出ないことを確認。
# httpd
-
http://localhost/ にアクセスして、ページが表示されることを確認。
-
Apacheをサービスとしてインストールして起動。
# httpd -k install -n apache # net start apache
参考ページ
MySQLインストール
インストーラからインストールすると、不要なものがたくさん入る上にさっくりとは動かなかった。NetBeans用にとりあえずサーバが動いていれば良いだけだし、ZIPファイルから入れることに。
大筋の手順は小粋空間のを参考にした。
-
MySQLダウンロードページより、Windows 64bit版ZIP Archiveをダウンロードする。※Oracleにアカウントを作成する必要あり。
-
解凍するとmysql-5.6.19-win64というフォルダが作成されるので、mysqlに変更する(将来アップグレード時にパス変更するのが面倒でなければ、そのままでも良い)。
-
MySQLをインストールしたフォルダの下(my-default.iniの置かれている場所)にmy.iniを作成し、次の内容を書き込む。
[client] port = 3306 socket = c:/mysql/mysql.sock [mysqld] port = 3306 socket = c:/mysql/mysql.sock log-error = c:/mysql/error.log max_allowed_packet = 16M [mysql] default-character-set=utf8 [mysqldump] quick max_allowed_packet = 16M
-
システム環境変数にMySQLをインストールしたフォルダの下のbinへのパスを追加する。(ex.
C:\Program Files\mysql\bin
) -
コマンドプロンプトからサーバが起動できるか確認する。
# mysqld --console --standalone
-
正常に起動できたらCtrl-Cでプロセス中断してから、サービスとして登録して起動する。MySQLというサービス名で登録される。
# mysqld --install # net start mysql
-
mysqlコマンドを使ってrootのパスワードを設定しておく。
# mysql -u root mysql> set password for root@localhost=password('yourpassword'); Query OK, 0 rows affected (0.00 sec) mysql> quit #
-
デフォルトで入っている「名無しさん」(匿名ユーザ)を削除。
# mysql -u root -p mysql> show user,host from mysql.user; +------+-----------+ | user | host | +------+-----------+ | root | 127.0.0.1 | | root | ::1 | | | localhost | | root | localhost | +------+-----------+ 4 rows in set (0.00 sec) mysql> delete from mysql.user where user=''; mysql> quit; #
大した権限は持っていないようだけど、セキュリティを考えると削除しておく方が良さそうなので。
参考ページ
- Installing MySQL on Microsoft Windows (MySQL 5.6 Reference Manual)
- Windows7 64bitにMySQL 5.6.11をインストールする (unlinked log)
- WindowsにMySQL (zip版) をインストールする (小粋空間)
Xdebugインストール
-
XdebugダウンロードページよりPHP5.5 VC11 TS (64bit)バージョンをダウンロードし、PHPをインストールしたフォルダに移動。
-
php.iniを編集し、PHPディレクティブに次の行を追加。
zend_extension_ts="c:/php/php_xdebug-2.2.5-5.5-vc11-x86_64.dll" xdebug.remote_enable=1
-
phpinfo() を表示させて、次のようにxdebugが表示されれば設定完了。
この確認作業でちょっとハマった。コマンドラインからphp -iで確認するとxdebugがちゃんと組み込まれているのに、Web上のphpinfo()の表示で見るとphp.iniの変更が反映されない。
原因は、Apacheに組み込んだPHPハンドラとコマンドラインのPHPが参照しようとしているphp.iniが別のパスだったため。phpinfo()でphp.iniの参照パスを確認すると、次のように表示されていた。
httpd.confにPHPIniDirの記述を追加してからApacheを再起動したら、ちゃんとWeb表示の方も変更が反映された。
以上で、NetBeansを使うための準備はひととおり完了。のハズ。