MacOSXで作るPHP MySQL Apache開発環境
拝啓、わしです!
MacOSにてPHPで開発をしている人は多いでしょう。
なんやかんやしてPHP + MySQL + Apacheの開発環境を作ったのでそのメモです。
バージョンメモ
- Mac OS X El Capitan 10.11.6(15G1004)
- Apache/2.4.18 (Unix)
- PHP 5.5.36
- MySQL Ver 14.14 Distrib 5.7.15, for osx10.11 (x86_64)
ついでに : NetBeans IDE 8.1
ま、MySQL以外は標準で入っているやつを使っています。
Apacheの設定
apacheはインストール不要です標準で入っています。
設定ファイル | /private/etc/apache2/httpd.conf |
---|---|
ルートディレクトリ | /Library/WebServer/Documents |
環境設定ファイルは下を叩いてください。
$ httpd -V ... -D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"
ホームディレクトリは… conf見れば… とか思ったけれども
$ grep \<Directory /private/etc/apache2/httpd.conf ... <Directory "/Library/WebServer/Documents"> ...
はい、/Library/WebServer/Documentsです。
これだけ解ればOKですね。
MySQLの設定
はい、インストールします。
http://dev.mysql.com/downloads/mysql/
dmg版をダウンロードしてインストールしてください。
rootのパスワードが表示されますので必ずメモっておきましょう。 ※ クライアントツールとかで変更しましょう
設定は特にないです。
起動・再起動の方法は
システム環境設定 > MySQL にて出来ます。
PHPの設定
一番めんどくさいです。
このままではmysqliを使うと謎のエラーになります。
mysqli_connect_error “No such file or directory”
原因の一つがmysql.sockがないのが問題です。
んで調べると
$ php --ri mysqli mysqli MysqlI Support => enabled Client API library version => mysqlnd 5.0.11-dev - 20120503 - $Id: 15d5c781cfcad91193dceae1d2cdd127674ddb3e $ Active Persistent Links => 0 Inactive Persistent Links => 0 Active Links => 0 Directive => Local Value => Master Value mysqli.max_links => Unlimited => Unlimited mysqli.max_persistent => Unlimited => Unlimited mysqli.allow_persistent => On => On mysqli.default_host => no value => no value mysqli.default_user => no value => no value mysqli.default_pw => no value => no value mysqli.default_port => 3306 => 3306 mysqli.default_socket => /var/mysql/mysql.sock => /var/mysql/mysql.sock mysqli.reconnect => Off => Off mysqli.allow_local_infile => On => On
さっそくsockファイルを調べます
mysqli.default_socket => /var/mysql/mysql.sock => /var/mysql/mysql.sock
はいっ!こいつはありません。ファイルがありません。想像通りのsockファイル無しですな。
早速調べます…
$ find /tmp/ -name mysql.sock /tmp//mysql.sock
困ったときのゴミ箱 もとい、tmpにありました。(varとどっちにするか悩みますがw)
これをPHPの設定ファイルに書き換えます。
$ php --ini Configuration File (php.ini) Path: /etc Loaded Configuration File: /etc/php.ini Scan for additional .ini files in: /Library/Server/Web/Config/php Additional .ini files parsed: (none)
はい、php.iniはそこです。
はじめて書き換える場合は、php.iniは無いです。
/etc/php.ini.defaultをコピーして使いましょう
設定ファイル内のmysqli.default_socketパラメタの値を/tmp/mysql.sockに書き換えれればOKです。
ついでに、以下の物を変更しましょう。
pdo_mysql.default_socket=/tmp/mysql.sock mysql.default_socket =/tmp/mysql.sock mysqli.default_socket = /tmp/mysql.sock
のちのち楽です
設定ファイルを変更してもApache君は知らないので再起動させます。
$ sudo httpd -k restart
これで大体OKです。
apache root directoryにでもHello Worldでもぶっ込んでくださいな。
NetBeansの設定は…
プロジェクトのプロパティ[ソース]のファイルをソース・フォルダから別の場所にコピー(C)の設定項目にドキュメントルートを設定して
[実行構成]のプロジェクトURLを欲しいやつにすればOKだ!
パパパっと書いたのはネタが少ないからだ!
これで世界を動かす力がもう一つ生まれた