Articles of PHP

从vhost或.htaccess覆盖php.iniconfiguration

我希望我的Apacheconfiguration中的一个特定的虚拟主机覆盖auto_prepend PHPconfiguration指令,并始终包含一个PHP文件,没有包括它的其他网站。 一种select是在Apache中使用SetEnv ,在PHP中使用getenv ,在php.ini中使用auto_prepend

无法上传到tmp目录

我试图在PHP中testing一个http图像上传function。 我已经在OSX(本地)和Ubuntu(远程)上的Apache上尝试了这一点。 在php.ini中,我设置了upload_tmp_dir = /var/tmp/http-upload 。 tmp和http-upload权限都设置为drwxrwxrwt 。 每次我尝试上传,我得到一个错误,该文件不存在于临时位置。 我在configuration中丢失了什么? 实际的上传function是: if ($_FILES) { $target_path = '/assets/logos' . basename($_FILES['logo']['name']); } if (move_uploaded_file($_FILES['logo']['tmp_name'], $target_path)) { echo 'success'; } else { echo 'fail'; } 具体的错误是: Warning: move_uploaded_file(/logos/1317156765-shinetsu.gif): failed to open stream: No such file or directory in upload.php on line 8 Warning: move_uploaded_file(): Unable to move '/tmp/http-upload/php8CNWja' […]

解谜:开启https时显示php代码

当我尝试设置https(让nginx在443上使用ssl设置)并访问我的页面时,出现了令人惊讶的事情,我看到了我的php代码正在显示。 我在nginx config中看到这个fastcgi_pass 127.0.0.1:9000; 这是否意味着nginx将PHP请求直接转到9000端口? 我的https设置是这样的 server { listen 443; ssl on; ssl_certificate /etc/domain_com.crt; ssl_certificate_key /etc/domain.key; ssl_protocols SSLv3 TLSv1; ssl_ciphers ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM; server_name domain.com; } 顺便说一句,我的原始结构是haproxy到Nginx。 希望有人在这方面有经验可以点亮我一点。 谢谢!

Apache:使用Fast-CGI并行运行标准PHP

我想运行一个服务器,通过FastCGI将某些请求委托给一个C ++脚本 – 我怎样才能configurationApache呢? 将请求redirect到我可以在某个configuration文件中定义的特定页面就足够了,但不幸的是,我不知道是哪一个以及如何。 如果有人能帮忙,我会很高兴的 – 谢谢。

503错误当eAccelerator启动时清除caching

我有一个在x-large Amazon服务器上运行的Magento安装。 我在服务器上安装了Varnish,memcached和eAccelerator。 起初一切工作正常,但在某个时候,它停止工作,抛出503错误与下面的清漆caching邮票。 当我禁用eaccelerator,错误消失,网站正在工作。 这是我的eacceleratorconfiguration: extension="eaccelerator.so" eaccelerator.shm_size = "512" eaccelerator.cache_dir = "/var/cache/php-eaccelerator" eaccelerator.enable = "1" eaccelerator.optimizer = "1" eaccelerator.debug = 0 eaccelerator.log_file = "/var/log/httpd/eaccelerator_log" eaccelerator.name_space = "" eaccelerator.check_mtime = "1" eaccelerator.filter = "" eaccelerator.shm_ttl = "0" eaccelerator.shm_prune_period = "0" eaccelerator.shm_only = "0" eaccelerator.allowed_admin_path = "" 任何提示?

防止error_log泛滥

有没有办法让httpd / php停止logging错误,如果他们一遍又一遍地重复,以防止洪水? 目前,/ usr / local / apache / logs / error_log文件正在被淹没,并希望阻止该文件。

高CPU使用率+低内存使用率

正如你在下面看到的,Apache正在使用大量的CPU。 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 28577 apache 15 0 99676 53m 3488 S 21 0.2 1:13.67 httpd 28568 apache 15 0 99676 53m 3496 S 19 0.2 1:14.92 httpd 28608 apache 15 0 99676 53m 3428 R 19 0.2 0:28.28 httpd 28615 apache 15 0 99676 53m […]

Debain服务器“HTOP”:显示几个PHP-CGI实例

我是Debian服务器的新手(一般Linux VPS),当我运行HTOP“app”时,有一个关于/ usr / bin-php-cgi几次显示为“任务”的问题。 htop截图http://i45.tinypic.com/34et46u.png 我在网上找不到任何有关为什么有几个php-cgi任务正在运行的信息。 这是正常的,预计? 在我看来,这是一个相当优化的服务器。 它运行Debian 6.0 32bit与lighttpd和PHP只有21MB的RAM。 谢谢。

使用PHP失败绑定到LDAPS

我们终于build立了我们的服务器来接受ldap SSL连接,这要归功于有帮助的成员回答的另一个问题。 我们现在的问题是,当试图使用下面的简单的PHP脚本绑定到ldap时,我们经常失败。 绑定使用ldap而不是ldaps工作得很好使用脚本,所以我知道ldap已启用。 捕手是在使用LDP.exe时,我们可以使用安全连接成功连接并绑定到端口636上的ldap。 我们失败的脚本如下: <?php $ldap = ldap_connect("ldaps://localhost"); $username="user"; $password="pass"; if($bind = ldap_bind($ldap, $username,$password )) echo "logged in"; else echo "fail"; echo "<br/>done"; ?> 我们也尝试input用户名为“user @ domain”或“domain / user”,但没有成功。 看来我永远有LDAP / Cert的问题。 我们的环境是Server 2008。

更快地处理多个请求

背景 我正在build立一个游戏,监视外部行为(微博,FB喜欢等),并定期更新用户更新的信息(每10秒左右通过AJAX)。 所有的用户在一定时间内都会被放入谷歌街景,而且他们需要四处寻找标记。 游戏的思想是标记被隐藏起来,直到用户靠近它们,因此,我们不能将它们存储在JS中(太容易查看源代码)。 所以,每当用户移动时,我们都会发送一个AJAX请求发送经纬度,以便我们可以显示标记,如果他们在正确的区域。 问题 我们有几百人一次玩这个游戏,期待更多。 响应时间约为10 / 20ms,我们正在使用APC,但是当我们打了几百个用户时,服务器的响应时间正在显着减慢(特别是当这些人在街景上跑来跑去时,提出请求或者两个,每一个,每一秒)。 题 我们正在使用4GB内存的LAMP堆栈(我们可以在云端进行更改),但是我想知道是否有更好,更具可扩展性的方式来处理这个问题。 我一直在阅读关于Nginx的许多内容,那么这对于我们的体系结构是否可以同时处理更多的请求? 其他人如何使用LAMP堆栈来处理这种types的轮询?