Articles of PHP

Owncloud / Apache服务器不会增加最大file upload

我已经试过了我能想到的一切。 我目前正在尝试增加我们的apache owncloud服务器上的最大file upload大小。 我已经更改了/etc/php.ini值: upload_max_filesize和post_max_size 重新启动httpd服务后,文件大小尚未更改。 我尝试了几个不同的价值而没有成功 然后,我编辑了upload_max_filesize和post_max_size的owncloud目录根目录下的.htaccess文件,重新启动后仍然无法超过2m限制。 我创build了一个phpinfo文件,事实上它是从/etc/php.ini文件中提取的。 任何帮助将不胜感激。

PHP-FPM不显示在phpinfo()

我已经在Centos + Apache上安装了php-fpm,使用这个手册 – http://www.howtoforge.com/using-php5-fpm-with-apache2-on-centos-6.2-p2,但是PHP-FPM不显示在phpinfo ()。 我不明白为什么。 PHP-FPM过程安装并运行得很好: # service php-fpm status php-fpm (pid 13349) is running… # service php-fpm configtest [29-Apr-2013 14:17:34] NOTICE: configuration file /etc/php-fpm.conf test is successful 我的/etc/php-fpm.conf : ;;;;;;;;;;;;;;;;;;;;; ; FPM Configuration ; ;;;;;;;;;;;;;;;;;;;;; ; All relative paths in this configuration file are relative to PHP's install ; prefix. ; Include […]

Apache MaxClients到达,服务器无响应,甚至非高峰

我们有一台几乎每天都没有响应的Apache服务器。 通过检查/ server-status(mod_status)我们可以看到我们有60个subprocess都处于“W”(发送应答)状态。 如果我们运行service httpd restart一切恢复正常,问题消失了一天左右。 如果我们不是重新启动Apache来终止每个subprocess,问题仍然存在(这是我们访问服务器状态的唯一方法,直到所有进程都进入“W”状态)。 对我来说,似乎我们的PHP脚本永远不会完成,当问题发生时,这使我认为这是一个MySQL,Solr,或PHP / Apache的超时问题。 然而… Solr / MySQL立即响应。 有大量的MySQL连接可用(我们使用AWS-RDS,允许的最大连接数大于Apache进程数)。 RAM仍然很好(每个进程是10米x 60 = 600Mb的RAM,直到有足够的空闲)。 PHP的max_exectution_time设置为“30”。 Apache TimeOut被设置为“60”。 我们不使用持续的MySQL连接。 我们使用curl_setopt($conn, CURLOPT_FORBID_REUSE, 0)来查询Solr(我希望这会通过curl正确地收集垃圾,如果连接消失的话)。 看来尽pipe许多进程永远不会结束……我离开了一个进程,同时杀死了所有其他进程,这个进程仍然活着2个小时,仍然服务于同一页面(我可以看到这/服务器状态)通常需要50ms来响应。 我们不使用set_time_limit(0)或者在我们的代码中使用任何愚蠢的东西。 我假设省略set_time_limit意味着脚本将在max_execution_time之后完成。 我有一个理论认为,Apache的ListenBacklog设置得太高,每当我们杀死进程时,60个新进程立即启动,所有这些都试图对已经离开的客户做出响应。 这将解释为什么当我们重新启动服务器时问题消失了。 但似乎ListenBacklog没有设置,因此默认的“511”将被使用。 我试图连续几次杀死所有的subprocess,以清除积压,但问题仍然存在…所有PHP页面的新请求都会永远响应(大多数不响应)。 PHPconfiguration: max_execution_time = 30 max_input_time = 60 safe_mode = off Apacheconfiguration: KeepAlive off <IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit […]

企业用户在外部网站上的无缝validation

