文字化けについて

【環境情報】
・baserCMSのバージョン:4.6.2
・レンタルサーバー名:ローカルサーバー
・使用テーマ:標準のテーマ
・PHPスキル(自己評価):全くわからない

管理画面からコンテンツの編集をしようとしていますが、日本語文字列が文字化けしてしまいます。
入力時はちゃんと表示されているのですが、保存やプレビューすると
これはãĠストニュースです。
のような文字に変わってしまいます。

アルファベットは文字化けしないので、文字コードの指定などが不足しているような気がするのですが、DBの文字セットは以下の通りです。
基本設定から変更はしていません。

mysql> show variables like “chara%”;
±-------------------------±---------------------------+
| Variable_name | Value |
±-------------------------±---------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8mb3 |
| character_sets_dir | /usr/share/mysql/charsets/ |
±-------------------------±---------------------------+

@suzume777 こんにちは。ローカルサーバなんですね。xamppとかmampでしょうか。
php側の設定かもしれませんね。
/admin/site_configs/info にアクセスして見れるphpの設定で、mbstringの箇所を貼ってみていただけますか。
添付画像のように見れるところのことです。

/admin/site_configs/infoへのアクセスがよくわからなかったので、phpinfo();の値をテキスト出力したものから、mbstring部分だけを抽出したものを貼りました。

/etc/php.d/20-mbstring.ini,
Zend Multibyte Support => provided by mbstring
Multibyte decoding support using mbstring => enabled
mbstring
mbstring extension makes use of “streamable kanji code filter and converter”, which is distributed under the GNU Lesser General Public License version 2.1.
mbstring.detect_order => auto => auto
mbstring.encoding_translation => On => On
mbstring.func_overload => 0 => 0
mbstring.http_input => auto => auto
mbstring.http_output => UTF-8 => UTF-8
mbstring.http_output_conv_mimetypes => ^(text/|application/xhtml+xml) => ^(text/|application/xhtml+xml)
mbstring.internal_encoding => UTF-8 => UTF-8
mbstring.language => Japanese => Japanese
mbstring.regex_retry_limit => 1000000 => 1000000
mbstring.regex_stack_limit => 100000 => 100000
mbstring.strict_detection => Off => Off
mbstring.substitute_character => no value => no value

環境が書かれてないので、もしかしたら違うかもしれませんが。
私の場合、zipの解凍をWindows標準の解凍ツールで実施した場合に
文字化けが起こりました。(チケットに書かれたバージョンではなくもっと古いバージョンのですが。。)
それ以来、7zipなどで解凍するようにしております。
(もし、macやLinuxだったらすみません・・・・)

環境を書いておらず失礼しました。
Linuxになります。
$ cat redhat-release
MIRACLE LINUX release 8.6 (Peony)
復元は、unzipで行っています。

Linuxですか。
もし、Webサーバがapacheならばhttpd.confへ
「AddDefaultCharset」をコメントアウト
or
なければ「 AddDefaultCharset off」を追加。
(Apacheの再起動もわすれずに。)

もしかしたら、上記で改善する可能性があるかもしれません。
すみません。手元にMIRACLE LINUXがないので、調べられないので違うかもしれません。


追伸
BaserCMSは、phpファイルがUTF-8だったと思いうので、
「AddDefaultCharset UTF-8」の設定が入っていれば、コメントアウトもしくは"off"にしなくても
大丈夫かもしれません。
その場合考えられるのは、php.ini側に文字コードを設定する場所があったような気がします。
そちらを調整してみてください。

ありがとうございます。
設定をOffもしくはコメントアウトしましたが、改善されませんでした。

その後試したことで、
「概要」をソース表示で文字列を入力するとその時はちゃんと日本語表示されていました。
「本文」はテンプレートを設定してみたらこちらも日本語表示されました。
しかし、保存して再度編集画面になると文字化けしていました。

また、編集画面の右上にある「公開URLを開きます」のリンクをクリックしても(http://サーバー名/basercms/news/archives/1)

見つかりませんでした。

エラー: アドレス ‘/basercms/news/archives/1’ に送信されたリクエストは無効です。

と表示されており、インストール自体がうまくいっていないのかが気になります。

エラーだけを見ると「AllowOverride」とかの設定が足りてないのでは?
とは思いますが、手元に環境がないので判断ができないです。。。

話が変わってしまうのですが、
もしサーバエンジニアを目指すのでなければ、Linuxを利用しないで
「公式ガイド」に載っているレンタルサーバを利用するのはどうでしょうか?

レンタルサーバは、〇日間無料とかあるので
動作確認だけならばお金はかからないかと。。

インストールに時間をかけるよりも、
実績のある方法で、BaserCMSがインストールしてしまい。
BaserCMSの動作確認を始めた方がよいかと思った次第です。

ありがとうございます。
エラーだけを見ると「AllowOverride」とかの設定が足りてないのでは?
ということは、.htaccessあたりでしょうか。
BaserCMSのインストール時にはまった部分です。

まずは、日本語表示の部分をと考えています。

サーバー構築から勉強していますので、レンタルでなくローカルサーバーでなんとかしたいのですが。

そうなのですね。
VirtualBoxで、フリーの「MIRACLE LINUX8.4」で環境を作ってみたのですが
こちらで確認する限り、文字化けは発生しませんでした。

実施したこと。
1,firewall無効
2,SELINUX無効
3,httpd.conf「AllowOverride」変更None->ALL
DBは、MariaDBですね。

unzipを使ったら、パーミッションがバラバラだったので。
Windows上で7zipで解凍して、scpで転送しました。


設定をいろいろいじっていたと、思われます。
もしかしたら、インストールが正常に行われていない可能性があるかと思います。

現在の環境は取っておいて、
新規に、DBのスキーマやBaserCMSを用意して新規にインストールしてみてはいかがでしょうか。

案外それでうまくいく場合があるかもしれません・・・

ありがとうございます。

私も、VirtualBOX上でMiracle Linuxをインストールしています。
DBはMySQLです。
1,firewall無効
→ これはサービス自体を無効化してみました。
$sudo /sbin/service iptables stop

2,SELINUX無効
→ これは無効にしています。
$ getenforce
Disabled

3,httpd.conf「AllowOverride」変更None->ALL
→ これも変更したあと、apacheを再起動しました。

一度新しいゲストOSを作成して試してみましたが、やはりうまくいきません。

もしよろしければ、php.iniの変更箇所を教えていただけないでしょうか。

@suzume777 さん
私は、php.iniは変更してないですね。

前に書いた投稿の作業しかしてないです。

BaserCMSの問題というよりも、環境まわりな気がします。


環境は、ハマると大変ですよね。
ここから先は、モグラ叩き。(=一つ一つ問題を解決するしか手がないです。。)
・ソフトのバージョン(php mysql apache・・・)
・ブラウザ
・OSインストール時パラメータ、OS設定
などを調べていくしかないです。。


サーバ構築から勉強ということであれば、
近くにサーバに詳しい人がいれば、聞くのも手かもしれません。

もし近くにいないのであれば、ネットに頼ることになるかとおもいます。
その際、「BaserCMSのインストール」記事として比較的多い。
UbuntuやCentOSでまずは環境を作成してみてはいかがでしょうか?

「MIRACLE LINUX」が悪いわけではないのですが、
ネット上の情報が少ない。
(メーリングリストや月額サポートに入るなどの手はあるのですが、ハードルが高いかと)

UbuntuやCentOSなどで、まずは環境作成を成功させて。
では、「MIRACLE LINUX」との違いはどこにあったのかを比較する方が近道かと
思われます。

もう少し環境周りを勉強してみます。
ありがとうございました。