1

我正在尝试在我的网站上使用 sitecake www.sitecake.com。我使用此处的说明安装了它http://sitecake.com/install.html并在关于页面上对其进行了测试。

PHP 行为不端,不幸的是我不知道问题出在哪里。几天来,我已经搜索了不同的 PHP 错误,并为部分问题提出了一种解决方案,但我仍然无法使其正常工作。

在我安装了 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 中的长度必须大于零

发生错误应用程序错误异常信息:

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

如果可以的话,我会为初学者关闭base_dir 。注意,禁用 safe_mode 不会阻止 base_dir 的东西。

至于您现在遇到的错误,它只是告诉您存在语法错误。现在我没有在您发布的内容中看到它。也许您在本地修复它但尚未在服务器上修复它?

于 2012-09-06T20:13:38.243 回答
0

/home/a5940384/public_html您在该服务器上设置了 PHP 安全模式(从您的目录结构来看,它可能是某个共享主机服务器,

无论出于何种原因,该应用程序想要在/usr/local/apache/htdocs. 因此,您可能需要查看所有代码以找出为什么它认为这是您的基本目录。也许找出SITECAKE_SERVER_BASE_DIR定义的位置,因为这似乎是用于计算文件路径的主要常量。

共享主机是魔鬼的事。

于 2012-09-06T20:18:01.930 回答