さくらのVPS -初期設定からLAMP環境導入まで-

「さくらのVPS」ではじめてサーバー管理に触れるWEBデザイナーのメモです。
とりあえず、これだけやっておけばwordpressが動く状態にまでセットアップできるのではないかと思います。
手っ取り早くサーバーを立ち上げるときの参考になればと思います。

目次

  1. 「VPSコントロールパネル」にログイン
  2. rootパスワードの変更
  3. ユーザーの作成
  4. sshの設定
  5. Tera Termのインストール
  6. パッケージ(centOS)のアップデート
  7. iptables(ファイアーウォール)の設定
  8. root宛てメールの転送
  9. Apache(WEBサーバー)のインストール&設定
  10. phpのインストール&設定
  11. MySQL(データベース)のインストール&設定
  12. phpMyAdminのインストール&設定
  13. vsftpd(FTPサーバー)のインストール&設定
  14. webmin(システム管理ツール)のインストール&設定
  15. Apacheによるバーチャルホストの設定

1.「VPSコントロールパネル」にログイン

まずはさくらインターネットの「VPSコントロールパネル」にログインします。
さくらインターネットから「[さくらのVPS] 仮登録完了のお知らせ」というタイトルのメールが届いているかと思うので、メール文中にある「VPSコントロールパネル」のリンクよりログインしてください。

ログインしたら「VPSコントロールパネル」のパスワードを変更しましょう。

2.rootパスワードの変更

rootのパスワードを変更します。

# passwd
Changing password for user root.
New UNIX password:新しいパスワードの入力
Retype new UNIX password:新しいパスワードの再入力

3.ユーザーの作成

ユーザーを作成します。作成と同時にユーザーフォルダとwheelというグループに所属させています。

# useradd -d /home/ユーザー名 -G wheel ユーザー名
# passwd ユーザー名
Changing password for user username.
New UNIX password:   ←ユーザーのパスワードを入力
Retype new UNIX password:   ←ユーザーのパスワードを再入力
passwd: all authentication tokens updated successfully.

今後はこのユーザーで作業を行うため、このユーザーにsudoを許可します。

このユーザーはwheelグループに所属しているので、wheelグループにsudoを許可することとします。

# visudo

とコマンドを打ち、以下の内容に変更します。

##Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL  ←コメントアウト##を取り除く

4.sshの設定

リモートでサーバーにログインするためsshの設定をします。
今後はrootではなくwheelに属するユーザーで作業を行っているので、毎回sudoしています。

$ sudo vi /etc/ssh/sshd_config

とコマンドを打ち、以下の内容に変更します。

#Port 22
Port XXXXXX  ←この行を追加(ポート番号を設定)
#PermitRootLogin yes
PermitRootLogin no ←この行を追加(rootでのログインを禁止)

設定が終わったらsshを再起動します。

$ sudo /etc/rc.d/init.d/sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]

5.TeraTermのインストール

SSHクライアントのTera TermというソフトをPCにインストールし、さくらのVPSで用意されているリモートコンソールからではなく、このTera Termというソフトからサーバーの設定を行えるようにします。

より詳しい解説付きのページはこちら
さくらのVPS -Tera TermによるSSH接続-

 

6.パッケージ(centOS)のアップデート

一度centOS自体のアップデートを行います。

$ sudo yum update

7.iptablesの設定

centOSにはじめからインストールされているiptablesを使って、ファイアーウォールの設定をします。
設定を記すファイルを新規で作成します。

$ sudo 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, WEBMIN
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport xxxxxx -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 10000 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

ssh:xxxxxx(先ほどsshのポート番号で任意に決めた番号に置き換え)
http:80
ftp:20,21
webmin:10000
を想定しています。

設定が完了したらiptablesを再起動させます。

$ sudo /etc/rc.d/init.d/iptables restart

8.ルート宛てメールの転送

サーバーでエラーが生じた場合に送信されるroot宛てメールを、普段使用しているメールアドレスに転送してもらいます。

$ sudo vi /etc/aliases

とコマンドを打ち込み、以下の内容に変更する。

# Person who should get root's mail
#root: marc
root: メールアドレス

設定が終了したら、その設定を読み込み直します。

$ sudo newaliases

9.Apacheのインストール&設定

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

$ sudo yum install httpd

Apacheを常駐させます。

$ sudo /sbin/chkconfig httpd on

常駐設定の確認をします。

$ /sbin/chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

初期設定を行います。

