× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
apache
導入 /etc/httpd/conf httpd.confの書き方 modulesは /etc/httpd/modules/mod_fcgid.so /etc/httpd/modules/mod_fastcgi.so など httpdの起動 $ sudo service httpd start $ sudo service httpd stop $ sudo service httpd restart ファイルディレクトリ /var/www/以下 html/ cgi-bin/ など。 html/に置いたファイルは、 domain/***.html でアクセス cgi-bin/ に置いたファイルは、例えば domain/cgi-bin/***.fcgi でアクセスできる。(あまりしないと思うが) (httpd.confにそう記述しておく) mysql /etc/my.conf に記述 PR |
今更ながらgitを入れる
まずはインストール。
う〜ん、yumはすばらしい。 公式を見ながら進む。 http://git-scm.com/book/en/Getting-Started-First-Time-Git-Setup 自分のユーザ登録をする。
コマンドを打つと、~/.gitconfigが作られ、書き込まれる。これを直接編集しちゃってもいいみたい 差分編集ツールも設定できる。ちなみにvimdiffの使い方は http://nanasi.jp/articles/howto/diff/merge_diff.html ではgit管理したいディレクトリに移動。
これでgit管理開始。
管理しないファイルの指定もしておこう。これが済んだら、まとめて
でOK。git管理開始。このタイミングでmasterブランチが自動で作られる。 この時点ではまだremoteは無い。 |
時刻を知るには
でよい。 こんな感じで帰ってくる。
でも今は午前9時(だとする)。 この場合、9時間ずれてる。 「なるほどね。じゃあ9時間進めよう」…
としてしまうのは間違いで、これだとUTC(世界標準時)が9時間進んでしまう。 そうではなくて、タイムゾーンをJSTに変更する。
こうすると、dateの結果が
といった感じになる。 perl の time関数とかは、タイムゾーンがUTCだと、自動で9時間進めてJSTにしてくれちゃうから、必ずタイムゾーンをJSTにしておこう。 クーロンは、指定されたタイムゾーンでの時刻に実行されるので、タイムゾーンをJSTにしておけば、JSTの時刻で書いておけばOK。 もしUTCに戻したいときは、
とする。 |
/var/www/html 以下に置いたhtmlファイルからは、
<script type="text/javascript" src="path/to/file.js"></script> で普通にインクルードできる。 が、 /var/www/cgi-bin/ 以下に置いた*.fcgiが、htmlを読み込む場合は、これだとうまくいかない。 jsの読み込みに失敗してしまう。なぜだ 相対パスだとファイルが見つからないようで、 DocumentRootからのパスで指定すると、ファイルは見つけられるようになった。 <script type="text/javascript" src="/path/from/root.js"></script> パス先頭の/を忘れずに。忘れるとhtmlファイル相対になる で、ファイルは見つけられるようになったが、今度はインクルード時にエラーが発生しているようだ。 簡単なhtml,jsで試してみて、ページを開いてsafariのコンソールを見ると、 インクルードしたところでエラー、さらに覗いてみると、jsの先頭行(>script<)でいきなり失敗している。 そこで、scriptタグを消してみた。
を
に。すると動いた。 ポイント ・DocumentRootからのパスで記述 ・scriptタグ不要 追記 なんでjsファイルの中にscriptタグがついてるのかと思ったら、Xslateで読み込んで使うためのファイルだったからだ。 Xslateでは : include "hoge.js" という記述で他のファイル(jsに限らず)を読み込んでその場で展開する。 だから、ファイルの中にscriptタグがついていなければいけなかった。(というか、そういう風に使っていたから) Xslateのinclude文は、本当に単純にファイルの中身を展開するだけなので、script srcと混ぜて使うときは注意。 また、ファイル相対パスの指定しかできない?ようだ。 →Xslateは、includeするときの基準パスをperl側で指定するため。 つまり my $xslate = Text::Xslate->new(path => ['/path/to/include/files/']); と指定したところを基準に探す(複数指定可) だから上のディレクトリには多分行けないのだろう。 この指定が無い場合は、ファイルのディレクトリを基準に探していたのだという訳。 |
htmlで折れ線グラフその他を作れないだろうか?
調べると出て来たライブラリ flotr2 http://humblesoftware.com/flotr2/ gitはここ ライセンスは The MIT License この中の Flotr2_master/flotr2.min.js というJSがキモ。 これをhtmlで読み込めばよい。 |
文字コードをutf8に変える
設定ファイルは以下 /etc/my.cnf [mysqld] の項目に character-set-server=utf8 を追記。 書き換えたら再起動 /etc/rc.d/init.d/mysqld restart 起動できないときは、エラーログを確認 $ tail /var/log/mysqld.log mysql> show variables like "char%"; を見ると、
が
と変わっている。 |
httpd.confをいろいろ書いた。
ScriptAlias 実行スクリプトを置く場所を指定。普通DocumentRoot(/var/www/htmlとか)以下には置かないので。 実行設定はいらないが、アクセス設定は書く必要あり。
実際のファイルの実行権限がついているかを確認。そのファイルに至るまでのディレクトリすべてにも実行権限がついている必要あり。 ベーシック認証 認証をかけたいディレクトリごとに指定する
こんな感じで書く。 auth_basic_moduleがロードされているかも確認すること。 (なければLoadModule auth_basic_module modules/mod_auth_basic.soを追記) で、パスワードファイルは htpasswdコマンドで作る。 $ htpasswd -c /path/to/passwordfile user_name # ファイルを初めて作るとき $ htpasswd /path/to/passwordfile user_name # 二回目以降 作られたファイルはそのまま覗ける。 消すときは $ htpasswd -D /path/to/passwordfile user_name ダイジェスト認証 ダイジェスト認証の場合は
となる。 auth_digest_moduleがロードされているか確認。 (LoadModule auth_digest_module modules/mod_auth_digest.soとか) パスワードファイルを作るには $ htdigest -c /path/to/passwordfile XXXX user_name とする。領域名(XXXX)を指定することに注意 ログ出力 ログフォーマットはだいたいそのままでもいいと思うので、ログローテートだけ。 ErrorLog "| /path/to/rotatelogs /path/to/error_log.%Y%m%d 86400" CustomLog "| /path/to/rotatelogs /path/to/error_log.%Y%m%d 86400" format_name という感じ。 DirectoryIndex まあ DirectoryIndex index.html index.htm index.fcgi みたいな感じでいいでしょう 参考 http://www.adminweb.jp/apache/ |
mysqlでのAUTO_INCREMENTの使い方。
これでidがAUTO_INCREMENTになった。 INSERT時にidの値をNULLにしておけば、自動採番してくれる。 初期値を設定したいときは mysql> ALTER TABLE table AUTO_INCREMENT=100; あるいはCREATE TABLEの末尾に付加してもいい。 ちゃんと設定されたか確認したいときは、 mysql> show table status like 'table'; として、Auto_incrementの値を確認する。 もう少し手っ取り早く知るには mysql> select last_insert_id(); とする手もあるが、これはテーブル指定ができず、無条件に最後にinsertされたauto_increment付きテーブルのidが返ってくるようになっている。 http://dev.mysql.com/doc/refman/5.1-olh/ja/example-auto-increment.html |
cronを使って定時APIたたかせる。
crontab -e で書くわけだが、間違って -r を打つと吹き飛んでしまうのはご承知の通り。 で、どこか適当なファイルに書いておく(.crontabとか)。それを $ crontab .crontab とすればクーロンにそのまま入る。便利で安全。 クーロンで記述した各個処理のログは吐いた方がいいと思うので、 >> 適当なファイルへのフルパス とかしたほうがいい。 エラー発生ならメールも来るけれど。 クーロン自体のログは /var/log/cron の中に入っている。そもそも実行されたのかどうかはここを見ると分かる。 クーロンが動いているか確認するには $ /etc/rc.d/init.d/crond status でcrondが実行中であり、 $ chkconfig --list crond で2~5がonになっていること。 ちなみにcrontab -e で書き換えているファイルは sudo ls /var/spool/cron/ec2-user で見られる。rootしか読み書きできない あと、crontabの大元?は /etc/crontab にある。(しかし何も書いていなかった) その隣に /etc/cron.hourly/ /etc/cron.daily/ /etc/cron.weekly/ /etc/cron.monthly/ がある。それぞれ中にファイルが置いてある。 crontab から毎時hourlyが、毎日dailyが、毎週weeklyが、毎月monthlyが実行されていれば、 各ディレクトリ下に実行権限を与えたスクリプトを置いておけば実行されるようだ。 crontabに書くのも同じって気もするが。 |
文字コードを調べるコマンド
nkf -g filename nkfはデフォで入ってないのでインストール。 cd /usr/local/src/ wget http://osdn.dl.sourceforge.jp/nkf/20770/nkf207.tar.gz tar zxf nkf207.tar.gz cd nkf207 make cp nkf /usr/bin/ これだけ。 |