今まではレンタルサーバーを使用していたのですが、レンタルサーバーではPHPの使用できるモジュールに制限があったり、共有サーバーのため動作が重かったり不便な点が幾つかありました。
そこでConohaのVPS(512MB)を契約してみることにしました。
現在使用しているレンタルサーバーが「さくらレンタルサーバー」なので、初めは「さくらのVPS」を使用するつもりだったのですが、「Conoha」と「さくら」比べると「Conoha」が以下の3点で優れていたので、Conohaを使用することにしました。
- 初期費用が無料
- 途中でプラン変更が可能 (512MBプランは不可)
- 少しだけ安い
VPSを触るのが初めてだったので、何度もエラーを起こしては初期化を繰り返し、なんとかPHPとNginxが動作するとこまで来ましたので、方法をメモして置こうと思います。
0.まずConohaでVPSを一つレンタルします。今回は512MBプランにしました。
※メールアドレス、電話番号、クレジットカードもしくはConohaカードが必要です。
友達紹介コードをお持ちでない方はぜひ使ってみてください。
※必須ではないのですが、以下のサイトでサーバーのIPアドレスをチェックしておくことをおすすめします。一つでもNGがあった場合、サーバーから送信されるメールが拒否されたり、セキュリティソフトによってサイトへのアクセスがブロックされてしまう場合があります。 Conohaの場合はVPSを作成する度にIPアドレスが変わるので、NGがあってもVPSを削除して新規作成すればIPアドレスを変更できます。(作り直す度に1時間分の料金が発生します)
1. SSHクライアントとしてMobaXtermを使用します。
公式サイトからインストーラーをダウンロードしてインストールします。 → http://mobaxterm.mobatek.net/
(SFTPがサイドバーに表示されて便利そうだったのでこのクライアントにしました!)
2.まずインストール済みのパッケージをアップデートします。
yum update
3.システムの言語設定を確認します。
localectl status
4.英語設定であった場合、以下のコマンドで日本語に変更します。
localectl set-locale LANG=ja_JP.utf8
※以下のコマンドで利用可能なロケールを確認できます。 localectl list-locales | grep -i ja
5.Rootユーザーのままだと危険なので、新しく作業用ユーザーを作成します。
useradd takumi9942
6.作成したユーザーにパスワードを設定します。
passwd takumi9942
7.作成したユーザーが管理権限コマンド(sudo)を実行できるようにwheelグループに入れます。
usermod -G wheel takumi9942
8.一旦ログアウトし、先程作成したユーザー(takumi9942)でログインします
logout
※以下の殆どのコマンドで権限が必要なので、はじめに以下のコマンドでsudo権限を付与する必要があります。※
sudo -s
9.公開鍵生成のため、PuTTYをダウンロードします。→ http://hp.vector.co.jp/authors/VA024651/PuTTYkj.html
10.「putty-0.67-jp20160306.zip」を解凍し、「puttygen.exe」を起動します。
11.Generateを選択し、ゲージがいっぱいになるまでゲージの下の空欄上でマウスカーソルを動かし続けます。
12.「Key passphrase」と「Confirm passphrase」に任意のパスワードを入力し、「Save private key」を押して秘密鍵を保存します。
13.「Public key for pasting into OpenSSH authorized_keys file:」の下の文字列をすべてコピーし、メモ帳に貼り付け「authorized_keys」という名前で保存します。
14.MobaXtermに戻って、作成したユーザーでログインします。
15.ホームフォルダに「.ssh」ディレクトリを作成します。
mkdir .ssh
16.作成した「.ssh」ディレクトリのパーミッションを変更します。
chmod 700 .ssh
17.画面左のSFTPを使用して、「.ssh」ディレクトリの中に先程作成した「authorized_keys」をコピーします。
(「authorized_keys.txt」となっている場合は「authorized_keys」に名前を変更します)
18.「authorized_keys」のパーミッションを変更します。
chmod 600 .ssh/authorized_keys
19.セキュリティ強化のため、SSHのポート番号を変更、Rootログイン禁止、パスワード認証禁止を行います。
vim /etc/ssh/sshd_config
Vimで開いた設定ファイルを以下のように変更します。
Vimの使い方はこちらのサイトで確認してください → http://dotinstall.com/lessons/basic_vim
/Portを任意の数字に /PasswordAuthをnoに /PermitRootをnoに
20.sshdを再起動します。
systemctl restart sshd
21.ファイアウォールの設定で先程設定したポート番号を許可します。
cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/ssh.xml vim /etc/firewalld/services/ssh.xml
22.ついでにファイアウォールで「http」と「https」を許可しておきます。
firewall-cmd --add-service=http --zone=public --permanent firewall-cmd --add-service=https --zone=public --permanent
23.ファイアウォールを再起動して設定を反映させます。
firewall-cmd --reload ※ファイアウォールが正しく設定されているか以下のコマンドで確認できます firewall-cmd --list-all
24.現在のSSHタブを残したまま、新しくタブを開き鍵認証でログインしてみましょう。MobaXtermの「Session Settings」→「Advances SSH settings」→「Use private key」で秘密鍵を設定し、ユーザー名を入れます。
25.新しいタブでログインできれば、鍵認証は正しく設定されています。
※タイムアウトする場合はファイアウォールの設定を確認しましょう。 ※key refusedと出る場合にはSSHあるいはauthorized_keysの設定が間違っています。
26.Nginxをインストールします。
yum install nginx nginx -v
27.Nginxの設定を変更し、Nginxがサーバー起動時に自動的に実行されるように設定します。
#nginxの設定を変更する場合は以下のコマンドで設定 vim /etc/nginx/nginx.conf #nginxの設定が正しく行われているか確認 nginx -t #nginxの公開ディレクトリの権限付与 chown -R takumi9942:takumi9942 /usr/share/nginx/html/ #nginxの自動起動を有効化。 systemctl enable nginx #nginxを起動 systemctl restart nginx
28.PHP7.1をインストールするには外部レポジトリを入れる必要があるのですが、その前にレポジトリの優先順位を指定しておきます。
#優先順位を決定するパッケージのインストール yum install yum-priorities #標準レポジトリの優先順位を設定 vim /etc/yum.repos.d/CentOS-Base.repo
#以下の内容を追記する [base] priority=1 exclude=php* [updates] priority=1 exclude=php* [extras] priority=1 exclude=php*
#epelレポジトリのインストール yum install epel-release #epelレポジトリの優先順位を設定 vim /etc/yum.repos.d/epel.repo
#以下の内容を追記する [epel] priority=2 exclude=php*
#remiレポジトリのインストール yum install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm #remiレポジトリの優先順位を設定 vim /etc/yum.repos.d/remi.repo
#以下の内容を追記する [remi] priority=2
#remiレポジトリの優先順位を設定 vim /etc/yum.repos.d/remi-php71.repo
#以下の内容を追記する [remi-php71] enabled=1
#念のためyumのキャッシュを削除します yum clean all
29.次にPHP7.1をインストールします。
#PHP7.1といろいろなモジュールをインストール yum install php php-cli php-common php-devel php-fpm php-gd php-mbstring php-pdo php-pear php-pecl-apcu php-soap php-xml php-xmlrpc php-mcrypt #PHPの起動 systemctl start php-fpm.service #PHPの自動起動有効化 systemctl enable php-fpm #PHPのバージョン確認 php -v #/etc/php-fpm.d/www.conf内のuserとgroupをnginxに変更 vim /etc/php-fpm.d/www.conf
これですべての作業は終了です。
ブラウザでVPSのIPアドレスへアクセスしてみましょう。
VPSってPHP動かすだけでも一苦労ですね・・・(;´д`)トホホ…