nginxでFuelPHPを使うためのrewrite設定方法

nginxよくわかんないよ(´;ω;`)

最近ちょこちょこいじっているのですが、設定周りでapacheと勝手が違う部分が多々あり苦労してます。

特にrewriteモジュールの記述の仕方があまりよく分かりません。FuelPHPを使いたいのでどうしても必要なのですが、肝心のところで結構ハマってました。

一度コツを掴むとapacheよりだいぶシンプルで書きやすいのですが、一応忘れてしまった時のためにメモメモ……

rewriteに至る基本的な流れは、

指定のURIに一致するファイルがあるか調べる → なかったらディレクトリがあるか調べる → それもなかったらrewriteする

と言った感じです。この部分はnginxのtry_files構文で簡単に書けます。

「location @rewrite…」から始まるlocationディレクティブは、「名前付きロケーション」と言うみたいです。内部リダイレクト処理を行う際に、アットマークから始まる名前を指定すると、その名前がついたブロック内の処理を行います。詳しくはnginxのドキュメントを参照してください。→http://wiki.nginx.org/HttpCoreModuleJa#location

ちなみに、try_filesを使わなくてもif文を利用すれば前述の流れは実現できますが、やたら長くなるし、nginx的には非推奨らしくいいとこなしなので、素直にtry_filesを利用するほうがいいと思います。
参考リンク: nginxのifに要注意 TECHSCORE BLOG

そして、ファイル・ディレクトリが存在しなかった場合のリライト処理ですが、俺は以下のように書きました。

このあたりの書き方は個人差・環境差があるので一概には言えませんが、自分の手元の環境ではこれで動作しました。

書き方はリファレンスを参照!!→http://wiki.nginx.org/HttpRewriteModuleJa#rewrite

ここに書いてあることを更に凝縮して、しかも分かりやすい記事があるので、そちらを読んだほうが幸せになれるかもしれません……
参考リンク: nginx連載5回目: nginxの設定、その3 – locationディレクティブ – インフラエンジニアway – Powered by HEARTBEATS 

 

Raspbian(RaspberryPi)でnginx+php-fpmを動かしてみる。

完全に自分用ですが。

nginxとphp-fpmを動かしてみたかったので、部屋に転がってたRaspberryPiにインストールしてみました。

とりあえず必要なパッケージをインストール。

依存パッケージはaptitudeの方で全部拾ってきてくれるはず。

ちなみにバージョンはnginxが1.2.1 php5-fpmは5.4.4です。

 

次にnginxの設定。デフォルトの設定ファイルの中から特に書き換えた部分だけ抜き出してます。

 

nginx, php-fpmの起動。

最後に起動設定の変更。

 

これでサイトルートの中にphpinfo();でも書いたphpファイルを投げ込んでアクセスできるかどうか試したらいいと思います。

 

一番ハマったポイントはfastcgi_passの値です。いろいろなブログの記事を読んでみても、設定値は「127.0.0.1:9000」にしろ~って書いてあるのですが、残念ながら俺のオツムではよく分からず……。でもnginxのデフォルト設定ファイルにはもう一つ、sockファイルを入力する方法も併記されておりまして、そちらのパスを通してみたらうまく動きました。とりあえず動いたのでこれでよしということで(´・ω・`)

[PHP]とりあえず使いたい人向けの PHP::DateTime 例文集

DateTimeクラスが便利そうなのは分かるけど、お作法がめんどくさそうなのでとりあえずdate関数を使っちゃってる方に向けて贈る、思考停止していてもコピペすれば使える例文集です。

まさに俺得記事。

一応リファレンスがないのはアレなので貼っておきます。時間があったらちゃんと読んだほうがいいですよ><
http://www.php.net/manual/ja/class.datetime.php

1. 基本形(現在時刻出力)

format()メソッドで時刻を出力。引数に時刻の書式文字列を入力して、好みの書式で出力します。

「DateTime::ATOM」や「DateTime::ISO8601」のように、予め定義された定数を引数に渡しても出力してくれます。