背景: 全球公司拥有多个地点和不同的networking和IT系统。 大多数networking都是基于Windows的并运行Active Directory,有些则通过ADFS连接。 有些是纯粹的MACnetworking。 一个位置没有networking或域控制器。 在LAMP环境(Centos 6,Apache 2.2,MySQL 5.1,PHP 5.3)上托pipe的外部网站充当公司内联网。 目前,用户必须使用不同的凭证集login到Intranet,才能访问其域帐户。 场景: Web团队希望使用户能够享受无缝身份validation,以便在从任何公司networking内部访问时不需要login到Intranet,而是在从本地或外部访问站点时使其能够使用他们的域凭据办公室。 其他用户将继续有一个单独的用户名和密码。 审议: 用户可以select浏览器 英国公司IT支持只有Windows Web团队是基于最less的IIS知识的LAMP 如果英国成功,该系统将扩展到所有其他国家 另一个项目正在使用ADFS来连接公司内的所有Windowsnetworking,但是这个项目在6个月内还不能完成 我已经通过论坛,发现了一些post和答案,但我仍然有几个问题,主要是: 我们可以实现企业用户在外部网站的无缝validation? 一些我已经审查的职位 AD单点login… 自动validationWindows用户… 使用LDAP检查AD用户… 微软的AD和PHP … 对于任何遇到这个post的人,我们做了以下几点: 在Web服务器和AD林中的DC之间创buildVPN隧道 编辑/ etc / hosts文件为森林中的每个域kdc添加映射 编辑/etc/krb5.conf以指定领域及其kdcs,并为每个领域添加域领域映射 为网站编辑虚拟主机文件以添加需要Kerberos身份validation的位置(可以使用目录块)。 增加了所有领域的空格分隔列表到位置块 为每个域生成keytab文件并将其安装在Linux服务器上 可能不理想,但它的作品。 在Web服务器之间build立一个VPN

curl为什么会给$ _SERVER 给浏览器一个不同的响应?

我有一个简单的testingPHP页面: <?php echo $_SERVER['HTTP_HOST'] . '<br/>'; echo $_SERVER['REQUEST_URI']; ?> 当我用浏览器访问这个页面(我testing过Chrome和链接)时,它给了我期望的输出: 10.1.25.222 /test.php 但是当我用curl 10.1.25.222/test.php访问它时: 10.1.25.222<br/>HTTP://10.1.25.222/test.php 给我HTTP_HOST我期待,但不是我期待的REQUEST_URI

php-devel安装红帽失败6

我试图安装pecl mongodb驱动程序,为此我需要phpize (php-devel) 。 有谁知道我该如何解决这个问题,或者有另一种方法来安装php-mongodb driver ? 我试着build议:使用–skip-broken来解决问题并运行: rpm -Va –nofiles –nodigest也没有工作 sudo yum install php-devel 加载的插件:rhnplugin 该系统正在接收来自RHN Classic或RHN Satellite的更新。 设置安装过程 解决依赖性 – >运行事务检查 —>包将安装php-devel.x86_64 0:5.3.3-22.el6 – >处理依赖:php(x86-64)= 5.3.3-22.el6包:php-devel-5.3.3-22.el6.x86_64 – >完成依赖关系解决scheme 错误:软件包:php-devel-5.3.3-22.el6.x86_64(shared-rhel-x86_64-server-optional-6) 需要:php(x86-64)= 5.3.3-22.el6 安装:php-5.3.3-27.el6_5.x86_64(@ rhel-x86_64-server-6) PHP(x86-64)= 5.3.3-27.el6_5 可用:php-5.3.2-6.el6.x86_64(cust_drv-rhel-x86_64-server-6-default-nonprod) PHP(x86-64)= 5.3.2-6.el6 可用:php-5.3.2-6.el6_0.1.x86_64(cust_drv-rhel-x86_64-server-6-default-nonprod) PHP(x86-64)= 5.3.2-6.el6_0.1 可用:php-5.3.3-3.el6.x86_64(cust_drv-rhel-x86_64-server-6-default-nonprod) PHP(x86-64)= 5.3.3-3.el6 可用:php-5.3.3-3.el6_1.3.x86_64(cust_drv-rhel-x86_64-server-6-default-nonprod) PHP(x86-64)= 5.3.3-3.el6_1.3 可用:php-5.3.3-3.el6_2.5.x86_64(cust_drv-rhel-x86_64-server-6-default-nonprod) PHP(x86-64)= 5.3.3-3.el6_2.5 可用:php-5.3.3-3.el6_2.6.x86_64(cust_drv-rhel-x86_64-server-6-default-nonprod) PHP(x86-64)= […]

