Apache設定ファイル
Apacheの設定ファイルは etc/apache2 にあります。
apache2.confがApacheの設定ファイルです。
ファイル内には既定(ポート80)のサイトディレクトリやApacheの実行ユーザー等の設定が記載されています。
apache2.confに使用されている定数はenvvarsにて設定されています。
Apacheのモジュールを理解する
mods-availableとconf-availableにはそれぞれインストール済みのモジュールとその設定ファイルが入っています。
各モジュールを有効化すると、それぞれのモジュール、コンフィグのシンボリックリンクがconf-enabledとmods-enabledに設置されます。
apache2.confはconf-enabled、mods-enabled、sites-enabledディレクトリの中のファイルを全て読み込みます。
※ディレクトリの構造はUbuntu以外のディストリビューションでは変わります
- etc
- apache2
- charset.conf
- php8.3-fpm.conf
- etc・・・(その他インストール済みモジュールのコンフィグ)
- conf-enabled
- charset.conf
- etc・・・(その他有効化済みモジュールのコンフィ
- mods-available
- php8.3.conf
- etc・・・(その他インストール済みモジュール)
- mods-enabled
- php8.3.conf
- etc・・・(その他有効化済みモジュール)
- apache2.conf
- envvars
- var
- log
- apache2
- access.log
- error.log
- other_vhosts_access.log
- etc・・・(その他apacheのログ)
- www
- html
- index.html ← 現状http://localhostはこれを再生する
- etc・・・(デフォルトサイトディレクトリ)
サイト用リソースディレクトリ作成
まずはLinuxのサイト開発者となるユーザーをwww-dataグループに加えます。www-dataはApacheの起動ユーザーのグループです。※Ubuntu以外のディストリビューションでは変わります。
# hogeユーザーをwww-dataグループに追加
sudo usermod -a -G www-data [hoge]
続いてサイトのディレクトリの保管場所を /var/www 直下に作ります。ここではディレクトリ名をhtdocsとしています。
htdocsの所有者として開発者のアカウントを、グループはwww-dataを指定し、パーミッションを775としてください。
# htdocs作成
sudo mkdir /var/www/htdocs
# htdocsの所有者をhoge、グループをwww-dataに
sudo chown -R hoge:www-data /var/www/htdocs/
# パーミッションを775へ
sudo chmod -R 775 /var/www/htdocs/
サイトのルートディレクトリ作成する
htdocs内にサイトのリソース用ディレクトリを作ります。
今回はディレクトリ名を test.webapp.com とします。サイトのドメイン名や、プロジェクト名など、どのサイトかすぐ認識出来る名前を付けてください。
またディレクトリの中にwwwrootとlogディレクトリを作ります。
mkdir /var/www/htdocs/test.webapp.com/
cd /var/www/htdocs/test.webapp.com/
mkdir log
mkdir wwwroot
wwwrootの中にindex.phpを設置します。
index.phpの中は以下コードを記載して下さい。
<?php
phpinfo(); //PHPの環境情報の一覧を出力する関数
?>
phpinfoはphpのバージョンやモジュールの読み込み情報を出力する関数です。テスト時に使用しましょう。
VirtualHostの設定を追加して、任意のポートでアクセスする
test.webapp.com ディレクトリ内のリソースを参照するVirtualHostの設定を行います。
/etc/apache2/sites-available/test.webapp.com.conf を作成します。
内容は以下
/etc/apache2/sites-available/test.webapp.com.conf
# port40001の監視
LISTEN 40001
# port40001アクセス時の設定
<VirtualHost *:40001>
# サイト用ディレクトリの定数設定
Define SITE_DIR /var/www/htdocs/test.webapp.com
# 管理者メールアドレス(エラー時に表示)
ServerAdmin webmaster@localhost
# ServerNameはSSL証明書と合わせる
ServerName localhost
# ドメインのルートディレクトリ
DocumentRoot ${SITE_DIR}/wwwroot
<Directory ${SITE_DIR}/wwwroot>
# シンボリックリンクに対応
Options FollowSymlinks Includes
# 直接的なアクセスの許可
Require all granted
# .htaccessによる設定上書き許可
AllowOverride All
</Directory>
ErrorLog ${SITE_DIR}/log/error.log
CustomLog ${SITE_DIR}/log/access.log combined
</VirtualHost>
これは http://localhost:40001 でアクセスするためのVirtualHostの設定です。
続いてサイトの設定を有効化します。
sudo a2ensite test.webapp.com.conf
sudo service apache2 restart
ブラウザで http://localhost:40001 へアクセスします。
phpの動作環境が成形されたHTMLで表示されるはずです。これはphpinfo関数の実行内容です。
試しに index.php の内容を変更してみて、ブラウザに反映されるか確認しましょう。