Webサーバー(Apache2)を使う

Linuxで遊ぶ

Debian busterにapache2を入れた時の備忘録です。

Apache2のインストール

$ sudo apt install apache2

ブラウザにIPアドレスを入れるとデフォルトページが開きます。

ユーザーディレクトリの使用

/home/seko/public_htmlをユーザーディレクトリに設定して、userdirモジュールを使用できるようにする。

$ sudo a2enmod /userdir
$ mkdir -m 705 public_html
$ sudo systemctl restart apache2

これで、http://192.168.1.35/~sekoにアクセスできるようになりました。

セキュリティのバグを突かれないための対策

$ sudo vi /etc/apache2/apache2.conf

ServerTokens Prod //Apacheのバージョンを非表示にする
ServerSignature Off //フッターに署名そのものを表示させない

cgiを使えるようにする

$ sudo a2enmod cgi
$ sudo vi /etc/apache2/apache2.conf

設定例

<Directory /home/seko/public_html>
Options Indexes FollowSymLinks ExecCGI Includes //cgiとssiの許可
※ファイル一覧を表示させない場合は、Indexesを削除
AddHandler cgi-script .cgi //cgiファイルをcgiスクリプトとして扱う
AddHandler server-parsed html //htmlファイル内でssiを扱えるようにする
AllowOverride None //.htaccessでの上書きを禁止する
Require all granted //すべてのアクセスを許可
</Directory>


※ユーザーの権限でApacheの動作を制御させる場合(cgi,ssiの許可)は、AllowOverride をAllにして、ユーザーディレクトリ内に.htaccessファイルを置けば良い。

apache2.conf

<Directory /home/seko/public_html>
Options Indexes FollowSymLink
AllowOverride All
Require all granted
</Directory>

.htaccess

Options +ExecCGI +Includes
AddHandler cgi-script .cgi
AddHandler server-parsed html

ドキュメントルートの変更

$ sudo vi /etc/apache2/sites-available/000-default.conf

#DocumentRoot /var/www/html
DocumentRoot /home/seko/public_html

コメント

タイトルとURLをコピーしました