$ sudo vi /etc/httpd/conf/httpd.conf

とコマンドを打ち込んだら、以下の内容に変更する。

#ServerTokens OS
ServerTokens Prod (44行目付近。修正)
#KeepAlive Off
KeepAlive On (74行目付近。修正)
#MaxKeepAliveRequests 100
MaxKeepAliveRequests 200 (81行目付近。修正)
# prefork MPM(100行目付近。修正)
<IfModule prefork.c>
StartServers 10
MinSpareServers 5
MaxSpareServers 15
ServerLimit 256
MaxClients 40
MaxRequestsPerChild 1000
</IfModule>
ServerAdmin root@localhost
ServerAdmin http://blog.com (251行目付近。修正)
#ServerName www.example.com:80
ServerName *:80 (265行目付近。修正)
#Options Indexes FollowSymLinks
Options FollowSymLinks (320行目付近。修正)
#AllowOverride NONE
AllowOverride ALL (327行目付近。修正)
#ServerSignature On
ServerSignature Off (524行目付近。)

設定が終了したら、問題がないかチェック。

$ sudo /usr/sbin/apachectl configtest
Syntax OK

Apacheを起動する。

$ sudo /sbin/service httpd start
Starting httpd: [ OK ]

きちんと動いているかの確認。

「http://IPアドレス」にアクセスし、「Apache 2 Test Page」が表示されたらOK。

より詳しい解説付きのページはこちら
さくらのVPS -Apacheのインストール&初期設定-

 

10.phpのインストール&設定

phpをインストールします。現在のさくらのVPSに標準でインストールされているcentOS 6では、はじめからepelのレポジトリが導入されているので、yumでphp5.3系が入ります。感動。

$ sudo yum install php-devel

インストール後、初期設定を行います。

 $ sudo vi /etc/php.ini

以下の部分を編集します。

post_max_size = 32M(729行目。アップロード可能ファイルの最大サイズ)
<del>magic_quotes_gpc = On(745行目。セキュリティー対策)</del>
upload_max_filesize = 32M(878行目。アップロード可能ファイルの最大サイズ)
allow_url_fopen = Off(886行目。セキュリティー対策)
date.timezone = "Asia/Tokyo"(950行目。タイムゾーンの設定)

magic_quotes_gpcは非推奨となったらしいのでOffのままにしましょう。

11.mySQLのインストールと設定

mySQLサーバーをインストールします。

$ sudo yum install mysql-server

mySQLサーバーを常駐させます。

$ sudo /sbin/chkconfig mysqld on

常駐の確認をします。

$ /sbin/chkconfig --list mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

mySQLサーバーを起動します。

$ sudo /etc/rc.d/init.d/mysqld start

自動的に初期設定を行ってくれるプログラムを走らせます。

$ mysql_secure_installation
:
:
Enter current password for root (enter for none):   ←Enterキーを押す
OK, successfully used password, moving on...
:
:
Change the root password? [Y/n]   ←Enterキーを押す
New password:   ←設定するrootパスワードを入力
Re-enter new password:   ←同じパスワードを再入力
Password updated successfully!
Reloading privilege tables..
... Success!
:
:
(以降の選択肢ではすべてEnterのみを入力する)

新規でユーザーを作成します。ますはrootとしてアクセスします。

$ mysql -u root -p
Enter password:   ←パスワードを入力

ユーザー「user」を作成し、パスワードとして「password」を設定します。

mysql> GRANT ALL PRIVILEGES ON *.* TO user@localhost IDENTIFIED BY 'password';

ユーザーが作成されたか確認します。

mysql> SELECT host,user FROM mysql.user;

exitして終了します。

mysql> exit

続いてmy.confの設定を行います。主に文字コードの設定で、標準で文字コードをuft8にします。

sudo vi /etc/my.cnf

以下の内容を追記します。([mysqld]の部分ははじめから記載があるので、以下を追記します。)

[mysqld]
character-set-server=utf8 (ここだけdefault-character-setとは書かない。)
skip-character-set-client-handshake
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8

mySQLを再起動します。

sudo /etc/init.d/mysqld restart

12.phpMyAdminのインストール&設定

phpMyAdminはインストールします。

$ sudo yum install phpmyadmin

ブラウザからアクセスできるように初期設定をします。

$ sudo vi /etc/httpd/conf.d/phpMyAdmin.conf

以下の部分を編集し、初期ではlocalhostからしかアクセスできないのを、インターネット越しにアクセスできるようにします。

