Apache2.2でETagの計算方法を変更する
Apache2.2では、ETagは以下の情報から自動的に計算してくれる。
- ファイルのinode番号
- ファイルの最終更新時刻
- ファイルのバイト数
ウェブサーバを分散させている場合、サーバによってinode番号が異なるため、FileETagディレクティブを設定してあげればよい。
FileETag MTime Size
ProFTPDでIPアドレスとユーザーでログイン制限を行う
FTPサーバの設定なんて長らくやってなくって、すっかり忘れてたのと設定方法が変わってるっぽいので、メモしておきます。
確認したのは、CentOS 5.4、yumにてインストールしたProFTPDで、バージョンは以下の通り。
$ proftpd -v ProFTPD Version 1.3.2b
IPアドレスとユーザーでログイン制御
頻繁に訊かれる質問らしくようで、解決方法がそのものズバリで書かれている。
mod_ifsessionモジュールを組み込んで、アクセス制御の設定を行え、ってことらしい。具体的にはこんな感じらしい。
<Class friends> From 192.168.0.0/24 </Class> <IfUser kouichi> <Limit LOGIN> AllowClass friends DenyAll </Limit> </IfUser>
で、proftpd.confに設定を施してみたけど、動作しなかったので、モジュール自体が組み込まれてないのかと思い確認したら、組み込まれてませんでした。
組込済モジュールの確認
以下のコマンドを実行することで確認できます。
$ /usr/sbin/proftpd -l Compiled-in modules: mod_core.c mod_xfer.c mod_auth_unix.c mod_auth_file.c mod_auth.c mod_ls.c mod_log.c mod_site.c mod_delay.c mod_facts.c mod_dso.c mod_ident.c mod_readme.c mod_auth_pam.c mod_tls.c mod_vroot.c mod_cap.c mod_ctrls.c mod_lang.c
ruby1.9をインストールする
ruby1.9系もyumでインストールしようと思ってたんですが、パッケージが見つからないので、自前で作成することにしました。
checkinstallを以下のサイトを参考にインストールを行います。
まず事前にrpm-buildパッケージをインストールしておきます。
$ sudo yum install rpm-build
ruby1.9の最新版のソースコードをダウンロードし、make install直前まで通常のインストール作業を行います。最後にcheckinstallコマンドを使ってrpmパッケージを作成し、そのパッケージをrpmコマンドでインストールします。
$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p378.tar.gz $ tar zxvf ruby-1.9.1-p378.tar.gz $ cd ruby-1.9.1-p378 $ ./configure --prefix=/usr $ make $ sudo checkinstall --fstrans=no $ sudo rpm -ivh --nodeps /usr/src/redhat/RPMS/i386/ruby-1.9.1-p378-1.i386.rpm
またruby1.9系からは、rubygemsは組み込まれているので、すぐに利用することができます。
が、そのままだと gem list などのgemコマンドを実行すると zlib関連でエラーが発生します。
上記ページによるとzlib-develがインストールされていないために発生しているので、zlibをサポートするようにインストールし直します。
$ sudo yum install zlib-devel $ cd ruby-1.9.1-p378/ext/zlib $ ruby extconf.rb --with-zlib-include=/usr/include --with-zlib-lib=/usr/lib $ make $ sudo make install
インストールしたバージョンのrubyのrubygemsのバージョンは、少し古いので最新版にしておきます。
$ sudo gem update --system $ gem -v 1.3.6
MacPortsを使ってnginxをインストールする
Linodeでは、メモリ消費量を極力抑えたいので、Apacheではなく、nginx(エンジンエックス)を使ってみようと思って、手元のMacにインストールしてみました。
nginxについては、公式サイトを参照して下さい。
上記サイトからのnginxについての説明を抜粋しておきます。
nginxは無料で利用できるオープンソースのハイパフォーマンスHTTPサーバ且つリバースプロキシで、 IMAP/POP3のプロキシサーバとしても動作します。
ってことで、早速インストール。
Macでは、MacPortsを使うことで簡単にインストールすることができます。
$ sudo port install nginx
インストール完了時に自動起動の方法を教えてくれます。具体的には以下のコマンドを実行します。
$ sudo launchctl load -w /Library/LaunchDaemons/org.macports.nginx.plist
また各種設定ファイルは、/opt/local/etc/nginx/以下にあるので、それをベースに編集した作成します。
$ ls -alF /opt/local/etc/nginx/ total 48 drwxr-xr-x 8 root admin 272 3 27 22:08 ./ drwxr-xr-x 14 root admin 476 3 27 22:08 ../ -rw-r--r-- 2 root admin 909 3 27 22:08 fastcgi_params.example -rw-r--r-- 2 root admin 2837 3 27 22:08 koi-utf -rw-r--r-- 2 root admin 2223 3 27 22:08 koi-win -rw-r--r-- 2 root admin 3128 3 27 22:08 mime.types.example -rw-r--r-- 2 root admin 2786 3 27 22:08 nginx.conf.example -rw-r--r-- 2 root admin 3610 3 27 22:08 win-utf
nginxのオプションを確認しておきます。
$ nginx -h nginx version: nginx/0.7.64 Usage: nginx [-?hvVt] [-s signal] [-c filename] [-p prefix] [-g directives] Options: -?,-h : this help -v : show version and exit -V : show version and configure options then exit -t : test configuration and exit -s signal : send signal to a master process: stop, quit, reopen, reload -p prefix : set prefix path (default: /opt/local/) -c filename : set configuration file (default: /opt/local/etc/nginx/nginx.conf) -g directives : set global directives out of configuration file
基本的な起動と停止方法はこんな感じみたいです。
$ sudo nginx $ sudo nginx -s stop
実際の起動/停止は、以下のように設定ファイルを指定することになります。パスは、絶対パスで指定する必要があります。指定しないと、prefixパスからの相対パスになってしまうので注意が必要です。
$ sudo nginx -c /path/to/nginx.conf $ sudo nginx -c /path/to/nginx.conf -s stop
設定ファイル(nginx.conf)の記述方法は、Apacheとは全然異なるようなので、色々とドキュメントを確認しないとダメですね。
補足
設定ファイル(nginx.conf)をサンプルをコピーすると、 /opt/local/var/log/nginx/ 以下にログが出力されます。通常のアカウントで起動すると、パーミッションエラーが発生するため、rootアカウントで起動しています(手抜き)。
実際には、こんな感じの構成でアプリケーションを作ろうと思っているので、連携が必要です。
nginx(80,443) -> thin(3000-300?) -> rails
スティーブ・ジョブズが2005年に行った卒業式でのスピーチ
もう卒業式の時期を過ぎちゃいましたが、スティーブ・ジョブズの2005年のスタンフォード大学の卒業式で行ったスピーチを紹介します。(有名なスピーチなので、ほとんどの人が知ってるかと思いますが)
あらためて見ると、ジョブズって、スピーチがほんと上手いなぁと思う。話すスピードとか、独特に間とか、学ぶことが多い。あと字幕付きだけど、分かりやすい英語だから、何て言ってるのかも理解できるので、英語の学習にもなるね。