ConoHa VPS LAMP環境の構築(既定の古いバージョンのサーバ)

提供: tknotebook
2016年11月30日 (水) 05:32時点におけるNakamuri (トーク | 投稿記録)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索

メインページ>コンピュータの部屋>ConoHa VPS を使ってみた

この記事は、ConoHa VPS の既定の yum リポジトリで LAMP環境を作成した時の記録です(2014年10月)。 この環境は一部のソフトのインストールでは古すぎて使用を断念したのですが、 WordPressとか MediaWiki とかのポピュラーなサーバではたいていの場合はこれで十分です。なんといってもお手軽です。

環境設定の参考になれば幸いです。

基本設定

VMの作成

  • ConoHa 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 でVPSのアドレスに接続します。
  • 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 に設定されているので、特に変更は不要なようです。気になるなら ja_JP.UTF-8 に変更した方がよいかもしれませんが en_US.UTF-8 のままでも特に不都合はありません。日本語の出力、viでの編集などは問題なく行えます。

ファイアウォールを設定する

以下の記述を /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度繋がらなくなることはありませんが・・・

メモ

ConoHa では 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

メモ

この時はまだ ssh をよく知らなくて、ssh さえあれば Teraterm や WinSCP などで安全にファイル転送できることを知りませんでした。利用者に広く FTP を公開する必要がなければ ftp サーバのインストールはお勧めしません。

apacheの設定

ConoHa VPS では apache はインストールされてはいますが起動するようにはなっていません。自動起動に設定します。

chkconfig httpd on
service httpd start

DBアクセス許可 これは ConoHa VPS では不要ですが 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

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 を実行し以下のように答えます。

  1. rootのパスワードを設定する。
  2. 匿名ユーザーを削除する。
  3. リモートからのrootログインを禁止する。
  4. testデータベースを削除する。

まとめ

以上で終了です。この後 MediaWikiをインストールして特に問題はありませんでしたので大きな問題はないでしょう。あまりLAMPのバージョンを選ばないソフトならこの環境で十分でしょう。