さくらサーバからロリポップへの引越しのメモ
さくら | ロリポップ | |
---|---|---|
プラン | スタンダード | コロリポプラン |
月額 | 500円 | 105円 |
容量 | 10GB | 5GB |
PHP | 5.2.17 5.3.14も可 | 5.3 |
DB | MySQL | なし(SQLite3) |
cron | 5個 | 1個 |
180MB分のMySQLのデータをSQLiteへ変換するのは本当に苦労しましたが、頑張って引越ししました。
さくらの最安プランはPHP使えませんし…orz
そんなわけで、さくらからロリポップへの以降の際につまづいた箇所とその解決法のメモです。
サイト、開発環境の情報
使用言語 : PHP(CakePHP), JavaScript(jQuery)開発、管理に使用するPCのOS : Linux Mint 12 LXDE
目次
cronの設定
コロリポプランでは、シェルスクリプトを実行させることはできません。よって、CakePHPのシェルを使うこともできません。
仕方がないので、cronではPHPを実行させています。
/home/users/0/moo.jp-kitel/web/app/database/cron.php
通常ならこれだけでいいと思いますが、
CakePHPの機能を利用した処理をすることはできません。
しかたなく、このPHPファイルの中で、さらにCakePHPのアクションをURLを使って呼び出しています。
つまり、内部だけで処理は完結せず、一般の人でもアクセスできる場所に
サイトの維持管理のための処理のスタートボタンが設置されていることになります。
一応、パスワードをパラメータとして送ることで、部外者のアクセスを遮断していますが…。
(cron.phpの中身)
<?php
readfile('http://kitel.moo.jp/(コントローラ)/(アクション)/(パスワード)');
?>
APCのキャッシュへ書き込めない
CakePHPを丸ごとアップロードしてブラウザでページを開くと、上記のような警告が表示されました。
Warning: _cake_core_ cache was unable to write ‘cake_dev_ja’ to Apc cache in 〜
php.iniの設定画面で、"apc.enabled"を"1"にすることで解決できます。
【参考】
Alternative PHP Cache (APC) は、PHP の実行コードをキャッシュする仕組みで、 フリーかつオープンに使用できます。
PHP の中間コードのキャッシュ・最適化を行うための、 フリーでオープンかつ堅牢なフレームワークを提供するということを目標としています。
PHP: 導入 - Manual
http://www.php.net/manual/ja/intro.apc.php
CakePHP2.0ハンズオン@札幌で使用した資料を公開します - nazolabo
http://nazo.hatenablog.com/entry/2012/04/25/151716
文字化け対策
私が作成したファイルの文字コードは、すべてUTF-8です。ロリポップのデフォルトは違うようですが、php.iniのエンコード関連をUTF-8に変更すればOKです。
"mbstring.language" を "Japanese"に。
"mbstring.internal_encoding" を "UTF-8"に。
"default_charset" を "UTF-8"に。
lftpの設定
Windowsの場合は、"FFFTP"を使ってGUIで操作できるのでお手軽です。Linuxにも"gFTP"があるのですが…、CUIで操作する"lftp"のほうが、
操作をファイルにまとめて自動化できるので長い目で見れば楽です。
で、注意点がひとつ。
SSLをオフにする。これだけです。
まずはFTPで接続します。
このあと"ls(リモートディレクトリ一覧表示)"すると、下記のような警告が。
$ lftp
lftp :~> open ftp.kitel.moo.jp -u moo.jp-kitel
パスワード:(パスワード入力)
SSLをオフにすればOK。
lftp moo.jp-kitel@ftp.kitel.moo.jp:~> ls
ls: 致命的エラー: Certificate verification: certificate common name doesn't match requested host name `ftp.kitel.moo.jp'
【参考】
lftp moo.jp-kitel@ftp.kitel.moo.jp:~> set ftp:ssl-allow off
lftp moo.jp-kitel@ftp.kitel.moo.jp:~> ls
drwx---r-x 6 moo.jp-kitel LolipopUser 4096 Jul 23 14:20 .
drwx---r-x 6 moo.jp-kitel LolipopUser 4096 Jul 23 14:20 ..
-rw-r--r-- 1 moo.jp-kitel LolipopUser 105 Jul 22 14:43 .gitignore
-rw-r--r-- 1 moo.jp-kitel LolipopUser 140 Jul 22 14:43 .htaccess
...
lftp - [物理のかぎしっぽ]
http://hooktail.org/computer/index.php?lftp
lftpで接続できない時の対処法・・・ - WEB系エンジニアの備忘録
http://blog.romaji.net/webprogram/2010/04/lftp.html
ログイン後のディレクトリも確認できたので、普段のミラーリングはファイルにまとめて自動化します。
$ lftp -f ~/lolipop.lftp(lolipop.lftp)
open ftp.kitel.moo.jp -u moo.jp-kitel,(パスワード)
set ftp:ssl-allow off
lcd /home/sutara/CakePHP/app
cd app
mirror -R -e -n -X *.*~ -X *.bak -x .htaccess -x Config/database.php
$this->referer() が正常に動作しない
これについては、別に記事を設けています。http://d.hatena.ne.jp/sutara_lumpur/20120725/1343220843