Articles of PHP

无法使用AJAXfile upload器上传5mb文件

我正在使用file upload插件(从: https : //github.com/valums/file-uploader )上传文件到我的网站。 如果您使用的是模式浏览器(例如Firefox 6或Chrome 13),则可以通过在POST主体中stream式传输文件进行上传,并且可以为您提供进度条。 如果您使用IE浏览器(或旧浏览器),它会回落到标准的$ _FILES(使用隐藏的iFrame)。 一切工作正常,但突然间我不能上传5MB文件在Chrome或Firefox。 当我在Chome或Firefox上传一个5MB的文件时,我得到一个500错误,我的PHP代码甚至从未运行过。 如果我使用Internet Explorer(使用$ _FILES),它工作正常。 这必须是一个configuration问题,因为我的PHP代码从来没有运行。 所以,我检查了我的设置。 /etc/php.ini中 upload_max_filesize = 15M post_max_size = 16M 我寻找LimitRequestBody ,但是这是无处可寻(和默认是无限的)。 设置看起来正确。 我debugging了一段时间,我无法弄清楚什么是错的。 有没有我失踪的设置? 如果有问题的话,服务器已经安装了suhosin。 我知道我的PHP代码的作品,因为小于4MB的file upload罚款(在所有的浏览器)。 我只有大于5MB的文件(使用Chrome / Firefox)出现问题。 奇怪的是,这在我的testing服务器上正常工作,但不是我的生产服务器。 他们可能有不同的设置(suhosin正在生产,但没有testing)。

如何将php SERVER_PORT var设置为80,在varnish后面?

如何强制PHP读取SERVER_PORT为80,当Apache侦听8080和清漆听80? 如果我的apache虚拟主机设置为8080,SERVER_PORT将始终为8080,这让我感到困扰,因为在应用程序的许多部分,有些链接是通过SERVER_NAME和SERVER_PORT一起计算的,所以我需要的是“相信” SERVER_PORT是80,所以所有的链接都会通过清漆

与PHP的MySQL群集

我有一个非常常见的LAMP堆栈,大约有6-7台带有PHP和Apache的机器,还有几台带有MySQL服务器的机器(master + slave,sharding) 我正在探索迁移到MySQL Cluster的选项。 我无法find关于它的许多信息,特别是当在PHP的webapp中使用时,在线评论和好处。 有人可以与MySQL Cluster分享他们的想法或困难/经历吗? 实际问题:迁移到mysql群集还是坚持从属+分片实时webapp是一个好主意。 谢谢

CentOS 6 – php5-pam-auth?

我在哪里可以获得PHP pam_auth模块的更新版本? 无法find它的最新版本,我可以find下载是PHP 4.3。

MySQL Table包含latin1,但被定义为UTF8,字符编码为地狱

我已经“inheritance”了一个osCommerce 2.2,PHP4和MySQL4的设置,这使得麻烦。 问题是字符编码。 虽然这些表被定义为包含UTF8但它们实际上包含latin1 。 为了将全新的东西混合在一起,看起来旧的编码器在连接到数据库时,通过设置SET CHARACTER SET 'utf8'手动改变了这个。 现在看起来像这样: MySQL: UTF8但实际上包含latin1 。 PHP: MySQL-Connection手动设置为UTF8 。 HTML:作为ISO-8859-1又名latin1 这个设置一直工作到一个星期前,当提供商改变了一些东西 (他们实际上拒绝接触数据库或任何其他的东西,但他们有服务器问题)。 有问题的部分是德国特殊字符öäüß显示正确,但是当你想插入到数据库的整个osCOmmerce会话中断,只有文本,直到该字符被插入。 要插入的文本: Das _ä_ ist ein Umlaut 被保存的文本: Das _ 当我build立连接时,通过将字符集设置为latin1来更改手动入侵的时候,每个插入都是正常的,但是数据库只传递? 而不是特殊字符。 我不知道如何解决这个问题,如果我将数据库列更改为latin1我失去了所有的特殊字符,如果我改变连接上的编码显示或插入失败。 我完全没有想法。

php(5.3.8)和apache2使用php-fpm时如何设置httpd.conf?

我想用php(5.3.8)在apache2中使用fastcgi。 我在apache中安装了fastcgi_module,并且用–enable-fpm编译了php。 我还发现了一些教程,在他们的设置中有两种方法: FastCgiServer / usr / local / apache2 / fcgi-bin / php-cgi -processes 10 要么 FastCgiExternalServer / usr / local / apache2 / fcgi-bin / php-cgi -host 127.0.0.1:9000 但是我无法在php 5.3.8中findphp-cgi 。 接下来我应该怎么做?如何在使用php-fpm和php(5.3.8)和apache2时设置httpd.conf?

PHP / tmp设备完全错误的可能原因

我在我们的Web服务器上偶尔遇到以下错误: 警告:session_start():打开(/ tmp / sess_7ifl201pvdd91rr6tr4015n5k4,O_RDWR)失败:设备上没有剩余空间(28)/home/some/script/on/my/site/script.php在线## 我的服务器pipe理员告诉我,它必须是在网站上造成这种情况,如有人通过PHP上传一个大文件。 但我有点怀疑,因为这只是在过去几天才开始发生的。 所以,我想知道是否有人知道为什么会出现这种情况? 我正在运行光速(不是apache),centos。 让我知道是否有任何更多的信息需要。

如何检测和禁止使用php攻击ips

我有一个虚拟主机,不允许编辑iptables。 从时间上来说,我有轻(约300请求/秒)的DoS攻击(通常不分发)。 我决定写一个PHP脚本来阻止这些ips。 首先,我尝试将最近10秒的所有请求存储在数据库中,并查找滥用每个请求的地址。 但是我很快意识到,这样我必须对每个DoS请求至less执行一次数据库请求,这样做不好。 然后我优化了这个方法如下: Read 'deny.txt' with blocked ip's If it contains request ip, then die() — at this point we have filtered out all known attacking ips — store requesting ip in database clean all requests older than 10 secs count requests from this ip, if it is greater than threshold, add […]

为什么我的PHP脚本不能在启动时运行? 从命令行运行很好

我通过在32位Canonical Ubuntu AWS实例中input“crontab -e”(在root用户和“ubuntu”用户中),将以下信息放入我的crontab文件中: @reboot /usr/bin/php /usr/share/nginx/www/cron/updateIp.php 我也试过了: @reboot /usr/bin/php /usr/share/nginx/www/cron/updateIp.php >> /home/ubuntu/crontab.log 而且/home/ubuntu/crontab.log在两次重新启动后不包含任何内容。 我想这个cronjob试图运行时,php和/或nginx没有加载? 但是,如果没有任何错误日志来检查,我不知道下一步该怎么做..? 编辑:即使login到框通过SSH与crontab -e创build下同一用户… cronjob不运行。 编辑2: (syslog的结果): Nov 9 13:29:02 ip-10-122-254-128 CRON[603]: (root) CMD (php /usr/share/nginx/www/cron/updateIp.php) Nov 9 13:29:02 ip-10-122-254-128 CRON[604]: (ubuntu) CMD (/usr/bin/php /usr/share/nginx/www/cron/updateIp.php >> /home/ubuntu/crontab.log 2>&1) 编辑3: 这个链接实际上提供了我正在寻找的答案。 显然我需要安装php-cgi并特别提到它,即使whereis php不显示它? 简单地安装php5-cgi并将/ usr / bin / php更改为/ usr / bin […]

从Apache迁移到Nginx后,我们的应用程序的前端不工作

这是我们的configuration文件,我们遇到了在Apache上工作的应用程序的前端function问题。 Javascript的POST方法不工作了。 server { listen 80; server_name website.com www.website.com; rewrite ^/(.*) https://website.com/$1 permanent; } server { listen 443; server_name website.com www.website.com; ssl on; ssl_certificate /etc/ssl/www_website_com.pem; ssl_certificate_key /etc/ssl/website.com.key; ssl_session_timeout 5m; root /usr/share/nginx/www.website.com; index index.html index.php; # canonicalize codeigniter url end points # if your default controller is something other than "welcome" you should change the following […]