コンフィグ変数(MODX_BASE_PATH、MODX_MANAGER_PATH)の変更方法

質問全般・改善要望
返信する
HAMAH
メンバー
メンバー
記事: 8
登録日時: 2016年6月06日(月) 18:23

コンフィグ変数(MODX_BASE_PATH、MODX_MANAGER_PATH)の変更方法

投稿記事 by HAMAH »

はじめまして。いろいろ調べましたが見当たりませんでしたので、ここでお尋ねします。

MODX evolution 1.0.15J を「/web/hogehoge/modx」ディレクトリにインストールしたのですが、「modxの管理画面->レポート->システム情報」の「MODX_BASE_PATH」の値が「/home/(中略)/hogehoge/modx」になっており、そのことに起因するエラーが出ている状況です。また、「MODX_MANAGER_PATH」の値についても同様の事態となっています。

「MODX_BASE_PATH」と「MODX_MANAGER_PATH」の値を、MODXがインストールされているディレクトリへのパスに変更したいのですが、そのための方法が分かりません。管理画面上からでは変更できないようですし、データベースもひととおり目を通しましたが、それらしきレコードはありません。どなたか変更方法を、それ以前にそもそも変更できるのかどうかをご存知でしたら、返信頂ければと思います。

以上、よろしくお願いいたします。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

コンフィグ変数(MODX_BASE_PATH、MODX_MANAGER_PATH)の変更方法

投稿記事 by yama »

コード: 全て選択

define('MODX_BASE_PATH', '/dir/path/');
define('MODX_CORE_PATH', '/dir/path/manager/includes/');
autoload.phpという名前のファイルを作って上記のように書き、MODXのインストールディレクトリに置いてみてください。
サーバの設定に問題があるような気がしますが、どのようなエラーが出ますか?PHPが検出する正しいパスが自動的にセットされるはずなので、他にも問題が発生するかもしれません。
HAMAH
メンバー
メンバー
記事: 8
登録日時: 2016年6月06日(月) 18:23

コンフィグ変数(MODX_BASE_PATH、MODX_MANAGER_PATH)の変更方法

投稿記事 by HAMAH »

yama 様
ご返信ありがとうございます。


早速試したところ、まずサイトのトップページ上部にて以下のエラーメッセージが出ました。
---
Warning: Cannot modify header information - headers already sent by (output started at /home/(中略)/hogehoge/modx/autoload.php:2) in /home/(中略)/hogehoge/modx/manager/includes/initialize.functions.inc on line 38

Warning: Cannot modify header information - headers already sent by (output started at /home/(中略)/hogehoge/modx/autoload.php:2) in /home/(中略)/hogehoge/modx/manager/includes/initialize.functions.inc on line 39
---


また、管理画面へのログインページ(http://hogehoge.jp/manager/)にて、以下のエラーメッセージと文字化けがありました。
---
Warning: Cannot modify header information - headers already sent by (output started at /home/(中略)/hogehoge/modx/autoload.php:2) in /home/(中略)/hogehoge/modx/manager/includes/initialize.functions.inc on line 48

Warning: Cannot modify header information - headers already sent by (output started at /home/(中略)/hogehoge/modx/autoload.php:2) in /home/(中略)/hogehoge/modx/manager/includes/initialize.functions.inc on line 49

Warning: Cannot modify header information - headers already sent by (output started at /home/(中略)/hogehoge/modx/autoload.php:2) in /home/(中略)/hogehoge/modx/manager/includes/initialize.functions.inc on line 50

Warning: Cannot modify header information - headers already sent by (output started at /home/(中略)/hogehoge/modx/autoload.php:2) in /home/(中略)/hogehoge/modx/manager/includes/initialize.functions.inc on line 51

Warning: Cannot modify header information - headers already sent by (output started at /home/(中略)/hogehoge/modx/autoload.php:2) in /home/(中略)/hogehoge/modx/manager/includes/initialize.functions.inc on line 52

Warning: Cannot modify header information - headers already sent by (output started at /home/(中略)/hogehoge/modx/autoload.php:2) in /home/(中略)/hogehoge/modx/manager/includes/initialize.functions.inc on line 53

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/(中略)/hogehoge/modx/autoload.php:2) in /home/(中略)/hogehoge/modx/manager/includes/initialize.functions.inc on line 11

