ConoHa VPS LAMP環境の構築(既定の古いバージョンのサーバ)
提供: tknotebook
この文章は最初に ConoHa VPS の既定の yum リポジトリで LAMP環境を作成した時の記録です。 この環境は古すぎて使えなかったので今はすでにありませんが、環境設定の参考になれば幸いです。
目次
[非表示]基本設定
VMの作成
- ConmoHa Control Panel にログインし、サーバーリストを選びます。
- 画面の ADD VPS ボタンを押し、プラン(2GB) とインストールイメージ(CentOS 6.5(64bit))を選びます。
- root のパスワードを入力して CONTINUE ボタンを押すと数分で VM で出来上がり起動します。
ログイン
- ConoHa Control Panel で VM を選択すると現れる画面で、画面最上段右端の 「v」マークを押すと、SSH Private-key のダウンロードボタンが現れます。これを押すとSSHの秘密鍵ファイルをダウンロードできます。
- Teraterm(UTF-8サポート版でUTF-8に設定) を起動します。
- TCPポート22、SSH2 で接続します。
- Teratermでユーザ名に root、RSA/DSA/ECS/DSA鍵を使うを選び、[秘密鍵]ボタンを押して先ほど入手した秘密鍵ファイルを指定します。
- OKボタンを押すと root でログインできます。パスワードが不要であることに注意してください。これはConoHaの「仕様」です。
yum update
- 念のため yum update を実施
yum update
- ConoHaでは 200MB超の update があった。
コンソールの日本語化
- ConoHa VPS では /etc/sysconfig/i18n で LANG 環境変数は en_US.UTF-8 に設定されている。特に変更は不要なようだ。
ファイアウォールを設定する
- 以下の記述を /etc/sysconfig/iptables に書き込む
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT -A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # SSH, HTTP, FTP1, FTP2, MySQL -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 20 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT
書き込み終わったら、
service iptables start
で動作を確認し、問題ないようでしたら
chkconfig iptables on
で起動時にスタートするようにしましょう。
尚、iptables のコマンドをコンソールから一つ一つ打っていっても設定できるのですが、iptables を切っていても、iptablesのコマンドを打つとファイアウォールが動いてしまうようで、VPSとコンソール(Teratermなど)のSSH接続が切れてしまいます。
一発で書き込んで、一発で試験するのがよいようです。最悪コントロールパネルのコンソールは繋がるので、2度繋がらなくなることはありませんが・・・
メモ
- selinux は 既定で disabled になっている。従って setsebool -P httpd_can_network_connect_db on で apacheから mysql へ接続可能にする必要はなかった。
FTPサーバをインストール
インストール
yum -y install vsftpd
設定
- /etc/vsftpd/vsftpd.conf を 修正
anonymous_enable=YES → NO
サービス開始
service vsftpd start
chkconfig vsftpd on
apacheの設定
- 自動起動設定
chkconfig httpd on service httpd start
- DBアクセス許可 これは不要だったが selinux を ON にするときに必要なので残しておく。
setsebool -P httpd_can_network_connect_db on
phpのインストール
本体のインストール
yum -y install php php-mbstring php-mysql php-gd
php.iniの設定
php.ini の
;error_logs = php_erros.log
を
error_logs = /var/log/php_erros.log
空の /var/log/php_erros.log を作成し
chown apache /var/log/php_erros.log chgrp apache /var/log/php_erros.log chmod 777 /var/log/php_erros.log
とする。
php.ini の
;mbstring.language = Japanese
を
mbstring.language = Japanese
に
;mbstring.internal_encoding = EUC-JP
を
mbstring.internal_encoding = UTF-8
に
;mbstring.http_input = auto
を
mbstring.http_input = auto
に
;mbstring.detect_order = auto
を
mbstring.detect_order = auto
に
expose_php = on
を
expose_php = off
に変更する
date.timezone =
を
date.timezone = Asia/Tokyo
に変更する。
service httpd restart
で apache を再起動すると修正が反映される。
MySQLのインストール
インストール
yum -y install yum -y install mysql-server yum -y install yum -y install php-mysql
開始
service mysqld start chkconfig mysqld on
初期設定
- /etc/my.cnf を以下のように変更。基本的に、各種のキャラクタセットを全部 utf-8 にしてるだけです。これで mysql のいろいろな既定値が utf-8 になります。
[client] default-character-set = utf8 [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 skip-character-set-client-handshake character-set-server = utf8 collation-server = utf8_general_ci [mysqldump] default-character-set = utf8 [mysql] default-character-set = utf8 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
- mysql_secure_installation を実行し以下のように答える。
- rootのパスワードを設定する。
- 匿名ユーザーを削除する。
- リモートからのrootログインを禁止する。
- testデータベースを削除する。