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 にて出来ます。
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-09-16-0-37-16

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だ!
パパパっと書いたのはネタが少ないからだ!

これで世界を動かす力がもう一つ生まれた


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です