Warning: Cannot modify header information - headers already sent by (output started at /home/(中略)/hogehoge/modx/autoload.php:2) in /home/(中略)/hogehoge/modx/manager/includes/initialize.functions.inc on line 24
---

※中略部はすべて同じ(最初の投稿に記載の(中略)とも同じ)
一応念の為に書いておくと、中略部は「sites/heteml/users/h/o/g/hogehoge/web」というようなものになっています。レンタルサーバーはヘテムルを使用しています。


エラーメッセージにあった/manager/includes/initialize.functions.incを確認しましたが、どうやらheader関数でエラーが出ているようです。


以上、よろしくお願いいたします。
アバター
yama
管理人
記事: 3236
登録日時: 2009年7月29日(水) 02:50

コンフィグ変数(MODX_BASE_PATH、MODX_MANAGER_PATH)の変更方法

投稿記事 by yama »

autoload.phpに文法エラーがあるように思います。2行しかないので、全角文字の混入などの単純な問題のような気がします。
ブラウザでautoload.phpにアクセスすると、どのようなエラーが表示されますか?
HAMAH
メンバー
メンバー
記事: 8
登録日時: 2016年6月06日(月) 18:23

コンフィグ変数(MODX_BASE_PATH、MODX_MANAGER_PATH)の変更方法

投稿記事 by HAMAH »

yama 様


最初の返信にあったコードをコピペしただけなので、全角文字の混入は無いと思います。確認しても、やはり問題は無いようです。

autoload.phpにアクセスすると、エラーは出ずに例の2行のコードがそのままテキストで表示されるだけです。

autoload.phpを、MODXがインストールされているディレクトリ(本件の場合、/web/hogehoge/modx、つまりassetsディレクトリやmanagerディレクトリと同階層の場所)に置くのですよね?
それとも、MODXがインストールされているディレクトリのinstallディレクトリ(本件の場合、/web/hogehoge/modx/install)に置くのでしょうか?
ずっと前者でやっていたのですが…

お手数おかけしますが、よろしくお願いいたします。
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

コンフィグ変数(MODX_BASE_PATH、MODX_MANAGER_PATH)の変更方法

投稿記事 by kazuike »

横からすみません。
autoload.phpの中にPHPの開始~終了が抜けているということではないですか?
違ってたらすみません。

コード: 全て選択

<?php
define('MODX_BASE_PATH', '/dir/path/');
define('MODX_CORE_PATH', '/dir/path/manager/includes/');
?>
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

コンフィグ変数(MODX_BASE_PATH、MODX_MANAGER_PATH)の変更方法

投稿記事 by kazuike »

せっかくなので、本題の方ですが…
HAMAH さんが書きました: MODX evolution 1.0.15J を「/web/hogehoge/modx」ディレクトリにインストールしたのですが、「modxの管理画面->レポート->システム情報」の「MODX_BASE_PATH」の値が「/home/(中略)/hogehoge/modx」になっており、そのことに起因するエラーが出ている状況です。また、「MODX_MANAGER_PATH」の値についても同様の事態となっています。
HAMAH さんが書きました: ※中略部はすべて同じ(最初の投稿に記載の(中略)とも同じ)
一応念の為に書いておくと、中略部は「sites/heteml/users/h/o/g/hogehoge/web」というようなものになっています。レンタルサーバーはヘテムルを使用しています。
つまり、
FTPで接続して「/web/hogehoge/modx」ディレクトリにインストールしたら、
MODX_BASE_PATHが
「/home/sites/heteml/users/h/o/g/hogehoge/web/hogehoge/modx」
になっていたということですよね?
おそらく、FTPの接続先が
「/home/sites/heteml/users/h/o/g/hogehoge/」
なんじゃないかと思います。
そうであれば、MODX_BASE_PATHの値は正常ということになります。
HAMAH さんが書きました:「MODX_BASE_PATH」の値が「/home/(中略)/hogehoge/modx」になっており、そのことに起因するエラーが出ている状況です。
これがどういうエラーか、具体的にしてもらう方が良いかと思います。

