インストール後のファイルの所有者と文字化けについて(初心者です)
takemura > インストール後のファイルの所有者と文字化けについて(初心者です) @ 2014/12/18 11:17 |
---|
職場のWebサーバ内の一部を借りてインストールしています。
サーバのOSはFreeBSD8.3 EUC環境です。 Userというアカウントでインストールしパーミッションの権限も 変更し、インストール後確認すると webroot/img/admin の所有者が www となっています。 他にも tmp/cash tmp/logs など多数フォルダの所有者が 変更になってしまうのは仕様として正しいのでしょうか? また文字化けも発生しており baserCMSのFAQのページ'(http://basercms.net/faq/index#question20) の文字化け対策として app/config/bootstrap.php に ini_set('mbstring.internal_encoding', 'UTF-8'); の1文を追加します。 というのをやりましたが改善されません。 DBを使用出来ない環境のためSQLiteを使用していますが 環境を確認すると iso8859 となっておりこのため文字化けが 発生するのでしょうか? 変更する方法がありましたら教えてください。 よろしくお願いします。 SQLite SQLite support enabled PECL Module version 2.0-dev $Id$ SQLite Library 2.8.17 SQLite Encoding iso8859 baserCMS環境 データベース: SQLite baserCMSバージョン: 3.0.6.1 CakePHPバージョン: 2.5.3 |
n1215 > Re: インストール後のファイルの所有者と文字化けについて(初心者です) @ 2014/12/18 20:08 |
---|
takemura 様
まずファイルの所有権に関してお答えします。
baserCMSのインストール処理においては、 ディレクトリのパーミッションを777などPHPの実行ユーザが書き込み可能なようにに変更する(chmod)はあっても、 所有者やグループ自体を変更するような処理(chown)はないと記憶しています。 「所有者が変更になってしまう」と主張されていますが、それらのディレクトリはインストール時に生成されたものではないでしょうか? baserCMSのファイルをダウンロードした直後は app/tmpディレクトリにはサブディレクトリは存在しませんし、 app/webroot/img/adminディレクトリもないはずです。 https://github.com/baserproject/basercms/tree/dev-3/app/tmp https://github.com/baserproject/basercms/tree/dev-3/app/webroot/img PHPの実行によってディレクトリが作られた場合、PHPの実行ユーザがそのディレクトリの所有者になるのがごく自然な挙動です。 おそらくApacheのPHPモジュールの形式でPHPが実行されており、 Apacheの実行ユーザ=PHPの実行ユーザが「www」となっているのではないかと推測します。 ※ 環境によって利用するWebサーバ、実行ユーザの設定やユーザアカウントとパーミッションの運用ポリシーは異なるので、 詳細はサーバ管理者の方に確認していただきたいところです。 Twitter: @n_1215 |
n1215 > Re: インストール後のファイルの所有者と文字化けについて(初心者です) @ 2014/12/18 20:50 |
---|
takemura 様
次にSQLiteについてですが、baserCMSが公式にサポートしているのはSQLite3のみです。 http://basercms.net/about/system (そもそもbaserCMS3系が利用するCakePHP2がSQLite2をサポートしていません) SQLite2をお使いのようなので、EncodingをLatin-1からUTF-8に変えれば正常に動く可能性もないことはないと思いますが、 できればPHPでSQLite3が利用できるようにしていただくのが一番良いです。 Twitter: @n_1215 |
takemura > Re: インストール後のファイルの所有者と文字化けについて(初心者です) @ 2014/12/19 9:38 |
---|
ご回答いただきありがとうございます。
初心者で申し訳ありません。 システム環境を再度確認致しました。 SQLについての標記の下に以下のようにsqlite3と表示がありましたので SQLite3環境と勘違いしておりました。 これはバージョン2だけど3の環境もいけるよという意味なのでしょうか? すみませんが、どうぞよろしくお願いします。 SQLite SQLite support enabled PECL Module version 2.0-dev $Id$ SQLite Library 2.8.17 SQLite Encoding iso8859 Directive Local Value Master Value sqlite.assoc_case 0 0 sqlite3 SQLite3 support enabled SQLite3 module version 0.7-dev SQLite Library 3.7.7.1 Directive Local Value Master Value sqlite3.extension_dir no value no value |
n1215 > Re: インストール後のファイルの所有者と文字化けについて(初心者です) @ 2014/12/19 12:09 |
---|
takemura 様
そちらの環境では、SQLite2とSQLite3のPHPエクステンションが両方有効になっているということです。 この2つは互いに影響を与えない独立したモジュールであると考えていただいたほうがわかりやすいでしょう。 SQLite3が有効ならばそちらが使われていると思いたいのですが、 まずbaserCMSからSQLite3を利用できているかどうかをはっきりさせましょう。 問題は実行時にどちらのバージョンのSQLiteが利用されているのかということです。 SQLite2とSQLite3では保存されるファイルの形式が異なります。 app/db/sqlite/basercms.dbがSQLite3の形式であるかどうかご確認ください。 このファイルをテキストエディタで開けば最初の行にSQLiteデータベースフォーマットのバージョンが記述されているはずです。 P.S. そういえば環境に明記されていませんが、PHPのバージョンはいくつでしょう? 【参考】 CakePHP2/baserCMS3はSQLite, MySQL, PostgreSQLなど複数の種類のデータベースを同様の作法で扱うために、 各DB用のエクステンションで提供されるドライバをPDO(PHP Data Object)という層を通じて間接的に利用します。 PHP -----> PDO ------> SQLite2 SQLite3 MySQL PostgreSQL etc. SQLite3エクステンションが有効な環境でPDOでSQLite2を利用する設定をしたことがないので間違っていたら恐縮ですが PDOからどのSQLiteドライバが利用されるかというのは恐らくPDOエクステンションの設定にも関わっているはずです。 * PHP PDOエクステンションが有効になっているか? * pdo_sqliteが3系で有効になっているか? (PDO Driver for SQLite3) 念のため確認しておくといいかもしれません。 Twitter: @n_1215 |
takemura > Re: インストール後のファイルの所有者と文字化けについて(初心者です) @ 2014/12/25 11:50 |
---|
返信いただきありがとうございます。
「SQLite format 3」の表記がありました。 これはSQLite 3で稼動という認識でよろしいのでしょうか? すみません。書き忘れていました。PHPのバージョンは以下になります。 PHP Version 5.3.15 PDOについてですが、環境設定を確認したところ以下の表記でした。 BaserCMSの環境にあっていますでしょうか? PDO PDO support enabled PDO drivers sqlite, sqlite2 pdo_sqlite PDO Driver for SQLite 3.x enabled SQLite Library 3.7.7.1 どうぞ、よろしくお願いします。 |
n1215 > Re: インストール後のファイルの所有者と文字化けについて(初心者です) @ 2014/12/26 19:15 |
---|
PDOでSQLite3は利用できているようですね。
SQLite3のデータベースは標準でUTF-8のはずなので問題ないはずです。 文字化けの症状とPHPの設定を確認しましょう。 ●文字化けの具体的な症状 どのURLでどんな操作をするとどんな文字化けが起こるのか出来るだけ詳しく教えてください。 ●PHPの設定値 以下に文字化けに関係のありそうな設定を列挙するので、値がどうなっているか調べていただけますか? default_charset output_buffering output_handler mbstring.language mbstring.detect_order mbstring.http_input mbstring.http_output mbstring.internal_encoding mbstring.script_encoding mbstring.substitute_character mbstring.func_overload mbstring.encoding_translation mbstring.strict_detection 参考:mbstring(マルチバイト文字列)の設定 http://php.net/manual/ja/mbstring.configuration.php Twitter: @n_1215 |
takemura > Re: インストール後のファイルの所有者と文字化けについて(初心者です) @ 2015/1/6 10:55 |
---|
返信頂きありがとうございます。
環境を確認しました。 以下になります。 文字化けですが、インストール後はすべてのページの 日本語が表示されていますが、例えば 固定ページ管理から採用情報を編集を 選択し、内容を何を変更しないで保存前確認を行うと文字化けしています。 そのまま保存しても同じ状況です。 どのページでも同じ状況で、編集ではなく新規でも同等です。 文字化けした画面を添付します。 どうぞ、よろしくお願いします。 Local Value Master Value default_charset no value no value output_buffering 4096 4096 output_handler no value no value mbstring.language Japanese Japanese mbstring.detect_order auto auto mbstring.http_input auto auto mbstring.http_output pass pass mbstring.internal_encoding UTF-8 EUC-JP mbstring.script_encoding UTF-8 no value mbstring.substitute_character none no value mbstring.func_overload 1 1 mbstring.encoding_translation On On mbstring.strict_detection Off Off |
n1215 > Re: インストール後のファイルの所有者と文字化けについて(初心者です) @ 2015/1/6 11:50 |
---|
takemura 様
CSVからの初期データの読み込みは正常で、ブラウザを通じた投稿が文字化けするということですね。 HTTP入力の自動変換が怪しいと思います。 そちらの環境ではユーザーごとのphp.iniや.htaccessで設定変更できたりするんですかね? 変更できるならそちらで設定していただいたほうが他のソフトでも不具合が少なくなるのではないかと思いますが、 baserCMSしか使わない予定or設定方法が把握できないならbaserCMSのよくある質問の対策と同様にapp/config/bootstrap.phpに設定してもらって構いません。 下記を追加後、環境情報のLocal Valueに反映されるかどうか確認した上で、症状を再度確認しててください。 ini_set('default_charset', 'UTF-8'); ini_set('mbstring.http_input', 'pass'); Twitter: @n_1215 |