Articles of PHP

PHP邮件()函数 – “从”名称被Exchange Server覆盖

我最初发布这堆栈溢出,但被告知它可能会更好地放在这里在Serverfault。 我试图从一个PHP脚本发送一个非常简单的电子邮件 mail($to,$subject,$message,$headers); $headers是: $headers = "From: Toms Script <[email protected]>\n\r"; 我似乎遇到的问题是,当电子邮件命中我们的Exchange服务器发送,它认识到我们的电子邮件地址“ noreply ”保存在“系统Notificatons”的名称,并从该名称,而不是名称发送电子邮件在我的PHP脚本(汤姆斯脚本)中定义。 有没有办法阻止Microsoft Exchange进行这种更改,以便我们可以根据不同的脚本命名不同的电子邮件,但是仍然从“noreply”电子邮件地址发送邮件?

2006年:MySQL服务器已经消失

我得到“失去连接到MySQL服务器”和“2006:MySQL服务器已经消失”错误,以至于服务器无法使用。 有关于这个问题的问题,但没有适用于我的情况; 例如,没有networking连接(服务器通过套接字连接到同一台机器上的客户机进程),并且没有长时间的查询(机器正在运行多个CMS – mediawiki,drupal和joomla – PHPMyAdmin,但没有什么exception的查询生成,AFAIK)。 我把所有的超时都提高到了一定程度, +—————————–+———-+ | Variable_name | Value | +—————————–+———-+ | connect_timeout | 60 | | delayed_insert_timeout | 300 | | innodb_flush_log_at_timeout | 1 | | innodb_lock_wait_timeout | 50 | | innodb_rollback_on_timeout | OFF | | interactive_timeout | 28800 | | lock_wait_timeout | 31536000 | | net_read_timeout | 6000 | […]

很长的过程PHP几分钟后停止

