(過去記事のコピペなので内容が古いかも知れません)
↑にすべて書いてあるので、この通りにやれば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
(追記)
新しいディレクトリで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にする必要はないっぽい
ランキング参加中です
↓クリックしていただけると嬉しいです〜