ヤッチーのブログ

PHP,Bootstrap,J Query,Swiftやサーバ管理、トラウトのルアー釣り、ハードロック等の記録です

さくらのVPSを体験してみる Apacheインストール、SFTPでの接続、PHP、phpMyAdminの導入まで

f:id:php-7com:20181111100409j:plain

今のレンタルサーバは、PHPmySQL等インストールされており、通常であれば特に困ることもないのですが、postgreSQLを入れたり、自分で細かい設定が出来ないもどかしさもあります。

10数年前、自宅サーバを構築・公開していた頃を思い出しながら、LINUXを触ってみようかと。LPICのレベル1とレベル2の資格はそのころに取得しました。
ただ、今さら自宅にサーバ置いて、固定IP契約も大げさですので、さくらのVPSサービスを体験してみることにしました。

さくらのVPS講座
https://knowledge.sakura.ad.jp/7938/?_ga=2.259113674.1109223888.1541766430-1282882858.1541766430
こちらに従って、VPSを体験してみることに。このマニュアルを写経しました。

1.さくらのコントロールパネルからOSのインストールとrootのパスワードの設定

f:id:php-7com:20181110192214j:plainOSは、CentOS7 x86_64を選択し、標準OSをインストールしました。
rootのパスワード※1を自分で決めて入力しました。

2.サーバに接続するためPuTTYをダウンロード、rootで接続して、OSをアップデート

サーバに接続するために、自分のWINDOWSパソコンにSSHクライアントのPuTTYをインストールしました。putty-0.70-jp20170713.zipをダウンロードして、解凍しました(この辺りも10数年前と変わっていないな)。

f:id:php-7com:20181110193217j:plain
解凍されたファイルの中で、puttyjp.exeをダブルクリック。

f:id:php-7com:20181111082626j:plain
PuTTYが起動しますので、さくらから付与されたIPアドレスを入力し、「開く」をクリック。

 f:id:php-7com:20181111083103j:plain
このような画面が表れたら「はい」をクリック。

f:id:php-7com:20181111084021j:plain
上のようなコマンドプロンプトが起動します。rootと入力し、先ほど決めたパスワード※1を入力し、ログインします。
yum update でOSのアップデートをします。rootやパスワードを入力した後、パソコンのEnterキーを押すことが必要です。

f:id:php-7com:20181111084041j:plain
途中このような「はい」か「いいえ」を問う状況になりましたら、「y」はいを入力。
Complete!と表示され、アップデートを完了。

3.rootでサーバにSSH接続するのは危険なため一般ユーザを作成し、rootでSSH接続できないように設定

f:id:php-7com:20181111084117j:plain
adduser vpsuser で一般ユーザー作成。
passwd vpsuser でパスワード設定。
一般ユーザーのパスワードを自分で決めて(推測されにくいもの)2回打つ
exit で一旦rootでの接続を閉じる。PuTTyそのものが閉じられます。

f:id:php-7com:20181111084224j:plain

PuTTYを起動し、login as:に 一般ユーザー vpsuser を入力
vpsuserのパスワードを打って、一般ユーザーとしてログイン
su - でrootに切替
cd /etc/ssh に移動
ls でどのようなファイルが存在するのか確認できます。
※以後 必要時以外は、コマンドプロンプトの画像ではなく、テキストのみの説明にします。画像の加工が、ぼかしたり等大変なためです。

 # cp sshd_config sshd_config.old

で設定ファイルsshd_configをsshd_config.oldとしてコピーします。

# vim sshd_config

 vimコマンドで、sshd_configを編集します。

49行目 
#PermitRootLogin yes
となっているところを、
パソコンのiキー でインサートモードとして

PermitRootLogin no

と#のコメントアウトを除去し、yesをnoと書き換えます。
書き換え後は、:wqをクリックして、設定ファイルを保存し、vimを終了します。

# systemctl restart sshd.service

SSHDを再起動します。特に何も現れません。
これでrootでSSHD接続できません。

5.WEBサーバーApacheをインストール

login as: vpsuser
vpsuser@***.****.****.****'s password:
[vpsuser@ik1-***-***** ~]$ su -
Password:

一般ユーザーvpsSSHD接続し、接続後、rootに切り替えます。

# yum install httpd

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

Is this ok [y/d/N]:y

このような問い合わせがあれば、yをクリックします。
Complete!と表示されれば問題ありません。

# systemctl start httpd

特に何も表示されませんが、これでApacheが起動できているようです。
ただ、このままですと、ファイアウォールhttpsが遮断されていますので、httpプロトコルhttpsプロトコルを開放する必要があります。

# firewall-cmd --add-service=http --zone=public --permanent
success ← 問題無し
# firewall-cmd --add-service=https --zone=public --permanent
success ← 問題無し
# systemctl restart firewalld

上記のコマンドでhttpプロトコルhttpsプロトコルを開放し、ファイアウォールを再起動します。

 f:id:php-7com:20181111100409j:plain
ブラウザにさくらから付与されたIPアドレスを入力しアクセスしますと、
おー! WEBサーバが起動していますね。昔を思い出し少し感激。

 # systemctl enable httpd

こちらでサーバ起動時にApache自動起動するように設定

# systemctl list-unit-files -t service

