SOYCMSサーバー移行時のエラー 投稿する

投稿者:kaiya  投稿日時:2024-11-20 01:16:14
サーバーを Xサーバーの古いサーバーから最新スペックのサーバーに移行しようとしていますが

以降前のサーバーでは、エラーなく公開されているページが、移行後のサーバーでは警告がでて表示されません
そして管理画面ではデータベースの更新画面がでます。更新しますがエラーは消えません

公開側のエラー

Fatal error: Uncaught SOY2DAOException: Invalid query. in /ルートフォルダ/common/lib/soy2_build.min.php:1742 Stack trace: #0 /home/kaiya/donguri.link/public_html/english/.cache/dao_cache_SiteConfigDAOImpl_f5c7338a9cf79f050a636ef8c0dfe7b1.class.php(79): SOY2DAO->executeQuery(Object(SOY2DAO_Query), Array) #1 /ルートフォルダ/common/site_include/func/common.php(32): SiteConfigDAOImpl->get() #2 /ルートフォルダ/common/site_include/CMSPageController.class.php(20): soycms_get_site_config_object() #3 /ルートフォルダ/common/lib/soy2_build.min.php(236): CMSPageController->execute() #4 /ルートフォルダ/common/site_include/SOYCMSOutputContents.class.php(64): SOY2PageController::run() #5 /ルートフォルダ/common/site_include/SOYCMSOutputContents.class.php(110): SOYCMSOutputContents::execute_normal() #6 /ルートフォルダ/common/site.func.php(42): SOYCMSOutputContents->execute() #7 /home/kaiya/donguri.link/public_html/english/index.php(12): execute_site() #8 {main} thrown in /ルートフォルダ/common/lib/soy2_build.min.php on line 1742


管理画面のエラー 致命的なエラー
SOY CMS Options
SOYCMS_ALLOWED_EXTENSIONS: php,doc,xls,pdf
SOYCMS_ALLOW_PHP_SCRIPT: 1
SOYCMS_SKIP_MOBILE_RESIZE:
SOYCMS_BLOCK_LIST: EntryBlockComponent
LabeledBlockComponent
MultiLabelBlockComponent
SiteLabeledBlockComponent
PluginBlockComponent
SOYCMS_TARGET_DIRECTORY: /home/kaiya/donguri.link/public_html/
SOYCMS_TARGET_URL: undefined
SOYCMS_ADMIN_ROOT: undefined



SOY CMS Version: 3.18.4
SOY CMS Build Date: 2024-11-15T15:24:49+09:00
SOY CMS DB Type: sqlite
SOY2RootDir: /ルートフォルダ/common/
SOY2_DOCUMENT_ROOT: undefined


STACK TRACE
-----------------------
0:SOY2DAO->executeQuery
argument[0]: SOY2DAO_Query ["select "id","uri","title","template","isTrash","page_type","page_config","openPeriodStart","openPeriodEnd","isPublished","udate","parent_page_id","icon" from "Page" where page_type 300"]
argument[1]: array (
)

ルートフォルダ/soycms/cache/3.18.4_dao_cache_PageDAOImpl_468bd7819755ed5ca2c08317b1d76026.class.php(279)
-----------------------
1:PageDAOImpl->getPagesWithoutErrorPage

ルートフォルダ/common/action/site/Init/InitDetectAction.class.php(7)
-----------------------
2:InitDetectAction->execute
argument[0]: SOY2ActionRequest [\SOY2ActionRequest::__set_state(array(
'_hash' =>
array (
),
'_method' =>'GET',
))]
argument[1]: SOY2ActionForm [""]
argument[2]: SOY2ActionResponse [\SOY2ActionResponse::__set_state(array(
'_header' =>
array (
),
))]

ルートフォルダ/common/lib/soy2_build.min.php(506)
-----------------------
3:SOY2Action->executeImpl
argument[0]: SOY2ActionRequest [\SOY2ActionRequest::__set_state(array(
'_hash' =>
array (
),
'_method' =>'GET',
))]
argument[1]: SOY2ActionForm [""]
argument[2]: SOY2ActionResponse [\SOY2ActionResponse::__set_state(array(
'_header' =>
array (
),
))]

ルートフォルダ/common/lib/soy2_build.min.php(551)
-----------------------
4:SOY2Action->run

ルートフォルダ/common/base/CMSWebPageBase.class.php(47)

Server Environment
PHP Version: 8.2.22
投稿者:齋藤毅  投稿日時:2024-11-20 06:10:59
/CMSインストールディレクトリ/common/domain/cms/PageDAO.class.php
の79行目付近にあります
/**
 * @return object
 * @query ##pageType## = :pageType
 */
