1

私のウェブサイトで sitecake www.sitecake.com を使用しようとしています。http://sitecake.com/install.htmlの手順を使用してインストールし、概要ページでテストしました。

PHP の動作がおかしくて、残念ながら私は何が問題なのか途方に暮れています。数日間さまざまな PHP エラーを検索し、問題の一部に対する解決策を 1 つ思いつきましたが、まだ正しく動作させることはできません。

sitecake をインストールして about ページの先頭に行を追加した後、ページにアクセスしようとすると次のエラーが発生しました。

PHP エラー メッセージ

PHP コード:

警告: realpath() [function.realpath]: open_basedir 制限が有効です。ファイル (/usr/local/apache/htdocs) が、/home/a5940384/public_html/sitecake/server/config の許可されたパス (/home/:/usr/lib/php:/tmp) 内にありません。 12行目のphp

PHP エラー メッセージ

PHP コード:

警告: substr_compare() [function.substr-compare]: 14 行目の /home/a5940384/public_html/sitecake/server/config.php の長さは 0 より大きくなければなりません

エラーが発生しました アプリケーション エラー 例外情報:

PHP コード:

Message: file_exists() [function.file-exists]: open_basedir
restriction in effect. File(/usr/local/apache/htdocs//about.php) is
not within the allowed path(s): (/home/:/usr/lib/php:/tmp)  Stack trace: 
#0 /home/a3779563/public_html/sitecake/server/application/services/impl/basic/PageTemplateImpl.php(30): Bootstrap::globalErrorHandler(2, 'file_exists() [...', '/home/a3779563/...', 30, Array)
#1 /home/a3779563/public_html/sitecake/server/application/services/impl/basic/RenderServiceImpl.php(54): PageTemplateImpl->setPageRequest('/usr/local/apac...')
#2 /home/a3779563/public_html/sitecake/server/application/services/impl/basic/RenderServiceImpl.php(23): RenderServiceImpl->renderResponse('/index.php')
#3 /home/a3779563/public_html/sitecake/server/application/controllers/RenderController.php(13): RenderServiceImpl->render()
#4 /home/a3779563/public_html/sitecake/server/library/Zend/Controller/Action.php(513): RenderController->renderAction('/index.php', false)
#5 /home/a3779563/public_html/sitecake/server/library/Zend/Controller/Dispatcher/Standard.php(295): Zend_Controller_Action->dispatch()
#6 /home/a3779563/public_html/sitecake/server/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch('renderAction')
#7 /home/a3779563/public_html/sitecake/server/library/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#8 /home/a3779563/public_html/sitecake/server/library/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#9 /home/a3779563/public_html/sitecake/server/sitecake_entry.php(47): Zend_Application->run()
#10 /home/a3779563/public_html/index.php(1): include('/home/a3779563/...')
#11 {main}  

リクエスト パラメータ:

配列 ( 'コントローラー' => 'レンダリング', 'アクション' => 'レンダリング', )

交換することでこれらのエラーを修正できました

PHP コード:

$doc_root= $_SERVER['DOCUMENT_ROOT'];  

12行目と23行目

PHP コード:

$doc_root = dirname(_FILE_);  

sitecake/server/config.php (open_basedir 制限の検索中にフォーラムで修正が見つかりました)

変更後の問題の config.php スクリプト全体を次に示します。 PHP コード:

 <?php  
define( 'CONTENT_DIR', dirname(dirname(SITECAKE_SERVER_BASE_DIR)).DS.'sitecake-content'); 
define( 'APP_TMP_DIR', CONTENT_DIR.DS.'temp' ); 

define('LICENSE_PATH', dirname(SITECAKE_SERVER_BASE_DIR).DS.'license.key'); 
define( 'CREDENTIAL_FILE', SITECAKE_SERVER_BASE_DIR.DS.'credential.php' ); 
define( 'SITECAKE_EDITOR_CONFIG_FILE', dirname(SITECAKE_SERVER_BASE_DIR).DS.'editor.cfg' ); 

# define( 'SITECAKE_BASE_RELATIVE_URL', '/' ); 
if ( !defined('SITECAKE_BASE_RELATIVE_URL') ) 
{ 
    $doc_root = dirname(_FILE_);  
    $entryDir = realpath(dirname(dirname(SITECAKE_SERVER_BASE_DIR))); 
    if ( substr_compare($entryDir, $docRootDir, 0, strlen($docRootDir)) != 0 ) die('Unable to determine SITECAKE_BASE_RELATIVE_URL'); 
    define( 'SITECAKE_BASE_RELATIVE_URL', str_replace('\\', '/', substr($entryDir, strlen($docRootDir)))); 
} 

define( 'SERVICE_URL', SITECAKE_BASE_RELATIVE_URL.'/sitecake/server/sitecake_entry.php' ); 
define( 'SITECAKE_PUBLIC_MANAGER_URL', SITECAKE_BASE_RELATIVE_URL.'/sitecake/client/publicmanager/publicmanager.nocache.js' ); 
define( 'SITECAKE_CONTENT_MANAGER_URL', SITECAKE_BASE_RELATIVE_URL.'/sitecake/client/contentmanager/contentmanager.nocache.js' ); 
define( 'CONTENT_BASE_URL', SITECAKE_BASE_RELATIVE_URL.'/sitecake-content'); 

define( '$doc_root = dirname(_FILE_);'] ); 

define( 'PHP_TEMPLATE', false ); 
define( 'TEMPLATE_CACHING', true ); 

$applicationIncludes = array( 
    realpath(APPLICATION_PATH), 
    realpath(APPLICATION_PATH.DS.'controllers'), 
    realpath(APPLICATION_LIBRARY_PATH), 
    realpath(APPLICATION_PATH.DS.'services'.DS.'impl'.DS.'onesite'), 
    realpath(APPLICATION_PATH.DS.'services'.DS.'impl'.DS.'basic'), 
    realpath(APPLICATION_PATH.DS.'services'), 
    get_include_path(), 
); 

?>

サイトにアクセスできましたが、sitecake にログインしようとすると、ログイン ボックスに次のエラーが表示されます。

Parse error: syntax error, unexpected ']' in /home/a3779563/public_html/sitecake/server/config.php on line 23

役立つPHPエラーを見つけることができないので、今は途方に暮れています。

000webhost でサイトケーキを使用する方法についてのアイデアはありますか?

ここまで読んでくれてありがとう!

サイトの URL: http://nave.net23.net/

4

2 に答える 2

0

そのサーバーにはPHPセーフモードがあります(/home/a5940384/public_htmlディレクトリ構造の外観から、共有ホストサーバーのように見えますが、

なんらかの理由で、そのアプリは/usr/local/apache/htdocs. そのため、おそらくすべてのコードを調べて、それがベース ディレクトリであると見なされる理由を見つける必要があります。SITECAKE_SERVER_BASE_DIRこれは、ファイルパスの計算に使用される主な定数であるように思われるため、 がどこで定義されているかを調べてください。

共有ホスティングは悪魔の仕業です。

于 2012-09-06T20:18:01.930 に答える