Questions tagged «php»

PHP是一种通用脚本语言,特别适合于Web开发。在线手册是有关语言语法的绝佳资源,并且具有大量内置和扩展功能列表。大多数扩展都可以在PECL中找到。

1
如何在AWS Elastic Beanstalk上向php.ini添加指令?
我想将这些PHP设置添加到我的Elastic Beanstalk环境中: upload_max_filesize = 64M post_max_size = 64M 这些选项无法设置option_settings在.ebextensions: Namespace | Extend ---------------------------------------------|------- aws:elasticbeanstalk:application:environment | Yes aws:elasticbeanstalk:container:php:phpini | No 如何php.ini在Elastic Beanstalk容器中添加自定义设置?

5
如何在短时间内自动临时阻止IP地址对服务器造成太大影响?
我的一台LAMP服务器最近被某种脚本僵尸程序关闭,以寻找漏洞。从外观上看,它每秒发出如此多的请求,以至于服务器上的RAM过载,并使我的整个站点宕机了一个小时。该“ attacK”全部来自单个IP地址。 那么,如何在短时间内自动和临时阻止在LAMP Server上点击次数过多的IP地址?什么是完成这项工作的最佳工具,我应该在操作系统级别还是通过PHP解决此问题?

5
php mail()函数在本地开发计算机上的速度缓慢
背景:如果您出于开发目的而设置了本地apache服务器,则可能会遇到问题,即sendmail需要很长时间(至少一分钟)发送电子邮件。如果您尝试调试所生成的电子邮件的问题,这将非常令人沮丧。 互联网上有几个论坛帖子都在讨论这个问题。但是,由于我的知识有限,没有一个主题足够详细地描述如何做。以下是对我有用的步骤: 1)使用以下命令找到您的主机名(以防万一您忘记了它): :~$ cat /hosts/hostname myhostname 2)编辑文件/etc/hosts,并确保第一行如下: 127.0.0.1 localhost.localdomain localhost myhostname 3)编辑sendmail配置文件(/etc/mail/sendmail.cf在Ubuntu中)并取消注释该行#O HostsFile=/etc/hosts 4)重新启动计算机。现在计算机应该启动得更快,并且mail()函数应该几乎立即返回。但是,除非您按照步骤5进行操作,否则实际上不会发送电子邮件。 5)每当使用邮件功能时,您都必须重新使用sendmail的-f选项。例如: mail('recipient@somewhere.com', 'the subject', 'the message', null, '-fsender@somewhere.com'); 我对服务器故障同行的问题是: 可以进行哪些进一步的更改,使我不必使用sendmail -f选项?尽管添加-f选项不是很困难,但是当您的CMS(例如Drupal)在发送邮件时不使用-f选项时,这是一个问题。您可能需要破解一个核心模块才能添加此选项。
21 php  sendmail  email 

