サーバーの環境がSNIに対応したものかどうかを確認するには

参考:
NameBasedSSLVHostsWithSNI - Httpd Wiki


SNI(Server Name Indication:RFC4366)が使える環境:

  • OpenSSL 0.9.8f以降(0.9.8k以降はデフォルトで組み込み)
  • Apacheが、SNIがビルドされたOpenSSLを使えるように設定されていること


SNIがビルドされたOpenSSLが使えるようになっていない場合、
Apacheのerror.logに、

"You should not use name-based virtual hosts in conjunction with SSL!!"

と表示される。


使えるようになっている場合は、

"[warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support(RFC4366)"

と表示される。

2010年 全米映画興行収入年間ランキング

ショウビズ・カウントダウン 2011年1月10日(月)放送分

  • No.4 The Twilght Saga:Eclipse(エクリプス/トワイライト・サーガ)
    累計 3億53万ドル
  • No.7 Despicable Me(怪盗グルーの月泥棒3D)
    累計 2億5025万ドル

11位はClash of the Titans(タイタンの戦い

UbuntuにDrupalをインストール

UbuntuDrupalをインストールしたので、メモ。

参考にした書籍:

Amazon CAPTCHA

バーチャルホストを作っておく。

バーチャルホストを作ってそこにDrupalをインストールする。
こちらの記事を参照。

VirtualHost設定まとめ - masaakibの日記

サイト名は、ここではsite_drupalとする。
ディレクトリは、
/var/www/site_codetta/

パッケージの取得・設置

Macで取得。
ブラウザで以下のサイトにアクセスし、
最新版の日本語ディストリビューションをダウンロード、展開する。

Drupal 6 クイックスタートページ | ≡ Drupal Japan ≡

テストサーバーにsambaで接続し、
ダウンロードしたパッケージの中身を、
/var/www/site_drupal/
以下にコピーする。


パッケージの設置は、FTPとかでも。
このやり方だと、パッケージ内の.htaccessがコピーできないので、
後で別途コピーする(後述)。

追加ディレクトリ・パーミッションの設定

以下の2つのディレクトリを作っておく。


それぞれパーミッションは777。


$ cd /var/www/site_drupal/
$ mkdir files
$ chmod 777 files
$ cd files
$ mkdir tmp
$ chmod 777 tmp


ほかに、
/var/www/site_drupal/sites/default/setting.php
パーミッションを666に変更。


$ cd /var/www/site_drupal/sites/default/
$ chmod 666 setting.php

データベースを作成

Drupalで使用するデータベースを作成しておく。
MySQLは使えるようにしておく。
以下を参照:

MySQLのユーザ管理

1 rootでログインする。


$ mysql -u root -p
Enter password:(パスワードを入力)


数行のメッセージの後、mysql>のプロンプトが表示される。


2 データベースを作成。
ここでは名前を、site_drupalとする。
(「.」は名前の文字列として使えないので注意。)


mysql> CREATE DATABASE site_drupal;


3 データベースの管理ユーザーを作成。
ここではユーザー名を、usd_dbとする。


mysql> GRANT ALL PRIVILEGES ON site_drupal.*(Enterキー)
-> TO usd_db
-> IDENTIFIED BY '(パスワード)';


4 ユーザーテーブルをリフレッシュする。


mysql> FLUSH PRIVILEGES;


5 ユーザーを確認する。


mysql> SELECT host,user FROM mysql.user;


ユーザーのリストにusd_dbが入っていることを確認。


6 usd_dbでログインし直す。


mysql> \q
Bye
$ mysql -u usd_db -p
Enter password:(パスワードを入力)


7 データベースを確認する。


mysql> show databases;


表示されたリストに、site_drupalがあることを確認する。


問題なければ、mysqlから離脱。

Drupalのインストール

1 http://site_drupal/にアクセス。
http://site_drupal/install.php
が表示される。


2 「日本語プロフィール」ラジオボタンを選択し、
「Save and continue」ボタンをクリック。
以下のエラーメッセージが表示された。

Requirements problem
The following errors must be resolved before you can continue the installation process:

* The directory sites/default/files is not writable. An automated attempt to create this directory failed, possibly due to a permissions problem. To proceed with the installation, either create the directory and modify its permissions manually, or ensure that the installer has the permissions to create it automatically. For more information, please see INSTALL.txt or the on-line handbook.
* Multibyte string input conversion in PHP is active and must be disabled. Check the php.ini mbstring.http_input setting. Please refer to the PHP mbstring documentation for more information. (Currently using Unicode library Error)


3 /var/www/site_drupal/sites/default/files/
パーミッションを777に変更。


$ chmod 777 /var/www/site_default/sites/default/files/


4 エラーメッセージの下にある「try again」をクリック。
2つ目のエラーのみ表示。

* Multibyte string input conversion in PHP is active and must be disabled. Check the php.ini mbstring.http_input setting. Please refer to the PHP mbstring documentation for more information. (Currently using Unicode library Error)


5 /etc/php5/apache2/php.iniを変更。
こちらを参照:

http://hain.jp/index.php/tech-j/2007/02/13/p125


$ sudo vi /etc/php5/apache2/php.ini

[mbstring]
...
(変更前:)mbstring.http_input = auto

(変更後:)mbstring.http_input = pass


apacheを再起動。


$ sudo /etc/init.d/apache2 reload


6 エラーメッセージの下の「try again」をクリック。
「データベースの設定」ページに遷移。

データベースの設定

「データベースの設定」ページで、各入力項目を入力。


データベース名:site_drupal
データベースのユーザ名:usd_db
データベースのパスワード:(usd_dbのパスワードを入力)


「高度なオプション」は今回はデフォルトのまま。


「保存して次へ」ボタンをクリック。

インストール成功。
以下のメッセージが表示された。

./sites/default と ./sites/default/settings.php に対して必要なすべての変更は行われました。 セキュリティ上の危険を回避するために、今すぐそれらのパーミッションから書き込み権限を取り除いてください。 やり方がよくわからない場合は、オンラインハンドブック(英文)を参照してください。


/var/www/site_drupal/sites/default/setting.php
パーミッションを655に変更。


$ chmod 655 /var/www/site_drupal/sites/default/setting.php


/var/www/site_drupal/sites/default/
パーミッションはとりあえず755のまま。

サイトの環境設定

各項目を入力する。


【サイト情報】
サイト名:site_drupal
サイトのメールアドレス:(とりあえず自分のメールアドレス)


【管理者アカウント】
ユーザ名:(自分のアカウント名を考えて入力)
メールアドレス:(自分のメールアドレス)
パスワード:(Drupalにログインするときのパスワードを考えて入力)


クリーンURL:無効(ラジオがグレイアウトされていて、「有効」にできない。)
アップデート通知:「自動的にアップデートを確認」にチェック。


「保存して次へ」ボタンをクリック。
以下のメッセージが表示。

日本語プロフィールのインストールが完了しました
おめでとうございます。 日本語プロフィールが正常にインストールされました。

さあ、新しいサイトにアクセスしてください。

「新しいサイト」をクリック。

Drupalへようこそ!

以下のエラーメッセージが表示。

保存先 sites/default/files/languages/ja_b083064e85e9b6931db0453e84f3b61c.js が適切に設定されていないため、選択されたファイル /tmp/fileYImjaH をアップロードできませんでした。

/var/www/site_drupal/sites/default/files/languages/
パーミッションを777に変更。


$ chmod 777 /var/www/site_drupal/sites/default/files/languages/


1度ログアウトして再度ログインし、エラーの解消確認。

管理セクション

メニューから「管理セクション」をクリック。
cronが未実行というメッセージが表示されているので、現状報告へ。

「cronを手動で実行」をクリックして解決。

クリーンURL

以下を参照:

http://drupal.org/node/15365

Macからsamba経由でコピーしたので、.htaccessがインストールされていなかった。


1 Macでターミナルかxtermを起動し、Drupalのダウンロードパッケージの中を見て、
.htaccessが入っていることを確認する。


2 フォルダウィンドウでsite_drupalのフォルダを開き、パスを確認する。
CopyPathというMac OSX用のプラグインを入れておくと確認できる。
以下を参照:

わかばマークのMacの備忘録 : CopyPath

例えばこんな感じのパス:
/Volumes/www/site_drupal/
(sambaでwwwに接続している。)


3 .htaccessをコピーする。
ターミナルかxtermでパッケージのダウンロードフォルダに移動し、


cp .htaccess /Volumes/www/site_drupal/.htaccess


4 Drupalの管理画面で、
管理セクション > クリーンURL
に移動。


「有効」ラジオボタンがアクティブになっているので、選択。

「設定の保存」ボタンをクリック。


だいたいこんな感じ。

.htaccessでのrewrite

httpd.confと同じように書いても動作しなかったので、メモ。


例として、フォームのページに遷移したらhttpsに変わる、
というようにしたいとする。


サーバーはUbuntu 9.10。


1 ヴァーチャルホストを作っておく。
/var/www/site1/
を作って、ここをドキュメントルートとしておく。


2 フォームページは1つディレクトリにまとめる。
/var/www/site1/form/
を作って、form関連のファイルはここにおく。
「form」ディレクトリ以下へのアクセスは、
httpsにする、という感じの設定にする。



3 httpd.confに書く場合
site1の設定ファイルで、

...

...

(ここからrewrite
RewriteEngine on
RewriteLog "/var/log/apache2/site1_rewrite.log"
RewriteLogLevel 9 (← 確認が終わったら、0にしておく)
RewriteCond %{SERVER_PORT} !^443$(ポートが443でないなら)
RewriteRule ^/form/(.*?)$ https://%{HTTP_HOST}/form/$1 [L,R]

という感じで期待通りの動作になる。
(ログ吐かないならlogの記述はなくてもいいみたいですが。)


.htaccessにこれと同じように書いても、期待通りに動作してくれない。


4 .htaccessに書く場合

RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^form/(.*)$ https://%{HTTP_HOST}/form/$1 [L,R]

confとの違いは、

  • RewriteBaseの指定
  • RewriteRuleの置換元の「form」の前の「/」をはずす


こちらを参照:
http://goo.gl/JtozE

2010年1月〜8月 全米映画興行収入ランキング

ショウビズ・カウントダウン 2010年9月20日(月)放送分

  • No.4 The Twilght Saga:Eclipse(エクリプス/トワイライト・サーガ)
    累計 2億9800万ドル
  • No.7 Despicable Me(怪盗グルーの月泥棒3D)
    累計 2億3610万ドル

11位は「Grown Ups

CodeIgniterのsystem関連のソースを非公開の場所に設置

以下のエントリでCodeIgniterの設置をしたところから。
MacからUbuntuにCodeIgniterを設置 - masaakibの日記


こちらを参照:
http://www.jom.jp/blog/2009/03/11/codeigniter環境構築手順/


やっぱり見せたくないものは非公開の場所に置くべきだな、と。


で、まず、CodeIgniterのソースの中で、
「system」ディレクトリをまるごと非公開の場所に移動させる。


1. ドキュメントルートの外にディレクトリを作っておいて、

$ sudo mv system (非公開ディレクトリのパス)/system

2. index.phpの、

$system_folder = "system";

$system_folder = "(非公開ディレクトリのパス)/system";

に変更。
ここはルートからのパスでもOKだった。


Eclipseで作成したプロジェクトの外側に置いてしまったので、
system以下のファイルの編集は、個別にテキストエディタで開くとか。。。


と思ったら、
amazon:CodeIgniter徹底入門
にこのあたりのことは記述あり。

MacからUbuntuにCodeIgniterを設置

とりあえず、こちらを見ながら。
amazon:CodeIgniter徹底入門


Ubuntuではサーバーの設定をやっておく。
とりあえず、Virtual Hostをたてる。
こちらを参照:
VirtualHost設定まとめ - masaakibの日記


開発環境はEclipseを使うので、Macにインストール。
こちらを参照:
PHPの開発環境としてEclipseをMacにインストール - masaakibの日記


で、CodeIgniterをダウンロードする。
こちらから:
ダウンロードファイル一覧 - CodeIgniter日本語化 - OSDN
all-in-oneのほうが日本語パックなので、そちらをダウンロード。
バージョンは1.7.2。
ダウンロードすると勝手に解凍されて、
ci-ja-all-in-one-1.7.2-1
というフォルダができる。


「CodeIgniter徹底入門」では、config.phpの設定をやっておくのが先だけど、後からでもできるので、ここでは飛ばす。


で、Eclipseでプロジェクトを作成する。

  1. 「ファイル」→「新規」メニューから「PHPプロジェクト」か「プロジェクト...」を選択。「プロジェクト...」を選んだ場合は、次の画面で「PHP」→「PHPプロジェクト」を選ぶと、「PHPプロジェクト」をメニューから直接選んだ場合と同じ。
  2. 「プロジェクト名」を入力。
  3. 「内容」欄で、「外部ソースからプロジェクトを作成」ラジオボタンを選択。
  4. ディレクトリー」の「参照...」ボタンをクリックし、Ubuntu上のサーバーのディレクトリを指定する。ためには、sambaでUbuntuにアクセスできるようにしておく必要がありますが。
  5. JavaScriptサポートはチェックをつけておく。
  6. 「次へ」ボタンをクリック。
  7. とりあえずそのまま「完了」ボタンをクリック。


左側のPHPエクスプローラにプロジェクトが追加される。


ここまで、プロジェクトの作成。


で、次に、CodeIgniterを、上で作成したプロジェクトにインポートする。

  1. PHPエクスプローラで作成したプロジェクトを右クリックし、「インポート」を選択。
  2. ダイアログが表示されたら、「一般」→「ファイルシステム」を選択し、「次へ」ボタンをクリック。
  3. 「次のディレクトリーから」の「参照...」ボタンをクリックし、CodeIgniterダウンロード時に作成された、「ci-ja-all-in-one-1.7.2-1」を選択する。
  4. 「すべてを選択」ボタンをクリックし、「完了」ボタンをクリック。


インポートが開始される。


インポートが終了すると、左側のPHPエクスプローラに、インポートされたファイルが表示される。
config.phpの編集等を行う。