ロリポップに CakePHP を設置する際に躓いたこと
phpMyAdmin 上で SQL がエラーになる
テーブルの作成は上手く行ったのだが、マスターデータを挿入する SQLファイルを
サーバにアップし、SOURCE
を複数連ねてまとめて流し込もうとしたが
エラーが発生した。
これはなぜか PuTTY でログインして mysql でやったら上手く行った。
画像が表示されない
パスがおかしいのかとも思ったが、スタイルは適用されていた。
WinSCP でサーバ上の画像をダブルクリックで開くとデコードエラーが出たので
それかとも思った。 しかしそのファイルをダウンロードして表示すると
エラーにはならず、正常に表示された。
これは画像の直リンクを防止する記述が .htaccess にしてあり、この処理は
設置してある場所のドメインが記述してある必要があったためであった。
参考記事: http://www.hideblog.net/nikkis/show/113/
PreloadJS による画像のロードが失敗する。
これは CakePHP ではなく CreateJS に関する問題。
画面が表示されず、コンソールをチェックすると画像オブジェクトからサイズを
取得しようとしている箇所で画像が null
になっていた。
キューオブジェクトのエラーイベントにリスナを設定してチェックすると、
確かにエラーになっていた。
これは画像のパスの頭に ../
を追加したら上手く行った。
404 ERROR FILE NOT FOUND
これは ajax でアクションを呼ぶ際に、アクションのパスの頭に /cake
を追加したら解決した。
これはロリポップが提供している CakePHP のインストール手順に、
「ルートに cake ディレクトリを作り、そこに cake を設置する」
という手順に沿ったためと思われる。
メールが送信できない
CakeEmail::send
を実行したところ、以下の様なエラーが出た。
php_network_getaddresses: getaddrinfo failed: Name or service not known
調べてみるとこれは cake が原因ではないらしい。
CakeEmail 周りで調べてて、transport
を Mail
に
している記事を見かけた。 ここが Smtp
だったので試しに
Mail
に変えてみたところ上手いく行った。
cakeディレクトリの下にインストールする際は注意
上のもろもろの後、ファイル群をルートに移動してテストしたところ、
PreloadJS のパスに起因するロードエラーと ajax の通信パスの問題は
この「cakeディレクトリの下にインストール」が原因ということがわかった。
これらを多く用いている方は修正箇所が多くなるので注意されたし。