Apacheのホームディレクトリを変更。

Ubuntu系LinuxにapacheやnginxといったWebサーバをパッケージ管理システムでインストールすると、通常は

/var/wwwがホームディレクトリとなります。

コンテンツ系を/varに余り入れたくないという好みの問題があるため、ここを変えていきます。

通常、www-dataは/usr/sbin/nologinとなっているためシェルでログインはできませんが、rubyでbundle installを行う際にホームディレクトリを参照するケースがあるため、この措置を執ります。

さっくりとした手順

  1. 新たなホームディレクトリを作成して設定します。
  2. /etc/passwdファイルを書き換えます。

ディレクトリの作成と設定

sudo mkdir -p /home/www-data

運用に合わせます。

sudo chown -R www-data:www-data /home/www-data
ls -ld /home/www-data

所有者がwww-dataになっていることを確認します。

passwdファイルの書き換え

※システム全体のアカウントを制御する重要なファイルです。取り扱いは慎重に行ってください。※

sudo cp -pi /etc/passwd /path/to/backup/directory/passwd.$(date +%Y%m%d)

任意のバックアップディレクトリを指定します。

diff -u /path/to/backup/directory/passwd.$(date +%Y%m%d) /etc/passwd

エラーがなければバックアップは成功です。

sudo sed -i 's|/var/www|/home/www-data|' /etc/passwd
diff -u /path/to/backup/directory/passwd.$(date +%Y%m%d) /etc/passwd

以下の差分を確認します。

-www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
+www-data:x:33:33:www-data:/home/www-data:/usr/sbin/nologin

差分がこの2つだけであることを確認できたら設定完了です。


Revision #4
Created 5 September 2024 11:35:08 by manualmaton
Updated 25 October 2024 04:51:56 by manualmaton