① Vultrのお申し込み方法

インターフェースの言語は英語版のみなので新アカウントを
登録した後にこの設定で新インスタンスを追加しました:

  1. 場所:東京
  2. OS: CentOS 6 x64版
  3. 料金: 月3.50$ (税別)

次回はIPv4を使用する予定なので月2.5$の一番安いプランは選択しません。
IPv6のみなのでIPv4を使用するならプランのアップグレードやIPの追加料金になります。

以下の画像をご覧ください:

設定が完了されましたら管理画面からコンソールの「root」ユーザーでセットアップをやってきます。

詳細のリンクをクリックしましょう

詳細の管理画面では下の方にパスワードのフィールドが置いてあります。

「目」のアイコンをクリックするとパスワードが表示されます。

同じ管理画面の右上にモニターのアイコンをクリックするとログインの管理画面がポップアップに表示されます。

モニターのアイコンをクリックする
ログインの管理画面がポップアップに表示されます。

rootのユーザー名と先ほどのパスワードを入力するとコンソールのプロンプトが表示されます:

[root@vultr ~]#

② サーバーの基本設定

コンソールの調整について

先に新ユーザーを追加します。
ユーザー名は「gijoe」にします。

[root@vultr ~]# useradd gijoe
[root@vultr ~]# passwd gijoe
> Changing password for user gijoe  
> New password:  
> Retype new password:  
> passwd: all authentification tokens updated automatically.

作成したログイン情報を確認します:

[root@vultr ~]# login
> CentOS release 6.10 (Final)  
> Kernel 2.6.32-754.6.3.el6.x86\_64 on an x86\_64  
>  
> vultr login:  

そこで先ほど入力したパスワードをもう一回入力してみます:

vultr login: gijoe
Password: 
> Last login: Sat Nov 10 06:46:23 on tty1  
> [gijoe@vultr ~]$

できましたということです。
次のステップは「root」ユーザーのログインを調整します。

個人の仕事では「root」ユーザーを選んだところのみに無効しています。
サーバーの担当者は僕だけなので十分です。

皆さんがよくやっているのは「root」ユーザーを完璧に無効にして変わりに普通なユーザーを「sudo」できるようにするかと思います。
この記事では別な方法を見せて頂きます。

「/etc/securetty」のファイルを変更して「console」のみを残しておきます。

vi /etc/securetty
> console  
> vi/1  
> ...  
> vi/〇〇  
> tty1  
> ...  
> tty〇〇

修正後

> console

ログアウトして確認しましょう:

[root@vultr ~]# exit
[gijoe@vultr ~]$ exit

ログイン画面に戻りました。

> CentOS release 6.10 (Final)  
> Kernel 2.6.32-754.6.3.el6.x86\_64 on an x86\_64  
>  
> vultr login:  

そうしたら:

vultr login: root
Password:
Login incorrect

正しいパスワードを入力してもログインすることができません。

vultr login: gijoe
Password:
Last login: Sat Nov 10 07:28:48 on tty1
[gijoe@vultr ~]$ su -
Password:
[root@vultr ~]#

やった!
一般的なユーザー(gijoe)をログインした後にコンソールに着いたらではスーパーユーザーに戻ることができます。

SSHの調整について

このサーバーではSSHを無効にします!
SFTPは使えないのでご注意ください。

SSHDのサービスを停止して削除します:

[root@vultr ~]# service sshd stop
Stopping ssh:                                        [  OK  ]
[root@vultr ~]# chkconfig sshd off
[root@vultr ~]# yum remove openssh-server
> ...  
> Removed:  
>    openssh-server.x86\_64 0:5.3p1-123.el6_9  
>  
> Complete !

この時に、一般的なポートを無効にします:

  • 11 FTP
  • 22 SFTP
  • 25 SMTP
  • 110 POP
  • 143 IMAP
[root@vultr ~]# iptables -A INPUT -p tcp --dport 21 -j DROP
[root@vultr ~]# iptables -A INPUT -p tcp --dport 22 -j DROP
[root@vultr ~]# iptables -A INPUT -p tcp --dport 25 -j DROP
[root@vultr ~]# iptables -A INPUT -p tcp --dport 110 -j DROP
[root@vultr ~]# iptables -A INPUT -p tcp --dport 143 -j DROP
[root@vultr ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]

