フレンドリURLが上手く動作してくれません  【解決済み】

質問全般・改善要望
返信する
wizard
メンバー
メンバー
記事: 4
登録日時: 2013年10月10日(木) 19:45

フレンドリURLが上手く動作してくれません  【解決済み】

投稿記事 by wizard »

-----
問題が発生しているサーバ:
MODXのバージョン:1.02J
PHPのバージョン: 5.3.10
MySQLのバージョン:5.5.22
Apache:2.2.22
OS: ubuntsu 12.04
-----
上記の環境で利用していますが、他のサーバで正常動作していた
サイトを上記の環境にコピーしてきたところ、フレンドリURLが機能しません。
(正常動作していた環境は、
MODx: 1.0.2J
php: 5.3.4
MySQL: 5.1.53
apache: 2.2.17
OS: RedHat
・・・です。)

フレンドリURLの動作についてですが、ブラウザ側へは「フレンドリURL」の
形式で渡されていますが、サーバ側では「実体」を渡せていない(キャッシュが
正しく作られていない?)ようで、内部的には404になっているという現象です。
(ブラウザ側では、MODxの挙動に助けられてトップページが表示されています。)
因みに、同じサーバ上でMODx Evo.の最新バージョンをインストールしてデモサイト
を見てみると、正しくフレンドリURLが動作しているので、apacheや.htaccessの
設定の問題では無いと認識しています。
また、managerでのコンテンツの読み出しや保存も正常に動いていますし、
フレンドリURLをオフにすると表示も正常になります。

となると・・・MySQLやApacheのバージョンの差よりもphpの違いかと
も疑っているのですが・・・どなたか他にチェックポイントをご助言頂けると
助かります。

(フレンドリURLを前提に作り込んだパーツが色々あり、オフに出来ないのです。
また、元のMODxが古く、最新バージョンとはテーブル構造が異なるため、
簡単にアップグレードというわけにも行かず・・・途方に暮れています。)

よろしくお願い致します。m(_ _)m
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: フレンドリURLが上手く動作してくれません

投稿記事 by yama »

https://github.com/modxcms-jp/evolution ... 0c8c90e364
フレンドリーURLの処理は1.0.5Jの頃から副作用が発生しにくいシンプルな方法に変更されています。古いバージョンはサポートが難しいので、できれば最新版にアップデートすることをおすすめします。データベース構造は1.0.0以降から互換性を保っているので問題は起きないと思います。

http://modx.jp/docs/update.html
上記を読んでいただければ、何かあった時に完全に元の状態に戻すことは可能だと思います。
wizard
メンバー
メンバー
記事: 4
登録日時: 2013年10月10日(木) 19:45

Re: フレンドリURLが上手く動作してくれません

投稿記事 by wizard »

yamaさん

ご助言、有り難うございました。

実は、私も最初にやったことは、新規にインストールした1.0.10Jに対して、
1.0.2のmanagerでダンプしたテーブルデータを読み込ませてみたのですが、
途中で続々とエラーが表示されたため、断念しました。
(「これはテーブル構造が違うのか?」と・・・)

そして次に、「考えてみれば、アップデートのプロセスの中で
テーブル構造を補正してくれるのでは?」とも妄想し、ご紹介頂いた
手順で、動作している1.0.2のサイトを普通に1.0.10でアップデートしようと
したのですが、今度はインストール画面からしてエラーになるという状況
(managerディレクトリを上書きした段階で通常のURLではエラーになる
ということは手引きに書いてあったので承知していましたが、インストール画面
からしてエラーになってしまっては先へ進めず・・・)のため、アップデートは
諦めていたところでした。

が、今回ご助言に気を取り直しつつも、ふと考えて1.0.6Jを落としてきて
それでアップデートを試みたら・・・あっさりとアップデートは完了、
フレンドリURLの問題もご助言通りこれまでの試行錯誤が嘘のように
解決しました。

(とはいえ・・・ブレッドクラムの仕様も変わったようで、旧版とは異なる
位置に表示されてしまっていますが、これはシコシコ直せると思います。)

ということで、大変助かりました。
ようやく眠れます(笑)

今後ともよろしくお願い致します。
m(_ _)m m(_ _)m
:P
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: フレンドリURLが上手く動作してくれません

