こんにちは、すずきです。
今回は、クラウドVPS byGMO(以降、クラウドVPS)でLAMP環境を構築してみました。
はじめに
「LAMP」とは、OSの「Linux」、Webサーバーの「Apache」、データベースの「MySQL」、そしてプログラミング言語の「PHP」、それぞれの頭文字を集めて作った造語です。オープンソースソフトウエアの組み合わせで、動的なウェブサイトやウェブサービスなどを構築できます。
今回は、クラウドVPSのV4プラン(4vCPU、メモリ4GB、100GB SSD)を使用してLAMP環境を構築してみたいと思います。
クラウドVPS V4プラン仕様 | |
---|---|
料金 | 月2,728円~ |
vCPU | 4vCPU |
メモリ | 4GB |
ディスク容量(SSD) | 100GB |
クラウドVPSでは、管理画面から直接シェルを使えます(Webコンソール)。
今回はSSHクライアントを使用せず、このWebコンソールでLAMP環境を構築してみました。
システム環境と前提条件
今回、以下のオープンソースソフトウエアを使用します。
ソフトウエア | インストール済み | 標準リポジトリ | 追加リポジトリ (remi) |
---|---|---|---|
Linux | CentOS 7.9 | - | - |
Apache | 2.4.6-97 | 2.4.6-97 | - |
MySQL | 未インストール | 利用不可 | 8.0.21 |
PHP | 未インストール | 5.4.16-48 | 7.4.9 |
WebサーバーのApache(httpd)は、CentOS 7にデフォルトでインストールされているものを使用します。
MySQLは、CentOSの標準のリポジトリでは利用できません(代わりに、派生DBのMariaDBが利用可能です)。そのためremiリポジトリを追加して、8.0.21のCommunity Editionをインストールします。
PHPは、CentOSの標準リポジトリで利用できますが、バージョンが古い(5.4.x)です。remiレポジトリを追加し、当記事執筆時点で最新であった7.4.x系をインストールすることにします(2022年4月時点)。
今回は、クラウドVPSの契約が完了していることを前提とします。クラウドVPSのお申し込みからサービス開始までの流れは、こちらをご覧ください。なお、クラウドVPSのV4プランには、14日無料お試し期間があります。無料お試し期間中にサーバー構築を行い、本稼働を待って本契約に移行することもできます。
LAMP環境を構築する流れ
以下の流れでLAMP環境を構築していきます。
-
- 1. VPSパネルへログイン
- 2. サーバーの初期設定
- 3. Apacheのインストールと設定
- 4. PHPのインストールと設定
- 5. MySQLのインストールと設定
VPSパネルへログイン
まずはクラウドVPSの管理画面(「VPSパネル」と呼ばれています)へログイン(図1)して、サーバーの状態を確認します。

ログインすると、VPSパネルでダッシュボード(図2)が表示されます。

画面の左ペインから[VPS]を選択して、さらにVPSの枠をクリックすると、VPSの詳細な情報が表示(図3)されます。

サーバーの初期設定
では、ここからLAMP環境を構築していきます。
まずはLAMPの「L」ですね。Linuxサーバーの初期設定を行います。最低限、以下の設定が必要です。
- ・サーバーパスワード(rootパスワード)の設定
- ・ファイアーウォールの設定
- ・システムの更新
- ・開発ツールのインストール
- ・その他の設定
サーバーパスワード(rootパスワード)の設定
最初にサーバーのパスワードを設定します。
VPSパネルの左ペインから[VPS]をクリックします。右ペインにある、VPSサーバーの[管理]メニューから、[パスワードを設定]をクリックします。

[新しいパスワード]にパスワードを入力して、[パスワードの設定]をクリックします。

ファイアーウォールの設定
動的コンテンツを表示させるには、ファイアーウォールの設定で、TCP ポート番号80と443を許可するルールを追加しておきます。
VPSパネルでVPSサーバーの詳細を表示させます。
[ファイアーウォール]枠の[ファイアーウォールを管理]メニューから、[ルールを管理]をクリックして、設定を行います(図6)。

システムの更新
クラウドVPSの初期状態では、システムが最新になっていない場合があります。すべて更新してしまいましょう。
ここから先の作業では、WEBコンソールを使用します。
WEBコンソールを使用すると、ブラウザーからコマンドでサーバー管理が行えます。便利ですよね。
ちなみにWEBコンソールでは、文字列のコピーペーストができません。
ただ、タブキーによるファイル名やコマンド名の補完は使えますので、うまく活用していきましょう。
まず、WEBコンソールにログインします。
VPSパネルの左ペインから[VPS]をクリックし、VPSサーバーの[管理]メニューから、[Webコンソールを開く]をクリックします(図7)。

WEBコンソールが表示されます(図8)

ログイン名は「root」と入力し、パスワードは、先ほど「サーバーパスワード(rootパスワード)」で設定したパスワードを入力して、ログインします。
ユーザー名を入力するときに、キーボードでキーを押しても画面に文字が表示されない場合があるかもしれません。
その場合は、画面のコンソール部分をマウスでクリックすれば、文字を入力できるようになります。
なおパスワードの場合は、キーボードから入力した文字は、画面に表示されません。
以下のコマンドを実行して、システムにインストールされているパッケージを更新します(図9)。
yum update