この記事を書いているところには以下の設定になっています:

[root@vultr ~]# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:https 
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 
DROP       tcp  --  anywhere             anywhere            tcp dpt:ssh 
DROP       tcp  --  anywhere             anywhere            tcp dpt:ftp 
DROP       tcp  --  anywhere             anywhere            tcp dpt:smtp 
DROP       tcp  --  anywhere             anywhere            tcp dpt:pop3 
DROP       tcp  --  anywhere             anywhere            tcp dpt:imap 
 
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 
 
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

システムのアップデート

ウェブサイトが動けるものをインストールする前には最初システムを更新すれば良いと思います:

[root@vultr ~]# yum update

途中に確認画面がありましたら全てを「y」(はい)に答えればいいです。

最後は「root」のパスワードを更新しました:

[root@vultr ~]# passwd

③ 「Apache・MySQL」の設定方法

「Apache」の追加について

[root@vultr ~]# yum install httpd
[root@vultr ~]# /etc/init.d/httpd start
Starting httpd: httpd: Could not reliably determine the server's
fully qualified domain name, using vultr.guest for ServerName
                                                           [  OK  ]
[root@vultr ~]# chkconfig httpd on

「Firewall」の調整について

ファイアーウォールの設定を変更して、httpでアクセスできるようにします。

[root@vultr ~]# iptables -I INPUT 5 -p tcp -m tcp --dport 80 -j ACCEPT
[root@vultr ~]# service iptables save

ブラウザーの「http://〇〇.〇〇.〇〇.〇〇」URLをアクセスすると
ようこそのページが表示されるはずです。

このウェルカムページを削除したら新ドメインのVHostを追加します。

[root@vultr ~]# rm /etc/httpd/conf.d/welcome.conf
[root@vultr ~]# rm /var/www/error/noindex.html

新「Virtual Host」の追加について

[root@vultr ~]# touch /etc/httpd/conf.d/movabletype.ninja.conf
vi /etc/httpd/conf.d/movabletype.ninja.conf

「html・cgi-bin」 の代わりに「static・mt-admin」を使用しています。
以下の内容で作成しました。

<VirtualHost *:80>
    ServerName movabletype.ninja

    DocumentRoot /var/www/static
    <Directory "/var/www/static">
        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>

    ScriptAlias /mt-admin/ "/var/www/mt-admin/"
    <Directory "/var/www/mt-admin">
        AllowOverride None
        Options +ExecCGI
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/www/logs/error_log
    CustomLog /var/www/logs/access_log common
</VirtualHost>

現在のDNS設定に合わせてServerNameをまだ追加しなくてもいいかもしれません。

Apache を再起動します:

service httpd restart

「Mysql」の追加について

[root@vultr ~]# yum install mysql-server
Starting mysqld:                                           [  OK  ]
[root@vultr ~]# /etc/init.d/mysqld start
[root@vultr ~]# chkconfig mysqld on

mysql-server をインストールすると基本的なPerlモジュールがインストールされます。

> ...  
> Dependency Installed:  
>   mysql.x86\_64 0:5.1.73-8.el6_8  
>   perl.x86\_64 4:5.10.1-144.el6  
>   perl-DBD-MySQL.x86\_64 0:4.013-3.el6  
>   perl-DBI.x86\_64 0:1.609-4.el6  
>   perl-Module-Pluggable.x86\_64 1:3.90-144.el6  
>   perl-Pod-Escapes.x86\_64 1:1.04-144.el6  
>   perl-Pod-Simple.x86\_64 1:3.13-144.el6  
>   perl-libs.x86\_64 4:5.10.1-144.el6  
>   perl-version.x86\_64 3:0.77-144.el6  
> ...

先にmysqlのセットアップをやりましょう:

