Motomichi Works Blog

モトミチワークスブログです。その日学習したことについて書いている日記みたいなものです。

vagrantその19-34 cakephp入門をやってみる(bakeによる高速開発その4)Modelの作成

参考にさせていただいたページ(主立ったところ)

bakeによる高速開発(5/8):初心者のためのCakePHP2.0 プログラミング入門

Warning Error: PDO::__construct(): [2002] No such file or directory・・・ | HAPPY*TRAP

【php】MySQLに接続するときにエラー発生 at softelメモ

参考にさせていただいたページ(一応控えておきたいリンク)

Mac10.8.3 cakePHPとMySQLの連動エラーの対応(XAMPP使用時) - Logicky Blog

php - cake console 2.2.1: Bake errors - Stack Overflow

環境

インタラクティブBakeシェルで、「M」を入力

./cake bake

を実行

M

を入力してenter

データベース設定を選択したらエラーが出た

Use Database Config: (test/default) 
[test] > 

で、defaultを入力してenterを押下したら以下のようなエラーが出た。

Warning Error: PDO::__construct(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in [/Users/motomichishigeru/Desktop/all/git_repos_all/bitbucket/motomichi_mti/bp_20140708/0003-cakephp/bake/lib/Cake/Model/Datasource/Database/Mysql.php, line 184]

Error: Database connection "Mysql" is missing, or could not be created.

php.iniとmy.cnfと*.sockを探す

【php】MySQLに接続するときにエラー発生 at softelメモ

によると、php.iniまたはmy.cnfを設定することで解決できるらしい。

Warning Error: PDO::__construct(): [2002] No such file or directory・・・ | HAPPY*TRAP

によると、シンボリックリンクの作成により解決できるらしい。

たぶんこのあたりだろうと思う。

  • php.ini
  • my.cnf
  • *.sock

を探してみる。

vagrant ssh
su
vagrant(パスワード)
cd /
find ./ -name "php.ini"
find ./ -name "my.cnf"
find ./ -name "*.sock"

実行結果として以下のように出力された。

php.iniのある場所

./etc/php.ini

my.cnfのある場所

./usr/my.cnf

mysql.sockのある場所

./var/lib/mysql/mysql.sock

シンボリックリンクの作成をしてみたけど解決しなかった

まずvarの中にmysqlディレクトリを作成した。

cd /var/ 
mkdir mysql

次に以下のコマンドでシンボリックリンクを作成した。

ln -s /var/lib/mysql/mysql.sock /var/mysql/mysql.sock

suでログインしているので、sudoはいらない。

この段階で

service httpd restart

とか

/etc/init.d/mysql restart

apachemysqlを再起動してみたけど、解決しなかった。

my.cnfを編集してみたけど解決しなかった

【php】MySQLに接続するときにエラー発生 at softelメモ

を参考に

[client]
password        = password
port            = 3306
socket          = /var/lib/mysql/mysql.sock

[mysqld]
port            = 3306
socket          = /var/lib/mysql/mysql.sock

みたいな感じで書いてみたけど、駄目だった。

php.iniを編集してみたけど解決しなかった

同じく

【php】MySQLに接続するときにエラー発生 at softelメモ

を参考に

mysql.default_socket="/var/lib/mysql/mysql.sock"

mysqli.default_socket = "/var/lib/mysql/mysql.sock"

pdo_mysql.default_socket="/var/lib/mysql/mysql.sock"

をそれぞれ記述してみたけど駄目だった。

それから

CakePHP開発用簡易環境構築メモ - ryhmrtの日記

を参考に

cgi.fix_pathinfo=1

も記述してみたけど駄目だった。

仮想環境にsshログインして、./cake bakeしてみる

ホストマシンの方で./cake bakeしてるから駄目なのかな?と思って、仮想環境内でやってみた。

cd /var/www/html/bake/app/Console/

それから

./cake bake

したら

bash: ./cake: 許可がありません

と表示された。

chemod 755 cake

としてみたけど、改善されない。

一旦諦めよう

./cake bakeでパパッと作るのやってみたかったけど、一旦諦めることにする。

bake使わなくても作れるしな。

vagrant使ってるからかなぁ?

本番サーバーでやったりしたらなんか上手くいくかもしれないし。

色々調べてみたけど駄目だった。

そのうちわかるときが来ますように。

今回はここまで。