abstract function getErrorPage($pageType = Page::PAGE_TYPE_ERROR);

/**
 * @return object
 * @query page_type = :pageType
 */
abstract function getErrorPage(int $pageType=Page::PAGE_TYPE_ERROR);
に変更したら如何でしょうか?
投稿者:kaiya  投稿日時:2024-11-20 07:52:38
/**
 * @return object
 * @query page_type = :pageType
 */
abstract function getErrorPage(int $pageType=Page::PAGE_TYPE_ERROR);
に変更したら如何でしょうか?

上記に変更したのですが、変化なしでした。


あと管理画面内で新サーバー側では 下記ページになり データベース一括アップロード画面になります
一括アップロード→正しく完了しました と表示されますが、下記のURLが何回もでてアップロードを求められ続けます

/admin/index.php/Site/Upgrade

その画面内のエラーコードは下記です


Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /ルート/admin/webapp/pages/Site/Upgrade/IndexPage.class.php on line 62
投稿者:齋藤毅  投稿日時:2024-11-20 09:14:38
Deprecated: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in /ルート/admin/webapp/pages/Site/Upgrade/IndexPage.class.php on line 62
先に上記の件ですが、
/ルート/admin/webapp/pages/Site/Upgrade/IndexPage.class.php
の59行目の
$host = $array["host"];

$host = (isset($array["host"])) ? (string)$array["host"] : "";
に変更してください。
投稿者:齋藤毅  投稿日時:2024-11-20 09:16:45
引っ越しの方のエラーですが、
/home/kaiya/donguri.link/public_html/english/.cache/dao_cache_SiteConfigDAOImpl_f5c7338a9cf79f050a636ef8c0dfe7b1.class.php
のファイルがあれば、メール等でこちらのファイルを送付してください。
投稿者:齋藤毅  投稿日時:2024-11-20 09:59:19
ファイルの送付をありがとうございます。
ファイルを確認しましたところ、先程対応して頂きました
/**
 * @return object
 * @query page_type = :pageType
 */
abstract function getErrorPage(int $pageType=Page::PAGE_TYPE_ERROR);
に変更したら如何でしょうか?
の箇所である可能性が高いです。

先程コードを変更して頂いた際、エラーメッセージが変わっている可能性がありますので、もう一度エラーメッセージを投稿をお願いします。
投稿者:齋藤毅  投稿日時:2024-11-20 10:05:11
/CMSインストールディレクトリ/common/domain/cms/PageDAO.class.php
ですが、55行目付近にあります
/**
 * @index id
 * @query ##pageType## = :pageType
 * @order id
 */
abstract function getByPageType($pageType);

/**
 * @return column_page_count
 * @columns count(id) as page_count
 * @query ##pageType## = :pageType
 */
abstract function countByPageType($pageType);

/**
 * @index id
 * @query page_type = :pageType
 * @order id
 */
abstract function getByPageType(int $pageType);

/**
 * @return column_page_count
 * @columns count(id) as page_count
 * @query page_type = :pageType
 */
abstract function countByPageType(int $pageType);
に変更したら如何でしょうか?
投稿者:齋藤毅  投稿日時:2024-11-20 10:12:49
改めてコードを確認してみましたが、キャッシュが古い可能性があります。
/home/kaiya/donguri.link/public_html/english/.cache/dao_cache_SiteConfigDAOImpl_f5c7338a9cf79f050a636ef8c0dfe7b1.class.php
をFTPクライアント経由でファイルを直接削除してみてください。
投稿者:kaiya  投稿日時:2024-11-20 10:20:06
/common/domain/cms/PageDAO.class.phpを変更して

キャッシュを消したのですが・・変わりませんね。。
エラーメッセージも同じのようです。

他のキャッシュは消したらマズイでしょうか??
投稿者:齋藤毅  投稿日時:2024-11-20 10:30:29
エラーメッセージが同じかどうかは詳細を確認してみないとわかりません。

今回のエラーはStack Trace内にあります
argument[0]: SOY2DAO_Query ["select "id","uri","title","template","isTrash","page_type","page_config","openPeriodStart","openPeriodEnd","isPublished","udate","parent_page_id","icon" from "Page" where page_type 300"]

where page_type 300
になりまして、正しくは
where page_type =300
でなければなりません。

こちらの値周辺が変更されているか確認したいです。

他のキャッシュは消したらマズイでしょうか??

他のキャッシュを削除しても構いません。
ログインして投稿する