以前、さくらのVPSでSOY CMSを動かした時のメモでさくらのVPSにUbuntuを入れて、SOY CMSの環境を構築した記事を投稿したけれど、

古くなったので改めてまとめることにする。


最終的な環境

さくらのVPS 4G

VPS(仮想専用サーバー)|さくらインターネット - 無料お試し実施中

Ubuntu 18.04(16.04を入れた直後に速攻でアップグレード)

Apache2.4.38

PHP 7.3.3.1 FastCGI

MySQL 5.7.25


今回の話を進める前に読んでおくと良い記事

当サイトをHTTP/2対応して表示の爆速化してみた

Apache2.4.27の標準設定ではHTTP/2が使用できなくなったのでその対応


UbuntuのインストールはさくらのVPSを借りて、各種設定のOSインストールでカスタムOSを選び、Ubuntuに指定して実行すれば後は何もする必要がない。


Ubuntuのセットアップが終わったら、

端末を開いて、sshでリモートアクセスします。


ssh ユーザ名@IPv4のアドレス

後は下記の手順を順に実行する。


#SSHのポート番号を22から他の番号へ変更(不正ログイン対策)
#sshdの設定ファイルのバックアップ
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.old

#sshdの設定ファイルを開く
sudo nano /etc/ssh/sshd_config

#sshのポートを22から12345へ変更。ファイルを保存(port番号は使用していない番号であれば何でも良いです)
Port 22 → Port 12345

#rootのログインを禁止
#(他のサーバではroot以外のアカウントがいないので、必ずアカウントを作成して、そのアカウントにsudorを設定してから行ってください)
PermitRootLogin withoout-password → PermitRootLogin no

#設定ファイルの保存

#設定ファイルの記述チェック 何も表示されなければOK
sudo sshd -t

#sshの設定を反映
sudo service ssh restart

#サーバをログアウトする
exit

#ターミナルエミュレータを開く(IPアドレス)
ssh username@***.***.***.***
(Poderosaの場合はGUIで指定して接続)

#ssh: connect to host ***.***.***.*** port 22: Connection refusedが表示されればOK

#再度ターミナルエミュレータで再度ログインを試みる
ssh -p 12345 username@***.***.***.***

#一応updateしておく
sudo apt update
sudo apt upgrade

#日本語を使用可にする
sudo apt install language-pack-ja-base language-pack-ja ibus-mozc
sudo localectl set-locale LANG=ja_JP.UTF-8 LANGUAGE="ja_JP:ja"

#サーバの時刻を日本(東京)にする
sudo dpkg-reconfigure tzdata

#設定画面が表示されたら、Asia→Tokyoの順に指定する

#ファイアーウォールの設定 ssh(22もしくは上で修正した番号:ここでは12345)、http(80)とhttps(443)のみ許可にする
#ufwはiptablesを簡単に設定できるツール

#2018年4月20日追記 さくらVPSでは標準で22のみ許可の設定が追加されたため、
#先にファイアーウォールの設定を削除しておく
sudo mv /etc/iptables/iptables.rules /var/tmp
sudo reboot

#標準のファイアーウォールの設定削除で再起動をするので、再びリモート接続する

sudo ufw default deny
sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 12345

#ufwを起動
sudo ufw enable

#yをクリック

sudo ufw status

#Status: activeが表示されることと、allowで指定したポートのみが表示されていることを確認

#サーバを再起動する
sudo reboot

#再度ターミナルエミュレータでログインできることを確認する
ssh -p 12345 username@***.***.***.***

これで言語やファイアウォールの設定は終了。




続いてWebサーバを立ち上げる。


#Apache2.4のインストール
sudo apt install software-properties-common
sudo add-apt-repository -y ppa:ondrej/apache2
sudo apt install apache2

#リポジトリから最新のPHPを取得する
sudo apt install apt-file
sudo add-apt-repository ppa:ondrej/php
sudo apt install php7.3

#バージョンの確認
php -v

#Apache2.4でphp7を実行できるようにする
sudo apt install php7.3-curl php7.3-mysql php7.3-sqlite php7.3-mbstring php7.3-gd php7.3-xml php7.3-zip php7.3-apcu

#HTTP/2を使用するため、PHPのFastCGIを利用する SSLを利用した時、HTTP/2が利用できるようになるため
sudo a2dismod php7.3
sudo a2dismod mpm_prefork
sudo a2enmod mpm_event

#FastCGIを有効にする
sudo apt-get install php7.3-fpm php7.3-cgi
sudo a2enconf php7.3-fpm

sudo a2enmod proxy_fcgi

#Apache2の起動
sudo /etc/init.d/apache2 start

#MPMの確認 MPMがpreforkではなくeventになっていることを確認する
apachectl -V

#/var/www/html以下がルートになるので、そこにファイルを設置
#.htaccessを利用できるようにする
sudo nano /etc/apache2/apache2.conf

#AllowOverride NoneをAllに変更する
<directory /var/www>
        Options Indexes FollowSymLinks
        AllowOverride None → All
        Require all granted
</directory>

#apache2のmod_rewriteモジュールをアクティブ
sudo a2enmod rewrite

#Apache2の再起動
sudo /etc/init.d/apache2 restart

#MySQLのインストール
sudo apt install mysql-server
sudo service mysql status

#rootのパスワードを生成
sudo mysql_secure_installation

#Press y|Y for Yes, any other key for No:には「y」を選択
#Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 「0」を選択

#パスワードを決める
#New password:
#Re-enter new password:

#あとはすべて「y」

#先程決めたパスワードでMySQLにログインできるか確認する。
#コマンド実行時にsudoが必要になったらしい
sudo mysql -u root -p

#ログインが確認できたら、一旦MySQLから出る
mysql> exit;

#MySQLの文字コードを設定
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

#[mysqld]の下の行に下記の2行を追加
character-set-server = utf8
default_password_lifetime = 0

#MySQLを再起動
sudo /etc/init.d/mysql restart

#再びログイン
sudo mysql -u root -p

#character_set_filesystem以外がutf8
mysql> show variables like '%char%';

#OSを再起動させた後にapacheやmysqlが自動実行されるようにする
wget http://archive.ubuntu.com/ubuntu/pool/universe/s/sysv-rc-conf/sysv-rc-conf_0.99.orig.tar.gz
tar zxvf sysv-rc-conf_0.99.orig.tar.gz
cd sysv-rc-conf-0.99

#sysv-rc-confを入れる為にmakeが必要
sudo apt install make
sudo make
sudo make install
sudo apt install libcurses-ui-perl libterm-readkey-perl libcurses-perl

#apacheとmysqlをsysv-rc-confに登録する
sudo sysv-rc-conf apache2 on
sudo sysv-rc-conf mysql on

これでUbuntu18.04でSOY CMSを動かす環境ができた。


以後は必要に応じて

さくらのVPS + Apache2.4のサーバでSSL対応してみた

当サイトをHTTP/2対応して表示の爆速化してみた