序章

このクイックスタートガイドでは、Ubuntu20.04サーバーにLAMPスタックをインストールします。

このチュートリアルのより詳細なバージョンと各ステップの詳細については、 Ubuntu 20.04にLinux、Apache、MySQL、PHP(LAMP)スタックをインストールする方法を参照してください。

前提条件

このガイドに従うには、sudoユーザーとしてUbuntu20.04サーバーにアクセスする必要があります。

ステップ1—Apacheをインストールします

パッケージマネージャーのキャッシュを更新してから、次のコマンドを使用してApacheをインストールします。

  1. sudo apt update
  2. sudo apt install apache2

インストールが完了したら、サーバーでHTTPトラフィックを許可するようにファイアウォール設定を調整する必要があります。 次のコマンドを実行して、ポート80(HTTP)での外部アクセスを許可します。

  1. sudo ufw allow in "Apache"

新しいファイアウォールルールを追加すると、WebブラウザからサーバーのパブリックIPアドレスまたはドメイン名にアクセスして、サーバーが稼働しているかどうかをテストできます。 次のようなページが表示されます。

Ubuntu 20.04 Apache default

ステップ2—MySQLをインストールする

次に、PHP環境で使用される一般的なデータベース管理システムであるMySQLをインストールします。

ここでも、aptを使用して、このソフトウェアを入手してインストールします。

  1. sudo apt install mysql-server

インストールが完了したら、MySQLにプリインストールされているセキュリティスクリプトを実行することをお勧めします。 次のコマンドを実行して、インタラクティブスクリプトを開始します。

  1. sudo mysql_secure_installation

これにより、VALIDATE PASSWORD PLUGINを構成するかどうかを尋ねられます。 Yと答えて「はい」と答えるか、有効にせずに続行するには他の何かを答えてください。 「はい」と答えると、パスワード検証のレベルを選択するように求められます。

次に、サーバーはMySQL rootユーザーのパスワードを選択して確認するように求めます。 MySQLルートユーザーのデフォルトの認証方法ではパスワードの使用は不要ですが、パスワードが設定されている場合でも、追加の安全対策としてここで強力なパスワードを定義する必要があります。

残りの質問については、Yを押し、各プロンプトでENTERキーを押してください。

注:この記事の執筆時点では、ネイティブMySQLPHPライブラリmysqlnd は、MySQL8のデフォルトの認証方法であるcaching_sha2_authenticationをサポートしていません。 。 そのため、MySQL 8でPHPアプリケーションのデータベースユーザーを作成する場合は、代わりにmysql_native_passwordを使用するように構成されていることを確認する必要があります。 その方法については、Ubuntu20.04ガイドの詳細なLAMPのステップ6を参照してください。

ステップ3—PHPをインストールする

PHPとその依存関係をインストールするには、次のコマンドを実行します。

  1. sudo apt install php libapache2-mod-php php-mysql

インストールが完了したら、次のコマンドを実行してPHPのバージョンを確認できます。

  1. php -v
Output
PHP 7.4.3 (cli) (built: Mar 26 2020 20:24:23) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

ステップ4—Webサイトの仮想ホストを作成する

このガイドでは、 your_domain というドメインを設定しますが、これを独自のドメイン名に置き換える必要があります。

Ubuntu 20.04上のApacheでは、/var/www/htmlディレクトリからドキュメントを提供するように構成された1つのサーバーブロックがデフォルトで有効になっています。 /var/www/htmlを変更する代わりに、 your_domain サイトの/var/www内にディレクトリ構造を作成し、/var/www/htmlをデフォルトのディレクトリとして残します。クライアントリクエストが他のサイトと一致しない場合に提供されます。

次のように、your_domainのディレクトリを作成します。

  1. sudo mkdir /var/www/your_domain

次に、$USER環境変数を使用してディレクトリの所有権を割り当てます。これにより、現在のシステムユーザーが参照されます。

  1. sudo chown -R $USER:$USER /var/www/your_domain

次に、お好みのコマンドラインエディタを使用して、Apacheのsites-availableディレクトリにある新しい設定ファイルを開きます。

  1. sudo nano /etc/apache2/sites-available/your_domain.conf

これにより、新しい空白のファイルが作成されます。 次の必要最低限の構成で貼り付けます。

/etc/apache2/sites-available/your_domain.conf
<VirtualHost *:80>
    ServerName your_domain
    ServerAlias www.your_domain 
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

完了したら、ファイルを保存して閉じます。 nanoを使用している場合は、CTRL+XYENTERの順に押します。

これで、a2ensiteを使用して、新しい仮想ホストを有効にできます。

  1. sudo a2ensite your_domain

ApacheのデフォルトのWebサイトを無効にするには、次のように入力します。

  1. sudo a2dissite 000-default

構成ファイルに構文エラーが含まれていないことを確認するには、次のコマンドを実行します。

  1. sudo apache2ctl configtest

最後に、Apacheをリロードして、これらの変更を有効にします。

  1. sudo systemctl reload apache2

これで新しいWebサイトがアクティブになりましたが、Webルート/var/www/your_domainはまだ空です。 その場所にindex.htmlファイルを作成して、仮想ホストが期待どおりに機能することをテストできるようにします。

  1. nano /var/www/your_domain/index.html

このファイルには次のコンテンツを含めます。

/var/www/your_domain/index.html
<html>
  <head>
    <title>your_domain website</title>
  </head>
  <body>
    <h1>Hello World!</h1>

    <p>This is the landing page of <strong>your_domain</strong>.</p>
  </body>
</html>

次に、ブラウザに移動して、サーバーのドメイン名またはIPアドレスにもう一度アクセスします。

http://server_domain_or_IP

次のようなページが表示されます。

Apache virtual host test

ステップ5—ApacheでPHPをテストする

次に、PHPテストスクリプトを作成して、ApacheがPHPファイルのリクエストを処理および処理できることを確認します。

カスタムWebルートフォルダ内にinfo.phpという名前の新しいファイルを作成します。

  1. nano /var/www/your_domain/info.php

これにより、空のファイルが開きます。 ファイル内に次のコンテンツを追加します。

/var/www/your_domain/info.php
<?php
phpinfo();

終了したら、ファイルを保存して閉じます。

Webブラウザーに移動し、サーバーのドメイン名またはIPアドレスにアクセスし、続いてスクリプト名(この場合はinfo.php)にアクセスします。

http://server_domain_or_IP/info.php

次のようなページが表示されます。

Ubuntu 20.04 PHP info

そのページでPHPサーバーに関する関連情報を確認した後、PHP環境とUbuntuサーバーに関する機密情報が含まれているため、作成したファイルを削除することをお勧めします。 rmを使用してこれを行うことができます。

  1. sudo rm /var/www/your_domain/info.php

このチュートリアルに関連するより詳細なガイドへのリンクは次のとおりです。