2022.05.26

クラウドVPS by GMOでLAMP環境を構築してみた

難易度
1
カテゴリー
VPS
タグ
Linux
VPS
クラウドVPS

クラウドVPS by GMOでLAMP環境を構築してみた

こんにちは、すずきです。
今回は、クラウドVPS byGMO(以降、クラウドVPS)でLAMP環境を構築してみました。

目次
  1. はじめに
  2. システム環境と前提条件
  3. LAMP環境を構築する流れ
    1. VPSパネルへログイン
    2. サーバーの初期設定
      1. サーバーパスワード(rootパスワード)の設定
      2. ファイアーウォールの設定
      3. システムの更新
      4. 開発ツールのインストール
      5. その他の設定
    3. Apacheのインストールと設定
    4. PHPのインストールと設定
      1. リポジトリの設定
      2. パッケージのインストール
      3. 動作確認
      4. 設定変更
      5. 設定の反映
    5. MySQLのインストールと設定
      1. リポジトリの設定
      2. インストール
      3. 起動と自動起動設定
      4. 初期設定(mysql_secure_installation)
      5. LAMP環境の動作確認
  4. まとめ

はじめに

「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パネルへログイン

VPSパネルへログイン
図1 VPSパネルへログイン

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

VPSパネルのダッシュボード
図2 VPSパネルのダッシュボード

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

VPSの詳細情報
図3 VPSの詳細情報

サーバーの初期設定

では、ここからLAMP環境を構築していきます。

まずはLAMPの「L」ですね。Linuxサーバーの初期設定を行います。最低限、以下の設定が必要です。

  • ・サーバーパスワード(rootパスワード)の設定
  • ・ファイアーウォールの設定
  • ・システムの更新
  • ・開発ツールのインストール
  • ・その他の設定

サーバーパスワード(rootパスワード)の設定

最初にサーバーのパスワードを設定します。

VPSパネルの左ペインから[VPS]をクリックします。右ペインにある、VPSサーバーの[管理]メニューから、[パスワードを設定]をクリックします。

VPSからパスワード設定を選択
図4 VPSからパスワード設定を選択

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

VPSのパスワードを設定
図5 VPSのパスワードを設定

ファイアーウォールの設定

動的コンテンツを表示させるには、ファイアーウォールの設定で、TCP ポート番号80と443を許可するルールを追加しておきます。

VPSパネルでVPSサーバーの詳細を表示させます。
[ファイアーウォール]枠の[ファイアーウォールを管理]メニューから、[ルールを管理]をクリックして、設定を行います(図6)。

ファイアーウォールの設定
図6 ファイアーウォールの設定

システムの更新

クラウドVPSの初期状態では、システムが最新になっていない場合があります。すべて更新してしまいましょう。

ここから先の作業では、WEBコンソールを使用します。
WEBコンソールを使用すると、ブラウザーからコマンドでサーバー管理が行えます。便利ですよね。

ちなみにWEBコンソールでは、文字列のコピーペーストができません。
ただ、タブキーによるファイル名やコマンド名の補完は使えますので、うまく活用していきましょう。

まず、WEBコンソールにログインします。
VPSパネルの左ペインから[VPS]をクリックし、VPSサーバーの[管理]メニューから、[Webコンソールを開く]をクリックします(図7)。

VPSのWebコンソールを開く
図7 VPSのWebコンソールを開く

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

VPSのWebコンソール
図8 VPSのWebコンソール

ログイン名は「root」と入力し、パスワードは、先ほど「サーバーパスワード(rootパスワード)」で設定したパスワードを入力して、ログインします。

ユーザー名を入力するときに、キーボードでキーを押しても画面に文字が表示されない場合があるかもしれません。
その場合は、画面のコンソール部分をマウスでクリックすれば、文字を入力できるようになります。
なおパスワードの場合は、キーボードから入力した文字は、画面に表示されません。

以下のコマンドを実行して、システムにインストールされているパッケージを更新します(図9)。

yum update
Webコンソールでコマンド実行
図9 Webコンソールでコマンド実行

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

Webコンソールで「Complete!」と表示
図10 Webコンソールで「Complete!」と表示

開発ツールのインストール

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

yum groupinstall "Development Tools"
Webコンソールで開発用ツールをインストール
図11 Webコンソールで開発用ツールをインストール

先ほどの「システムの更新」と同様、途中で確認プロンプトが表示されます。「y」を入力して、続行します。

画面に「Completed!」と表示されたら、開発ツールのインストールは完了です(図12)。

Webコンソールで開発用ツールをインストール完了
図12 Webコンソールで開発用ツールをインストール完了

その他の設定

今回はLAMP環境の構築に焦点を当てるため、最低限の設定をしています。ここでは割愛しますが、実際にサーバーを外部に公開する場合は、この他にも、例えば以下の設定が必要です。

  • ・ドメイン設定
  • ・SSH経由でのrootユーザーログインを禁止
  • ・SSL通信を可能に設定
  • ・ポート80と443以外のファイアーウォール設定
  • ・作業用ユーザーの作成と設定

Apacheのインストールと設定

さて、ここからいよいよLAMP環境を構成するソフトウエアを設定していきます。まずはLAMPの「A」、WebサーバーのApacheを設定します。

Apache(httpd)はすでにインストールされています。
システム起動時に、自動的に起動するように設定をしておきます(デフォルトで自動起動するように設定されているかもしれませんが、念のため設定しておきましょう)。

