Articles of PHP

无论如何,PHP从apache2handler回顾“主机名:端口”?

这是边缘编程,但我先在这里张贴。 PHPinfo的输出 apache2handler Apache Version Apache/2.2.3 (CentOS) Apache API Version 20051115 Server Administrator root@localhost Hostname:Port localdomain.com:0 User/Group apacheuser(500)/500 我试图find一种方法来检索PHP中的“Hostname:port”字段。 我们有apache把我们所有的虚拟主机信息转储到一个文件中,然后把这个单个文件分解成几个文件和相关信息(总点击等)被logging到数据库中。 我们目前遇到的一个问题是,如果一个域名在ServerAlias中出现,我们的php软件将无法find包含他们日志的数据库表(因为这个域在技术上是不正确的)。但是,主机名:端口“字段在php / phpinfo(); 总是回顾我想要的信息,这是主要的域名。 如果有任何其他方法PHP可以从Apache获得“ServerName”字段我不知道请让我知道,因为这将是很容易。 另一种方法是在每个虚拟主机中都有一个SetEnv命令,但不必经过并添加一个 SetEnv primarydomain localdomain.com 到每个VirtualHost,有没有办法使用一个variables? 在例子中: SetEnv primarydomain %v 谢谢!! ———————更新————————— 我们用正则expression式search和replace解决了这个问题。 search:^ ServerName \ s \ b((?= [a-z0-9 – ] {1,63}。)[a-z0-9] +( – [a-z0-9] +)*。)+ ([AZ] {2,63})\ b replace:$&nSetEnv […]

电子邮件的身体换取交换名单?

我有一个非常奇怪的问题,我不知道是编程问题还是服务器问题:-p。 基本上,我发送一封电子邮件到一个交换分配列表,其中包括一个PHP堆栈跟踪; 在某些故障期间,跟踪包括真正的高级信息,例如机器的环境variables(在文件读取期间等)。 我一行一行通过电子邮件的副本,直到发送电子邮件,它出现在行: [SUDO_COMMAND] => /etc/init.d/httpd restart 是罪魁祸首。 在发送电子邮件之前添加stringreplace允许发送成功。 我不明白的是为什么这些字符stream只会在分发邮件上造成问题。 如果我也发送邮件给自己,比如“[email protected]; [email protected]”,那么我会收到邮件。 重新排列名单并没有什么不同,这个群体永远不会收到邮件。 因为个人得到的电子邮件,而不是组,我假设故障是与交换和一些stream氓过滤 – 我已经通过它与系统pipe理员,并没有任何types的过滤在该组…所以也许这是一个错误? 我找不到其他人logging了这个具体的错误,所以我想我会在这里打开它。 现在我只是没有使用分配列表,但最终find解决scheme是很好的。 非常感谢,克里斯

从源代码编译PHP 5.2.6时发生错误(Fedora 12)

我已经安装了Apache 2.2.14,PHP 5.3.1(使用mod_fastcgi)和MySQL 5.1.41 – 这很好,但我现在试图安装PHP 5.2.6(也使用mod_fastcgi),所以我可以使用它在其他虚拟主机上testing,因为我的主机使用这个版本。 我在CentOS 5和早期版本的Fedora中遵循了相同的过程,并且工作正常。 我已经安装了我需要的所有依赖项。 “configuration”工作正常,这里是我的configuration命令… ./configure \ –prefix=/usr/local/php-5.2.6 \ –enable-bcmath \ –with-bz2 \ –enable-calendar \ –with-curl \ –with-curlwrappers \ –enable-exif \ –enable-ftp \ –with-gd \ –enable-gd-native-ttf \ –enable-gd-jis-conv \ –with-gettext \ –with-gmp \ –with-imagick \ –with-imap \ –with-imap-ssl \ –with-kerberos \ –with-ldap \ –enable-libxml \ –enable-mbstring \ –with-mcrypt \ […]

使用Plesk Panel 9.3将openSUSE 11.1升级到PHP 5.3

我使用openSUSE 11.1(i586)运行VPS。 在VPS上安装了Parallels Plesk Panel 9.3.0。 目前的PHP版本是PHP 5.2.11。 我想将PHP升级到PHP 5.3,但是我无法find有关如何执行此操作的良好说明。 如果我检查Zypper的更新,它说这是最新版本。 在Plesk更新也不是更新,无论是通过基于Web的界面和命令行界面。 在Software.openSUSE.org我可以在服务器中findPHP 5.3.1的包:php / server_apache_openSUSE_11.1 -repo和服务器:php / openSUSE_11.1-repo(不能发布链接,因为我是新手在这里)。 但是,如果我将其中的一个添加到Zypper,我仍然没有看到更新。 有没有人知道如何做到这一点? 更新这种方式是完全安全的吗? 我不想结束一个坏的VPS … 谢谢! 乔纳森

PHP页面失败 – ap_content_length_filter:apr_bucket_read()超时错误?

运行一个沉重的脚本,在Apache日志中得到这个错误: (70007)The timeout specified has expired: ap_content_length_filter: apr_bucket_read() failed, referer: http://domains/scriptName.php 试图提高max_execution_time,max_input_time无济于事。 有什么其他的设置我需要碰撞? 它说超时,这让我觉得它没有得到足够的时间来完成,但“content_length_filter”是告诉我,也许这是窒息太多的数据,查询正在做?

