Results for tag "apache2"

WordPressを無料レンタルサーバーCAPNIXに移転してみた

AWS Amazon EC2の無料枠期間も残すところ、あと1ヶ月を切った。
Amazon EC2は自由度が高くて、IaaSって素晴らしい!と思わせてくれた。
StatusNetを始め、WordPress、git、Redmine、Node.jsにいたるまで色んなものを入れれた。
無料枠で使うにはとっても素敵なサービスなんだけど、有料となると、Microインスタンスでさえ、月1500円かかるのはちょっと高い。
Microインスタンスだと実質WordPress入れるのが精一杯。
他のを欲張って入れるとCPUを使い切って、MySQLがよく落ちるようになってしまった。
これはもしかしたら、私の環境がUbuntu+Apache2からかも知れないが。
Amazon AMI+nginxが速いらしいんだけど。
どっちにしろ、月1500円払うほど大したことやってないので、せめてブログだけでも、安いところに移転できないかと移転先を探した。
国内の無料レンタルサーバーのxreaも良いかなあと思ったけど、広告入るのも嫌だなあと。
そして、海外の無料レンタルサーバーであるCAPNIXを使ってみることにした。
ディスク容量10GB、転送量100GB/月まで、PHPとMySQLが動いて、広告もなし。
いったい何で儲けているのか怪しいぐらいだけど、とりあえず試しに使ってみた。
登録方法は解説する必要もないぐらいに超簡単だった。
(名前とか住所とかメールアドレスとかよくある入力項目を入力して、メールアドレスに招待メールが送られてくるので、メール内のリンクをクリックすれば完了)
コントロールパネルは英語かフランス語しか対応していないが、この手のサービスに慣れた人なら分かるだろう。

今表示しているこのブログはCAPNIX上で動いてるんだけど、全く遅延もしないし、今のところ、問題なし。


0

ubuntuにredmineをインストールしよう

redmineをインストールしたので、その手順を備忘録として残す。

以下の記事を参考にさせてもらった。
RedmineをUbuntu12.10へインストール

上記の記事のうち、mysqlやらapacheやらはすでにインストール済みなので、
passengerのインストールあたりから実行した。
一応自分が実行した内容を書く。

ubuntu@ip-x-x-x-x:~$ sudo apt-get install libapache2-mod-passenger

passengerのインストール。
これがないとrubyが動かないらしい。

ubuntu@ip-x-x-x-x:~$ sudo apt-get install redmine-mysql
ubuntu@ip-x-x-x-x:~$ sudo apt-get install redmine

続いてredmineのインストール。

さらにサブドメインの設定。
サブドメインの設定方法はubuntuとムームードメインでサブドメインを設定しようを参考にされたし。
一応設定ファイルだけ書いておく。

<VirtualHost *:80>
    ServerName projects.chat.ac
    ServerAdmin webmaster@localhost
    DocumentRoot  /usr/share/redmine/public
    ErrorLog /var/log/apache2/projects.error.log
    CustomLog /var/log/apache2/projects.access.log combined
    LogLevel warn
</VirtualHost>

以上で完了。
以下のURLからredmineにアクセスできる。
http://projects.chat.ac
今のところ、EnchantCityとEnchantMapEditorをプロジェクトとして登録している。


1

chat.acができるまで(statusnetをインストール)

前回はムームードメインでAmazon EC2で取得したサーバーと固定IPアドレスとドメイン名を関連付けました。
今回は、いよいよサーバーにstatusnetをインストールします。
では、早速説明しましょう。

Step.1:Tera termのインストール

サーバーにstatusnetをインストールするためにSSHからサーバーへアクセスします。
SSHを使ったアクセスには、Tera Termを使います。
Tera term
http://www.forest.impress.co.jp/library/software/utf8teraterm/
※ここではWindowsからサーバーへアクセスする方法を説明します。
 linux系からはfilezillaなどを使ってアクセスできると思いますが現在手元にlinuxが無いので未確認です。

早速tera termをダウンロードしてインストールしてください。
普通のWindowsアプリですので、問題なくインストールできるかと思います。