定数以外で書式を作りたいときはdate関数のページを参照するとよろし。
http://jp2.php.net/manual/ja/function.date.php

2. 時間を指定して出力

コンストラクタの引数に直接時刻を入力するか、setDateメソッド、setTimeメソッドを使用して時刻を指定します。

コンストラクタが時刻として認識してくれるパターンは、こちらのページを参照すると幸せになれるかも。
http://www.php.net/manual/ja/datetime.formats.php

3. 時間の足し算、引き算

開始日時、終了日時を得る時なんかに使うかもしれないです。

DateIntervalクラスコンストラクタの引数の書式は一度覚えてしまうと結構便利。

引数の書式については、こちらの記事を読んだほうが分かりやすいかもしれないです。
PHP 5.3 の DateTime オブジェクト関連の便利な新機能 – 肉とビールとパンケーキ by @sotarok
http://sotarok.hatenablog.com/entry/20090716/php_53_datetime_dateinterval

4. タイムゾーンを指定する

DateTimezoneオブジェクトを、上記いずれかの方法で渡すとタイムゾーンを指定できます。

タイムゾーンの書式についてはこちらを参照するといいです。
http://www.php.net/manual/ja/timezones.php

 

とりあえずこんな感じで。

ここまで書いといてからいうのもアレですけど、本当に急いでいるならdate関数を使ったって全然問題無いと思います(´・ω・`)

jqueryなしで動くwysiwygエディタ「wysihtml5」を使ってみたよ&気がついたこと。

ちょっと色を変えたいとか、ちょっと太字にしたいとか、その程度のことだけ実現できるwysiwygエディタがあるといいんですが、そういう低機能(?)なエディタはそうそうあるもんじゃないんですね。

でもやっと見つけました。jqueryなしで動くという触れ込みの「wysihtml5」です。

wysihtml5 – A better approach to rich text editing

デモサイトのエディタのアイコンは最低限の機能だけに抑えられています。シンプルでいいですね(´∀`*)

早速リファレンスを見ながら導入してみました。ちなみに俺が導入したバージョンは0.3.0です。

jquery非依存だからなのかもしれませんが、導入の手順が他のエディタと比べて少々込み入ってるかも??

Getting Started · xing/wysihtml5 Wiki · GitHub

早速テストしてみました。……が、早々におかしな箇所を発見。日本語を入力してから変換するためにスペースキーを押すと、入力した文字が消えてしまいます。

試しに「変換」キーを押したら、問題なく変換されます。スペースキーの時だけおかしくなるみたいですね。

wysihtml5のコードを見てみると、スペースキーが絡む処理が書かれているのは8536行付近にある以下の部分だけみたいです。

一箇所だけなので、試しにこのブロックをコメントアウトしてから再度動かしてみたら、今度は問題なく変換できるようになりました。これでまた変な問題が出たら考えますが、今のところは何とか動いているのでよしとしましょう。

それではでは(´・ω・)ノシ

 

[JS]文字列型から数値型にキャストする時に使えそうな方法

JSをいじくってhghgしてた時に面白いTipsを見つけたのでメモメモ。

文字列型を数値型にキャストするときはparseIntを使っていたのですが、「* 1」なんてものを使っても数値型にキャストされるみたいですね。

参考↓
JavaScript メモ / チップス parseInt() 時々落とし穴 [ ARTEMIS ]
http://www.artemis.ac/contents/javascript/jsmemo2.htm

var str = ‘0205’; //文字列型
alert(str + ‘ は ‘ + typeof str + ‘型’) ;    //string

str = str*1;
alert(str + ‘ は ‘ + typeof str + ‘型’ )     //number

※コメント部分はにしふなばし注釈

計算する時に自動的に数値型にキャストされる仕様を利用したみたいですね。2文字でキャストできるとか便利ですなっ。

でもいきなりこんなのが出てくると何してるか分からないので、ガシガシ使うのもなんだか疑問がわきますね……とか言いながらちょこちょこ使いますけど(´・ω・)