Articles of PHP

如何正确添加List-Unsubscribe标头?

我在LAMP堆栈上使用Postfix邮件服务器。 我使用phpmailer发送我的邮件。 我最近注意到主要的ISP已经添加了对“List-Unsubscribe”头的支持。 根据Hotmail,现场自动添加一个 你订阅了这个邮件列表。 退订 我在查看我的Facebook邮件时注意到了这一点。 所以当我查看Facebook标题时,我注意到了这一行 List-Unsubscribe: <mailto:[email protected]> X-Priority: 3 X-Mailer: ZuckMail [version 1.00] X-Facebook-Camp: engage_digest_email X-Facebook-Notify: engage_digest_email; mailid=523199eG1fe9e7abG0Gd4 List-Unsubscribe: <mailto:[email protected]> Errors-To: [email protected] X-FACEBOOK-PRIORITY: 1 所以用我的phpmailer安装程序,我添加了addCustomHeader()函数。 $x = new PHPMailer(); $x->From = "[email protected]"; $x->FromName = "Veepiz Support"; $x->AddAddress($o->emailaddress,$o->toname); $x->AddReplyTo("[email protected]", "Veepiz Support"); $x->WordWrap = 80; // set word wrap to 50 characters $x->IsHTML(true); // […]

如何知道什么memcached节点来查找其数据?

我对Memcached集群的世界很陌生 如果我有一个正在使用memcache的php web应用程序 – 它是如何做它的散列,并决定检查特定值的节点,以避免检查所有的。 奖金:如何轻松添加节点,避免重build所有散列。

在PHP 5.4中隐藏严格错误

我今天从PHP 5.3升级到PHP 5.4。 现在我的脚本显示了很多错误信息。 如何隐藏它们而不使用error_reporting(0); 里面的PHP文件? 我使用这个: error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT

PHP / Nginx错误(Win)

我在Nginx上得到这个错误信息ws: Error.log: 2012/07/23 21:20:33 [alert] 368#3636:* 2045 1024连接上游时,worker_connections不够,client:127.0.0.1,server:localhost,request:“GET / index。 PHP HTTP / 1.0“,上游:” http://127.0.0.1:80/index.php “,主机:”127.0.0.1“ 页面输出:您正在查找的页面暂时不可用。 请稍后再试。 操作系统:WinXp(SP3) configuration: worker_processes 1; error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr – $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" […]

Apache httpd进程和PHP内存不足

我有一个VPS在Centos上运行apache-php-mysql,并安装了一个drupal网站。 VPS有256MB的RAM(可能是我所有问题的根本原因…也许我只是需要更多)。 每当我尝试从多个浏览器标签(大约8 …不是800)一次打开我的网站,Apache崩溃! 我在日志上有这个: [致命错误] [客户端xxx] PHP致命错误:内存不足(分配28049408)(试图分配201335字节)在xxx行2139,referer:xxx 我在这里读了许多许多post,但我认为有一些基本的东西是我缺less的 – 如果我理解正确的话,一些php脚本在分配28MB后试图分配200K,并且没有这样做。 第一个问题是:这应该导致Apache崩溃? 接下来,我尝试着看“顶”命令,而我做我的小testing。 事实上,我看到7个httpd进程,每个预留大约30MB – 这就解释了为什么我的RAM耗尽。 如何防止apache创build新的进程,直到内存不足? 我尝试像这样configuration/etc/httpd/conf/httpd.conf: <IfModule prefork.c> StartServers 1 MinSpareServers 1 MaxSpareServers 1 ServerLimit 1 MaxClients 1 MaxRequestsPerChild 100 </IfModule> 但得到了同样的确切结果! 我错过了什么? 非常感谢! 更新: 我的PHP memory_limit是128M(由drupalpipe理页面确认…)free -m的输出: total used free shared buffers cached Mem: 256 226 29 0 0 0 -/+ buffers/cache: […]

保持NAT后的源IP

直到今天,我用一个便宜的路由器,所以我可以分享我的互联网连接,并保持一个networking服务器,同时使用NAT。 用户IP($ _SERVER ['REMOTE_ADDR'])很好,我看到用户的A类IP。 但是随着stream量每天都在增长,我不得不安装Linux服务器(Debian)来共享我的Internet连接,因为我的旧路由器无法保持stream量。 我通过使用NAT的IPTABLES共享互联网,但是现在,在将端口80转发到我的networking服务器之后,现在我看不到我的网关IP(Linux内部IP)作为任何用户的IP地址。 如何解决这个问题? 我编辑了我的post,所以我可以粘贴我目前使用的规则。 #!/bin/sh #I made a script to set the rules #I flush everything here. iptables –flush iptables –table nat –flush iptables –delete-chain iptables –table nat –delete-chain iptables -F iptables -X # I drop everything as a general rule, but this is disabled under testing # iptables -P INPUT […]

