2021/07/15(木) [n年前の日記]
#2 [linux][debian] Debian buster + Apache2 の設定作業
自宅サーバ代替機(キューブPCケース機、Intel D945GSEJT使用)、Debian Linux 10 buster 32bit版 + Apache2 2.4.38-3+deb10u5 で、Apache2 の設定を始めた。
◎ Apache2とPerlをインストール。 :
Apache2 と Perl をインストール。
初期htmlフォルダは /var/www/html/。デフォルトでは、http://hoge/ にアクセスすると、/var/www/html/index.html が表示される。
設定ファイルは /etc/apache2/ 以下にある。/etc/apache2/apache2.conf がメインの設定ファイル。
_【2020年最新版】DebianにウェブサーバーApache2をセットアップ
apt install apache2 apt install perl
初期htmlフォルダは /var/www/html/。デフォルトでは、http://hoge/ にアクセスすると、/var/www/html/index.html が表示される。
設定ファイルは /etc/apache2/ 以下にある。/etc/apache2/apache2.conf がメインの設定ファイル。
_【2020年最新版】DebianにウェブサーバーApache2をセットアップ
◎ ユーザのホームディレクトリを有効化。 :
以下を参考に作業。
_Debian 10 Buster : Apache2 : ユーザーのホームディレクトリを利用する : Server World
_Debian 10 Buster : Apache2 : ユーザーのホームディレクトリを利用する : Server World
a2enmod userdir systemctl restart apache2初期設定では、~/public_html/ 以下が公開される。
◎ cgiを有効化。 :
以下を参考に作業。
_Debian 10 Buster : Apache2 : Perlスクリプトを利用する : Server World
モジュール有効化。Apache2再起動。
初期設定状態では、/usr/lib/cgi-bin/ 以下に cgi を入れておくと、http://hoge/cgi-bin/hoge.cgi で実行できる。
任意のフォルダ以下でも実行できるように設定してみる。例えば、/var/www/html/cgi-enabled/ 以下を対象にしてみる。
設定ファイルの有効化。
前述のページ内で紹介されているスクリプトで動作確認。
テストスクリプトの例。その1。
/usr/lib/cgi-bin/test_script.cgi
http://hoge/cgi-bin/test_script.cgi でアクセス。
テストスクリプトの例。その2。
/var/www/html/cgi-enabled/index.cgi
http://hoge/cgi-enabled/index.cgi でアクセス。
_Debian 10 Buster : Apache2 : Perlスクリプトを利用する : Server World
モジュール有効化。Apache2再起動。
a2enmod cgid systemctl restart apache2
初期設定状態では、/usr/lib/cgi-bin/ 以下に cgi を入れておくと、http://hoge/cgi-bin/hoge.cgi で実行できる。
任意のフォルダ以下でも実行できるように設定してみる。例えば、/var/www/html/cgi-enabled/ 以下を対象にしてみる。
mkdir /var/www/html/cgi-enabled
vi /etc/apache2/conf-available/cgi-enabled.conf以下を記述。指定フォルダ以下で .cgi や .pl を実行可能にしている。
<Directory "/var/www/html/cgi-enabled"> Options +ExecCGI AddHandler cgi-script .cgi .pl </Directory>
設定ファイルの有効化。
a2enconf cgi-enabled systemctl restart apache2
前述のページ内で紹介されているスクリプトで動作確認。
テストスクリプトの例。その1。
/usr/lib/cgi-bin/test_script.cgi
#!/usr/bin/perl print "Content-type: text/html\n\n"; print "Hello CGI\n";
chmod 755 /usr/lib/cgi-bin/test_script.cgi
http://hoge/cgi-bin/test_script.cgi でアクセス。
テストスクリプトの例。その2。
/var/www/html/cgi-enabled/index.cgi
#!/usr/bin/perl print "Content-type: text/html\n\n"; print "<html>\n<body>\n"; print "<div style=\"width: 100%; font-size: 40px; font-weight: bold; text-align: center;\">\n"; print "CGI Test Page"; print "\n</div>\n"; print "</body>\n</html>\n";
chmod 755 /var/www/html/cgi-enabled/index.cgi
http://hoge/cgi-enabled/index.cgi でアクセス。
◎ Apache2を動かしているのは誰なのですか。 :
Vine Linux上では Apache を動かしていたのは apacheユーザだったけど、Debian は誰が動かすのだろう。例えば Apache2 がファイルを作成した場合、所有者は誰になるのか…?
_www-dataイズ誰? - やってみなくちゃわからない。わからなかったらやってみよう!@プリチャンを見て
_ubuntuのapacheユーザーとグループ - Qiita
Deian Linux 10 の場合、Apache2 を動かしているのは www-data というユーザらしい。
たしかに、/etc/apache2/envvars 内に記述があった。
旧自宅サーバ機から持ってきたファイルに対して、apacheユーザ所有だったファイル群を、www-data の所有に置き換えておいた。
_www-dataイズ誰? - やってみなくちゃわからない。わからなかったらやってみよう!@プリチャンを見て
_ubuntuのapacheユーザーとグループ - Qiita
Deian Linux 10 の場合、Apache2 を動かしているのは www-data というユーザらしい。
たしかに、/etc/apache2/envvars 内に記述があった。
export APACHE_RUN_USER=www-data export APACHE_RUN_GROUP=www-data
旧自宅サーバ機から持ってきたファイルに対して、apacheユーザ所有だったファイル群を、www-data の所有に置き換えておいた。
sudo chown -R --from=xxxx www-data:www-data *
◎ .htaccess を有効化。 :
ディレクトリ毎にサーバ設定を変更できる、.htaccess を有効化する。
_Apacheの「.htaccess」を有効にする方法 | ex1-lab
_Apache ウェブサーバーで .htaccess を有効にする │ TEAM T3A
_Debian Apache2の設定(1)
AccessFileName でファイル名を指定。
ディレクトリに対する設定内で AllowOverride ALL を指定すれば有効化できる。
Apache2再起動。
_Apacheの「.htaccess」を有効にする方法 | ex1-lab
_Apache ウェブサーバーで .htaccess を有効にする │ TEAM T3A
_Debian Apache2の設定(1)
sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.orig sudo vi /etc/apache2/apache2.conf
AccessFileName でファイル名を指定。
AccessFileName .htaccess ↓ AccessFileName .htaccess_custom
ディレクトリに対する設定内で AllowOverride ALL を指定すれば有効化できる。
<Directory /> Allowoverride All </Directory>
Apache2再起動。
sudo systemctl restart apache2
◎ BASIC認証を利用。 :
BASIC認証を使えば、ユーザ名とパスワードを入力しないとアクセスできないディレクトリを作れる。
authz_groupfile を有効化すればいいらしい。
_Debian 10 Buster : Apache2 : Basic認証を利用する : Server World
_[Apache] Invalid command ‘AuthGroupFile’ エラー対処法 - 端くれプログラマの備忘録
authz_groupfile を有効化すればいいらしい。
apt install apache2-utils a2enmod authz_groupfile systemctl restart apache2
_Debian 10 Buster : Apache2 : Basic認証を利用する : Server World
_[Apache] Invalid command ‘AuthGroupFile’ エラー対処法 - 端くれプログラマの備忘録
[ ツッコむ ]
以上です。