我正在构建一个框架,其中产品实例使用主框架文件,直到有一个它自己的文件版本的副本.为此,我做了以下事情:
set_include_path(MY_PRODUCT_ROOT.'/' . PATH_SEPARATOR . MY_FRAMEWORK_ROOT.'/');
Run Code Online (Sandbox Code Playgroud)
因此,如果我调用include('view-users.php');它将首先在MY_PRODUCT_ROOT中查找/view-users.php,如果找不到,则会查看MY_FRAMEWORK_ROOT/view-users.php.
在将文件添加到产品根目录之前,此过程非常顺利.我知道PHP/Apache正在缓存包含,人们会认为运行clearstatcache(true);清除任何状态缓存.PHP可能会在其中使用file_exists的include(); 并认为新文件仍然不存在.我试过重启Apache没有任何效果.
不幸的是,跑步clearstatcache(true);也无济于事.只有在我删除了MY_FRAMEWORK_ROOT /文件之后才会清除缓存并重试,从而找到MY_PRODUCT_ROOT /文件.
我有点难过,我知道我们需要刷新PHP/Apache对文件是否存在的理解,但是clearstatcache(true);没有帮助......
有任何想法吗?
更新:更正,重启Apache似乎现在有所帮助.我重申,只有在尝试将文件添加到MY_PRODUCT_ROOT,重叠现有的MY_FRAMEWORK_ROOT文件以进行自定义时,才会出现这种情况.
更新:开发环境是Windows上的Zend Server CE PHP 5.3.14,生产环境Centos linux httpd,PHP 5.3+.在我的开发环境中启用Zend优化器的事实可能会产生影响,也不会使用APC或任何其他缓存脚本
我的Drupal 7实例无法通过FTP链接安装新模块.出现的错误消息如下:
Warning: fileowner() [function.fileowner]: stat failed for temporary://upd92FE.tmp in update_manager_local_transfers_allowed() (line 924 of C:\inetpub\wwwroot\drupal\modules\update\update.manager.inc).
Run Code Online (Sandbox Code Playgroud)
我的设置如下:
Windows 7家庭高级版64位IIS 7.5 + Zend社区服务器
在从Zend Server CE 5.1升级到Zend Server CE 5.5期间,PHP也从5.3.5升级到5.3.8.在此转换之后,我正在处理的zend应用程序的登录功能突然中断.
试图调试它,看起来好像执行crypt()不反映PHP手册,或者我误解了它.如果我冒险猜测,那就是后者.
我使用一个16字符长的盐作为较大盐的一部分使用SHA256,它在PHP手册中用作示例.
$password = //string entered at login
$salt = '$5$rounds=250000$1234abcd5678defg$';
Run Code Online (Sandbox Code Playgroud)
在我输入密码后输入密码
$hash = crypt($password, $salt);
Run Code Online (Sandbox Code Playgroud)
我得到一个像这样的字符串作为返回值:
$5$rounds=250000$1234abcd5678$tI.Oiz.YwWjIwT3K.SLU8SwUZ9J0/odBCkbE6t0igeB
Run Code Online (Sandbox Code Playgroud)
令我感到困惑的是16字符盐,它是较大部分的一部分(上面的1234abcd5678defg),现在被截断为12个字符.
这是按预期的吗?该crypt()函数现在似乎比以前返回不同的结果 - 通常是PHP版本之间的?更改日志中没有任何内容表明加密算法有任何根本性的变化.
我已经在我的mac上安装了zend服务器,我认为我的mac上有两个安装的php(我讨厌mac,顺便说一句,我很想回到Windows 7),我认为我正在运行的脚本命令行(phpcs)正在使用/ usr/bin /中的php命令,而我想使用/ usr/local/zend/bin/always中的那个.我该怎么做?
以下代码最近开始返回空字符串.它适用于其他系统,因此它似乎不是代码本身的问题.我真的消除了所有的服务器端代码,它仍然做了同样的事情.我也试过使用file_get_contents无济于事,只是在黑暗中拍摄.
$fileStream = fopen('php://input', 'rb');
$fileData = '';
while ($buffer = fread($fileStream, 4096)) {
$fileData .= $buffer;
}
Run Code Online (Sandbox Code Playgroud)
服务器: Zend Server 5.1.0(Apache 2.2.3)
语言: PHP 5.3.5
前端: Plupload(JavaScript插件)
我试图运行以下代码:
is_dir('~/tmp');
Run Code Online (Sandbox Code Playgroud)
在共享的LAMP堆栈上.它工作正常,并返回TRUE.(该目录存在.)当我在本地盒子上运行相同的代码(Mac OSX 10.5,运行Zend Server Community Ed)时,我得到FALSE这是错误的,因为〜/ tmp存在并且权限设置为777.
我想,我错过了某处的服务器指令.
我已经检查过phpInfo,我已经(在本地和生产上):
safe_mode Off Off
safe_mode_exec_dir no value no value
safe_mode_gid Off Off
safe_mode_include_dir no value no value
open_basedir no value no value
Run Code Online (Sandbox Code Playgroud)
所以我认为我错过了什么,但是什么?
[编辑...]更多信息......
在我的本地运行以下
get_current_user()
Run Code Online (Sandbox Code Playgroud)
给我'用户名',这是我要验证的〜/ tmp目录的正确用户,但是
shell_exec('whoami')
Run Code Online (Sandbox Code Playgroud)
给了我'守护进程'.所以我想我知道我的问题来自哪里.现在我只需要弄清楚是否/如何更改在本地运行Web服务器的用户.
我正在从zendCast学习zend框架,但找不到问题
我正在使用:
-Zend Server CE
-Zend Studio 7.2
-Zend Framework 1.10(使用zend studio创建)
在我的库文件夹中,我有一个文件夹App,在该文件夹中有一个php文件Countries.php,它对应于App_Countries类但是当我尝试创建一个新的App_Countries对象时,它表示该类无法加载任何有关如何摆脱的想法错误?
Fatal error: Class 'App_Countries' not found in /usr/local/zend/apache2/htdocs/ZC/application/controllers/IndexController.php on line 14
Run Code Online (Sandbox Code Playgroud)
的index.php
// Define path to application directory
defined('APPLICATION_PATH')
|| define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
// Define application environment
defined('APPLICATION_ENV')
|| define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
get_include_path(),
)));
/** Zend_Application */
require_once 'Zend/Application.php';
// Create application, bootstrap, and run
$application = new Zend_Application(
APPLICATION_ENV,
APPLICATION_PATH . …Run Code Online (Sandbox Code Playgroud) php ×6
apache ×2
caching ×1
command-line ×1
crypt ×1
drupal ×1
iis-7 ×1
sha256 ×1
zend-studio ×1