ConoHa VPSでUbuntu 22.04のテンプレートを使って、LAMP(Linux + Apache + MySQL + PHP)環境をセットアップするまでの手順をメモします。
rootログイン・ユーザー作成・公開鍵認証
ConoHaで新規登録するときにコントロールパネルで入力した、rootパスワードでログイン。
ssh root@{IPアドレス}
ユーザーを作成する(ここでは例として shikakun
にしてますが、任意の名前へ変更してください)
adduser shikakun
パスワードとFull Nameを入力後、作成したユーザーをsudoコマンドを利用する「sudoユーザー」に追加する。
usermod -G sudo shikakun
無事にユーザーを作成できたので、rootユーザーから切り替える。
su - shikakun
あわせて、公開鍵認証でSSHログインできるようにする。ローカル環境の公開鍵をコピーし、 ~/.ssh/authorized_keys
に書いておく。
mkdir .ssh
cd .ssh
echo -e "ssh-rsa AAAAXXXXXXXXXX ..........(略).......... XXX" >> authorized_keys
cd ~
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
SSHログインのポート番号の変更
SSHログインのポート番号はデフォルトで22だけど、狙われやすいのでセキュリティを高める目的でポート番号を変更する。(ここでは例として 22000
にしてますが、任意の数字へ変更してください)
sudo vim /etc/ssh/sshd_config
以下のように書き換えてポート番号を変更する。
- #Port 22
+ Port 22000
あわせて、rootログインも無効にしておく。
- PermitRootLogin yes
+ PermitRootLogin no
ファイルを保存したら、sshdをリロードして設定を有効にする。
systemctl reload sshd
ufwでポート番号22000でアクセスできるように設定する。
sudo ufw status
sudo ufw allow 22000/tcp
ポート番号22はもう使わないので、 ufw status numbered
で OpenSSH
が設定されている番号を確認しつつ ufw delete
コマンドで許可を削除する。
sudo ufw status numbered
sudo ufw delete 1
sudo ufw status numbered
sudo ufw delete 2
ローカル環境の ~/.ssh/config
に以下のように追記することで、 ssh conoha
のようにIPアドレスやポートを省略してアクセスできるようになる。
Host conoha
Hostname {IPアドレス}
User shikakun
Port 22000
IdentityFile ~/.ssh/id_rsa
LAMP環境をつくる
apache2をインストールして、ポートのアクセスを許可する。
sudo apt update
sudo apt install apache2
sudo ufw app list
sudo ufw allow in "Apache"
sudo ufw status
http://{IPアドレス}/
へアクセスすると、It worksページが見える!
つづけてMySQLをインストール。
sudo apt install mysql-server
sudo mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by '********';
Ctrl + D で抜けたら sudo mysql_secure_installation
を実行して設定を完了させる。そしてPHPをインストール。
sudo apt install php libapache2-mod-php php-mysql
php -v
でバージョンを確認できればインストール完了。
独自ドメインでアクセス・常時SSL化
IPアドレスではなく独自ドメイン dev.shikakun.com
でアクセスできるようにしたい。あと常時SSL化もしたい!
今回はCloudflareのDNSで管理しているドメイン(shikakun.com)を適用するため、Cloudflareの管理画面で dev.shikakun.com
をAレコードで追加する。IPv4 addressにはサーバーのIPアドレスを指定。
公開するドキュメントのルートディレクトリや、apache2の設定ファイルを用意する。
sudo mkdir /var/www/dev.shikakun.com
sudo chown -R $USER:$USER /var/www/dev.shikakun.com
sudo vim /etc/apache2/sites-available/dev.shikakun.com.conf
dev.shikakun.com.conf
の内容はこんなかんじ。
<VirtualHost *:80>
ServerName dev.shikakun.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/dev.shikakun.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
a2ensite コマンドでシンボリックリンクを張ったら、apache2を再起動。
sudo a2ensite dev.shikakun.com
systemctl reload apache2
http://dev.shikakun.com/
でapache2のページが見えるようになった!
/var/www/dev.shikakun.com/info.php
に以下のようなPHPファイルを置くと、PHPが動いていることも確認できる(秘匿情報が含まれているので、確認したら削除する)。
<?php
phpinfo();
常時SSL化のためにポートのアクセスを許可する。
sudo ufw allow in "Apache Secure"
certbotをインストールし、Let's EncryptのSSL証明書を発行。
sudo apt install certbot
sudo certbot certonly --webroot --webroot-path /var/www/dev.shikakun.com/ -d dev.shikakun.com -m {メールアドレス}
sudo ls /etc/letsencrypt/live/dev.shikakun.com/
sudo vim /etc/apache2/sites-available/dev.shikakun.com.conf
apache2の設定ファイルを以下のように書き換える。
<VirtualHost *:443>
ServerName dev.shikakun.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/dev.shikakun.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLCertificateFile /etc/letsencrypt/live/dev.shikakun.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/dev.shikakun.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/dev.shikakun.com/chain.pem
</VirtualHost>
a2enmodコマンドでsslを有効にしたあと、apache2を再起動。
sudo a2enmod ssl
sudo systemctl reload apache2
https://dev.shikakun.com/
でアクセスできるようになり、SSLが有効になってる!
ここまできたら http://
でアクセスしたら https://
へリダイレクトしたい!ということで、以下のように設定した。
sudo a2enmod rewrite
sudo vim /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
..........(略)..........
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^/(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</VirtualHost>
sudo systemctl reload apache2
やりたいことぜんぶできた〜!これで、WordPressをインストールしたりできるようになった!