さくらVPSでWEBアプリ(PHP)公開前にやる設定

※ド素人ノンプログラマのメモなので参考にはなりません。
※タイトル変えました。

マジで何もわからないが必要に迫られたのでやるしかない。とりあえずテスト用にさくらでVPSを借りてきた。OSはCentOS 7を選択。数ヶ月後の記憶を失った自分が見ても再現できるように、できるだけゼロから(空っぽのサーバーの状態から)全行程をメモとして残したい。

この記事ではphpとDBを使えるようにするところまでやります。

まずMacのターミナルからSSHで接続してOSをアップデート

#  yum update

色々出てくるけど何もわからないので無視してとりあえず「yes」を選んでおく。

次に、rootでのSSH接続を拒否するために一般ユーザーを作っておく。

# adduser username

パスワードも設定。

# passwd username

で、SSHの設定ファイルを別名コピーで保全した上で元ファイルを修正する。

# cd /etc/ssh
# cp sshd_config sshd_config.old

# nano sshd_config

vimというのがよくわからんので私はnanoをよく使う。
sshd_config を開いて

#PermitRootLogin yes

PermitRootLogin no

に変更してやるとrootでSSH接続できなくなるらしい。

Apacheをインストールする

さくらのVPSは独自のファイアウォールみたいなのがデフォルトで動いているがややこしくなるのでそれは停止。一旦全ポート開けておく。
で、Apacheをインストール。

# yum install httpd

何を聞かれても[y]そして[enter]。これで決まりだ。

さらにファイアウォールを設定。

# systemctl start firewalld
# firewall-cmd --add-service=http --zone=public --permanent
# firewall-cmd --add-service=https --zone=public --permanent

http、https通信用のポートを開けた。そしたら再起動。

# systemctl restart firewalld

再起動時にapacheを自動で起動するように設定。

# systemctl enable httpd

ftpソフトでファイルをアップロードできるようにドキュメントルートの権限を変更

# cd /var/www
# chown apache:username html
# chmod 775 html

DNSを設定

手持ちのドメインがあったので、それをこのサーバーに割り当てた。
今回はさくらの会員メニューから「契約中のドメイン一覧」→「ドメインコントロールパネル」→「ネームサーバサービスにドメインを登録(ネームサーバの利用申請)」で設定

PHP8をインストール

まずはRemiリポジトリを追加

# yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm

どれがインストールできるかな?

# yum list | grep php80

色々あってよくわかんないけど、まあこんなもんでしょうかね……。

# yum -y install −−enablerepo=remi-php80 php80 php80-php php80-php-xml php80-php-xmlrpc php80-php-pecl-mcrypt php80-php-fpm php80-php-pecl-apcu php80-php-mbstring php80-php-gd php80-php-json php80-php-pecl-json-post php80-php-pdo php80-php-mysqlnd php80-php-pecl-mysql php80-php-opcache php80-php-pear php80-php-soap php80-php-intl php80-php-pear

再起動。

# systemctl restart httpd

これでphp8が使えるようになった。ちょっと設定を変更。

# cd /etc/opt/remi/php80
# cp php.ini php.ini.old
# nano php.ini

ファイルサイズ周りを修正

post_max_size = 128M
upload_max_filesize = 128M

もう書かんけど再起動して完了

次はMariaDBをインストール

# yum install mariadb-server
# systemctl enable mariadb
# systemctl start mariadb

適当に初期設定

# mysql_secure_installation

phpMyAdminをインストール

こいつも入れておかないと自分のような素人にはどうにもならない。

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

更にphpMyAdminの設定。

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

これを

Require local

こうする。ローカル以外からもアクセス可能にする。

#Require local
Require all granted

そしたらまたhttpdを再起動。これでリモートのパソコンからもphpMyAdminにアクセスできるようになった。

本番環境では phpMyAdmin.conf をいじってURLを変更するが、今回は〜/phpMyAdmin/でいっちゃう

不正アクセス対策としてSSH通信のポートを変更する

# nano /etc/ssh/sshd_config

22を22222(仮)に変更して、再起動

# systemctl restart sshd

firewalldの設定からSSHを削除

# firewall-cmd --permanent --remove-service=ssh
# cd /usr/lib/firewalld/services/
# cp ssh.xml ssh-22222.xml
# nano ssh-22222.xml

22を22222に変更。

# firewall-cmd --permanent --add-service=ssh-22222
# firewall-cmd --reload

いかがでしたか?

いかがでしたか?いかがでしたか?いかがでしたか?いかがでしたか?いかがでしたか?いかがでしたか?いかがでしたか?いかがでしたか?

今回はとりあえずここまで。


娘にプリキュアの光るパジャマを買ってあげたいのでサポートお願いします!