12
空的$ _POST数组
此问题已从堆栈溢出迁移,因为可以在服务器故障时回答。 迁移 9年前。 我有以下HTML / PHP页面: <?php if(empty($_SERVER['CONTENT_TYPE'])) { $type = "application/x-www-form-urlencoded"; $_SERVER['CONTENT_TYPE'] = $type; } echo "<pre>"; var_dump($_POST); var_dump(file_get_contents("php://input")); echo "</pre>"; ?> <form method="post" action="test.php"> <input type="text" name="test[1]" /> <input type="text" name="test[2]" /> <input type="text" name="test[3]" /> <input type="submit" name="action" value="Go" /> </form> 如您所见,表单将提交,预期的输出是一个POST数组,其中包含一个数组,其中包含填充的值以及一个带有值“ Go”的输入“ action”(按钮)。但是,无论我在字段中输入什么值;结果总是: array(2) { ["test"]=> …
21 php 

4
在Ubuntu 16.04,Apache上从PHP 7.2切换到7.1
我需要在Ubuntu 16.0.4上将其中一台VM上的PHP从7.2降级到7.1。上一次我尝试删除PHP并将其替换为其他版本时,Apache和MySQL遇到了各种各样的问题。有没有一种快速方法可以将PHP从7.2降级到7.1,而不必完全重新安装和配置Apache(本文撰写时为最新版本)以及服务器上的所有其他内容? 由于从软件供应商那里收到的不良信息(我声称他们的应用程序在PHP 7.2上运行),我不得不降级。原来它必须有7.1。 我尝试查找有关如何从7.2降级到7.1的信息,但仅获得“升级”结果。 谢谢您的帮助。

1
如何在Linux系统上安装PECL
http://pecl.php.net/中有PECL扩展的下载部分, 但我没有得到PECL *本身**的安装步骤。以下命令不起作用- yum intall pecl 在我的系统中,我已经安装了PECL,因此可以安装像这样的PECL扩展名- pecl install mailparse 但是,在运行pecl命令无法识别的系统中,如何首先在Fedora 7系统(旧系统)上安装PECL。
20 php  pecl 

6
从PHP连接到MySQL非常慢
我刚刚重新安装了XAMPP。第一次打开PHPMyAdmin时,我注意到它非常慢。在本地主机上打开每个页面大约需要5秒钟,这没有任何意义。我做了一个小测试用例,将责任从PHPMyAdmin转移到其他地方: $con = new PDO("mysql:host=localhost;dbname=mysql", "root", ""); $statement = $con->query('SELECT host,user,password FROM user;'); $users = $statement->fetchAll(PDO::FETCH_ASSOC); 上面的脚本只需要大约3秒钟即可运行(尽管我第一次运行该脚本要花费将近8秒钟的时间。) 然后检查是否是PDO的故障,我尝试mysql_connect改用: $con = mysql_connect("localhost", "root", ""); mysql_select_db("mysql", $con); $result = mysql_query('SELECT host,user,password FROM user;'); 花费的时间完全相同。 我本来以为是PHP的错,但是PHP代码和静态文件的提供比我单击刷新要快。我通过运行以下小脚本测试了PHP: header("Content-Type: text/plain"); for($i = 0; $i < 5000; $i++) { echo sha1(rand()) . "\n"; } 5000次sha1计算,并且该页面仍显示得比我刷新窗口还快。 然后我发现这是MySQL的错。但是再次,并没有进行太多测试就可以确定MySQL的运行速度比我需要的更快。使用MySQL …
19 windows  mysql  php  xampp 

3
使用PHP7的fastcgi_pass的权限被拒绝
我正在用PHP7.0运行LEMP。 我已经在我的服务器块中 fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; 但是,当我打开站点时,它将返回502 Bad Gateway。下面是错误日志。 *1 connect() to unix:/var/run/php/php7.0-fpm.sock failed (13: Permission denied) while connecting to upstream, client: xxx.xxx.xxx.xxx, server: example.com, request: "GET / HTTP1.1", upstream: "fsatcgi://unix:/var/run/php/php7.0-fpm.sock:", host: "example.com" 它说“ 权限被拒绝”。怎么了 我已经检查过了,但似乎找不到需要什么样的许可。 谢谢。
19 nginx  php  php7 

6
关于如何在经常使用的站点上进行维护的任何想法?
我为澳大利亚的大型游戏网站提供帮助。我们在当地时间每天早上7点到第二天凌晨1点之间进行比赛。自该网站发布以来,我们还没有跳过一天。自然,这使得维护变得极为困难,并且我们发现登台服务器在生产分支之前最多可以提交50次提交。通常,主要开发人员必须非常早地醒来以合并分支,并确保一切正常。 我们一直在尝试使登台站点与生产站点尽可能相似,但只能使其与生产站点相似。 我们的网站基于Laravel并带有Node.JS服务器,以实现实时。我们正在使用Laravel Forge。 是否有人对我们如何更频繁地推送更新有任何建议?我们对任何事物都开放。


7
如何添加Postgres支持到Homebrew安装的PHP?
我已经使用Homebrew安装并配置了新版本的PHP,包括MySQL支持和XDebug。很好 但是,我还需要安装对PostgreSQL的支持。我该怎么做? 我发现第一次安装PHP时很容易,只需添加以下选项即可: homebrew install php53 --with-pgsql 如果已经安装了我的PHP,而又没有完全重新安装它,如何实现类似的效果?或者,如果我重新安装,是否保留所有配置和其他设置(例如XDebug)?
18 php  mac-osx 

4
无法通过pecl安装APC安装APC
当我尝试通过pecl install APC-3.1.5 甚至什pecl install APC至在make命令包中安装APC 时出现以下错误: running: make /bin/sh /var/tmp/pear-build-root/APC-3.1.5/libtool --mode=compile cc -I. -I/var/tmp/APC -DPHP_ATOM_INC -I/var/tmp/pear-build-root/APC-3.1.5/include -I/var/tmp/pear-build-root/APC-3.1.5/main -I/var/tmp/APC -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /var/tmp/APC/apc.c -o apc.lo mkdir .libs cc -I. -I/var/tmp/APC -DPHP_ATOM_INC -I/var/tmp/pear-build-root/APC-3.1.5/include -I/var/tmp/pear-build-root/APC-3.1.5/main -I/var/tmp/APC -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 …
18 php  centos  centos5 

4
如何确定基于Apache / PHP的Web应用程序中明显的内存泄漏的原因?
我的EC2实例大约每周一次,但有时甚至一天运行几次,几天后,我的EC2实例变得无响应。Munin的内存图讲述了一个非常简单的故事:分配给“应用程序”的内存开始增长,并且直到交换功能被完全使用并且实例被有效地压倒才停止。另一个自定义图形显示不断增长的过程是apache2。 我使用mod_php和一些PHP脚本运行标准的prefork Apache安装程序。正如您在下图中所看到的,发生了一些事情,这些事件触发apache2进程开始消耗越来越多的内存。我遇到了第一个绿色高峰,在事情失控之前重新启动了Apache。第二个峰值进一步扩大了,该实例必须完全重新启动。 穆宁记忆图 我想知道的是如何最好地调试它。缺少使用FastCGI设置PHP并使其在自己的进程中运行的方法,找出它是Apache还是PHP和我的代码的组合导致过多内存使用的好方法是什么?你们将采取什么步骤来跟踪此问题? 更新:在涉及到strace之后,我能够跟踪泄漏,如Matt所建议的那样。 找到内存中逐渐且持续增长的apache2进程后,我在PHP脚本中添加了更多error_log()调用,以打印出在执行过程中各个点使用的RSS总量(使用ps的输出)。但是事实证明这是令人误解的-尽管似乎RSS仅在执行完脚本后才跳起来,但后来的调试表明事实并非如此。小心! 幸运的是,所有这些error_log()调用最终都非常有用。当我启动strace(strace -p <pid> -tt -o trace.log -s 256)时,我发现对于每个请求,该进程都在分配约400k的内存(查找“ brk”系统调用,并从上次调用中减去第一个调用的参数-通常有几个传入)一个接一个)。然后,我搜索了包含我的error_log()消息的最新“写入”系统调用,该消息告诉我在脚本中的哪个位置分配了内存。通过再战略性地放置几个error_log()调用以更精确地定位位置,我终于找到了罪魁祸首。 当我们从PHP脚本中调用curl_exec()时,内存正在泄漏。一些与处理SSL连接有关的curl代码做错了-当我切换到HTTP时,泄漏消失了。Curl的changelog引用了7.19.5(我们在7.18.2中已修复)中的一些SSL内存泄漏,因此我将在下一个尝试。 同时,我正在以非常低的MaxRequestsPerChild运行,这使Apache处于合理范围之内。感谢大家!
18 php  apache-2.2  memory 

1
Cron作业使用哪个时区?
我猜我的PHP时间和服务器时间之间存在差异。 当我检查PHP中的当前时间时,表明正在使用MST。但是,cron作业未在正确的时间运行。 如何检查服务器本身正在使用的时区,而不是设置要使用的PHP?
17 linux  php  time  timezone 

1
如何在Ubuntu上为PHP安装/启用GMP(数学函数)?
当调用类似的gmp数学函数时gmp_mod,我得到: Fatal error: Call to undefined function gmp_mod() 我已经安装了php5-gmp软件包并重新启动了Web服务器,但该功能仍未定义。服务器正在运行Ubuntu 10.04,PHP正在作为Apache模块运行。所有软件都是从官方软件包中安装的。 如何在PHP中启用GMP数学功能?我正在寻找使用官方软件包而不是从源代码进行编译的解决方案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.