标签: zend-server-ce

PHP包括路径顺序和状态缓存

我正在构建一个框架,其中产品实例使用主框架文件,直到有一个它自己的文件版本的副本.为此,我做了以下事情:

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或任何其他缓存脚本

php caching zend-server-ce

6
推荐指数
1
解决办法
692
查看次数

Drupal 7无法安装模块

我的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社区服务器

php iis-7 drupal zend-server-ce

5
推荐指数
2
解决办法
2万
查看次数

在Zend Server CE 5.5中使用sha256的PHP crypt()会截断提供的salt

在从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版本之间的?更改日志中没有任何内容表明加密算法有任何根本性的变化.

php crypt sha256 zend-server-ce

5
推荐指数
1
解决办法
736
查看次数

使用Mac上命令行中的zend服务器附带的php

我已经在我的mac上安装了zend服务器,我认为我的mac上有两个安装的php(我讨厌mac,顺便说一句,我很想回到Windows 7),我认为我正在运行的脚本命令行(phpcs)正在使用/ usr/bin /中的php命令,而我想使用/ usr/local/zend/bin/always中的那个.我该怎么做?

php command-line zend-server-ce

3
推荐指数
2
解决办法
3581
查看次数

php://输入返回空字符串

以下代码最近开始返回空字符串.它适用于其他系统,因此它似乎不是代码本身的问题.我真的消除了所有的服务器端代码,它仍然做了同样的事情.我也试过使用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插件)

php apache zend-framework zend-server-ce

2
推荐指数
1
解决办法
1947
查看次数

使用php is_dir('〜/ tmp')可以在一台机器上运行,但不能在另一台机器上运行.为什么?

我试图运行以下代码:

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服务器的用户.

php apache zend-server-ce

2
推荐指数
1
解决办法
1340
查看次数

Zend Framework 1.10自定义类内部库文件夹未找到

我正在从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)

zend-framework zend-studio zend-server-ce

0
推荐指数
1
解决办法
4500
查看次数