【PHP】【Symfony】 ピリオド(ドット)を含む文字列でroutingを行いたい

環境はSymfony 1.4.11。 やりたいことは、次のようなルールが設定されているときに、

sample:
url:   /:query
param:
module: module
action: action
次のようなURLで引数を渡したいと言うことなのだけど、これが上手く行かない。
http://hogehoge.com/Part.3
結果は、404 Not Foundになってしまう。 なぜ404 Not Foundになってしまうかというと、渡した文字列「Part.3」に含まれるピリオドがセパレータとなって機能し(Symfony 1.4のroutingにおけるデフォルトのセパレータは「/」と「.」)、「Part」部分がモジュール名、「3」部分がアクションとして解釈されてしまうため。単純にSymfonyに文字列が渡らないと言うことであれば、次の解決策が参考になるのだけど、どうやらそういうことではないみたい。 ルートにピリオドを含める – Do You PHP はてな

続きを読む

SymfonyのセッションデータをMySQLに格納する

さくらインターネットから、「ファイル数多すぎるんで削除してください」という連絡が来たのでなんのこっちゃと調べたら、 この間の設定変更で指定したセッションファイル格納用ディレクトリが溢れているという話らしい。おおっと。 でもって、話をよくよく聞いてみるとセッションが使用不可になったのも共用ディレクトリである「/tmp」に保存できるファイル数が10万ファイルまでに制限されているからだそうな。当たり前か。 本当のことを言うと、そう大したユーザー数がいるとも思えないサービスなのに溢れすぎじゃないかと思うけど、 設定を見返すのは後回しにしてとりあえず現状を改善しないと行けない。 よくよく考えてみて、「/tmp」ディレクトリのパーミッション的に階層化も出来そうにないし、 こりゃセッションデータをMySQLに格納するしかないかなと言うことで以下の設定を。

参考:

symfonyでセッションにデータベースを使用する [dozo dokuwiki.php] Practical symfony | 22日目: デプロイ | symfony | Web PHP Framework

続きを読む

【メモ】Symfonyのログローテーション

ここを参考に。 A Gentle Introduction to symfony | 第16章 – アプリケーションの運用ツール | symfony | Web PHP Framework cronで次のように設定すると良い。

php symfony log:rotate AppName prod --period=7 --history=10
このようにすると、
  • アプリケーション「AppName」のprodログを対象に
  • 1つのログファイルの期間は7日間
  • バックアップファイル数は最大10個
と言うルールでログをローテーションさせる、と。 なるほど。

続きを読む