「さくらのVPS」ではじめてサーバー管理に触れるWEBデザイナーのメモです。
とりあえず、これだけやっておけばwordpressが動く状態にまでセットアップできるのではないかと思います。
手っ取り早くサーバーを立ち上げるときの参考になればと思います。
目次
- 「VPSコントロールパネル」にログイン
- rootパスワードの変更
- ユーザーの作成
- sshの設定
- Tera Termのインストール
- パッケージ(centOS)のアップデート
- iptables(ファイアーウォール)の設定
- root宛てメールの転送
- Apache(WEBサーバー)のインストール&設定
- phpのインストール&設定
- MySQL(データベース)のインストール&設定
- phpMyAdminのインストール&設定
- vsftpd(FTPサーバー)のインストール&設定
- webmin(システム管理ツール)のインストール&設定
- 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を使い始めた時にこの設定方法を参考にさせていただきました。本当にお世話になりました。