NetBeans PHP版のインストール

今頃やっと統合環境に手を出してみた。ので、そのインストールメモ。

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インストール

  1. NetBeansダウンロードページからPHP対応のものをダウンロードしてインストールしようとしたら、64bit対応版をダウンロードすべしと警告された。

    netbeans-install0

    64bit版はOracleからダウンロードできるので、あらためてダウンロード。Javaのみダウンロードしてインストールすれば良い。64bit版Javaをインストールした後は、もとからインストールされていた32bit版Javaをアンインストールしておく。

    OracleからオールインワンタイプのNetBeansインストーラもダウンロード可。こちらからダウンロードすると、Java単体テスト環境のJUnitインストールも選択できる。が、自分はPHPだけ開発できれば良いので、最初にダウンロードしたものをそのまま利用。

  2. インストーラを起動。

    netbeans-install1

  3. ライセンス内容を確認して同意。ライセンスはGPL2。

    netbeans-install2

  4. インストールフォルダを選択。特にこだわりもないので、そのままにした。

     netbeans-install3

  5. 自動更新確認にはチェックを入れたままにしておき、インストール開始。

     netbeans-install4

  6. しばし待つ。

    netbeans-install5

  7. インストール完了。

    netbeans-install6

PHPインストール

  1. PHP Windowsのダウンロードページより、スレッドセーフな64bit版を選択してダウンロード。(「x64 Thread Safe」と書かれたところからダウンロード。)

  2. インストールフォルダを作成し(C:\PHPとか)、その下にダウンロードしたZIPファイルの中身を展開する。

  3. コントロールパネル>システムとセキュリティ>システム>システムの詳細設定>環境変数からシステム環境変数の「Path」にPHPをインストールしたフォルダへのパスを追加しておく。

Apacheインストール

  1. Apache LoungeのダウンロードページからApache Win64をダウンロード。

  2. インストールフォルダを作成し(C:\Apacheとか)その下にダウンロードしたZIPファイルの中のApache24の下にあるファイルをすべて展開する。

  3. 環境変数の「Path」にApacheをインストールしたフォルダの下のbinへのパスを追加。

  4. 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用定義追加
  5. コマンドプロンプトからhttpdを起動してエラーが出ないことを確認。

    # httpd
  6. http://localhost/ にアクセスして、ページが表示されることを確認。

  7. Apacheをサービスとしてインストールして起動。

    # httpd -k install -n apache
    # net start apache

参考ページ

MySQLインストール

インストーラからインストールすると、不要なものがたくさん入る上にさっくりとは動かなかった。NetBeans用にとりあえずサーバが動いていれば良いだけだし、ZIPファイルから入れることに。

大筋の手順は小粋空間のを参考にした。

  1. MySQLダウンロードページより、Windows 64bit版ZIP Archiveをダウンロードする。※Oracleにアカウントを作成する必要あり。

  2. 解凍するとmysql-5.6.19-win64というフォルダが作成されるので、mysqlに変更する(将来アップグレード時にパス変更するのが面倒でなければ、そのままでも良い)。

  3. 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
  4. システム環境変数にMySQLをインストールしたフォルダの下のbinへのパスを追加する。(ex. C:\Program Files\mysql\bin)

  5. コマンドプロンプトからサーバが起動できるか確認する。

    # mysqld --console --standalone
  6. 正常に起動できたらCtrl-Cでプロセス中断してから、サービスとして登録して起動する。MySQLというサービス名で登録される。

    # mysqld --install
    # net start mysql
  7. mysqlコマンドを使ってrootのパスワードを設定しておく。

    # mysql -u root
    mysql> set password for root@localhost=password('yourpassword');
    Query OK, 0 rows affected (0.00 sec)
    mysql> quit
    #
  8. デフォルトで入っている「名無しさん」(匿名ユーザ)を削除。

    # 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;
    #

    大した権限は持っていないようだけど、セキュリティを考えると削除しておく方が良さそうなので。

参考ページ

Xdebugインストール

  1. XdebugダウンロードページよりPHP5.5 VC11 TS (64bit)バージョンをダウンロードし、PHPをインストールしたフォルダに移動。

  2. php.iniを編集し、PHPディレクティブに次の行を追加。

    zend_extension_ts="c:/php/php_xdebug-2.2.5-5.5-vc11-x86_64.dll"
    xdebug.remote_enable=1
  3. phpinfo() を表示させて、次のようにxdebugが表示されれば設定完了。

    phpinfo-xdebug-installed

この確認作業でちょっとハマった。コマンドラインからphp -iで確認するとxdebugがちゃんと組み込まれているのに、Web上のphpinfo()の表示で見るとphp.iniの変更が反映されない。

原因は、Apacheに組み込んだPHPハンドラとコマンドラインのPHPが参照しようとしているphp.iniが別のパスだったため。phpinfo()でphp.iniの参照パスを確認すると、次のように表示されていた。

phpinfo-php-ini-location

httpd.confにPHPIniDirの記述を追加してからApacheを再起動したら、ちゃんとWeb表示の方も変更が反映された。

以上で、NetBeansを使うための準備はひととおり完了。のハズ。

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