以前、さくらの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
今回の話を進める前に読んでおくと良い記事
Apache2.4.27の標準設定ではHTTP/2が使用できなくなったのでその対応
UbuntuのインストールはさくらのVPSを借りて、各種設定のOSインストールでカスタムOSを選び、Ubuntuに指定して実行すれば後は何もする必要がない。
Ubuntuのセットアップが終わったら、
端末を開いて、sshでリモートアクセスします。
ssh ユーザ名@IPv4のアドレス
後は下記の手順を順に実行する。
#さくらVPSでは標準で22のみ許可の設定が追加されたため、 #先にファイアーウォールの設定を削除しておく sudo mv /etc/iptables/iptables.rules /var/tmp sudo reboot #標準のファイアーウォールの設定削除で再起動をするので、再びリモート接続する #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を簡単に設定できるツール 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-sqlite3 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 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のインストール #2019年11月20日追記 MySQL 8系をインストールしたい場合は今回の記事の最後に認証方法に関する重要な記事があります。 sudo apt install mysql-server #MySQL 8系をインストールする場合 #sudo apt install mysql-server-8.0 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対応してみた
/** 2019年11月1日追記 **/
SOY CMSやSOY Shop側でMySQLを接続する場合は、MySQLに直接接続する際のsudoをなしでログインできるようにする必要があります。
MySQLにログインし、
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '{PW}'; mysql> FLUSH PRIVILEGES;
※今回はユーザをrootの場合で記述していて、{PW}にはrootのパスワードを入力します。
を実行します。
/** 2019年11月20日追記 **/
MySQL 8.0以降を利用する場合は、認証方法を変更する必要があります。