0

有人可以指出PHP可以施加的所有不同内存/时间/[任何]限制的列表吗?简而言之,-103 (ERR_CONNECTION_ABORTED)当仅用某些参数实例化对象时,Apache 会给我一个错误。我首先在 Rackspace 的 Cloud Sites 平台上体验了这一点,然后在我的本地 Windows 机器上体验了这一点。我还没有看到问题出现在 Rackspace 的 CentOS 云服务器之一上。

其他详情:

  • 请求在终止之前持续了大约 4 秒。
  • 在请求期间,httpd 进程的内存使用量从 ~15M 跃升至 ~30M。
  • ini_get('memory_limit')返回 264M。
  • ini_get('max_execution_time')返回 60。
  • PHP 版本是 5.4.7。
  • Apache 版本是 2.4.3。
  • 底层 PHP 应用程序是Lemonstand

基本上,我正在创建一个Shop_CustomerGroup继承自Db_ActiveRecord. 当 的构造函数Db_ActiveRecord尝试创建Phpr_Validation.

<?php

    class Db_ActiveRecord extends Db_SqlBase implements IteratorAggregate
    {
        // More code...

        public function __construct($values = null, $options = array())
        {
            $this->modelState = self::stateCreating;
            $this->model_options = $options;

            $this->implement = Phpr_Util::splat($this->implement, true);
            array_unshift($this->implement, 'Phpr_Events');
            parent::__construct();

            $this->initialize();
            self::$object_counter++;
            $this->objectId = 'ac_obj_'.self::$object_counter;

            if (!$this->get_model_option('no_validation'))
            {
                if (!empty($options['test'])) {
                    // If I pass in `null`, 'foo' gets thrown. But if I pass in `$this`, the script appears to die.
                    $this->validation = new Phpr_Validation($this, 'test');
                } else {
                    $this->validation = new Phpr_Validation($this); 
                }
                $this->validation->focusPrefix = get_class($this)."_";
            }

            // Fill with data
            if ($values !== null) 
            {
                $this->fill($values);
                $this->fill_relations($values);
            }

            $this->modelState = self::stateCreated;
        }

        // More code...
    }


    class Phpr_Validation
    {

        // More code...

        public function __construct( $Owner = null, $FormId = 'FormElement' )
        {
            if ($FormId == 'test')
                throw new Phpr_ApplicationException('foo');

            $this->_owner = $Owner;
            $this->_formId = $FormId;
            $this->_fields = array();
            $this->errorFields = array();
            $this->valid = false;
            $this->errorMessage = null;
            $this->fieldErrors = array();
            $this->fieldValues = array();
        }

        // More code...
    }

除非传递给对象的构造函数有什么特别之处,否则$this我确信我遇到了某种限制。我只是不知道这个限制可能是什么。

任何帮助表示赞赏!谢谢!

更新1:

请求网址:

https://[DOMAIN_NAME]/checkout/new_account

请求标头