途中、処理を続行して良いかどうか尋ねられます。すべて「y」(YES)を入力します。最後に「Complete!」と表示(図10)されたら、システムの更新は完了です。

開発ツールのインストール
続いて、作業に必要な開発用ツールをインストールします。Webコンソールで、以下のコマンドを実行します(図11)。
yum groupinstall "Development Tools"

先ほどの「システムの更新」と同様、途中で確認プロンプトが表示されます。「y」を入力して、続行します。
画面に「Completed!」と表示されたら、開発ツールのインストールは完了です(図12)。

その他の設定
今回はLAMP環境の構築に焦点を当てるため、最低限の設定をしています。ここでは割愛しますが、実際にサーバーを外部に公開する場合は、この他にも、例えば以下の設定が必要です。
- ・ドメイン設定
- ・SSH経由でのrootユーザーログインを禁止
- ・SSL通信を可能に設定
- ・ポート80と443以外のファイアーウォール設定
- ・作業用ユーザーの作成と設定
Apacheのインストールと設定
さて、ここからいよいよLAMP環境を構成するソフトウエアを設定していきます。まずはLAMPの「A」、WebサーバーのApacheを設定します。
Apache(httpd)はすでにインストールされています。
システム起動時に、自動的に起動するように設定をしておきます(デフォルトで自動起動するように設定されているかもしれませんが、念のため設定しておきましょう)。
Webコンソールにログインし、以下のコマンドを実行します(図13)。
systemctl enable httpd.service
apachectl -v

PHPのインストールと設定
次はLAMPの「P」、PHPのインストールと設定をします。
リポジトリの設定
CentOS 7標準のリポジトリでは、PHPのバージョン5.4系が利用できます。ただ、バージョン5.4系のサポートはすでに終了していますし、セキュリティーやパフォーマンス上の理由から、最新のバージョン7.4系をインストールすることにします。
CentOS 7標準のリポジトリからは7.4系をインストールできないので、remiリポジトリをシステムに追加します。
以下のコマンドを実行します(図14)。
yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

画面に「Complete!」と表示されたら、完了です。
パッケージのインストール
これでremiリポジトリのPHP 7.4.xが利用できるようになりましたので、早速PHPをインストールします。以下のコマンドを実行します。
(コマンド中の「--enablerepo」オプションで、先ほど追加したremiリポジトリを、一時的に有効にしています。)
yum install --enablerepo=remi,remi-php74 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql

途中で何度か確認プロンプトが表示されますが、すべて「y」を入力します。画面に「Complete!」と表示されたら、PHPのインストールは完了です。
動作確認
一応、無事インストールできたことを確認しておきましょう。以下のコマンドを実行します。
php -v

「PHP 7.4.27」と表示されたら、問題なくPHP 7.4がインストールされています。
設定変更
インストール直後の状態では、日本語が使えなかったり、タイムゾーンの設定がなかったりしますので、設定を変更します。
設定ファイルは「/etc/php.ini」です。このファイルを直接、テキストエディターの「vim」で編集します。
ちょっと操作にクセのあるエディターですので、vimに慣れていない場合は、あらかじめファイルのバックアップをとっておきましょう。
cp /etc/php.ini /etc/php.ini.bk
以下のコマンドを実行して、「vim」でPHPの設定ファイル「php.ini」を開きます(図17)。
vim /etc/php.ini

「php.ini」を開くと、以下のように表示されます(図18)。

「php.ini」で、以下の個所(赤字部分)を修正します。
内容 | 修正前 | 修正後 |
---|---|---|
PHPバージョンを非表示に | expose_php = On | expose_php = Off |
アップロードファイルの最大サイズ変更(1) | post_max_size = 8M | post_max_size = 20M |
アップロードファイルの最大サイズ変更(2) | upload_max_filesize = 2M | upload_max_filesize = 20M |
タイムゾーン変更 | ;date.timezone = | date.timezone = "Asia/Tokyo" |
日本語を使用可能に | ;mbstring.language = Japanese | mbstring.language = Japanese |
エンコーディング設定(1) | ;mbstring.internal_encoding = | mbstring.internal_encoding = UTF-8 |
エンコーディング設定(2) | ;mbstring.http_input = | mbstring.http_input = UTF-8 |
エンコーディング設定(3) | ;mbstring.http_output = | mbstring.http_output = pass |
HTTP入力変換有効化 | ;mbstring.encoding_translation = Off | mbstring.encoding_translation = On |
文字コード自動検出設定 | ;mbstring.detect_order = auto | mbstring.detect_order = auto |
無効な文字の代わりとなる文字を出力しない | ;mbstring.substitute_character = none | mbstring.substitute_character = none |
「vim」の操作に最初は戸惑うと思いますが、すぐに慣れると思います。ちなみに、「/」で修正箇所の文字列を検索しながら進めていくと、楽に作業ができます。
設定の反映
「php.ini」の修正を反映するには、Webサーバー「httpd」を再起動します。
以下のコマンドを実行します(図19)。
systemctl enable httpd.service
apachectl -v