Webコンソールにログインし、以下のコマンドを実行します(図13)。

systemctl enable httpd.service
apachectl -v
Webコンソールで自動起動の設定
図13 Webコンソールで自動起動の設定

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
Webコンソールでremiリポジトリをシステムに追加
図14 Webコンソールでremiリポジトリをシステムに追加

画面に「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
WebコンソールでPHPのインストール
図15 WebコンソールでPHPのインストール

途中で何度か確認プロンプトが表示されますが、すべて「y」を入力します。画面に「Complete!」と表示されたら、PHPのインストールは完了です。

動作確認

一応、無事インストールできたことを確認しておきましょう。以下のコマンドを実行します。

php -v
WebコンソールでPHPインストール後の確認
図16 WebコンソールでPHPインストール後の確認

「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
「vim」でPHPの設定ファイル「php.ini」を開く
図17 「vim」でPHPの設定ファイル「php.ini」を開く

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

「vim」でPHPの設定ファイル「php.ini」を開いて確認
図18 「vim」でPHPの設定ファイル「php.ini」を開いて確認

「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
「php.ini」の修正を反映
図19 「php.ini」の修正を反映

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
remiリポジトリからインストール
図20 remiリポジトリからインストール

「Complete!」と表示されたら完了です。
続いて、MySQLのインストールを行います。

インストール

Webコンソールで、以下のコマンドを実行します(図21)。

yum install mysql-community-server
MySQLのインストール
図21 MySQLのインストール

途中、何度か確認プロンプトが表示されます。すべて「y」を入力してOKです。
「Complete!」と表示されれば、インストールは完了です。

起動と自動起動設定

インストールできたら、MySQLの起動確認をしてみます。
Webコンソールで、以下のコマンドを実行します。

systemctl start mysqld.service

特にエラーなど表示されなければ、問題なく起動しています。
本当に起動しているかどうか、確認してみましょう。以下のコマンドを実行します。

mysql --version
MySQLのバージョン確認
図22 MySQLのバージョン確認

MySQLのバージョン番号が返ってきました(図22)。期待通りバージョン8のCommunity Editionがインストールされ、動作しているようです。

ついでに、自動起動の設定もしておきます。以下のコマンドを実行します。

systemctl enable mysqld.service

初期設定(mysql_secure_installation)

問題なくインストールできたので、MySQLの初期設定を行います。

あらかじめ、MySQLのrootユーザーのパスワードをメモしておきましょう。
パスワードは、MySQLのログに記載されています。
以下のコマンドを実行します。

grep password /var/log/mysqld.log
MySQLの初期設定
図23 MySQLの初期設定

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

MySQLの初期設定
図24 パスワード表示

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

mysql_secure_installation
MySQLの設定
図25 MySQLの設定

「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にログイン
図26 MySQLにログイン

ログインに成功すると、「mysql>」と画面に表示され、mysqlのコマンド待ち状態になります(図26)。

これでMySQLのインストールと基本的な設定は完了しました。

あとは、MySQLの作業用ユーザーを作成することをお勧めします。rootユーザーですべての作業をするのは、セキュリティー上問題があるためです。

LAMP環境の動作確認

これでLinux、Apache、PHP、MySQLすべての設定が完了しました。最後に、PHPがMySQLときちんと連携できているかどうか確認します。

MySQLのテーブルから、レコードを1行取り出す、簡単なPHPを作ってみました。WebコンソールからMySQLにログインし、こんな感じで「fruits」テーブルを作成しました(図27)。

「fruits」テーブルを作成
図27 「fruits」テーブルを作成

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

ブラウザーから、サーバーの「fruits.php」にアクセスしてみます。

サーバーの「fruits.php」にアクセス
図28 サーバーの「fruits.php」にアクセス

「fruits」テーブルの1行目、「1 mikan」が表示されました(図28)。
PHPからMySQLに接続し、データベースのテーブルから値を取り出して、ページに出力しています。

まとめ

今回、クラウドVPSのVPSパネルから、Webコンソールを使用してLAMP環境を構築してみました。

Webコンソールは、画面がちょっと小さいし、コピーアンドペーストができませんので、作業効率のことを考えると、ちょっとストレスを感じました。
設定ファイルの変更も、できれば普段使い慣れたテキストエディターを使いたいですね。

ただ、ブラウザー上で環境構築が一通りできてしまうのは便利ですね。

取りあえずLAMP環境を試してみたい場合や、いつもの作業環境が手元にない場合などは、Webコンソールを使って構築してみるのもいいかもしれません。

さて、当記事で紹介したクラウドVPSは、最大14日間無料でお試し利用できます。この機会にLAMPサーバー構築に挑んでみてはどうでしょうか。

 

> クラウドVPS を無料で使ってみる

この記事を書いた人

suzuki

テクニカルライターとIT系の英日翻訳をしています。
オフィス用複合機や関連ソリューション、パソコンなどが得意分野。
「作る側」と「使う側」とのギャップを埋めるべく、日々がんばってます。
写真撮るのが好き。猫も好き。twitter: @se_necosys

GMOクラウドアカデミーYouTubeチャンネルはこちらから

アカデミー用バナー

メルマガ会員募集中!

アカデミーの最新情報や会員限定のお得な情報をお届けします。

メルマガ登録はこちら