[root@vultr ~]# /usr/bin/mysql_secure_installation
> NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL  
>       SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
> 
> 
> In order to log into MySQL to secure it, we'll need the current  
> password for the root user.  If you've just installed MySQL, and  
> you haven't set the root password yet, the password will be blank,  
> so you should just press enter here.
> 
> Enter current password for root (enter for none):  
> OK, successfully used password, moving on...
> 
> Setting the root password ensures that nobody can log into the MySQL  
> root user without the proper authorisation.
> 
> Set root password? [Y/n] Y  
> New password:  
> Re-enter new password:  
> Password updated successfully!  
> Reloading privilege tables..  
>  ... Success!
> 
> 
> By default, a MySQL installation has an anonymous user, allowing anyone  
> to log into MySQL without having to have a user account created for  
> them.  This is intended only for testing, and to make the installation  
> go a bit smoother.  You should remove them before moving into a  
> production environment.
> 
> Remove anonymous users? [Y/n] Y  
>  ... Success!
> 
> Normally, root should only be allowed to connect from 'localhost'.  This  
> ensures that someone cannot guess at the root password from the network.
> 
> Disallow root login remotely? [Y/n] Y  
>  ... Success!
> 
> By default, MySQL comes with a database named 'test' that anyone can  
> access.  This is also intended only for testing, and should be removed  
> before moving into a production environment.
> 
> Remove test database and access to it? [Y/n] Y  
>  - Dropping test database...  
>  ... Success!  
>  - Removing privileges on test database...  
>  ... Success!
> 
> Reloading the privilege tables will ensure that all changes made so far  
> will take effect immediately.
> 
> Reload privilege tables now? [Y/n] Y  
>  ... Success!
> 
> Cleaning up...
> 
> 
> 
> All done!  If you've completed all of the above steps, your MySQL  
> installation should now be secure.
> 
> Thanks for using MySQL!

新しいデータベースの設定について

これから「sigma6」の新データベースと「gi_joe」の新ユーザーを作成します。

[root@vultr ~]# mysql -u root -p
Enter password:
> Welcome to the MySQL monitor.  Commands end with ; or \g.  
> Your MySQL connection id is 10  
> Server version: 5.1.73 Source distribution
>
> Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
>
> Oracle is a registered trademark of Oracle Corporation and/or its  
> affiliates. Other names may be trademarks of their respective  
> owners.
>
> Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

「gi_joe」の新ユーザー追加:
ユーザー名: gi_joe
パスワード: abc123

mysql> CREATE USER 'gi_joe'@'localhost' IDENTIFIED BY 'abc123';
Query OK, 0 rows affected (0.00 sec)

「sigma6」の新データベース作成:

mysql> CREATE DATABASE sigma6 CHARACTER SET utf8 COLLATE utf8\_general\_ci;
Query OK, 1 row affected (0.00 sec)

「gi_joe」が「sigma6」のデータベースを変更できるように:

mysql> GRANT ALL PRIVILEGES ON sigma6.* TO 'gi_joe'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

後コンソールに戻ります:

mysql> exit
Bye

④ 「Movable Type」の設定方法

「Movable Type」の追加について

先に足りないPerlモジュールをインストールします:

yum install perl-Archive-Tar perl-Archive-Zip perl-Time-HiRes
yum install perl-Authen-SASL perl-Crypt-DSA perl-Crypt-SSLeay perl-Digest-SHA
yum install perl-Cache-Memcached perl-IO-Socket-SSL perl-Net-SSLeay
yum install perl-XML-Entities perl-XML-LibXML perl-XML-Parser perl-YAML-Syck
yum install ImageMagick-perl

GithubからMT6の最近版をダウンロードします。

[root@vultr ~]# mkdir /var/www/mt-admin
[root@vultr ~]# mkdir /var/www/static/
[root@vultr ~]# cd /var/www/mt-admin/
[root@vultr mt-admin]# wget https://github.com/movabletype/movabletype/archive/mt6.3.7.zip
> --2018-11-08 01:06:58--  https://github.com/movabletype/movabletype/archive/mt6.3.7.zip  
> Resolving github.com... 192.30.255.113, 192.30.255.112  
> Connecting to github.com|192.30.255.113|:443... connected.  
> HTTP request sent, awaiting response... 302 Found  
> Location: https://codeload.github.com/movabletype/movabletype/zip/mt6.3.7 [following]  
> --2018-11-08 01:06:58--  https://codeload.github.com/movabletype/movabletype/zip/mt6.3.7  
> Resolving codeload.github.com... 192.30.255.120, 192.30.255.121  
> Connecting to codeload.github.com|192.30.255.120|:443... connected.  
> HTTP request sent, awaiting response... 200 OK  
> Length: unspecified [application/zip]  
> Saving to: "mt6.3.7.zip"  
>   
>      \[         <=\>                           \] 15,675,042  7.58M/s   in 2.0s  
>   
> 2018-11-08 01:07:01 (7.58 MB/s) - "mt6.3.7.zip" saved [15675042]
[root@vultr mt-admin]# unzip mt6.3.7.zip
[root@vultr mt-admin]# rm mt6.3.7.zip
[root@vultr mt-admin]# mv movabletype-mt6.3.7/mt-static /var/www/static/
[root@vultr mt-admin]# chown -R apache:apache /var/www/static/
[root@vultr mt-admin]# mv movabletype-mt6.3.7/* .
[root@vultr mt-admin]# rm -rf movabletype-mt6.3.7/
[root@vultr mt-admin]# chown -R apache:apache .
[root@vultr mt-admin]# chmod uog+x .
[root@vultr mt-admin]# chown og-w .

