さくらのVPSのubuntuにLAMP環境をインストール

technical-news

最初に

今回使用したのはさくらいたーネットの「さくらのVPS」に2024年時点で最新のubuntuのバージョンを入れ、そこにLAMP環境とcertbotでSSLを設定する方法を解説します。

管理者用の権限が必要なコマンドは sudo で実行してください。

本章でカバーする作業

  • システムのチェックとaptのアップデート
  • SSHの設定
  • PHPとApache2のインストールと設定
  • Apache2のバーチャルドメイン設定
  • Certbotのインストール
  • MariaDBのインストールと設定

関連記事

チェックとパッケージマネージャのアップデート

チェック

aptを使ってパッケージのアップデート

SSHの公開鍵の設定

さくらのVPSでubuntuを使う場合は、管理ユーザーのユーザー名は ubuntu がデフォルト。

ユーザーubuntuにssh用のフォルダを作成する

SSHキーを作成する

puttyを使っている人は、まずputtygen.exe を使ってputty用の秘密鍵と公開鍵を作成しておく。

次に、visual studio codeやNavicat、openssh形式のキーファイルを使う人用にputty形式の秘密鍵をopenssh形式の秘密鍵に変換して保存しておく。

SSHD設定の調整

/etc/ssh/sshd_config の最低限の設定

SSHの設定がすべてOKになったら「PasswordAuthentication」は「no」にしていくと良い

ポート番号

デフォルトのポート番号を使いたくない人は変更しておく。気にしないならこのままでいい。

SSHDの再起動

PHP&Apache2のインストール

phpをインストールしたらapache2もいっしょに入った・・・

バージョンの確認

Apache2設定&Apache2起動

パケットフィルタの設定

さくらのVPSだとufwを使わなくてもクラウドサーバのコントロールパネルからHTTP(80番ポート)とHTTPS(443番ポート)の設定ができる。

Apache2バーチャルドメインの設定

フォルダ(ドキュメント・ルート)の設定

「/etc/apache2/sites-available」に以下の設定ファイルを作成する。
ファイル名はドメイン名がspankyjpn.comであれば「spankyjpn.com.conf」にする。

バーチャルドメインの設定

ファイルを有効化する

ドメイン名が spankyjpn.com であれば spankyjpn.com.conf を指定。

Apache2用設定ファイルをチェックしてOKならApache2を再起動

ドメイン名が spankyjpn.com であれば spankyjpn.com.conf を指定。

Apache2のバーチャルドメイン・サイトを停止する場合

Apache2用のユーザーとグループ

 Apache2では以下のユーザーとグループを使うように /etc/apache2/envvars 内で定義されています。

 つまり /var/www 以下でApache2が使うであろうファイルは「www-data」というユーザー及びグループに設定しておいたほうが良さそうです。

Certbotのインストール

MariaDB (MySQL互換DB)のインストール

インストール

インストールできたかを確認

Active: active (running)
と表示されていればOK

mysql_secure_installation

MariaDBをNavicatでつかえるようにする

基本タブは、「パスワード」欄にMariaDBのrootユーザーのパスワード。またはアクセスできるユーザー名を「ユーザー名」欄にいれてそのユーザーのパスワードを「パスワード」欄に入れます。ポート番号を変えていなければそのまま使用。

SSHタブについて。
「ホスト」欄:サーバのIPアドレスでOK
「ポート」欄:/etc/ssh/sshd_configでポート番号を変更していたらここを変える
「ユーザー名」欄:さくらにVPSのubuntuサーバなら「ubuntu」
「認証方式」欄:公開鍵
「プライベートキー」欄:SSHの秘密鍵
「パスフレーズ」欄:SSHのパスフレーズ
「パスフレーズを保存」:お好みに応じてON

MariaDBトラブルシューティング

Server Refused Our Key

 多くの場合、SSHの公開鍵を格納している場所が間違っていたり、.ssh フォルダや authorized_keys ファイルのパーミッションが間違っていることが原因のようです。SSH設定の項目を見直してパーミッションなどを再度確認します。

Access denied for user

このエラーは、MariaDBを「mysql_secure_installation」で初期設定したときにおこります。このコマンドで初期化をした直後は、ローカルホスト内であれば rootユーザーになり、「mysql」と打ち込んだけでMariaDBにログインできてしまいますが、下記のコマンドを投入してrootユーザーのパスワードを設定することで、ローカルホストからでもパスワードを打ち込まなければログインできなくできるのと同時に、リモートホストからSSHトンネリングを使ってアクセスすることもできるようになります。

タイトルとURLをコピーしました