ホームページ  >  記事  >  バックエンド開発  >  仮想ホストを使用した PHP Apache プロジェクト

仮想ホストを使用した PHP Apache プロジェクト

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-06 06:08:03280ブラウズ

PHP Apache project with Virtual Host

プロジェクトディレクトリを作成する

まず、プロジェクトのディレクトリを作成します。たとえば、php:

というディレクトリを作成してみましょう。

sudo mkdir /var/www/html/php


PHP テスト ファイルを作成する

プロジェクト ディレクトリにindex.php ファイルを作成します:


echo "<?php phpinfo(); " | sudo tee /var/www/html/php/index.php


ディレクトリ権限の設定

Apache がディレクトリにアクセスできるように、適切な権限を設定します。


sudo chown -R www-data:www-data /var/www/html/php 
sudo chmod -R 755 /var/www/html/php


コマンド sudo chown -R www-data:www-data /var/www/html/php は次のアクションを実行します。

  1. -R: このオプションは、操作が再帰的に実行される必要があることを示します。つまり、指定されたディレクトリだけでなく、そのすべてのサブディレクトリとファイルに対しても実行されます。

  2. www-data:www-data: ファイルの新しい所有者となるユーザーとグループが両方とも www-data であることを指定します。これは、Apache や Nginx などの Web サーバーのデフォルト ユーザーとして機能する、Linux システム上の一般的なユーザーおよびグループです。

  3. /var/www/php: これは、プロパティが変更されるディレクトリのパスです。

コマンド sudo chmod -R 755 /var/www/html/php は次のアクションを実行します。

755: これは許可モードです:

  1. 最初の数字 (7) は、ファイル (またはディレクトリ) の所有者に読み取り (4)、書き込み (2)、実行 (1) のアクセス許可を与え、合計 7 になります。

  2. 2 番目の数字 (5) は、グループに読み取り (4) 権限と実行 (1) 権限を与えますが、書き込み権限は与えず、合計 5 になります。

  3. 3 番目の数字 (5) は、他のユーザーに読み取り (4) 権限と実行 (1) 権限を与えますが、書き込み権限は与えず、合計 5 になります。

要約すると、このコマンドは /var/www/html/php 内のすべてのファイルとディレクトリの権限を変更し、所有者が完全な制御 (読み取り、書き込み、実行) を行えるようにしますが、グループと他のユーザーは読み取りのみを許可します。そして実行権限を与えます。これは、サーバーがセキュリティを損なうことなく必要なファイルにアクセスできるようにするために、Web サーバー環境で一般的です。

仮想ホスト構成ファイルの作成

仮想ホストの新しい構成ファイルを作成します。ファイルは php プロジェクトと同じ名前にする必要があります:


sudo your_editor /etc/apache2/sites-available/php.conf


仮想ホスト構成の追加

次の構成をファイルに追加します:


<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName php.info
    DocumentRoot /var/www/html/php

    <Directory /var/www/html/php/>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/php_error.log
    CustomLog ${APACHE_LOG_DIR}/php_access.log combined
</VirtualHost>


コードの各部分を分析してみましょう:

    • これは、HTTP のデフォルト ポートであるポート 80 でリッスンする仮想ホストの構成ブロックの始まりです。アスタリスク (*) は、仮想ホストが任意の IP アドレスからの接続を受け入れることを示します。
  1. ServerAdmin webmaster@localhost

    • サーバー管理者の電子メール アドレスを定義します。この電子メール アドレスは、エラー メッセージで使用したり、ユーザーが管理者に連絡する必要がある場合に使用できます。
  2. サーバー名 php.info

    • この設定が適用されるサーバーの名前を指定します。この場合、仮想ホストは php.info のリクエストに応答します。この名前がサーバーの IP (通常は /etc/hosts ファイルまたは DNS で構成されます) に正しく解決されることが重要です。
  3. ドキュメントルート /var/www/html/php

    • 誰かが ServerName (この場合は php.info) にアクセスしたときに提供されるファイルを含むディレクトリを定義します。この例では、ファイルは /var/www/html/php.
    • にあります。
  4. <ディレクトリ /var/www/html/php/>

    • このブロックは、示されたディレクトリの特定の設定を指定します。このブロック内の設定は、その特定のディレクトリに対する Apache の動作に影響します。

すべて上書きを許可

  • /var/www/html/php/ ディレクトリ内の .htaccess ファイルが Apache の設定をオーバーライドできるようにします。これは、開発者がメインの Apache 構成ファイルを編集することなく、.htaccess ファイルを使用してリダイレクトやアクセス制御などのルールを構成できることを意味します。

すべての許可が必要です

  • すべてのユーザーにディレクトリへのアクセスを許可します。これは、誰もが /var/www/html/php/ 内のファイルに制限なくアクセスできることを意味します。
  1. エラーログ ${APACHE_LOG_DIR}/php_error.log
  2. この仮想ホストの Apache エラー ログ ファイルへのパスを指定します。 ${APACHE_LOG_DIR} は通常、メインの Apache 構成ファイルに設定される変数で、ログが保存されるディレクトリを指します。ここで、この仮想ホストに関連するエラーは php_error.log ファイルに記録されます。

  3. カスタムログ ${APACHE_LOG_DIR}/php_access.log の結合

  4. Defines the path to the Apache access log file for this Virtual Host. Like ErrorLog, this also uses the ${APACHE_LOG_DIR} variable. The combined format records information about requests, including the client's IP address, the time of the request, the HTTP method, the URL requested, the status code and the user agent.

Enable the Virtual Host

Enable the new Virtual Host with the command:


sudo a2ensite php.conf


Activate the Rewrite Module (if necessary)

If you need to use .htaccess or URL rewrites, activate the Apache rewrite module:


sudo a2enmod rewrite


Add Server Name to Hosts

To access your project using the server name you defined (php.info), add an entry in the /etc/hosts file:


sudo your_editor /etc/hosts


Add the following line to the end of the file:


<p>127.0.0.1   php.info</p>




Restart the Apache

Restart Apache for the changes to take effect:


<p>sudo systemctl restart apache2</p>




Accessing the Project

You can now access your project in the browser by typing http://php.info.

以上が仮想ホストを使用した PHP Apache プロジェクトの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。