正しく設定されたかどうかは、上のコマンドを打ち、httpd.service enabledの記述があれば正しく設定されています。

6.WEBサーバにFileZillaでHTMLファイルなどをアップロードするための設定

[root@ik1-***-***** ~]# cd /var/www
[root@ik1-***-***** www]# ls -l
total 0
drwxr-xr-x 2 root root 6 Jun 27 22:49 cgi-bin
drwxr-xr-x 2 root root 6 Jun 27 22:49 html

vpsユーザー及びapacheユーザーは赤文字のr-x(readとexecute、読みと実行)の権限しか無いことのようです。
/var/www/htmlディレクトリ以下は、vpsユーザー及びapacheユーザーにも書き込み権限を付与する必要があります。

[root@ik1-***-***** ~]# cd /var/www
[root@ik1-***-***** www]# chown apache:vpsuser html
[root@ik1-***-***** www]# chmod 775 html
[root@ik1-***-***** www]# ls -l
total 0
drwxr-xr-x 2 root root 6 Jun 27 22:49 cgi-bin
drwxrwxr-x 2 apache vpsuser 6 Jun 27 22:49 html

 htmlディレクトリの所有権を apacheとvpsuserに変更し、パーミッションを755に変更。ls -l で所有権の変更とパーミッションを確認します。FileZillaで接続してみましょう。

f:id:php-7com:20181111112629j:plain

FileZillaのサイトマネージャーを上のように設定し、「接続」をクリックすると、SFTPで接続できます。FileZillaをパソコンに予めインストールしてある必要があります。接続したら、vpsuserディレクトリが見えますが、htmlディレクトリが見えないため、ちょっと焦りませんか?

f:id:php-7com:20181111114142j:plain
/をクリックして、更にvarをクリック、更にwwwをクリックするとhtmlが見えます。こちらに適当なHTMLファイルindex.htmlをアップロードします。

f:id:php-7com:20181111115446j:plain
ブラウザにさくらから付与されたIPアドレスを入力しアクセスしますと、アップロードしたファイルが表示されました!

7.PHPの導入

[root@ik1-***-***** ~]# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
[root@ik1-***-***** ~]# yum install --enablerepo=remi,remi-php71 php php-devel php-mbstring php-mysqlnd php-pdo php-gd

マニュアル https://knowledge.sakura.ad.jp/9006/ 通りに、rootとして、
remiレポジトリが使えるようにし、phpの拡張パッケージも合わせてphpをインストールしました。途中yかnか問われますので、yとしてください。
その後、忘れずに systemctl restart httpd として、apacheを再起動します。

f:id:php-7com:20181111121326j:plain
適当なPHPファイルをFileZillaでアップロードして、PHPファイルが表示されることを確認しました。

[root@ik1-***-***** etc]# cd /etc
[root@ik1-***-***** etc]# cp php.ini php.ini.old
[root@ik1-***-***** etc]# vim php.ini

マニュアル同様に、アップロードできるファイルサイズを大きくするために、vimphp.iniの設定を行います。
/post_max_sizeでファイル内を検索し、iキーで書き換え、ESC :wq!で上書き保存をします。
分からなくなったら、Esc :q! でvimを終了させます。
マニュアル通りに、
post_max_size = 128M
upload_max_filesize = 128M
とし、128Mとしました。

8.データベースサーバMariaDBのインストール

今まで通り、rootで作業します。

# yum install mariadb-server

MariaDBをインストールします。MySQLではないの?と思いましたが、マニュアル通りに作業します。
yかnか聞かれるときは「y」を入力します。

[root@ik1-***-***** ~]# systemctl enable mariadb
[root@ik1-***-***** ~]# systemctl start mariadb
[root@ik1-***-***** ~]# systemctl list-unit-files -t service

サーバ起動時にMariaDB自動起動するために、上のコマンドを入力し、mariadb.service enabledの記述を見つけて確認します。

# mysql_secure_installation

MariaDBのrootのパスワードを設定します。
Enter current password for root (enter for none):
ここは何も入力しません。
次にMariDBのパスワードを自分で決めて、二回入力します。
後はyかnか問われる箇所は、全てyと入力しました。

[root@ik1-***-***** ~]# mysql -u root -p
Enter password:
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

 MariaDBのrootで、MariaDBサーバを操作してみます。MariaDBのrootのパスワードを入れて、show databases で現在存在するDBを確認します。これからデータベースを作成していく前ですので、大したものは存在しません。

9.phpMyAdminを導入

# yum install --enablerepo=remi,remi-php71 phpMyAdmin

rootでphpMyAdminを導入します。yかnか問われる箇所は、yと入力しました。

# cd /etc/httpd/conf.d/
# cp phpMyAdmin.conf phpMyAdmin.conf.old
# vim phpMyAdmin.conf

phpMyAdminの設定を変更します。

<IfModule mod_authz_core.c>
# Apache 2.4
#Require local
Require all granted
</IfModule>

Require localをコメントアウトして、
Require all granted を下行に追加します。
これでlocal以外からもアクセスできるようになります。

# systemctl restart httpd

Apacheを再起動すると設定が有効になります。

f:id:php-7com:20181112063758j:plain

http://さくらから付与されたIPアドレス/phpmyadmin でphpmyadminが表示されました。