php.ini不能在Windows7 x64上加载

过去我手动configuration了PHP,没有任何问题。 现在我试图在Windows 7 x64上使用PHP 5.3.1设置开发环境,并且不会加载php.ini文件! 我是Win7和64位操作系统的新手,所以这可能是我错过的东西。 哦…这也是运行在一个虚拟机(VMWare播放器),但我不知道如何可能会有所作为。 我将PHPRC环境variables设置为“c:\ php \”,将IniFilePathregistry项(在HKLM / Software / PHP和HKLM / Software / Wow6432Node / PHP中)设置为“c:\ php”,我甚至已经将php.ini复制到c:\ windows,“php -info”仍显示: Configuration File (php.ini) Path => C:\Windows Loaded Configuration File => (none) 我什至去设置读取访问“所有人”的C:\ Windows \ php.ini无济于事。 任何人都可以帮我解决这个问题吗? 提前致谢! 这里是“php -info”输出的第一位… phpinfo() PHP Version => 5.3.1 System => Windows NT DEV 6.1 build 7600 […]

在Linux中创build守护进程…文件权限应该如何?

我正在PEAR System_Daemon上运行几个PHP Gearman Daemons。 我需要他们能够写入以下位置… /var/run/{APPNAME}.pid /etc/init.d/{APPNAME} /gearman/log/{APPNAME}.log 我应该为他们设置什么权限? 我不介意创build一个不同的用户或你有什么,但我只是不是最大的文件权限。 我想这样做是正确的,而不是chmod 777易于使用和以root身份运行,这是不是一个好主意。 帮助这个文件权限白痴?

负载为0,但网站爬行(有时)。 是什么赋予了?

我有两个服务器上运行的每天约1.5-2毫米的页面浏览量。 一个用于mysql,其他用于其他。 Mysql框的负载为3,前端通常为0.0-0.1。 双方都是双核四内核8GB ram在raid5中运行SAS驱动器。 CPU大部分时间处于空闲状态,iowait不存在。 我运行nginx,memcache和网站build立在PHP。 有一半的时间一切运行完美,而在其他时候,它滞后于严重的东西,当一个页面加载需要10-15秒。 页面执行时间总是超低的,但是它似乎挂起来,在实际加载页面之前等待一些东西。 更奇怪的是,它只发生在网站上的一个文件(但它是最常访问的那个,实际上加载网站上的内容)。 其他页面在任何时候都非常快,即使加载实际内容需要15秒。 我已经安装了nginx_stats插件,如果我监控它,当写列开始超过100时会发生滞后尖峰,而且它经常会…一直到500-1000。 它是在完全随机的时候这样做的,而不是在交通繁忙的时候……它可以在半夜做到这一点,并在交通最高时在下午5点完成工作。 有任何想法吗?

select自定义电子商务网站托pipe,共享,专用,寻找什么?

我已经(几乎)为我的客户开发网站,现在需要决定托pipe。 该网站的大部分用户将位于澳大利亚,我和我的客户也是如此。 现在,在决定主持人之前,我想要考虑所有事情,而且几乎没有什么问题了。 我负担不起网站被拒绝,所有的主机都说“99%的正常运行时间”。 应该是足够的,或者我可以问主机一些统计数据? 如果服务器和整个托pipe公司位于澳大利亚或外部,是否有任何区别? 我一直在共享主机(最便宜的计划,在美国的服务器,我相信)与JustHost.com承载几个网站,从来没有看到任何延迟,但这可能是一个问题? 我更喜欢澳大利亚公司,所以如果出现问题,我可以真正去找他们,给我们一些想法,但美国服务器似乎更便宜。 会分享托pipe吗? 它的电子商务定制PHP应用程序,我知道有共享主机会话等安全问题。 当然会采取预防措施,但可以共享主机是一个问题? 考虑到我对服务器的知识是非常有限的,专门的值得select吗? 我需要运行php / mysql,带有最好的无限带宽,就像我的经验一样,我不知道什么样的stream量是足够的。 请让我知道,如果我没有提供足够的信息,所以你可以回答我的问题,会很乐意进一步解释。 预先感谢任何答案:)

在Windows XP下Zend Server CE上的xDebug

我在我的Windows XP开发机器上安装了Zend Server,当我幼稚的时候安装了Zend Server,不知道Eclipse会变得如此糟糕以至于PHP开发。 我已经升级到Netbeans,但是对于debugging,他们只支持xDebug。 为了公平起见,我从来没有使用过“正确的”debugging器,但是其他人对它们表示赞赏,所以我想我会试试看。 我在Zend论坛上跟随了一些关于如何在Zend服务器上安装xDebug的方向,在这个过程中禁用了Zend Debugger。 xDebug“自定义安装说明”向导告诉我,我的PHP是用不受支持的编译器(MS VC8)编译的,不会让我下载任何东西。 我试了一些其他的xDebug二进制文件,但他们只是拒绝加载。 所以我没有一个debugging器选项。 有谁知道我可以如何改变我已经安装的PHP版本的编译器,所以我可以在Netbeans中使用debugging器? 或者我怎么能得到xDebug安装在Zend服务器上?