PHP执行程序wkhtmltopdf调用导致退出代码127失败

使用CentOS 6.3×64。 我试图从PHP脚本运行wkhtmltopdf (从这里 )。 我可以直接通过SSH直接调用wkhtmltopdf-amd64 。 但是,当通过exec从PHP调用它时,它总是失败,退出代码为127.path是正确的,所以这不是问题。 我可以成功地使用exec来调用ls和id等,所以问题似乎是调用wkhtmltopdf-amd64 。 我会认为这与权限有关,但我不知道要采取什么措施。 我试过apache:apache和其他所有权的程序,它有755个权限。 感谢您的任何指导! 附加说明: 对不起,以上没有进一步澄清 – 我已经确认这个问题不涉及到程序的path。 我正在使用完整的绝对path。 我已经证实,完全相同的命令可以从SSH行运行没有问题(不pipepwd )。 我也创build了一个shell脚本: #!/bin/sh echo 'hello, world!' 我可以通过exec调用这个脚本,它可以正常工作。 但是,如果我修改它 #!/bin/sh echo 'hello, world!' /full/path/to/wkhtmltopdf-amd64 'http://www.google.com/' /full/path/to/output.pdf 它然后失败并返回退出代码127。

DKIM正文哈希失败

我们用PHP应用程序发送EXIM 4.71的电子邮件。 DKIM已启用并正常工作,除非在发送特定types的邮件时导致dkim = neutral(body hash未validation) 。 Received-SPF: pass (google.com: domain of [email protected] designates 2a02:750:5::256 as permitted sender) client-ip=2a02:750:5::256; Authentication-Results: mx.google.com; spf=pass (google.com: domain of [email protected] designates 2a02:750:5::256 as permitted sender) [email protected]; dkim=neutral (body hash did not verify) [email protected] DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=letsrace.se; s=dkim; h=Content-Transfer-Encoding:Content-Type:Reply-To:From:Subject:To:Message-Id:Date; bh=9CkFmpgBio6ql+M36DtO8Gbw8keno3PlJ6db2JTrwy4=; b=ILyB0JLZLWTig346yGWzmOwk+bEgr0k3hjYyPovA4B3+ggRshzTX9yDeAeklEmYaq4H768zZc0Vn6tR9YpngllkHJ6XTf3lTPr570yWOEhE8dvCkq+M0CBXmxEApHJmoKq2Oeh7sFCHVWGiN8JXYa8ohgsSFEd5Z+xHFlj3AvbI=; 失败的电子邮件的types包含通过网站上的HTML表单input的消息,从这个应用程序发送的其他邮件都没有问题。 我一直怀疑混合行结局是罪魁祸首,但是没有能够通过使行结束正常化来改善情况。 创buildDKIM哈希后,EXIM是否执行了一些清理? 有任何想法吗?

为什么这个包(ppa:ondrej / php5,它是PHP 5.5)打破了apache2的安装?

问题 目前这个软件包(ppa:ondrej / php5)在安装最新版本的PHP 5.5时非常stream行。 我在这方面做了相当多的工作,并且在一些(开发)服务器上一切顺利。 但从今天(?)这打破了apache2安装(它清空/etc/apache2/sites-available/default文件)。 这是可重现的。 重现方式(在裸Ubuntu 64的12.04 LTS) // basic installs sudo apt-get update sudo apt-get install apache2 sudo apt-get install php5 Apache很好, nano /etc/apache2/sites-available/default现在有了有效的内容 // getting PHP 5.5.x sudo apt-get install python-software-properties (for add-apt-repository) sudo add-apt-repository ppa:ondrej/php5 sudo apt-get update sudo apt-get install php5 // php -v shows successful install of […]

无法closuresnginx和php-fpm在ubuntu 14.04中的expose_php

根据phpinfo: 加载的configuration文件: /etc/php5/fpm/php.ini # grep expose_php /etc/php5/fpm -R /etc/php5/fpm/php.ini:expose_php = Off /etc/php5/fpm/pool.d/www.conf:php_flag[expose_php] = off # curl -I https://MyHost.loc/i.php | head | grep X-Powered-By X-Powered-By: PHP/5.5.9-1ubuntu4 有人可以在Ubuntu 14.04中确认这一点吗? 任何想法如何摆脱X-Powered-By?