ちょっと思いつくところでは、
「.htaccess」の「RewriteBase」の行、「RewriteBase /hogehoge/modx」等にされてますか?
(※URLが「http://fugafuga.com/hogehoge/modx」の場合を想定しています。)
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
HAMAH
メンバー
メンバー
記事: 8
登録日時: 2016年6月06日(月) 18:23

コンフィグ変数(MODX_BASE_PATH、MODX_MANAGER_PATH)の変更方法

投稿記事 by HAMAH »

kazuike 様
kazuike さんが書きました: autoload.phpの中にPHPの開始~終了が抜けているということではないですか?
それです!初歩も初歩すぎるミスでお恥ずかしい…

サイトトップページにアクセスした際のエラーは以下のようになりました。
---
Notice: Constant MODX_BASE_PATH already defined in /home/(中略)/hogehoge/modx/autoload.php on line 2

Warning: require_once(/dir/path/manager/includes/version.inc.php): failed to open stream: No such file or directory in /home/(中略)/hogehoge/modx/manager/includes/initialize.inc.php on line 23

Fatal error: require_once(): Failed opening required '/dir/path/manager/includes/version.inc.php' (include_path='.:/usr/local/php5.4/pear:/usr/local/php5.4/lib/php:/usr/local/lang/php/5.4/pear:/usr/local/lib/php') in /home/(中略)/hogehoge/modx/manager/includes/initialize.inc.php on line 23
---

kazuike さんが書きました: FTPの接続先が
「/home/sites/heteml/users/h/o/g/hogehoge/」
なんじゃないかと思います。
FTPの接続先は「/web/hogehoge/modx」であっていると思います。FFFTPを使用していますが、「ホストの初期フォルダ」は「/web/hogehoge/modx」です。

kazuike さんが書きました: 「.htaccess」の「RewriteBase」の行、「RewriteBase /hogehoge/modx」等にされてますか?
http://hogehoge.jp」でアクセスすると「/web/hogeho ... の設定を行っています
.htaccessのRewriteBaseについては、「RewriteBase /」としています。

kazuike さんが書きました: これがどういうエラーか、具体的にしてもらう方が良いかと思います。
NotifyUsers(バージョン0.5)というメール配信モジュールを入れたのですが、上手く動作しないのです…。
具体的には、モジュール->NotifyUsersの画面、右フレームの著作権表記の下に以下のエラーが出ます。また、必要項目をすべて記入しているにも関わらず「メッセージを送信しませんでした - 必須項目に記入漏れがあったため!」というエラーが出て送信が出来ない状態です。
---
Warning: mysql_query(): No such file or directory in /home/(中略)/hogehoge/modx/assets/modules/notify_users/notifyusers.class.php on line 61

Warning: mysql_query(): A link to the server could not be established in /home/(中略)/hogehoge/modx/assets/modules/notify_users/notifyusers.class.php on line 61

Warning: mysql_query(): No such file or directory in /home/(中略)/hogehoge/modx/assets/modules/notify_users/notifyusers.class.php on line 89

Warning: mysql_query(): A link to the server could not be established in /home/(中略)/hogehoge/modx/assets/modules/notify_users/notifyusers.class.php on line 89

Warning: mysql_query(): No such file or directory in /home/(中略)/hogehoge/modx/assets/modules/notify_users/notifyusers.class.php on line 90

Warning: mysql_query(): A link to the server could not be established in /home/(中略)/hogehoge/modx/assets/modules/notify_users/notifyusers.class.php on line 90
---

これらのエラーメッセージを見ていると、どうやら「/home/(中略)/hogehoge/modx」以下を参照しているようで、実際には「/web/hogehoge/modx」にMODXをインストールしているのに何でだろう?と思っていろいろ見ていたところ、「MODX管理画面->レポート->システム情報」に記載されているMODX_BASE_PATHとMODX_MANAGER_PATHの値が「/home/(中略)/hogehoge/modx」になっており、もしかしたらこれが原因なのかもと思い、今回こうしてご質問した次第です。もしかしたらこの認識から間違っていて、単にNotifyUsers単体の問題かもしれません…。

以上、長文で申し訳ありませんが、お力を貸して頂ければ幸いです。よろしくお願いいたします。
kazuike
メンバー
メンバー
記事: 507
登録日時: 2009年8月12日(水) 12:53

コンフィグ変数(MODX_BASE_PATH、MODX_MANAGER_PATH)の変更方法

投稿記事 by kazuike »

HAMAH さんが書きました:
kazuike さんが書きました: FTPの接続先が
「/home/sites/heteml/users/h/o/g/hogehoge/」
なんじゃないかと思います。
FTPの接続先は「/web/hogehoge/modx」であっていると思います。FFFTPを使用していますが、「ホストの初期フォルダ」は「/web/hogehoge/modx」です。
すみません。書き方が悪かったかもしれません。
FTPソフトの設定の方ではなく、サーバのFTPの設定の方の話です。
専用サーバ以外のホスティングサービスであれば、FTPで接続するのはユーザ毎のディレクトリですので、
FTPソフトから、サーバの「/web/hogehoge/modx」のようなところに接続できるはずはないと思われます。

FTPで接続したら自動的に「/home/sites/heteml/users/h/o/g/hogehoge/」のような、
特定のユーザに割り当てられた、かなり下の階層のディレクトリに接続されるはずです。
FTPソフトからは、そこから上は見えないようにしてあるはずなので、
FTPソフトからは接続先は「/」のように見えますが、
実際には「/home/sites/heteml/users/h/o/g/hogehoge/」に接続されていると考えるのが妥当かと思います。
HAMAH さんが書きました: NotifyUsers(バージョン0.5)というメール配信モジュールを入れたのですが、上手く動作しないのです…。
具体的には、モジュール->NotifyUsersの画面、右フレームの著作権表記の下に以下のエラーが出ます。また、必要項目をすべて記入しているにも関わらず「メッセージを送信しませんでした - 必須項目に記入漏れがあったため!」というエラーが出て送信が出来ない状態です。
---
Warning: mysql_query(): No such file or directory in (snip)
エラーメッセージが「No such file or directory」なので、パスが違っていると思われたんですね。
MySQLが接続するソケットのパスなので、ウェブサイトのディレクトリとは関係ないMySQL内部?のパスのエラーです。

ということで、
NotifyUsersが使おうとしているMySQLの接続先があきらかにおかしいですね。
NotifyUsersとMODX本体とが連動していないのかも。
MODXは1.0.15ですか?
このバージョンで、mysqlからmysqliになったとかあったと思いますが、
今から用事で調べる余裕が無く、すみません。
どなたかフォローお願いします。
▼ウェブ屋のCMS→modxヒキダス流(備忘録)
http://d.hatena.ne.jp/hikidas_ikeda/
HAMAH
メンバー
メンバー
記事: 8
登録日時: 2016年6月06日(月) 18:23

コンフィグ変数(MODX_BASE_PATH、MODX_MANAGER_PATH)の変更方法

投稿記事 by HAMAH »

kazuike 様

返信ありがとうございます。

では、MODX_BASE_PATH等の問題ではなく、NotifyUsersとMySQL(MySQLi)との問題ということですね。
実際、NotifyUsersの最終アップデートがかなり古く(2012年)もしかしたら現状のMODXとは上手く連動できていないのかも…?

NotifyUsersは「ウェブユーザーへの一斉メール配信」という目的のために導入したもので、同じようなことが出来るのであれば、別にNotifyUsersにこだわる必要はありません。どなたか、現行のMODX Evolutionに対応したメール配信モジュールをご存知でしたら、ご教示頂ければと思います。

とはいえ、これ以上は当初のトピックタイトル(「コンフィグ変数の変更方法」)から離れた質問となりますので、改めて「メール配信モジュールについて」などのタイトルでトピックを立てようかと思います。

yama様、kazuike様、ありがとうございました。いろいろと至らぬところがあり、申し訳ありませんでした。よろしければ、この後立てるメール配信モジュールに関するトピックでもお力添え頂ければと思います。


(追記)
さくらのレンタルサーバーではエラーが出ませんでした。ヘテムルレンタルサーバーとの相性が悪いのかもしれません。
一方、肝心の一斉配信が動作していないという症状が出ています。これについて、別トピックにてご相談しておりますので、ご覧頂ければと思います。
返信する