ConoHa VPSのCentOS8にLAMP環境を構築する

ConoHa VPSのCentOS8にLAMP環境を構築する

November 28, 2020

自分用メモです。ここでの LAMP 環境とは以下のことを意味しています。

  • Linux(CentOS8)
  • Apache(HTTP Server)
  • MySQL(DB)
  • PHP

ConoHa の VPS にログインした状態からスタートとします。ユーザは root を使用する想定です。

1.PHP をインストールする #

dnf install -y php

インストールされたことの確認。

php -v

何かしらのバージョンが出れば OK.

2.Apache のインストール・セッティング #

特にしなくても問題ないけれどインストール前に一応検索してみる。

dnf list | grep httpd

表示されたもののうち、「httpd〜」となっているのが Apache 関連のファイル。

必要なものをインストールする。

dnf install -y httpd httpd-tools httpd-devel httpd-manual

インストールされたことを確認する。

dnf list --installed | grep httpd

Apache の設定ファイルを開く。

cd /etc/httpd/conf/
vim httpd.conf

設定ファイルを更新し、ポート番号とドキュメントルートを適宜変更する。デフォルトで良いのであれば弄らなくても OK.

# Listenと書いてあるところがポート番号の設定
# ポート番号8000番の場合なら下記のようにする
Listen 8000

# DocumentRootと書いてあるところがドキュメントルートの設定
# projectxディレクトリをドキュメントルートにしたい場合は下記のようにする
DocumentRoot "/var/www/html/projectx"

Apache を起動する。

systemctl start httpd

起動状態を確認しておく。

systemctl status httpd

サーバ起動時に Apache も自動起動するように設定する。

systemctl enable httpd

3.MySQL のインストール・セッティング #

特にしなくても問題ないけれど、一応インストールしようとしているファイルの詳細を確認してみる。

dnf info mysql-server mysql php-mysqlnd

そしてインストール。なお前から順番に、MySQL サーバ、クライアントソフト、最後が MySQL の PHP ドライバ。

dnf install -y mysql-server mysql php-mysqlnd

サービスを起動する。

systemctl start mysqld

起動状態を確認しておく。

systemctl status mysqld

サーバ起動時に MySQL も自動起動するように設定する。

systemctl enable mysqld

なお、MySQL は初期で root ユーザが作成され、以下のログファイルに自動生成されたパスワードが出力されているので確認する。

cd /var/log/mysql
cat mysqld.log

「root@localhost is created with an empty password !」となっている場合、初期状態ではパスワードは設定されていない。パスワードを設定する。

MySQL の CLI を起動する。

mysql

以下を実行。ここでは、MySQL の root ユーザのパスワードを、root に設定している。

set password for root@localhost='root';

その後 CLI から一旦抜ける。

exit;

再度ログインする。今度はパスワードが設定されているので、単に mysql と入力するのではなく、以下のように入力する。

mysql -u root -p

パスワードを聞かれるので、先ほど設定したものを入力する。今回は root。

無事にログインできたことを確認後、exit;で抜ける。

4.ポートを開放する #

先の Apache の設定ファイルでは Listen 8000 とし、8000 番ポートでリッスンするように指定した。その場合は 8000 番のポートを開放しておかないと外部からアクセスできないので、忘れずにポートを開放しておく。

最初に変更前の状態をチェックしておく。

firewall-cmd --list-all

下記を実行し、8000 番ポートを開放する。

firewall-cmd --zone=public --add-port=8000/tcp --permanent

先の設定で Listen 80 としていた場合は、80 番ポートを開放する。その場合は http というサービス名で指定できる。

firewall-cmd --zone=public --add-service=http --permanent

Firewalld をリロードして設定を反映する。

firewall-cmd --reload

変更されていることを確認する。

firewall-cmd --list-all

ここまでで LAMP 環境の構築は終わり #

以降は、独自の環境に合わせて追加作業する。今回は、以下の2点を実施する。

  • Node.js のインストール
  • MySQL の DB およびテーブルの作成

5.Node.js のインストール #

下記コマンドを実行するだけ。

dnf install -y nodejs

6.MySQL の DB およびテーブルの作成 #

CLI を起動して root でログイン。

mysql -u root -p

必要な DB を作成する。ここでは projectx という名称とする。

create database projectx;

作成した DB に接続する。

use projectx;

あとは各々テーブルを作成する。ローカルで作成した DB を元に、インポート用 SQL を生成し、それをそのまま流し込んだりすれば楽。

テーブルの一覧は以下で確認できる。

SHOW TABLES;

テーブル構造は以下で確認できる。ここでは tablex という名称のテーブルが存在するとして、それを確認している。

DESCRIBE tablex;

テーブルの中身を確認したい場合は以下。

SHOW * FROM projectx

確認が終わったら MySQL から抜ける。

exit;

7.(必要なら)ポートを開放する #

Node.js 用に 3000 番ポートを開放したいなら、それも忘れずに。手順は先と同じなので省略。

以上 #