centos + php泄漏内存,但在哪里?

我有一个大的php cronjob每20分钟运行一次。 每次执行后,虚拟服务器使用的RAM内存会增加,脚本终止后不能正常释放! 但为什么? 内存不被caching total used free shared buffers cached Mem: 2048 1948 99 0 0 88 -/+ buffers/cache: 1859 188 Swap: 0 0 0 该脚本使一些curl / multi_curl和更新Mysql数据库。 有一种方法可以查看所有variables和内存使用情况的脚本吗? 或简单的那些没有发布在最后…

Postfix收到邮件时,无法触发我的PHP脚本

我在ubuntu 14.04.1上运行Postfix邮件。 我想“在Postfix服务器收到邮件时触发一个PHP脚本”经过调查和许多tuto的帮助。 我第一次configuration了“ postfix ”&“ Postfix虚拟别名 ”(我没有深入的了解),我写了我的php代码,但脚本输出总是空的。 下面的所有必要的文件,让您检测到我的错误。 main.cf # See /usr/share/postfix/main.cf.dist for a commented, more complete version # Debian specific: Specifying a file name will cause the first # line of that file to be used as the name. The Debian default # is /etc/mailname. #myorigin = /etc/mailname smtpd_banner = $myhostname ESMTP $mail_name […]

Apache重写和PHP的variablesREQUEST_URI

我有一个问题,Apache传递给PHP $_SERVER['REQUEST_URI']variables的URL重写后,而不是原来的请求。 我正在做这个重写,因为我有一个WordPress的网站,并希望将其移动到一个子目录,而不是在根path中,但仍然希望保持其URL为根URL。 这并不一致。 如果我请求www.xyz.com/wp-admin它将使用www.xyz.com/wordpress/wp-admin (这是重写后的URL)填充PHP REQUEST_URIvariables,但是如果我请求www.xyz.com/wp-admin/ (带有斜线),它实际上使用www.xyz.com/wp-admin/ (原始URL,在重写之前)填充PHP REQUEST_URIvariables。 我想要的是在REQUEST_URI被重写之前填充URL。 我的.htaccess文件如下: <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^(www.)?xyz.com$ RewriteCond %{REQUEST_URI} !^/wordpress/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /wordpress/$1 RewriteCond %{HTTP_HOST} ^(www.)?xyz.com$ RewriteRule ^(/)?$ wordpress/index.php [L] </IfModule>` PHP版本是5.3。 Apache版本是2.4(Win32)。 更新 :我更深入地研究它,当我inputurlwww.xyz.com/wp-admin首先有一个301redirect到www.xyz.com/wordpress/wp-admin/但是这不会发生www.xyz.com/wp-admin/ (带有斜线)。 对于具有斜线的那个,只有重写,如预期的那样。 所以现在的问题是为什么301redirect发生在URL的第一个地方没有结尾的斜杠。 为了澄清,没有实际的文件夹/wp-admin/ ,但是有一个文件夹/wordpress/wp-admin/ 。

cakephp&nginxconfiguration/重写规则

嗨有人请帮助我,我也问过这个在stackoverflow,但没有得到太多的回应,并辩论是否是编程或服务器相关。 我正在尝试在运行Nginx和Fact CGI的Centos服务器上设置一个cakephp环境。 我已经有一个WordPress服务器上运行的一个WordPress站点和一个phpmyadmin网站,所以我已经正确configurationPHP。 我的问题是,我不能在我的虚拟主机正确的重写规则设置,使蛋糕正确呈现页面,即样式等。 我已经尽可能多地search了一下,下面列出的站点的主要共识是我需要有下面的重写规则 location / { root /var/www/sites/somedomain.com/current; index index.php index.html; # If the file exists as a static file serve it # directly without running all # the other rewrite tests on it if (-f $request_filename) { break; } if (!-f $request_filename) { rewrite ^/(.+)$ /index.php?url=$1 last; break; } } http://blog.getintheloop.eu/2008/4/17/nginx-engine-x-rewrite-rules-for-cakephp […]