AWS(Amazon EC2)でサイト立ち上げのメモ
先日、MyHome Portalの機能の一部をサービス化したサイト「O2Portal」を立ち上ました。
トラブルにより、「O2Portal」は、停止しました。(8/13 追記)
Amazon EC2を使っています。Amazon EC2について、ほとんど知識を持ち合わせていませんでしたが、インターネット上で導入手順を親切に説明されているホームページのおかげで半日程で立ち上げが出来ました。
●Amazon EC2の登録や設定は、以下のページが参考になります。
□AWS(Amazon EC2)にApache+PHP+MySQLとphpMyAdmin,vsftpdを導入する手順 - YATのBLOG
□Amazon EC2の使い方【SSHまで全部GUIでできます!】
http://www.synaesthesia.jp/amazon/ec2/introduction.php
□amazon EC2試してみたよ! | [NC]News Clipping
●TeraTermをインストールします。
ユーザ名「ec2-user」で、EC2の設定途中でダウンロードした、Key Pairのファイルを秘密鍵で設定してログインします。
●Apache+PHP+MySQLの環境が必要だったので、XAMPPをダウンロードしてインストールしようと思ったのですが、Amazon標準のLinuxにGUI環境があるのかどうか自体が不明で、どうすれば良いのか一瞬悩みましたが、Apache、PHP、MySQLそれぞれ標準でインストール用パッケージが準備されているようで、以下のページを参考に、ほとんどコマンド1発でインストールできました。
□LAMP環境構築編 ? Amazon EC2(AWS) Amazon LinuxでWordPress運用
http://asobicocoro.com/tips/article/aws-lamp
# sudo su -
# yum update
・Apaheインストール
・Apache起動
# /etc/init.d/httpd start
# chkconfig httpd on
・再起動するには
# service httpd restart
・MySQLの起動
# /etc/rc.d/init.d/mysqld start
●MySQLの環境設定
□Amazon EC2 (Amazon Linux) での MySQL インストールと設定
http://blog.genies-ag.jp/2011/08/amazon-ec2-amazon-linux-mysql.html
・インスタンス・タイプに合った設定ファイルを /etc/my.cnf にコピー
※アクセス権でエラーになる場合、アクセス権を一旦変更するなどが必要。
# chmod 777 /etc
# chmod 777 /etc/my.cnf
# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
# chmod 755 /etc
# chmod 664 /etc/my.cnf
# service mysqld start
# chkconfig mysqld on
・/etc/my.cnfが777になったままだと、次のエラーが出て、my.cnfが無視される。
「warning: World-writable config file '/etc/my.cnf' is ignored」
●MySQL:rootユーザーの登録
次のようなエラーに遭遇。
「Access denied for user 'root'@'localhost' (using password: NO)'」
下記ページによれば、rootユーザーの権限設定がされていないとの事。
下記ページに従ってユーザーの権限設定をする。
□MySQLでの「Access denied for user ‘root’@'localhost’ (using password: NO) 」への対処
http://www.goofoo.jp/2011/11/1457
# mysql -u root
use mysql;
truncate table user;
flush privileges;
grant all privileges on *.* to root@localhost identified by 'パスワード' with grant option;
flush privileges;
・rootユーザーのパスワードを設定します。
# /usr/bin/mysqladmin -u root password 'パスワード'
# mysql -u root -pパスワード
# quit;
●WinSCPの設定
下記ページに従って、「PuTTY ごった煮版」のお世話になりつつ、「WinSCP」を設定する。
□【Amazon EC2】SSH経由でのファイル転送方法 (Windows編)その2
http://blog.brainhearts-next.com/2009/10/amazon-ec2ssh-2windows.html
●Linuxの時間を日本時間に設定
□EC2の時間を日本時間に設定する方法
http://doweb.blog.fc2.com/blog-entry-31.html
# cp -p /usr/share/zoneinfo/Japan /etc/localtime
※権限で怒られた場合→sudoコマンドを使用する。
# sudo cp -p /usr/share/zoneinfo/Japan /etc/localtime
# mysql -u root -pパスワード
SET GLOBAL time_zone = '+9:00';
●Amazon EC2標準のPHPでは、「.htaccess」が無視される模様。
以下が無視される。
php_flag short_open_tag On
php_flag allow_call_time_pass_reference On
Options -Indexes
●デフォルトファイルが存在しないディレクトリのファイル一覧を表示させないようにする。
ファイル:/etc/httpd/conf/httpd.conf
Options Indexes FollowSymLinks
↓↓↓
Options -Indexes FollowSymLinks
# service httpd restart
●PHPのショートタグ形式(<?= $hoge ?>)をONにする。
ファイル:/etc/php.ini
short_open_tag = On
●固定IPアドレスの取得
下記ページに従って、Amazon EC2で固定IPアドレスを取得する。「Elastic IPs」を使う。
こんなに簡単に固定IPアドレスがもらえるなんて!
□Amazon EC2の立ちあげ後に設定すること!パート②~EIP編~
http://recipe.kc-cloud.jp/archives/33
●独自ドメインの設定
下記ページに従って、固定IPを独自ドメインに割り当てる。
□Amazon EC2を独自ドメインで使う