POST https://[DOMAIN_NAME]/checkout/new_account HTTP/1.1
Pragma: no-cache
Origin: [DOMAIN_NAME]
PHPR-EVENT-HANDLER: ev{onHandleRequest}
Cache-Control: no-cache
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept: */*
PHPR-POSTBACK: 1
Referer: https://[DOMAIN_NAME]/checkout/new_account
X-Requested-With: XMLHttpRequest
PHPR-REMOTE-EVENT: 1

阿帕奇配置

<VirtualHost [IP_ADDRESS]:443>
    ServerAdmin postmaster@[DOMAIN_NAME]
    DocumentRoot "[PATH...]"
    ServerName [DOMAIN_NAME]
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/[DOMAIN_NAME].crt"
    SSLCertificateKeyFile "conf/ssl.key/[DOMAIN_NAME].key"
    <Directory "[PATH...]">
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
    ErrorLog "logs/[DOMAIN_NAME]-ssl-error.log"
</VirtualHost>

更新 2:

xampp\apache\logs\error.log

  • [2013 年 5 月 6 日星期一 18:44:49.119268] [ssl:warn] [pid 8820:tid 396] AH01873:初始化:未配置会话缓存 [提示:SSLSessionCache]
  • [2013 年 5 月 6 日星期一 18:44:49.159268] [mpm_winnt:notice] [pid 8820:tid 396] AH00455: Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7 已配置 -- 恢复正常操作
  • [2013 年 5 月 6 日星期一 18:44:49.159268] [mpm_winnt:notice] [pid 8820:tid 396] AH00456:服务器建成时间:2012 年 8 月 18 日 12:41:37
  • [Mon May 06 18:44:49.159268 2013] [core:notice] [pid 8820:tid 396] AH00094:命令行:'C:\xampp\apache\bin\httpd.exe -d C:/xampp/apache'
  • [Mon May 06 18:44:49.160268 2013] [mpm_winnt:notice] [pid 8820:tid 396] AH00418: Parent: Created child process 15352
  • [2013 年 5 月 6 日星期一 18:44:50.017268] [ssl:warn] [pid 15352:tid 272] AH01873:初始化:未配置会话缓存 [提示:SSLSessionCache]
  • [2013 年 5 月 6 日星期一 18:44:50.057268] [mpm_winnt:notice] [pid 15352:tid 272] AH00354:子级:启动 150 个工作线程。
  • [2013 年 5 月 6 日星期一 18:45:43.777268] [mpm_winnt:notice] [pid 8820:tid 396] AH00428:父进程:子进程退出,状态为 255 -- 正在重新启动。
  • [2013 年 5 月 6 日星期一 18:45:44.154268] [ssl:warn] [pid 8820:tid 396] AH01873:初始化:未配置会话缓存 [提示:SSLSessionCache]
  • [Mon May 06 18:45:44.193268 2013] [mpm_winnt:notice] [pid 8820:tid 396] AH00455: Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7 已配置 -- 恢复正常操作
  • [2013 年 5 月 6 日星期一 18:45:44.193268] [mpm_winnt:notice] [pid 8820:tid 396] AH00456:服务器构建:2012 年 8 月 18 日 12:41:37
  • [Mon May 06 18:45:44.193268 2013] [core:notice] [pid 8820:tid 396] AH00094:命令行:'C:\xampp\apache\bin\httpd.exe -d C:/xampp/apache'
  • [Mon May 06 18:45:44.194268 2013] [mpm_winnt:notice] [pid 8820:tid 396] AH00418: Parent: Created child process 12524
  • [Mon May 06 18:45:45.018268 2013] [ssl:warn] [pid 12524:tid 272] AH01873:初始化:未配置会话缓存 [提示:SSLSessionCache]
  • [2013 年 5 月 6 日星期一 18:45:45.056268] [mpm_winnt:notice] [pid 12524:tid 272] AH00354:子级:启动 150 个工作线程。

xampp\apache\logs[DOMAIN_NAME]-ssl-error.log

  • [Mon May 06 18:44:48.777268 2013] [ssl:warn] [pid 8820:tid 396] AH01906:RSA 服务器证书是 CA 证书(BasicConstraints:CA == TRUE !?)
  • [Mon May 06 18:44:49.119268 2013] [ssl:warn] [pid 8820:tid 396] AH01906:RSA 服务器证书是 CA 证书(BasicConstraints:CA == TRUE !?)
  • [Mon May 06 18:44:49.683268 2013] [ssl:warn] [pid 15352:tid 272] AH01906:RSA 服务器证书是 CA 证书(BasicConstraints:CA == TRUE !?)
  • [Mon May 06 18:44:50.018268 2013] [ssl:warn] [pid 15352:tid 272] AH01906:RSA 服务器证书是 CA 证书(BasicConstraints:CA == TRUE !?)
  • [Mon May 06 18:45:44.154268 2013] [ssl:warn] [pid 8820:tid 396] AH01906:RSA 服务器证书是 CA 证书(BasicConstraints:CA == TRUE !?)
  • [Mon May 06 18:45:44.680268 2013] [ssl:warn] [pid 12524:tid 272] AH01906:RSA 服务器证书是 CA 证书(BasicConstraints:CA == TRUE !?)
  • [Mon May 06 18:45:45.018268 2013] [ssl:warn] [pid 12524:tid 272] AH01906:RSA 服务器证书是 CA 证书(BasicConstraints:CA == TRUE !?)

更新 3事件查看器中的 Apache 错误

Faulting application name: httpd.exe, version: 2.4.3.0, time stamp: 0x502f70a3
Faulting module name: php5ts.dll, version: 5.4.7.0, time stamp: 0x505114f8
Exception code: 0xc0000005
Fault offset: 0x0005d719
Faulting process id: 0x24f8
Faulting application start time: 0x01ce4b5683b7a39a
Faulting application path: C:\xampp\apache\bin\httpd.exe
Faulting module path: C:\xampp\php\php5ts.dll
Report Id: f646e88a-b749-11e2-9017-005056c00008
4

1 回答 1

0

您应该确保您的文件是没有 BOM 的 UTF-8 ...

于 2014-06-13T12:37:49.473 回答