データベース基礎講座/教程03 Web日記アプリの作/登録画面の作成
web日記アプリで登録画面の作成をしているのですが、動画のようにreg.pyファイルのコードを入力してブラウザでhttp://localhost/diaryapp/reg.pyを開くとエラーになります。
diaryappcompの完成版と比べてもコードは間違えてなさそうだと思うのですが何が原因でしょうか?
apache_error.logを確認したところ、やはりパーミッションによるエラーが出ているようです。
原因はわからないですが、MAMPを入れ直すと解決する場合もあります
以下、まっとうな手法です
[Thu Aug 25 15:21:18.550268 2022] [cgi:error] [pid 89769] [client ::1:49191] AH01215: (13)Permission denied: exec of ‘/Applications/MAMP/htdocs/diaryapp/reg.py’ failed: /Applications/MAMP/htdocs/diaryapp/reg.py
[Thu Aug 25 15:21:18.550855 2022] [cgi:error] [pid 89769] [client ::1:49191] End of script output before headers: reg.py
講座を進めていくと他の画面でも同様の問題が発生すると思われるので、htmlを返す.pyファイルは全てパーミッションを変更して良いと思います。
パーミッションの設定は744もしくは766辺りで大丈夫です
まずcdコマンドで、diaryappディレクトリへ移動
cd /Applications/MAMP/htdocs/diaryapp
chmodコマンドで該当の.pyファイルのパーミッションを変更chmod 744 day.py & chmod 744 delete.py & chmod 744 detail.py & chmod 744 edit.py & chmod 744 index.py & chmod 744 reg.py & chmod 744 search.py & chmod 744 tags.py
その上で、phpMyAdminからデータベースdiaryを選択し権限タブを開き、settings.pyに設定されているユーザーが設定されているかを確認する。
設定されていなければ「ユーザーアカウントを追加する」から以下の設定(settings.pyに記述されている内容)でユーザーを追加する。
ユーザー名:diaryuser
ホスト名:localhost
パスワード:diarypass
再入力:diarypass
添付されていたreg.pyは問題なさそうでした。