Step.2:Tera termの起動

tera termがインストールできたら、早速tera termを起動してください。

tera-term-01
tera termを起動すると、
最初に、Tera term:新しい接続のウィンドウが開きますので、
TCP/IPにチェックして、
ホスト:ムームードメインで取得したドメイン名(私の場合chat.ac)
サービス:SSH
TCPポート:22
SSHバージョン:SSH2
プロトコル:UNSPEC
を設定して、OKボタンをクリックしてください。

tera-term-02
次にSSH認証ウィンドウが開きますので、
ユーザー名:ubuntu
パスフレーズ:(入力不要)
RSA/DSA鍵を使うにチェックして秘密鍵をクリックして、前々回Amazon EC2で作成したPair Key(前々回の例ではlogin_key.pem)を選択してください。

tera-term-03
OKボタンをクリックすると、Amazon EC2との通信が開始され、コマンド入力画面になります。

Step.3:Ubuntuのアップデート

ここからはすべてtera termからのコマンド入力でサーバーを操作していきます。
WindowsのGUIに慣れている人がほとんどだと思いますので、多少戸惑うも知れませんが、お決まりのコマンドを入力していくだけですので、大丈夫、できます。

まずサーバーのubuntuを最新に更新します。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo apt-get update

sudo: スーパー権限を意味します。ファイルを変更するときなどには絶対必要なコマンドです。
apt-get: アプリをインターネットからダウンロードしてインストールするコマンドです。
update: apt-getのオプションでサーバーに入っているアプリをすべて最新に更新します。
ubuntuの更新が始まり、完了すると、また、コマンド入力待ち状態に戻ります。

Step.4:apacheのインストール

次に、apacheをインストールします。
apacheはホームページを公開するためのアプリ(HTTPサーバーと呼ばれています)です。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo apt-get install apache2

apacheのインストールが完了すると、
/var/www/index.html
にトップページが作られます。
ためしにブラウザで自分のドメイン(私の場合chat.ac)にアクセスしてみてください。
It works!と表示されたらapacheのインストール成功です。
index.htmlを変更しても、ホームページは作成できますが、今回はstatusnetをインストールする予定ですので、
index.htmlは不要ですので削除しましょう。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo rm /var/www/index.html

rm: ファイルを削除するコマンドです。

ここでついでにubuntuサーバーのディレクトリ構成も説明しておきましょう。
ディレクトリは以下の通りになっています。

/
 - bin
 - etc
 - lib
 - media
 - proc
 - sbin
 - sys
 - var
   - www
 - boot
 - home
   - ubuntu
 - lib64
 - mnt
 - root
 - selinux
 - tmp
 - vmlinuz
 - dev
 - initrd.img
 - lost+found
 - opt
 - run
 - srv
 - usr

/: ルートディレクトリです。
/home/ubuntu: ユーザー用のディレクトリです。tera termを立ち上げると最初にこのディレクトリから始まります。tera termには”~”と表示さていると思いますが、これが/home/ubuntuを指しています。
/var/www: apacheが作ったホームページ用のディレクトリです。ここにstatsunetもインストールします。
沢山のディレクトリがありますが、今回使うのはこのうちのほんのわずかです。

Step.5:MySQLのインストール

次にMySQLをインストールします。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo apt-get install mysql-server

インストール中に管理者ユーザーrootのパスワードを入力する画面が表示されますので、パスワードを設定してください。

Step.6:PHPのインストール

次にPHPをインストールします。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo apt-get install php5 libapache2-mod-php5

インストールが完了したら、apacheを再起動します。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo /etc/init.d/apache2 restart

PHPがちゃんとインストールされているか動作確認しましょう。
テキストエディタで簡単なPHPの命令文を書いて動作させてみます。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo nano /var/www/test.php

nano: ubuntu標準のテキストエディタです。
/var/www/test.php: 今から作成しようとしているphpのテキストファイルです。

tera-term-10
nanoが起動したかと思いますので、ここに