<Directory /usr/share/phpMyAdmin/>
 # Order Deny,Allow
 # Deny from All
 # Allow from 127.0.0.1
 # Allow from ::1
 Order allow,deny
 Allow from all
 </Directory>

これで「http:ホスト名/phpmyadmin/」にアクセスすればログイン画面が表示されます。

より詳しい解説付きのページはこちら
さくらのVPS -phpMyAdminのインストールと初期設定-

 

13.vsftpdのインストール&設定

FTPサーバーをインストールします。

$ sudo yum install vsftpd

初期設定を行います。

$ sudo vi /etc/vsftpd/vsftpd.conf

以下の内容に変更します。

anonymous_enable=NO (12行目付近。変更)
 ascii_upload_eneble=YES (81行目付近。変更)
 ascii_download_eneble=YES (82行目付近。変更)
 ls_recurse_enable=YES (104行目付近。変更)
 use_localtime=YES(追記)
 local_root=/var/www/html(追記)
 force_dot_files=YES (追記)

vsftpdを起動します。

$ sudo /etc/init.d/vsftpd start

vsftpdを常駐させます。

$ sudo /sbin/chkconfig vsftpd on

常駐の確認をします。

$ /sbin/chkconfig --list vsftpd

14.webminのインストール&設定

yumでは入らないのでwgetで取得してrpmでインストールします。
2012年5月現在の最新版1.580をダウンロードしていますが、もしかしたらバージョンが新しくなっているかもしれないので、webminのサイトで確認してください。

$ wget http://prdownloads.sourceforge.net/webadmin/webmin-1.580-1.noarch.rpm
$ sudo rpm -U webmin-1.580-1.noarch.rpm
$ rm webmin-1.580-1.noarch.rpm

これだけで、http://ホスト名:10000 でwebminにアクセスできますが、10000番ポートをファイアーウォールで許可していないとダメなので、ファイアーウォールの設定も変えます。

$ sudo vi /etc/sysconfig/iptables

15.Apacheによるバーチャルホストの設定

一般的には、ひとつのサーバーでいくつものサイトを運営すると思います。その場合にはApacheによるバーチャルホストの設定が必要になります。

Apacheの設定ファイルを開きます。

$ sudo vi /etc/httpd/conf/httpd.conf

はじめてバーチャルホストの設定をする場合にはまず以下の部分を変更します。

NameVirtualHost *:80 (970行目付近。コメントアウトを削除する)

続いて、新しく追加するサイト(ドメインもしくはサブドメイン例として「blog.aroundit.net」)の設定します。

サイト設定は上記と同じhttpd.confに記述することも出来ますが、httpd.confは設定項目が多すぎてページを相当スクロールさせないといけないので、バーチャルホストの設定は別ファイルに記述します。

一般的なファイル名「vhost.conf」で新規ファイルを作成します。

# sudo vi /etc/httpd/conf.d/vhost.conf

バーチャルホストの設定を記述する。

<virtualhost *:80>
DocumentRoot /var/www/html/blog
ServerName blog.aroundit.net
</virtualhost>

Apacheを再起動させます。

$ sudo /sbin/service httpd restart

とりあえず、これだけでバーチャルホストの設定は終わりです。
・DNSの変更
・指定したディレクトリの作成と、その中にindex.htmlファイルを置いてあげると表示されます。

注意
バーチャルホストのディレクトリを、たとえば「/home/username/web」などのように各ユーザーのディレクトリに設定した場合、/username/ディレクトリのパーミッションが700で作られているために、ブラウザでアクセスしても「Forbidden」となることがあります。/username/のディレクトリのパーミッションを755に変更しましょう。

また、バーチャルホストの設定を行うと(NameVirtualHostのコメントアウトを外すと)、DocumentRootの設定が無効になり、IPアドレスや初期ドメインでのアクセスは全てバーチャルホストの一番目に記載したDcumentRootが表示されます。

ですので、「バーチャルホストを設定するときは、まずメインホスト自体もバーチャルホストのひとつに設定し直す」必要があります。普通は最低2つのバーチャルホストの設定が書かれた状態(メインホストと新しく追加したいホスト)になるはず、ということです。

「さくらのVPS -初期設定からLAMP環境導入まで-」への1件のフィードバック

  1. 私が初めてVPSを使い始めた時にこの設定方法を参考にさせていただきました。本当にお世話になりました。

コメントは停止中です。