Articles of PHP

如何诊断超时PHP应用程序?

对不起,我不能提供非常详细的信息,但只有symtoms … 这是一个CentOS + Apache + MySQL + PHPnetworking应用程序。 在最近几周里,大约在上午12:05到上午12:50,应用程序超时并且没有任何回报给浏览器。 我们查看了apache日志,防火墙日志,顶级cpu和内存使用情况,并没有看到任何特别的东西。 apache日志显示stream量增长不超过200%,与正常时期相比。 我们应该如何着手进一步诊断这个问题? 更新: 在繁忙期间, netstat显示大约300个来自2个IP地址的活动syn_recv和close_wait 。 有没有办法将个别IP的影响降到最低?

PHP脚本通过HTTP运行,但不通过HTTPS

我正在使用从HTTP运行的脚本而不是从HTTPS运行的项目中遇到实际问题。 这个问题出现的地方是需要权限来通过exec()或passthru()在服务器上执行一个命令,或者当脚本尝试使用fopen打开一个文件时。 当使用HTTPS时,exec()和passthru()函数返回一个127错误,我相信这是一个未find命令的错误,而fopen将抛出一个Permission deniedexception。 最重要的是我不能真正理解服务器上的设置。 我确定他们运行的是Apache,但是我在/etc/group文件中看不到它。 我想这是因为他们有plesk(有一个psacln组)。 我真的需要解决这个问题,因为它吸了几天和几天的时间。 但更重要的是,我真的很想了解这里发生了什么,为什么。 任何人都可以告诉我是否可以从HTTPS运行这些脚本? 操作系统是Ubuntu和PHP版本是5.2.4 非常感谢 有关当前设置的更多信息 httpd.conf is blank //ports.conf Listen 80 <IfModule mod_ssl.c> Listen 443 </IfModule> // envvars export APACHE_RUN_USER=www-data export APACHE_RUN_GROUP=www-data export APACHE_PID_FILE=/var/run/apache2.pid // part of apache2.conf where all the configuration seems to be # These need to be set in /etc/apache2/envvars User ${APACHE_RUN_USER} Group ${APACHE_RUN_GROUP} […]

Amazon EC2上的PostgreSQL 9.0和PHP

如何在我的Amazon EC2实例上启用PHP中的PostgreSQL 9.0支持? 我正在运行免费的32位Linux Micro实例。 我已经按照这些指示安装了PostgreSQL 9.0。http ://www.imperialwicket.com/aws-install-postgresql-90-on-amazon-linux 如果我用yum安装php-pgsql包,它只支持PostgreSQL 8.4.7。 最终我想通过PDO使用PostgreSQL 9.0。

为什么“php -i | grep php.ini”找不到php.ini的正确path?

我知道我的php.ini位于/etc/php.ini但是当我运行php -i|grep php.ini我得到这个输出 Configuration File (php.ini) Path => /usr/local/lib 这个目录里没有任何东西,我知道我的php.ini位于哪里,为什么我得到这个输出?

远程服务器无法访问RDS数据库

从我的服务器访问我的Amazon RDS MySQL数据库时遇到问题。 我得到这个: – [Thu Sep 22 13:45:33 2011] [error] [client xx.xx.xx.xx] PHP Warning: mysqli::mysqli() [<a href='function.mysqli-mysqli'>fqli-mysqli</a>]: (HY000/2003): Can't connect to MySQL server on 'xxxx-1.rds.amazonaws.com' (110) xxx.php on line 22, referer: xxx** 我已经尝试通过服务器上的cmdline手动访问: mysql -h xxxx.rds.amazonaws.com -p –port = 3306 然后我要求input密码,然后挂起来说 错误2003(HY000):无法连接到'xxxx.rds.amazonaws.com'(110)上的MySQL服务器 这是一个端口和/或防火墙相关的问题? 如果是的话,我该怎么处理? 是不是因为我已经在3306端口上运行了mysql srvr?

覆盖共享主机上的httpd.conf和php.ini

我的应用程序需要在httpd.conf启用mod_rewrite和AllowEncodedSlashes 。 它也需要一些PHP扩展启用,但我找不到如何更改我的主机的面板上的这些设置。 我可以用编程方式吗?

用户使用PHP上传不同服务器上的文件?

如果我只有PHP-FPM(前面有其他Nginx服务器)有一打“工作”服务器,是否可以设置PHP来将用户上传的文件存储在不同的服务器上? 我正在寻求避免同步每个“工作”服务器上的用户文件。 我想保持用户上传的文件在一个孤立的服务器上。 对于需要公众访问的文件,可以通过CDN进行分发。 我有几个想要这样做的原因: 1)所有上传文件的总和文件大小为几GB。 其中99%是jpg / png / pdf,但其中有成千上万。 如果我添加另一个“工作”服务器,我宁愿不将这些文件同步到另一台服务器。 这些“工作”服务器应该只包含应用程序代码并完成工作。 2)从安全angular度来看,我不希望用户上传这些服务器上的文件。 所以我基本上想避免在“Work”服务器的硬盘上写这些文件。 我有什么select,如果有的话?

如何在Heroku上使用'public'目录部署Zend Framework应用程序?

基本上对于Facebook选项卡,我有一个PHP应用程序,并希望Heroku使用“公共”文件夹作为Web服务器的根文件夹,而不是指向应用程序文件的根。 任何帮助将会很棒,因为Heroku似乎没有围绕它的configuration选项大量的文档。 谢谢。

testing备份的正确执行和完整性

每晚我的公司都会在备份服务器上自动备份我们所有的服务器: — backups folder —- server1 backups folder —— server1_backup_files.7z —— server1_backup_db.7z —- server2 backups folder —— server2_backup_files.7z —— server2_backup_db.7z —- server3 backups folder —— server3_backup_files.7z —— server3_backup_db.7z —- etc 现在我必须自动testing每晚的备份的正确执行和完整性: 如果我有我想要的备份数量 如果没有存档是腐败的 否则接收警报 我不知道如何做这些testing。 那么如何实现自动化和使用什么语言? 或程序? 我想这在大公司很普遍。 我正在寻找想法或文章来指导我。 编辑1 :在每台服务器上使用Cobian Backup 10完成备份,并发送到专用于备份的服务器

Nginx:closuresgzip到PDF文件

我正在使用这个代码来通过PHP提供下载文件: $file='file.pdf'; $filepath="/path-to-download-folder/$file"; if(!file_exists($filepath)){ header('HTTP/1.1 404 Not Found'); exit; }elseif(!is_file($filepath) or !is_readable($filepath)){ header('HTTP/1.1 403 Forbidden'); exit; }else{ header('Cache-Control: no-store, no-cache, must-revalidate'); header('Content-Type: '.mime_content_type($filepath)); header('Content-Length: '.filesize($filepath)); header('Content-Disposition: attachment; filename="'.$file.'"'); set_time_limit(0); // Big files/slow connections may result in incomplete downloads readfile($filepath); exit; } 但是有些人正在收到一个损坏的PDF文件。 例如: http : //mlkshk.com/r/8FGS 在Nginx中我有这样的: gzip on; gzip_disable "msie6"; # gzip_vary on; # […]