L'Isola di Niente
L'Isola di Niente » Fedora Linux Tips » httpd で public_html を使う

httpd で public_html を使う

Fedora で Apache と PHP を動かしホームディレクトリ以下にファイルを置く方法。
/ver/www/html を chmod で所有者変更を行い html 以下に置けばローカルチェックは可能ですが...
サーバーへアップロード時にパーミッション変更をする必要があり面倒なのでホーム以下にしたいので。

# 最終更新日 2016.11.27

Apache と PHP の導入

Fedora 21 以降はパーソナルファイル共有の為に httpd は最初からあります。
なので PHP のみ導入、余談ですが macOS は両方デフォルトで入っています。
sudo dnf install php

# 起動
sudo systemctl start httpd.service

# 次回ログインから自動起動
sudo systemctl enable httpd.service

# Fedora 16 以前の古い方法
sudo /etc/init.d/httpd start
sudo chkconfig httpd on

public_html ディレクトリ

Fedora ではホームディレクトリのパーミッションが 700 になっています。
最低でも 711 に変更しないと httpd はホーム以下にアクセスできません。

それと SELinux の設定を少し変更する必要あり。
デフォルトがガチガチ過ぎるだけですが...

$HOME 以下に配置するディレクトリは別に限定されていません。
www 等の別名にしたい場合は下記の public_html を読み替え。

$USER 部分は自分のユーザー名に書き換えてください。
下記のままだと $USER は root になってしまいますので。
mkdir public_html
chmod 755 public_html

sudo chmod 711 /home/$USER
sudo chcon -R -t httpd_sys_content_t public_html
sudo setsebool -P httpd_enable_homedirs 1
後は public_html 以下に html や PHP ファイルを置いて準備完了。
ですが、別ディレクトリからファイルを移動すると SELinux Context が User data になってしまいパーミッションも 664 になってしまいます。
直接新規作成するか Ctrl+C, Ctrl+V にてコピペであれば httpd_sys_content かつ 644 になります。

userdir.conf

http://localhost/~ユーザー名 でアクセスさせる方法。

/etc/httpd/conf.d/userdir.conf を管理者権限で開く
Fedora 25 からは管理者で GUI を使えないので vi, nano 等で。

UserDir disabled をコメントアウト
UserDir public_html のコメントアウトを外す
public_html を別名にしているなら書き換える

img/nano_userdir.png

sudo systemctl restart httpd.service
xdg-open http://localhost/~$USER/
これでホームの public_html 以下に html や php ファイルが置けるようになります。

httpd.conf

自分しか使わないので http://localhost/ だけでアクセスしたい場合。

同じく /etc/httpd/conf/httpd.conf を管理者権限で開く
DocumentRoot で検索
DocumentRoot "/var/www"
↓
DocumentRoot "/home/$USER/public_html"

<Directory "/var/www">
↓
<Directory "/home/$USER/public_html">
Copyright(C) sasakima-nao All rights reserved 2002 --- 2017.