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 番ポートを開放したいなら、それも忘れずに。手順は先と同じなので省略。