ここではファイルの準備が完了されましたのでブラウザーから
「 http://〇〇.〇〇.〇〇.〇〇/mt-admin/mt-wizard.cgi 」を
開くとセットアップの管理画面が表示されるはずです。

ウィザード1:ウェルカムの管理画面

Language(言語設定)のプールダウンは「日本語」を選択します。

日本語

Static web pageの値:

/mt-static

Static file pathの値:

/var/www/static/mt-static/

ウィザード2:システムチェック

Perlモジュールが先にインストールされましたので問題ないはずです。

ウィザード3:データベース設定

これはページ3で入力した情報と同じにします。

データベースサーバ:

localhost

データベース名:

sigma6

ユーザー名:

gijoe

パスワード:

abc123

ウィザード4:データベースの接続完成

問題がなければ「接続テスト」のボタンを押すと以下の管理画面へ移動されるようになります。

ウィザード5:メール設定

このサーバではメールを送信できないようにしていますのでダミー設定を入力します。

システムメールアドレス:

noreply@〇〇〇〇.〇〇

メール送信プログラム:

sendmail

sendmailのパス:

/usr/lib/sendmail

ウィザード6:メール設定

「次へ」のボタンを押したらMTの設定ファイルが作成されます。

ウィザード7:アカウントの作成

ユーザー名:

gi_joe

表示名:

GI Joe

電子メール:

noreply@〇〇〇〇.〇〇

表示言語:

日本語

パスワード:

******

パスワード確認:

******

ウィザード8:最初のウェブサイトの作成

ウェブサイト名:

Movable Type Ninja

ウェブサイトのURL:

http://〇〇.〇〇.〇〇.〇〇/

ウェブサイトパス:

/var/www/static/

ウィザード9:インストールを完了しました

サインインのボタンを押したらMTの管理画面が表示されます。

⑤ 「CloudFlare」の設定

MTの準備ができましたら CloudFlareというCDNの無料プランを使用できるようにします。

CDNはサイトのアセット(HTML、CSS、画像など)を世界のネットワークに広げてサーバーの問題があってもただのスタティックページが表示できるようになります。

CDNを使用するとネームサーバーという設定変更が必要です。
影響ところが多いし、共有・レンタルサーバーみたいなホスティング社はよくネームサーバーの移動ができませんし、変更する前に確認してほうが良いかと思います。

VPSと新ドメインの場合は問題ないかと思います。

新しいサイトの追加について

ドメインを入力します。

movabletype.ninja

DNSレコードの追加について

「Next」(次へ)の青いボタンを押します。

一番左の「Free」(無料プラン)を選択します。

DNSの設定がまだされていない場合はまたDNSの設定が見つからない場合は手動に追加するのが必要です。

なにもなければ以下の画像と同じようにすくなくともAレコードを追加します。

Name:

movabletype.ninja

IPv4 Address:

〇〇.〇〇.〇〇.〇〇 (VultrのIPv4 Address)

「Add Record」(レコード追加)のボタンを押したら「Continue」(次へ)をクリックします。

ネームサーバーの変更について

設定が完了されましたら、ドメイン社に合わせてCloudFlareからネームサーバー変更のご案内が表示されます。

こちらは割引の「whois.com」で購入したドメインなのでwhois.com に合わせっている情報が書いてあります。ヒントがなければGoogleやYahooで検索して頂ければと思います。

ネームサーバーの変更と反映が完了されましたらいろいろな設定を調整することができます。