MySQLのインストールと設定
最後にLAMPの「M」です。データベースのMySQLをインストールして、設定します。
リポジトリの設定
CentOS 7の標準リポジトリでは、MySQLは利用できません。PHPと同じく、remiリポジトリからインストールします。
VPSパネルからWebコンソールを開き、以下のコマンドを実行します(図20)。
yum install https://repo.mysql.com/yum/mysql-8.0-community/el/7/x86_64/mysql80-community-release-el7-3.noarch.rpm

「Complete!」と表示されたら完了です。
続いて、MySQLのインストールを行います。
インストール
Webコンソールで、以下のコマンドを実行します(図21)。
yum install mysql-community-server

途中、何度か確認プロンプトが表示されます。すべて「y」を入力してOKです。
「Complete!」と表示されれば、インストールは完了です。
起動と自動起動設定
インストールできたら、MySQLの起動確認をしてみます。
Webコンソールで、以下のコマンドを実行します。
systemctl start mysqld.service
特にエラーなど表示されなければ、問題なく起動しています。
本当に起動しているかどうか、確認してみましょう。以下のコマンドを実行します。
mysql --version

MySQLのバージョン番号が返ってきました(図22)。期待通りバージョン8のCommunity Editionがインストールされ、動作しているようです。
ついでに、自動起動の設定もしておきます。以下のコマンドを実行します。
systemctl enable mysqld.service
初期設定(mysql_secure_installation)
問題なくインストールできたので、MySQLの初期設定を行います。
あらかじめ、MySQLのrootユーザーのパスワードをメモしておきましょう。
パスワードは、MySQLのログに記載されています。
以下のコマンドを実行します。
grep password /var/log/mysqld.log

画面に表示されたメッセージの最後にパスワードが表示されています(図24)。「... for root@localhost: xxxxxxxxxxxx」の「xxxxxxxxxxxx」の部分ですね。

パスワードを控えたら、MySQLの設定を進めます。以下のコマンドを実行します(図25)。
mysql_secure_installation

「Enter password for user root:」と表示されたら、MySQLのログに記載されていたパスワードを入力します。
続けて「The existing password for the user account root has expired. Please set a new password.」と表示されたら、新しいパスワードを入力します。
さらに「Change the password for root?」と表示されたら、「Y」を入力します。
この後、以下のように質問されますので、すべて「y」を入力します。
- ・「Remove anonymous users?」(匿名ユーザーを削除)
- ・「Disallow root login remotely?」(リモートからのrootログインを禁止)
- ・「Remove test database and access to it?」(テストデータベースを削除)
- ・「Reload privilege tables now?」(設定を即時反映)
「All done!」と表示されたら、セットアップは完了です。
セットアップ中に設定したパスワードで、MySQLにログインできるかどうか、確認してみましょう。
以下のコマンドを実行し、続けて、先ほどの「mysql_secure_installation」で設定したrootパスワードを入力します。
mysql -u root -p

ログインに成功すると、「mysql>」と画面に表示され、mysqlのコマンド待ち状態になります(図26)。
これでMySQLのインストールと基本的な設定は完了しました。
あとは、MySQLの作業用ユーザーを作成することをお勧めします。rootユーザーですべての作業をするのは、セキュリティー上問題があるためです。
LAMP環境の動作確認
これでLinux、Apache、PHP、MySQLすべての設定が完了しました。最後に、PHPがMySQLときちんと連携できているかどうか確認します。
MySQLのテーブルから、レコードを1行取り出す、簡単なPHPを作ってみました。WebコンソールからMySQLにログインし、こんな感じで「fruits」テーブルを作成しました(図27)。

「fruits」テーブルの1行目、「mikan」を表示するPHPファイル「fruits.php」を作成し、サーバーのドキュメントルート(/var/www/html)に保存しておきます。
ブラウザーから、サーバーの「fruits.php」にアクセスしてみます。

「fruits」テーブルの1行目、「1 mikan」が表示されました(図28)。
PHPからMySQLに接続し、データベースのテーブルから値を取り出して、ページに出力しています。
まとめ
今回、クラウドVPSのVPSパネルから、Webコンソールを使用してLAMP環境を構築してみました。
Webコンソールは、画面がちょっと小さいし、コピーアンドペーストができませんので、作業効率のことを考えると、ちょっとストレスを感じました。
設定ファイルの変更も、できれば普段使い慣れたテキストエディターを使いたいですね。
ただ、ブラウザー上で環境構築が一通りできてしまうのは便利ですね。
取りあえずLAMP環境を試してみたい場合や、いつもの作業環境が手元にない場合などは、Webコンソールを使って構築してみるのもいいかもしれません。
さて、当記事で紹介したクラウドVPSは、最大14日間無料でお試し利用できます。この機会にLAMPサーバー構築に挑んでみてはどうでしょうか。