Bus errorとSegmentation faultに困ったら見るブログ

物理の研究者による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

【Debian9】でcgi-binを使ってみる + permission deniedとか

(過去記事のコピペなので内容が古いかも知れません)

qiita.com

↑にすべて書いてあるので、この通りにやればOK



コマンドメモ

# UserDir を有効化する
sudo a2enmod userdir

# 再起動
sudo service apache2 restart

# CGIを有効にする
# ただ、手元の環境では元からファイルがあったのでエラー
sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load

# 設定ファイルの変更
sudo emacs /etc/apache2/sites-available/000-default.conf

//上記のファイルの 以下のコメントを外す
Include conf-available/serve-cgi-bin.conf

# 拡張子.pyのCGIが動作出来るように設定する。
sudo emacs /etc/apache2/mods-available/mime.conf

(変更前)
#AddHandler cgi-script .cgi
(変更後)
AddHandler cgi-script .cgi .py

# CGIを動かすディレクトリの設定
# 変更後のディレクトリは自分が好きなディレクトリにする
/etc/apache2/conf-available/serve-cgi-bin.conf

(変更前)
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
(変更後)
ScriptAlias /cgi-bin/ /home/pi/public_html/cgi-bin
<Directory "/home/pi/public_html/cgi-bin">

# 再起動
sudo service apache2 restart

Pythonスクリプトの準備をする(詳しくは以下のページを参照)
$ sudo emacs ~/public_html/cgi-bin/test.py


www.server-world.info




(追記)

新しいディレクトリでcgi-binを1から作る作業をしてた
permission deniedと出て困っていたが、原因は所有者や実行権限ではなかった

スクリプトの実行権限は755に設定しておく

chmod 755

また所有者はdebianの場合は

$ sudo chown -R www-data:www-data ./


今回ハマっていた原因は、ディレクトリがシンボリックリンクだったから

一応、/etc/apache2/apache2.conf の

Options Indexes FollowSymLinks
AllowOverride All
Require all granted

では、FollowSymLinksオプションはオンになってるはずなんだがなぁ・・・

そのディレクトリになにか書き出すわけでなければ、所有者をwww-dataにする必要はないっぽい

ランキング参加中です

↓クリックしていただけると嬉しいです〜