中級プログラマの自宅でPHP ブログ

自宅用ポータルシステム「MyHome Portal」をオープンソースで公開。MyHome Portalの説明とエンハンス情報。

AWS(Amazon EC2)でサイト立ち上げのメモ

先日、MyHome Portalの機能の一部をサービス化したサイト「O2Portal」を立ち上ました。

トラブルにより、「O2Portal」は、停止しました。(8/13 追記)

Amazon EC2を使っています。Amazon EC2について、ほとんど知識を持ち合わせていませんでしたが、インターネット上で導入手順を親切に説明されているホームページのおかげで半日程で立ち上げが出来ました。

Amazon EC2の登録や設定は、以下のページが参考になります。

OSはAmazon標準のLinuxを選択しました。

AWS(Amazon EC2)にApache+PHP+MySQLphpMyAdmin,vsftpdを導入する手順 - YATのBLOG

http://wp.yat-net.com/?p=3662

Amazon EC2の使い方【SSHまで全部GUIでできます!】

http://www.synaesthesia.jp/amazon/ec2/introduction.php

amazon EC2試してみたよ! | [NC]News Clipping

http://blog.jab-net.com/nc/archives/2010/05/amazon-ec2%E8%A9%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F%E3%82%88%EF%BC%81.html

TeraTermをインストールします。

ユーザ名「ec2-user」で、EC2の設定途中でダウンロードした、Key Pairのファイルを秘密鍵で設定してログインします。

Apache+PHP+MySQLの環境が必要だったので、XAMPPをダウンロードしてインストールしようと思ったのですが、Amazon標準のLinuxGUI環境があるのかどうか自体が不明で、どうすれば良いのか一瞬悩みましたが、ApachePHPMySQLそれぞれ標準でインストール用パッケージが準備されているようで、以下のページを参考に、ほとんどコマンド1発でインストールできました。

LAMP環境構築編 ? Amazon EC2AWSAmazon LinuxWordPress運用

http://asobicocoro.com/tips/article/aws-lamp

PHPMySQLインストール

# sudo su -

# yum update

# yum install php

# yum install mysql-server

# yum install php-mysql

# yum install php-mbstring

・Apaheインストール

# yum install httpd

Apache起動

# /etc/init.d/httpd start

Apache自動起動設定

# 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 EC2SSH経由でのファイル転送方法 (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タイムゾーンを日本時間に設定

# 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独自ドメインで使う

http://www.studio-fix.com/blog/kaoru/2009/04/09/post162/