■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。
このフォーラムは閲覧専用のアーカイブです。

サーバ環境について

grache > サーバ環境について @ 2013/5/20 13:34
初めて投稿させていただきます。

当方WEBデザイナーとしで仕事をしており、CMSの知識は乏しかったのですが
こちらのフォーラムなどを参考にしてheteml上のテスト環境では
無事に構築することができました。

その後、本環境にてデフォルト状態のもので動作確認をしている段階なんですが
・日本語投稿すると文字がばける
・スマートURLを設定すると表示が崩れる(スマートURLは手動で設定)
・スマートURLを設定するとTOPページ以外は404 Not Foundで表示しない
・スマートURLを設定後に/testcms/index.php/admin/site_configs/formを直接たたくと表示くずれで表示

といった症状で困っている次第です。
取り敢えず現在はスマートURLをOFFに戻しています。

baserCMS内の記述で調整できるのか
サーバ側の設定値を変更しなければならないのかも含めて
ご教授いただければ幸いです。


↓お客さんの本環境でサブフォルダ内にインストールした現在の状況
■ スマートURL: OFF
■ 設置フォルダ: /testcms/
■ セーフモード:Off
■ データベース: SQLite3
■ BaserCMSバージョン: 1.6.15
■ CakePHPバージョン: CakePHP 1.2.10
■ PHPスキル(自己評価): [全くわからない ]

独自サーバの情報
■ OSの種類:Red Hat Enterprise Linux Server release 5.5
■ PHPのバージョン:5.1.6


grache > Re: サーバ環境について @ 2013/5/20 13:36
スマートURLを手動で設定した際の画面です。

grache > Re: サーバ環境について @ 2013/5/20 13:38
スマートURLを手動で設定した際のソースです。