stream程结束的原因是什么? 发生这种情况时,这是来自log_file的部分。 2015-01-28 13:28:19.808 [INFO] [62.54.16.41:52122-0#APVH_mysecrets.omg] Connection idle time: 901 while in state: 5 watching for event: 25,close! 2015-01-28 13:28:19.808 [NOTICE] [62.54.16.41:52122-0#APVH_mysecrets.omg] Content len: 0, Request line: 'GET /book/proce.php HTTP/1.1' 2015-01-28 13:28:19.808 [INFO] [62.54.16.41:52122-0#APVH_mysecrets.omg] Cookie len: 287, __utma=180804770.1735794271.1422399099.1422446914.1423443528.7; __utmb=180845770.5.10.1422443528; __utmc=180804770; __utmt=1; __utmz=180804770.1422339099.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __atuvc=145%7C4; __atuvs=54c8c408a6681274004; PHPSESSID=q2mptsiddiminjd1aesv961ob0 2015-01-28 13:28:19.808 [INFO] [62.54.16.41:52122-0#APVH_mysecrets.omg] HttpExtConnector state: 8, request body sent: […]

自动SaaS缩放

我正在考虑如何最好地设置自动缩放的SaaS应用程序,并已经达到了我不确定如何解决的一个步骤。 要正确地描述这个问题,我最好先解释一下如何看待整个过程: 首先,我将把主站点放在一个单独的处理注册的VPS上,并拥有所有关于实际应用服务器的信息,它们的负载和用户数量等等。 我正在考虑一个cron作业或者其他什么东西会被检查,这样我就可以有更多的用户空间,如果我低于这个数字,就开始自动build立一个新的VPS实例。 我已经决定使用DigitalOcean和他们的API来设置水滴,然后通过在DigitalOcean上创build水滴时,通过在ServerPilot设置脚本中以CloudInit用户元数据的forms发送来连接到ServerPilot。 然后,我可以使用ServerPilot和DigitalOCean API的组合来检查服务器,创build“应用程序”,数据库的,连接域等。 现在到棘手的部分。 我需要以某种方式获得在新创build的服务器上设置的Git存储库,而不需要手动进行SSH连接。 我的select似乎有限。 我从一开始就无法设置一些正常的web-api来pipe理git和app-deploy,因为ServerPilot在运行CloudInit时没有做到这一点。 一种可能性是在CloudInit中包含一个自定义脚本,作为基本的Web API来设置和部署PHP应用程序。 这是当我开始查看Sinatra for Ruby或瓶颈/python。 如果我理解正确,他们可以提供一个没有安装nginx / apache的API端点。 或者,也许我完全在这里? 在继续之前,我想就目前的想法提出意见。 这个计划听起来合理吗? 有没有更好的替代ServerPilot这种用途,我宁愿远离自己的configuration文件? 最好是自己制作新的水滴图像文件,而不是使用ServerPilot,在正常的PHP中包含一个“manager”-app API来设置用户应用程序? 我有点喜欢让ServerPilot处理设置的想法,因为我不是主要的服务器人。 任何input赞赏。

PHP警告:未知:写入会话数据失败(memcached)。 非常罕见

几周前我安装了memcached(2.2.0)libmemached(1.0.18)。 (Apache / 2.4.10和PHP 5.5.20),主要用于php会话pipe理。 一般来说,我对表演非常满意,但我偶尔会注意到这个警告。 它每天发生两三次,每次发送三条消息(几秒钟内)。 我可能每天跑大约5万次 – 所以这只是一小部分。 我无法复制。 而且我看不出有什么帮助。 所有的memcachedconfiguration设置都是标准的,我从命令行启动了守护进程: memcached -d -u nobody -m 128 127.0.0.1 -p 11211 客户端的一些有趣的事情会导致这些罕见的打嗝吗? 更新…find线索… ; The amount of retries for failed store commands. ; This mechanism allows transparent fail-over to secondary servers when ; set/increment/decrement/setMulti operations fail on the desired server in a multi-server ; […]

隔离一个高CPU的PHP进程

我有一个16 CPU的核心服务器,经历40-70的一致负载平均值。 在几个小时的top命令露营之后,我已经隔离了单个用户的CPU峰值。 在top命令按c后,高CPU命令是/usr/bin/php /home/user/public_html/index.php ,这对于隔离是基本没用的,因为这是我们整个PHP MVC框架的主控制器处理程序(CodeIgniter,如果你好奇)。 我之所以还没有使用代码分析器,是因为这个用户下的任何PHP进程看起来一直都是高CPU占用率。 我已经仔细检查了我们的slow-query.log(MySQL),并且这个Web应用程序生成了接近于0的慢速查询。 问题: 代码分析是这个应用程序的主要答案? 为什么传入的PHP请求只有一个用户一直很高? 为什么这个Web应用程序的任何和所有传入的PHP请求是高CPU使用率? 可能是一个超载或效率低下的MySQL数据库导致这些PHP进程消耗高于正常的CPU使用率? 还是两个完全独立? 硬件升级的时间? 你怎么知道这个区别?

Amazon IP不再允许MySQL连接(错误104)

我正在使用Amazon EC2服务器托pipephpmyadmin的组项目。 我们有一个PHP / MySQL网站托pipe在我学校的服务器上,使数据库连接到亚马逊。 最近我的一个小组成员创build了一个脚本,用一堆条目填充我们的数据库,现在当我进入我们组的主页时,有一个(104)错误信息,我们无法连接到数据库。 我不太了解这个问题的具体情况,因为我没有创build脚本,但是我希望得到一些关于问题是什么以及如何解决的build议。 到目前为止,我已经重新启动我的amazon实例,重新启动mysqld,并重新启动我的apache2服务器。 以下是我相信造成的错误。 <?php session_start(); include "connection.php"; /* EXTREMELY HARD CODED XD */ function rand_date($min_date, $max_date) { $min_epoch = strtotime($min_date); $max_epoch = strtotime($max_date); $rand_epoch = rand($min_epoch, $max_epoch); return date('Ymd H:i:s', $rand_epoch); } function generateRandomString($length = 4) { //$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $characters = '1234abcd'; $charactersLength = strlen($characters); $randomString = ''; […]

如何防止Opera Turbo压缩

我有一个网站(运行Apache和PHP),允许用户下载JPEG。 用户点击一次链接下载JPEG,就像下载zip文件一样(不使用右键另存为)。 处理下载的PHP脚本添加这些头文件: header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=download.jpg'); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($file_final)); 启用Opera Turbofunction的Opera用户遇到问题。 他们得到的文件已被Opera服务器压缩,而不是获取JPEG文件。 (我认为他们是WebP图像,他们以RIFFÞÃ WEBPVP8 )。 它们在浏览器中显示相同,但​​是当用户将它们下载到桌面时,它们不能使用它们。 如何configuration我的Web服务器,以防止Opera Turbo压缩JPEG? 有一个HTTP头,我可以发送?

vServer上HHVM实例的最大内存

我试图在我的vServer hhvm和使用的内存有问题。 性能很好,但使用的内存消耗是可怕的。 我有一台最小4GB和最大8GB内存的vServer,1天后hhvm使用大约2.4GB的可用内存,但仍然在增长。 在server.ini中有一个选项来设置hhvm进程应该使用的最大内存吗? 我目前正在hhvm中运行Typo3和Prestashop location ~ \.php$ { try_files $uri =404; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_pass unix:/var/run/hhvm/hhvm.sock; } 和server.ini ; php options pid = /var/run/hhvm/pid ; hhvm specific ;hhvm.server.port = 9000 hhvm.server.file_socket = /var/run/hhvm/hhvm.sock hhvm.server.type = fastcgi hhvm.server.default_document = index.php hhvm.log.use_log_file = true hhvm.log.file = /var/log/hhvm/error.log hhvm.repo.central.path = /var/run/hhvm/hhvm.hhbc

PHP的内部服务器不可见外部从亚马逊aws

我正在做一些安全性几乎为零的服务器上的testing。 对于这些testing,我想使用从5.4版本内部提供的php服务器。 但是,在亚马逊AWS绑定的端口不能从外部访问(挂起连接..): $ php -S 10.138.XXX.XXX:81 -t ~/webapps/ssh PHP 5.4.37 Development Server started at Fri Feb 20 23:22:12 2015 现在我们可以访问该地区的php服务器了: wget 10.138.XXX.XXX:81/webconsole.php 但是,当尝试远程访问连接挂起/超时 以下是仅在本地主机上可见的端口 – 而非外部: $ netstat -an | grep 81 #81 is the php port number tcp 0 0 10.138.xxx.xxx:YY 0.0.0.0:* LISTEN 作为一个反例,我们来看一下Jetty服务器端口,这个端口在外部是可见的: 这是一个可见的外部端口8080: root@ip-10-138-XXX-XXX ~]$ netstat -an | grep 8080 tcp […]