<?php phpinfo(); ?>

と入力してください。
<?php ?>: phpを命令文を書くときの約束事です。
phpinfo(): phpの情報を取得するための命令文です。

tera-term-11
入力し終わったら、キーボードのCtrl+Xを押して終了しましょう。
終了するときにセーブしますかと聞かれるのでyを入力してください。

tera-term-12
ファイル名を確認されますので、問題なければエンターキーを押して終了です。

次にブラウザで
http://ドメイン名(私の場合chat.ac)/test.php
にアクセスしてPHPに関する情報がずらっと表示されたら成功です。
テストが完了したらtest.phpは削除しておきましょう。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo rm /var/www/test.php

※もし、PHPの動作確認する作業が難しければ、この作業は飛ばしても良いでしょう。

Step.7:PHPのサブセットのインストール

statusnetを動かすのに必要なPHPのサブセットをインストールします。
下記の3つのコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo apt-get install php5-gd php5-curl php5-mysql

これもインストールが終わったら、apacheを再起動します。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo /etc/init.d/apache2 restart

Step.8:statusnet用のデータベースの作成

mysqlにstatusnetのためのデータベースを作成します。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo mysql -u root -p

mysql: mysqlクライアントを起動するコマンドです。これを起動するとmysqlを操作するモードに移ります。

mysql> create database statusnet;

create database: データベースを作成するmysqlのコマンド
statusnet: 作成したいデータベース名。ここではわかりやすくstatusnetとしましたが、名前は何でもかまいません。
次に作成したデータベースを操作できるユーザーを作成します。
次のコマンドを入力してください。

mysql> grant all privileges on statusnet.* to xxxxxxxxx@localhost identified by '*********';

xxxxxxxxx: ユーザー名を入力してください。
*********: ユーザーのパスワードを入力してください。
これでmysqlクライアントでの作業は終了です。
最後に終了コマンドを入力してmysqlクライアントを終了してください。

mysql> exit

Step.9:statusnetをダウンロードして解凍

ついにstatusnetをインストールする準備ができました。
まずは下記のURLでstasunetの最新バージョンを確認してください。
http://status.net/download
現在の最新はバージョン1.1.0のようです。
では、これをサーバーにダウンロードしましょう。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo wget -P /var/www/ http://status.net/statusnet-1.1.0.tar.gz

wget: インターネットからファイルをダウンロードするコマンドです。
-P: ダウンロードしたファイルの保存先を指定するオプション
/var/www/: 保存したいディレクトリ名
http://status.net/statusnet-1.1.0.tar.gz: ダウンロード元
次にstatusnet-1.1.0.tar.gzを解凍します。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo tar xzvf /var/www/statusnet-1.1.0.tar.gz

tar: tarファイルを操作するコマンドです。
xzvf: 解凍を意味するオプションです。
/var/www/statusnet-1.1.0.tar.gz: 解凍するファイルを指定します。
statusnet-1.1.0というディレクトリが作成されて、その中にstatusnetの中身が解凍されます。
しかし、このままでは、http://ドメイン名/statusnet-1.1.0 でアクセスすることになって、ちょっとダサいので、
statusnetの中身をトップページに移動して、http://ドメイン名 でアクセスできるようにしましょう。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo mv /var/www/statusnet-1.1.0/* /var/www/