投稿記事 by yama »

https://www.google.co.jp/search?q=mysql+type+engine
ダンプしたデータを読み込めなかったのは、おそらく上記の件だと思います。MySQL5.5の前後でMySQL自体が仕様が変わっているので、新しい環境でデータの読み込みをしようとした場合はうまくいかないと思います。ここでつまずく人は多い気がするので、ドキュメントへの追記を工夫してみたいと思います。
wizard さんが書きました: 動作している1.0.2のサイトを普通に1.0.10でアップデートしようと
したのですが、今度はインストール画面からしてエラーになるという状況
上記の件が少し気になります。何か覚えていることがありましたら、教えていただければ今後の改善の参考にしたいです。

http://forum.modx.jp/viewtopic.php?f=19&t=1016
1.0.6Jをインストールした場合は、上記の対策を行なっておくと安心だと思います。(パッチツールの適用が簡単・安全なので推奨)
wizard
メンバー
メンバー
記事: 4
登録日時: 2013年10月10日(木) 19:45

Re: フレンドリURLが上手く動作してくれません

投稿記事 by wizard »

yamaさん

おはようございます。
昨夜はサポート頂き、大変有り難うございました。

さて、「その後」なのですが、アップデート後、動作はしっかりと動作していたのですが、
一部コンテンツの管理をしようとしてmanager画面を出して見ると・・・なんとチャンクの
管理タブがエラーとなり、既存のチャンクが取り出せていません。
で、色々調べると、1.06ではチャンクの格納先であるsite_htmlsnippetsのテーブルに
publishedやpub_date等のカラムが追加になっていることが判りました。 :?
で、デモサイトのmanagerで見てみると、チャンクにも「公開設定」の機能が・・・。
しかし、移行元の1.02のmanagerでは、チャンクには「公開設定」のタブが無い・・・。
ということで、やはりテーブル構造の違いが有ることが判りました。
なので、これからシコシコと不足しているカラムを付け足す作業を行って実験してみる
ことにしました。 :roll:

因みに、この移行の実験は、移行元のサイトはそのまま運用し、そのコピーとしての
ミニWebサーバをVMwareを使ってスタンドアロンPC上に構築し、ネット接続できない
環境でもコンテンツを見られるようにする・・・格好良く言えば「MODx Anywhere」の
ようなものを作るためです。
なので、厳密に言えばmanagerを使う機会は殆ど無いはずなのですが、「実験用」としての
使い方も有るためmanagerが使えるにこしたことは無いので、しつこくトライしてみます。

また、最新版へのアップデートも、仮想マシンのマスタを保存しているので何度でも
トライできますので、テーブル修正実験後にまたトライして状況等ご報告してみたいと
思います。

本当に色々とありがとうございます。
アバター
yama
管理人
記事: 3251
登録日時: 2009年7月29日(水) 02:50

Re: フレンドリURLが上手く動作してくれません

投稿記事 by yama »

https://github.com/modxcms-jp/evolution ... values.sql
https://github.com/modxcms-jp/evolution ... grades.php
1.0.2J以降では上記のようなDB構造の違いがありますが、互換性は保持しているので、違い自体が問題を起こすことはないと思います。今回はアップデータに問題があって、データベースのアップデートがされなかったのだと思います。

http://forum.modx.jp/viewtopic.php?p=6920#p6920
もしよければ製作中の上記パッケージをお試しいただければ、問題点はすぐ修正できると思います。
wizard
メンバー
メンバー
記事: 4
登録日時: 2013年10月10日(木) 19:45

Re: フレンドリURLが上手く動作してくれません

投稿記事 by wizard »

yamaさん

お世話様です。

ご連絡頂いたベータビルドを先ほど試しました。
・・・・大成功です!!!!
必要となるであろうmanagerの機能の全てが正常に動作しました。
:D :roll: :mrgreen: :lol: :P :D :D

ということで、これで完結・・・となるかと思いますが、また何か
ありましたら色々とお世話になってしまうかと思いますので・・・
今後ともよろしくお願い致します。
(図々しくお世話になりっぱなしで恐縮です)
m(_ _)m
:lol:
返信する