実現したいこと
mampを使用しているのですが、mampが使用するperlのバージョンダウンをしたい。
発生している問題・分からないこと
とあるcgiをmampで動かすために、環境を整えているのですが、ファイルを表示しようとしたところ、500エラーになってしまいます。
エラーメッセージ
error
1Experimental keys on scalar is now forbidden at xxxxxx
該当のソースコード
特になし
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
apaceのエラーログを見てみると、
Experimental keys on scalar is now forbidden at xxxxxx
というログがありました。
これを調べてみたところ、どうもPerlのバージョンが新しいのが原因だという記事を見つけました。
高密度商業地域
そこでperlバージョンを確認したところ、
- 本番環境→5.16.3
- mamp環境→5.30.3
となっていました。
ということで、mampのperlバージョンを下げればいいと思い調べてみたところ
perlbrewというのを使うとMacOSのperlのバージョンを変えられるということで、下記URLを参考にインストールしてみました。
Mac OS Xにperlbrew入れてperlの好きなバージョンを入れたり切り替えたりしてみるメモ
※シェル=zsh
perlbrewのインストールは完了し、perl-5.16.3のインストールも完了。
perlbrew switch perl-5.16.3 perl -v
とすると、
This is perl 5, version 16, subversion 3 (v5.16.3) built for darwin-2level (with 1 registered patch, see perl -V for more detail)
となり、バージョン変更もできたようでした。
しかし、いざ該当ファイルを開こうとしてもやはり500エラーが発生。
何か手掛かりがないかと、mampのphpinfoをみたところ、
Apache Version
Apache/2.4.46 (Unix) OpenSSL/1.0.2u PHP/7.4.21 mod_wsgi/3.5 Python/2.7.18 mod_fastcgi/mod_fastcgi-SNAP-0910052141 mod_perl/2.0.11 Perl/v5.30.1
となっていることから、『Perl/v5.30.1』の部分がperlのバージョンが切り替わっていないのかと思っています。
mampで利用するpelのバージョンをperlbrewでインストールした5.16.3にするにはどうしたら良いのでしょうか。
サーバー関連知識が乏しく説明不足があれば追記いたします。
以上、ご教授いただけると幸いです。
補足
- MacOS 13.4.1
- MAMP 6.6
- 該当cgiファイルのパーミッションは755になっている
- cgiファイル1行目は「#! /usr/bin/perl」
2023.12.31追記
Terminalで、
% env
を叩いたところ、
PATH=/Users/xxx/perl5/perlbrew/bin:/Users/xxx/perl5/perlbrew/perls/perl-5.16.3/bin:/Users/xxxx/.nodebrew/current/bin:/opt/homebrew/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/VMware Fusion.app/Contents/Public:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin
となっており、5.16.3にPATHが通っている(?)と思います。
回答1件
あなたの回答
tips
プレビュー