goichi > Re: サーバ環境について @ 2013/5/20 14:16
こんにちは(^^
お役に立てないかもしれませんが、気になったので回答してみます。

システム要件にある、
Rewriteモジュールはサーバーに入っていますか?
システム要件のページにあるとおり、無いとURLの形に影響(スマートURLが使えない)します。

一度、お確かめ下さい。
grache > Re: サーバ環境について @ 2013/5/20 14:32
goichi 様

返信いただきありがとうございます。
サーバーやプログラムの基本知識がないので間違っていたら申し訳ありません。

本環境にインストールした際のbaserCMSの環境情報で見た際に
該当部分(Rewrite)があったんですが、このことで良かったですかね?

キャプチャーを貼っておきます。

goichi > Re: サーバ環境について @ 2013/5/20 15:17
rewriteモジュールは入っていると思います。
あとは、うまく動作しているのかどうかを確認してみると良いかもしれません。


引用:
日本語投稿すると文字がばける

については、インストール用にデータベースを作成した際、
文字コードの紹介順序が、unicode以外の言語になっているとか、
またはPHPの設定で内部エンコーディングが、UTF-8になっていないなどがあるかもしれません。

引用:
スマートURLを設定すると表示が崩れる(スマートURLは手動で設定)

ということですが、何かしらの理由でCSSが読み込めていないのでしょうね・・・。
そもそも、手動で設定をされた理由があったと思いますが、
どういった理由だったでしょうか?
もし、自動で設定できるのであれば、それを試してみると良いと思うのですが・・・。

CSSが読み込めているかどうかですが、
(先ほど、HTMLのソースのキャプチャを添付してもらっていますので、そのページで結構ですが、)
CSSの読み込みの部分のリンクをクリックしてみて
CSSファイルが開けるかどうか、確認できますか?
ブラウザがGoogleChromeなら、ソースからCSSのリンクをクリックできると思います。




grache > Re: サーバ環境について @ 2013/5/20 15:40
goichi 様

教えて頂いた方法で試したところ、うまく動作していないようでした。
(同様の方法でhetemlのテスト環境で試した際は外部リンクへ飛びました。)
この場合はサーバ管理をしている方に確認するしかないのでしょうか?

引用:
またはPHPの設定で内部エンコーディングが、UTF-8になっていないなどがあるかもしれません。

この場合はサーバ管理をしている方に確認するしかないのでしょうか?

引用:
そもそも、手動で設定をされた理由があったと思いますが、どういった理由だったでしょうか?

管理画面内でオンにしたところ表示が崩れてしまい、baserCMSのマニュアルに
インストール完了後、トップページや管理画面に移動すると「Internal Server Error 500」が発生してしまう。または、CSS が正常に読み込まれなくなり画面が崩れてしまう。
とあったので手動で設定する必要があるのかと解釈していました。

引用:
CSSファイルが開けるかどうか、確認できますか?。

表示が崩れた際に直接CSSを表示することができませんでした。


質問ばかりで大変恐縮です。
goichi > Re: サーバ環境について @ 2013/5/20 17:06
もし、サーバー管理者に問い合わせる事ができそうならば、それが早いかもしれません。
rewriteモジュールは入っているけど、.htaccessは使えないサーバーだった、と言うオチもありえますし・・・。

ここに同様な症状(baserCMSもver.1.6系)で、
細かくやり取りした記録が残っています。
この記録では、結局、サーバーが対応していないというオチでしたが、
今回はApacheっぽいので、.htaccessさえ使えるのならば、直るのではないかと思います。

今回はレンタルサーバーとかでなくて、
独自サーバーを立てている企業や団体の案件かなにかでしょうか?
だとしたら、サーバー保守の管理者に「.htaccessが動かないんだけど・・・」と聞けば
案外、簡単に解決するかも知れません。
独自でサーバーを入れているような企業や団体なら、
どこかの業者さんにサーバー保守を外注していると思います。



grache > Re: サーバ環境について @ 2013/5/20 17:55
goichi 様

分かり易くご説明いただきありがとうございます。

引用:
独自サーバーを立てている企業や団体の案件かなにかでしょうか?

まさしくその通りです。
直接やりとり出来れば良いんですが、担当課などを間に入れないとやりとり出来ない状況でした。
取り敢えず担当者経由でサーバ管理者に連絡入れてもらうようにしてみます。

あと今baserCMSの環境情報で確認したところmbstring部分が下記の状態でした。

mbstring.http_input auto
mbstring.http_output SJIS
mbstring.internal_encoding EUC-JP
goichi > Re: サーバ環境について @ 2013/5/20 22:33
引用:
mbstring.http_input auto
mbstring.http_output SJIS
mbstring.internal_encoding EUC-JP

ちょっと古いサイトを動かしている感じの設定のような気がします。
昔はHTMLをShift-JISで表示して、内部のプログラム部分をEUC-JPで書くことが多かったので、
それに合わせた設定なのだと思います。

もし、こちらの希望が叶うなら、
mbstring.internal_encodingは「UTF-8」が良いと思います。
http_inputとhttp_outputは「pass」とかで良さそうです。

データベースはSQLiteということなので、
たぶん、そちらは何もしなくても大丈夫っぽいです。

ただ、もしかしたら
同じサーバーの同じ設定で他のサイトを動かしているパターンもありますので、
設定を全部変えてくれといっても、なかなか上手くいかないかもしれません。

ですが、その場合でも上述のmb_string関係は、
今問題になっている「.htaccess」で設定すれば、
一部のフォルダだけに変更を設定できたと思いますので、
とにかく、まずは「.htaccessを動かしたい」という事で前に進められればと思います。

もし、幸いにサーバー管理者さんと直接やりとりが出来そうなら、
mb_stringの事も聞いてみると良いかもしれません。



grache > Re: サーバ環境について @ 2013/5/21 0:53
goichi 様

現在の状態は結構前の仕様なんですね。
詳しく教えていただき、大変助かります。

取り敢えず、先方の担当者さんに
.htaccessとUTF-8が使えないか問い合わせしてみました。

また、進展がありましたら、結果も含めて投稿させて頂きます。
grache > Re: サーバ環境について @ 2013/5/22 18:55
先方から.htaccessは使用できますとの回答があり
.htaccessがルートになかったので設置して試していたら動作確認できました。

その後、サブフォルダに設置したbaserCMSの階層の.htaccessに
スマートURLの設定と文字エンコーディングの設定を記載したら
表示を無事確認することができました。

しかし、無事アクセスできたと思ったら、表示が崩れてしまう時があり、
表示が崩れている時は.htaccessが動いてませんでした。

ルートに設置した.htaccessに404エラー時にTOPページに変移するように記載しており、
表示が正常な時 → 404エラーでTOPに正常に変移
表示が崩れる時 → 404エラーで無反応

.htaccessがの動作が不安定な印象を受けるのですが
サーバ側の問題なのか、記述内容で回避できるのか
または他の不可視ファイルが影響してしまっているのか
もし可能性として考えれる事象がありましたらアドバイス頂ければ幸いです。

画像は本環境の不可視ファイルのキャプチャーです。

goichi > Re: サーバ環境について @ 2013/5/22 21:46
.htaccessの動きが不安定になるというのは、私も聞いたことがありません。。。
とはいえ、すくなくとも動く時があるという事ですので、
きっと、動くのだと思います。

うまく動作しない場合ですが、何か規則性のような者はありませんか?
例えば、管理画面にログインしている時は、フロント側が見れるけれど
ログアウトしてみると、表示が崩れる、とか
ある特定の動き(どこかのページのリンクをクリックする等)で崩れるとか・・・。
何かそういったものが分かれば、少し対応の仕方が分かるかもしれません。

あと、キャッシュファイルや一時ファイルを全部消してみても良いかもしれません。
(一応、バックアップ取って下さい)
以下の場所にサイバーキャッシュを含めた一時ファイルが入っています。

/app/tmp/

1.6.0以上のバージョンならば、tmpフォルダの下にあるフォルダを全部消しても大丈夫だと思います。
(tmpフォルダ自体は残して、中身を空に)

もしも、エラーが出ていた時のキャッシュなどの問題ならば、
上の作業と、ブラウザのキャッシュを消せば、上手く動くと思います。

何はともあれ、あと少しで動きそうですね(^^

grache > Re: サーバ環境について @ 2013/5/22 22:36
goichi 様

いろいろ動作を試してはいるのですがコレといったタイミングの特定が難しい状況です。
正常な表示を確認できて、例えば30分後とかに再度同じページでリロードすると崩れてしまいます。
ファイルや編集とはせずにまた暫くしてアクセスすると正常になるといった具合です。
一度崩れた時点ではソース上のCSSファイルなどにもアクセスできません。

引用:
あと、キャッシュファイルや一時ファイルを全部消してみても良いかもしれません。

ブラウザは崩れた際にその都度キャッシュをクリアにしています。
/app/tmp/の該当ファイルを削除してから正常に表示していたかと思ったら
数分後には崩れてたりします。

正常に動いている時があるだけに、たまに動かないのが不安ですね。。。
goichi > Re: サーバ環境について @ 2013/5/23 10:34
引用:
正常に動いている時があるだけに、たまに動かないのが不安ですね。。。

うーん、不安ですね・・・。

書ける範囲で結構なのですが、
いま現在の「.htaccess」の設置場所と、それぞれの記述内容を、
ここに書くことは出来ますか?

もしかしたら、もっと詳しい方が助けてくれるかも知れません。
雑談広場の方にもヘルプを出しておきます。。。
grache > Re: サーバ環境について @ 2013/5/23 10:52
goichi 様

いろいろとありがとうございます。

現在、本環境での動作テストのため
/testcms のサブディレクトリでチェックしている最中です。

/に設置の「.htaccess」(「.htaccess」が動いているかの確認のため)

ErrorDocument 404 http://www.aaa.bbb.ccc.jp/


/testcmsに設置の「.htaccess」
php_flag output_buffering Off
php_value output_handler none
php_value default_charset UTF-8
php_value mbstring.language Japanese
php_flag mbstring.encoding_translation Off
php_value mbstring.http_input pass
php_value mbstring.http_output pass
php_value mbstring.internal_encoding UTF-8
php_value mbstring.detect_order none
php_value mbstring.substitute_character none

RewriteEngine on
RewriteBase /testcms
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]

#
# /.htaccess
#
# 【スマートURLについて】
# 短くスマートなURLを実現する為には、ApacheのRewriteモジュールが必要です。
# スマートURLの設定は、管理画面のシステム設定より行えます。
# (例)
# スマートURLオフ:http://localhost/index.php/contact/index
# スマートURLオン:http://localhost/contact/index
#
# 【スマートURLの設定に失敗した場合】
# /.htaccess と /app/webroot/.htaccess に記述されている
# RewriteBase 設定をサーバー環境に合わせて調整してください。
# マルチドメインの場合は、マルチドメインの設定フォルダを設定値に
# 付け加えるうまくいく事が多いようです。
#
# (例)マルチドメインのフォルダが「test」の場合
# RewriteBase /test
#
# 【スマートURLを手動でオンにする】
# ■ /.htaccess と /app/webroot/.htaccess にRewrite設定を記述する必要があります。
# /.htaccess では次の4行を記述します。
# RewriteEngine on
# RewriteBase /
# RewriteRule ^$ app/webroot/ [L]
# RewriteRule (.*) app/webroot/$1 [L]
# ■ /app/config/install.php に次の行を追加します。
# Configure::write('App.baseUrl', '');
#
# 【スマートURLを手動でオフにする】
# ■ /.htaccess と、/app/webroot/.htaccess 内の、次の行で始まる行を全て削除します。
# RewriteEngine / RewriteBase / RewriteCond / RewriteRule
# ■ /app/config/install.php の次の行を削除します。
# Configure::write('App.baseUrl', '');
#
# 【動作確認済レンタルサーバー】
# http://basercms.net/manuals/introductions/2.html
#

/testcms/app/webrootに設置の「.htaccess」
RewriteEngine on
RewriteBase /testcms/app/webroot
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

#
# /app/webroot/.htaccess
#
# 【スマートURLについて】
# 短くスマートなURLを実現する為には、ApacheのRewriteモジュールが必要です。
# スマートURLの設定は、管理画面のシステム設定より行えます。
# (例)
# スマートURLオフ:http://localhost/index.php/contact/index
# スマートURLオン:http://localhost/contact/index
#
# 【スマートURLの設定に失敗した場合】
# /.htaccess と /app/webroot/.htaccess に記述されている
# RewriteBase 設定をサーバー環境に合わせて調整してください。
# マルチドメインの場合は、マルチドメインの設定フォルダを設定値に
# 付け加えるうまくいく事が多いようです。
#
# (例)マルチドメインのフォルダが「test」の場合
# RewriteBase /test/app/webroot
#
# 【スマートURLを手動でオンにする】
# ■ /.htaccess と /app/webroot/.htaccess にRewrite設定を記述する必要があります。
# /app/webroot/.htaccess には次の5行を記述します。
# RewriteEngine on
# RewriteBase /app/webroot
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
# ■ /app/config/install.php に次の行を追加します。
# Configure::write('App.baseUrl', '');
#
# 【スマートURLを手動でオフにする】
# ■ /.htaccess と、/app/webroot/.htaccess 内の、次の行で始まる行を全て削除します。
# RewriteEngine / RewriteBase / RewriteCond / RewriteRule
# ■ /app/config/install.php の次の行を削除します。
# Configure::write('App.baseUrl', '');
#
# 【動作確認済レンタルサーバー】
# http://basercms.net/manuals/introductions/2.html
#

現在、把握している症状としては、
・baserCMSが正常に表示している時は、サーバ直下の「.htaccess」で404時に正常にリダイレクト
・baserCMSが崩れてに表示している時は、サーバ直下の「.htaccess」で404時に無反応
・現在、先方の環境にあるディレクトリで「.htaccess」でBasic認証がかかっている箇所があり、
 同様に「.htaccess」が効いている時と効いていない時があります。
ryuring > Re: サーバ環境について @ 2013/5/23 11:12
こんにちは。横槍失礼します。

次のページの「ドキュメントルートに通常どおり、htmlファイルなどを配置したい場合」を参考に、
フォルダ構成を変更してみてはいかがでしょうか?
http://basercms.net/manuals/2/base/1.html

通常構成の場合、ご存知のとおり、2つの.htaccess を読み込む事になります。
フォルダ構成を変更した場合、設置フォルダ直下の.htaccessだけを読む事となりますので、
原因の特定がしやすくなるかもしれません。

Twitter:@ryuring
baserCMS総合サービスサイト ビーコミ

goichi > Re: サーバ環境について @ 2013/5/23 12:58
どうもです(^^
ryuringさんの方法で確認するのが、早いかもしれません。
あと、雑談広場で情報もらえたのですが、
ブラウザによって、.htaccessの動きをキャッシュするものがあるようです。
(↑普通のブラウザキャッシュ削除では消えない)
いまもしchromeをお使いなら、シークレット・ウィンドウでサイトをみてみると、
キャッシュが残らないので、良いかもしれないという事でした。

参考までに投稿しておきます。m(__)m
grache > Re: サーバ環境について @ 2013/5/23 18:55
ryuring 様

アドバイスありがとうございます。

教えていただきましたドキュメントルートを変更し
設置フォルダ直下の「.htaccess」も下記にように変更しました。

RewriteEngine on
RewriteBase /testcms/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]


今のところ表示の崩れは起きてません。

また、サーバのルート直下の「.htaccess」のリダイレクトも有効になっています。
表示が崩れた際はサーバのルート直下の「.htaccess」も無反応でした。

現状としては、自分がサーバの知識が乏しいのと、お客様が独自サーバの為、
もしかしたら筋違いなのかもしれませんが、
一応「.htaccess」の動きが不安定な件を先方に連絡した状況です。
grache > Re: サーバ環境について @ 2013/5/23 19:00
goichi 様

ありがとうございます。

引用:
ブラウザによって、.htaccessの動きをキャッシュするものがあるようです。


そのような事例もあるんですね。初めて知りました!

一応、崩れた際はchromeのシークレット・ウィンドウや
その他、Safari、Firefoxで新規で開いて試しはおりましたが同様の症状でした。