日記帳
本ページはプロモーションが含まれています
カテゴリー
Links
blog(ブログ)マスター
アンドロイドの巣
ゼロから始めるベランダ菜園
タイトル
2024年10月
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31

[perl] Locale 'Japanese_Japan.932' is unsupported, and may crash the interpreter.

カテゴリー: General
2024-08-03

タイトル


執筆:2024.08.03
編集:2024.08.03


さくらインターネット
perl 5.14.4しかないかと思っていたら、標準perl(推奨)に変更すると
標準perl5.35.32.1
に変わった。
切り替え前にもサーバー管理画面にバージョン表示しなさいよ。

で、標準perl(推奨)にするとCGIがエラーでなります。

仕方がないので、ローカルでコードをデバッグすることに。

ローカルで実行したらローカル環境はいつの間にかGDで落ちるようになってしまっていた。

cpanエラーで動かない

気を取り直して、strawberry-perl-5.38.2.2-64bit-portableをインストール

コマンドプロンプト(管理モード)

cd パス\perl
rmdir default

MKLINK /D default 5.38-portable


ライブラリインストール
コピペして終了
...


最新版をいれると日本語だめとかいうので、
コードをUTF8に変更

(1) コードを tortisegitで「差分」クリック変更表示
(2) コードページ変更 UTF8
(3) 先頭近くに 以下を挿入
use utf8;
(4) 保存


perl: warning: Falling back to the system default locale ("Japanese_Japan.932").
Locale 'Japanese_Japan.932' is unsupported, and may crash the interpreter.

はい?

お手上げなので 元BING先生 に聞く

Perlのバージョンを変更する:
Strawberry Perlのバージョン5.36.1.1を使用することで、このエラーを回避できることが報告されています


おぇ・・・ゲロゲロ

perl -v

Locale 'Japanese_Japan.932' is unsupported, and may crash the interpreter.

This is perl 5, version 38, subversion 2 (v5.38.2) built for MSWin32-x64-multi-thread


perl -vすれば動くかわかるみたい。

ゴミなので 5.38.2は アンインストール

ダウンロード
https://strawberryperl.com/releases.html

perl -v

This is perl 5, version 36, subversion 3 (v5.36.3) built for MSWin32-x64-multi-thread


5.14の時と同じで動かない

Can't load 'perl/site/lib/auto/GD/GD.xs.dll' for module GD: load_file:指定されたモジュ ールが見つかりません。 at perl/lib/DynaLoader.pm line 206.


Windowsでperlを実行するのは もう限界のよう
 
解決

set PATH=C:\Windows\System32;C:\Windows
call portableshell.bat
cd スクリプトのあるフォルダ
perl スクリプトファイル名
動作した。
echo %PATH%
これがたりないのですね

原因: 環境変数"PATH"

C:\Program Files\perl\default\perl\site\bin;
C:\Program Files\perl\default\perl\bin;
C:\Program Files\perl\default\c\bin;

1番目と3番目のパスを設定していなかったからエラーになったみたい。

apacheのconfに環境パスを設定する場合

PassEnv PATH

こちらの環境では、この設定でperl動作せず。

apache再起動 エラー

別ルートで対応する

perl.batを作成する

perl.bat

@echo off
@setlocal
@CALL C:\Program Files\perl\default\portableshell.bat /SETENV
@SET PATH=C:\Windows\system32;C:\Windows;%PATH%
@rem CODE PAGE UTF-8
@chcp 65001 > nul
@perl.exe %*
@endlocal


リンク先を確認

where perl


apache確認 OK アクセス エラー解消



PR

[PR]