mv: ファイルを移動するコマンドです。
/var/www/statusnet-1.1.0/*: 移動元のファイルです。*はstatusnetディレクトリ以下のファイルすべてを意味します。
/var/www/: 移動先のディレクトリです。
次にstatusnetディレクトリは不要になりましたので削除します。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo rm /var/www/statusnet-1.1.0/

また、圧縮ファイルも不要ですので削除してください。

ubuntu@ip-x-x-x-x:~$ sudo rm /var/www/statusnet-1.1.0.tar.gz

Step.10:アクセス権限の設定

次にstatusnetが書き込めるようにディレクトリに書き込み権限を与えます。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo chown -R www-data:www-data /var/www/avatar
ubuntu@ip-x-x-x-x:~$ sudo chown -R www-data:www-data /var/www/background
ubuntu@ip-x-x-x-x:~$ sudo chown -R www-data:www-data /var/www/file

chown: ファイルやディレクトリの権限を設定するコマンドです。ubuntuやlinux系OSでは各ファイルやディレクトリに権限が設定されていてデフォルトではroot以外書き込みができないよう設定されいます。
Windowsと違って書き込み権限が厳しく設定されているために、linuxはセキュリティが厳しいといわれています。
-R: 指定のディレクトリ以下の権限を設定するオプションです。
www-data:www-data: www-dataグループのwww-dataユーザーに書き込み権限を与えることを意味します。www-dataはapacheのことです。
/var/www/: 権限を操作するディレクトリを指定します。

Step.11:statusnetのインストール

次にいよいよstatusnetのインストール画面を起動します。
ブラウザから下記のURLを入力してstatsunetのインストール画面にアクセスしてください。

http://ドメイン名/install.php

statusnet-01
インストール画面が表示されたら、下記を入力してください。
site name:自分のサイトの名前(私の場合simtter)
Funcity URLs: disableをチェック
Hostname:ドメイン名(私の場合chat.ac)
Type:MySQLをチェック
Name:MySQLクライアントで作成したデータベース名(例ではstatusnet)
DB Username:MySQLクライアントで作成したユーザー名(例ではxxxxxxxx)
DB Password:ユーザーのパスワード
Administrator nickname:statusnet上でのあなたの名前(statsnetにログインするときに使います)
Administrator password:あなたのユーザーのパスワード(statsnetにログインするときに使います)
Confirm password: パスワードをもう一度
Administrator e-mail:あなたのメールアドレス(任意です)
Subsribe to announcements: statusnetからの更新情報を受け取るかどうか。(チェックするかどうか、どちらでも良いでしょう)
Type of site:Publicを選択
以上を入力し終わったらsubmitボタンを押してください。

ついにstatusnetのインストール完了です。
ブラウザから下記のURLを入力してstatsunetの動作確認をしてください。

http://ドメイン名/index.php

Step.12:DirectoryIndexの設定

これでほぼ完了ですが、index.phpと入力しないとstatusnetにアクセスできないのがちょっとダサいですよね。
ドメイン名だけでトップページを表示したいところ。
その方法を説明しましょう。

まず、設定ファイルのサンプルがあるのでコピーします。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo cp /var/www/htaccess.sample /var/www/.htaccess

次にコピーした設定ファイルを編集します。
下記のコマンドを入力してください。

ubuntu@ip-x-x-x-x:~$ sudo nano /var/www/.htaccess

nanoが起動したら、ファイルの一番下に以下の命令文を入力します。

DirectoryIndex index.php

入力したらキーボードからCtrl+Xを押して、セーブして終了します。

これでブラウザからhttp://ドメイン名 にアクセスするだけでstatusnetのトップページが表示されます。

以上で本当に完了です。
お疲れ様でした。


4

chat.acができるまで(概要)

前回書いた通り、
statusnetを使ってchat.acができるまでを解説していきますが、chat.acはいろいろな会社のいろいろなサービスを使って実現していますので、
まずは、どの会社のサービスを使っているのか、あらましを説明しましょう。

ドメイン取得

ムームードメイン
http://muumuu-domain.com
ドメインの取得サービスを行っている会社は沢山ありますが、
この会社に決めた理由は安くて充実したDNSカスタム設定があるからです。
chat.acの場合、ドメイン取得料は年間980円です。
これはほぼ業界最安値と言って良いでしょう。
それでいて、充実したDNSカスタム設定があるので安心です。
サイトを立ち上げる上で、DNSカスタム設定ができるかできないかは、非常に重要になってくるので、
この機能が充実していることはサービスを受ける上で重要な要素になります。
後述のAmazon EC2でDNSカスタム設定を使う必要がでてきます。

サーバー

Amazon EC2
http://aws.amazon.com/jp/ec2
いわずと知れた大手ネットストアのアマゾンがやっているサーバーサービスです。
やはり沢山の会社がレンタルサーバーやらIaaSやらSaaSやらPaaSやらと言ってサービスを行っていますが、
このサーバーの良いところは、安くて速いことです。
chat.acの場合、1年間無料枠というのを使っていて、1年間は無料です。
1年後から有料になりますが、それもサーバーのCPU利用率やアクセス量によって値段が決まり、少ない利用量なら1ヶ月100円ぐらいで使えます。
(それは、つまり利用者が少ないサイトを意味するので悲しいことでもありますが)
もし、(何かの間違いで)人気サイトになって、とんでもない金額になってしまったら、そのときは、サーバーをもっと安価なサービスへ移すなりを考えれば良いので、
とにかく、最初の立ち上げを無料で行えるのは心強いですね。
そして、このサーバーのもう一つの魅力が速いことです。
このサーバーは世界にサーバーが置いてあって、東京にもあります。
chat.acの場合も東京のサーバーを使っています。
実際アクセスしてみください。
クイッと画面が表示されたかと思います。
もっさり画面が表示されるか、それともクイッと画面が表示されるかは、サーバーの速度によります。
サーバーの速度もサーバー本体の速度とサーバーがどこに設置してあるかに依存します。
安いサーバーの場合、アメリカに設置されている場合がありますが、そこに置いたサイトはもっさり画面が表示されちゃったりするんですね。
しかし、こればっかりは実際そのサーバーにサイトを置いてみないとわからないので、賭けの部分があります。

twitterもどきのウェブアプリ(コンテンツ)

statusnet
http://status.net
SNSなどのコミュニケーションサイトを実現するウェブアプリもやはり色々なアプリが揃っています。
twitterもどきに限らず、mixiもどきなウェブアプリもあります。
このアプリに決めた理由は、非常にお手軽にインストールできるうえに機能が充実しているからです。
ウェブアプリは大抵単独では動かず、言語とデータベースをサーバーにインストールする必要がありますが、
statusnetの場合は、言語はPHP、データベースはMySQLを使っています。
このPHP+MySQLは非常にメジャーな組み合わせで、
もしインストール時にトラブルが発生した場合でも、ネットに情報がゴロゴロ落ちているので安心です。
そして、statusnetの機能の充実度はtwitterなみなところも良いですね。
よくぞ、ここまで作り上げたなと関心します。
大抵のウェブアプリは無料ですが、これももちろん無料。
この機能を無料で提供しているのですから、開発者は凄い。

※脱線話
実のところ、サーバー+ウェブアプリの組み合わせを
最初はGoogle App Engine + Jaikuengine
を考えていました。
Google App Engine
https://developers.google.com/appengine/?hl=ja
Jaikuengine
http://code.google.com/p/jaikuengine/
Google App Engineはその名の通りGoogleが提供しているサーバーサービスです。
Google App Engineの良いところは、年間縛りも無く一定の使用量ならば永年無料、しかも速さもAmazon EC2を凌ぐほどです。
また、同じくGoogle提供のJaikuengineはtwitterもどきどころかtwitterを凌ぐぐらい機能が充実しています。
これはもう使わない手は無いですね。
で、実際これを使おうとがんばってインストールしていたのですが、どうにも動きません。
Jaikuengineの使用言語はPythonで、そのバージョンが古くPython 2.5を使っていて、
Google App EngineにはPython 2.7が入っているのです。
どうにも、Jaikuengineは古いバージョンのまま放置されているようで、
インストールしても全くウンともスンとも言いませんでした。
ネットを見ると、わずかながら動かしたと言う人もいたので、自分が動かせないのが悔しくて、
1日(寝ずにほぼ24時間)Google App EngineとJaikuengineと格闘したのですが、
インストールできずに断念しました。
それからAmazon EC2 + statusnetの組み合わせを立ち上げたのですが、
こちらはほとんど躓くこともなく半日でインストール完了。
Google App Engine + Jaikuengineで苦労したことを考えるとあっけないぐらいでした。


0