インストール後のファイルの所有者と文字化けについて(初心者です)

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 様

まずファイルの所有権に関してお答えします。

webroot/img/admin の所有者が www となっています。
他にも tmp/cash tmp/logs など多数フォルダの所有者が
変更になってしまうのは仕様として正しいのでしょうか?


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

ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
6 人のユーザが現在オンラインです。 (6 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 6