Articles of apache 2.4

include_path不在httpd.conf中工作

我在httpd.conf中设置了一个虚拟主机。 虚拟主机正确parsing,但它忽略了我的php_includepath指令: php_value include_path .:/var/www/xxx/library/ path工作,我复制并粘贴到一个LS。 通常情况下,我会追求更进一步的,但error_log显示我这个错误: PHP Fatal error: require_once(): Failed opening required 'api/v1/xxx.php' (include_path='.:/usr/share/pear:/usr/share/php') 所以,它甚至不在正确的位置。 虚拟主机中的其他一切都很好,只是没有正确地使用PHP的include_path。 任何指针?

Ubuntu 14.04 / Apache 2.4在Amazon EC2介质实例上导致内核错误

在执行“apachectl stop”时出现令人不安的崩溃。 一般制度: $ uname -a Linux www.example.com 3.13.0-24-generic #47-Ubuntu SMP Fri May 2 23:30:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux $ lsb_release -d Description: Ubuntu 14.04 LTS 磁盘,内存,CPU中有大量的空闲容量。 这是一个Amazon EC2云实例,运行时间为2014年7月5日下午1点,地区为us-east-1a,中型实例为3.7GB mem / 2CPU。 我在同一个VPC和同一地区的其他实例都很好。 我在其他地方读到,在今天的内核中,除非硬件失败,否则不会像这样崩溃。 似乎不太可能,亚马逊会有错误的云硬件? 还是我是pollyannish? 无论如何,从dmesg的转储(系统继续运行,通过服务网页和数据库交谈,但新的进程立即挂起,如ps和ssh ): [27917995.400499]一般保护故障:0000 [#1] SMP [27917995.400515]链接的模块:isofs crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd [27917995.400537] […]

强制延迟在Apache响应时间

有没有办法使Apache响应时间至less需要10秒? 如果超过10秒钟就好,但我希望最快的响应时间至less需要10秒钟。

清漆+磅在Apache 503错误

我在Apache的Varnish + Pound设置上看到很多看似随机的503 Service Unavailable错误。 我不知道从哪里开始或者问题是什么。 我已经在网上search了一大堆,我所尝试的所有build议都没有奏效。 所以下面是我的设置。 清漆configuration DAEMON_OPTS="-a :80 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -p connect_timeout=2500 \ -p thread_pools=8 \ -p thread_pool_max=2500 \ -p max_restarts=8 \ -s malloc,256m" Varnish VCL backend default { .host = "127.0.0.1"; .port = "8080"; .connect_timeout = 3600s; .first_byte_timeout = 3600s; .between_bytes_timeout = 3600s; […]

SuexecUserGroup不能在Apache 2.4中工作

我已经通过yum升级了我的PHP从5.3版本到5.4,这需要将Apache从2.2版本升级到2.4版本。 经过configuration后,事实certificate,userid和groupid仍在使用全局用户/组“apache”。 <VirtualHost *:80> ServerName example.com ServerAdmin [email protected] DocumentRoot "/path/to/webroot" …. …. <IfModule mod_fcgid.c> SuexecUserGroup user-name group-name <Directory "/path/to/webroot"> Options +ExecCGI AllowOverride All AddHandler fcgid-script .php FcgidWrapper /path/to/webroot/php-fcgi-scripts/php-fcgi-starter .php Order allow,deny Allow from all </Directory> </IfModule> …….. </VirtualHost> /etc/httpd/modules/base.conf: LoadModule suexec_module modules/mod_suexec.so 如果有人能build议我错过了什么,我将不胜感激。 谢谢。

apache mpm_worker服务器无法响应

我试图从使用prefork到worker mpm来更新我们当前的Apache 2.4.9configuration。 我正在做一些简单的负载testing,使用Jmeter来比较2之间的性能。我的第一个testing非常简单,只用一个单独的gif图像,使用10,200,300,600,1000,1600个并发jmeter线程/ vuser,加载服务器一段时间,以查看平均吞吐量和响应时间,以及对CPU,内存等的影响。正如预期的工作人员似乎prefork比prefork,然而。25 – .5%的请求有错误不pipejmeter线程/ vuser的数量如何。 Jmeter报告它收到:“目标服务器无法响应”。 我在http_error.log中看不到错误。 系统和Apache状态页报告大量的CPU和内存可用。 使用prefork运行相同的testing,我没有得到任何错误。 我的工作人员configuration如下: ServerLimit 32 StartServers 8 MaxRequestWorkers 1600 MinSpareThreads 100 MaxSpareThreads 150 ThreadsPerChild 50 MaxConnectionsPerChild 1000 ThreadLimit 100 我已经尝试了各种组合增加和减lessServerLimit,ThreadsPerChild等,但仍然使用工人MPM得到一小部分的错误。 有一个额外的模块指令,我需要调整? 这是使用工人的权衡之一吗? 有没有额外的日志我可以启用?

在Windows上的Apache 2.4 + mod_rewrite + FastCGI(php-cgi.exe)

我试图移植我的一些我的客户在Windows上的Macconfiguration。 由于Windows不是Mac OS,我必须使用php-cgi.exe而不是PHP-FPM。 我已经testing了每个组件,并且一切似乎都起作用,所以我认为这是一个configuration问题。 在我的Mac上,我有这个RewriteRule : RewriteCond %{SERVER_NAME} ^([^.]+)\.([^.]+)\.dev$ RewriteRule ^/(.*\.php(/.*)?)$ "fcgi://127.0.0.1:9000%{DOCUMENT_ROOT}/%2/%1/$1" [P] 我已经添加了RewriteCond以便您可以看到%1和%2来自哪里。 在我的Mac上,它工作正常,因为%{DOCUMENT_ROOT}以/开头,但在Windows %{DOCUMENT_ROOT}以C:开头。 testing这个configuration时,会产生这个错误: 代理错误 代理服务器收到来自上游服务器的无效响应。 代理服务器无法处理请求GET /。 原因:DNS查找失败:127.0.0.1:9000c: 它看起来(通过查看error.log) 127.0.0.1:9000:C:被认为是IPv6地址的一部分,它在日志中被转换为[127.0.0.1:9000:C:] 。 如果我尝试用/分隔两个部分: RewriteCond %{SERVER_NAME} ^([^.]+)\.([^.]+)\.dev$ RewriteRule ^/(.*\.php(/.*)?)$ "fcgi://127.0.0.1:9000/%{DOCUMENT_ROOT}/%2/%1/$1" [P] ^ 我得到这个错误: 没有指定input文件。 实际上,到目前为止我testing过的所有东西都有这个错误。 有解决scheme吗?

Apache 2.4 / PHP-FPM ProxyPassMatch和访问限制

我有Apache / PHP的设置完全是这样的: https : //wiki.apache.org/httpd/PHP-FPM 它包括所提到的ProxyPassMatch规则: ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/path/to/files/$1 这发送所有请求.php在它的代理,并最终服务的PHP就好了。 但是,我一直在尝试做一些访问控制,代理似乎优先。 我的文件夹结构是这样的: / <– PHP files /extra/ <– PHP files /css/ /img/ 应该有权访问根目录中的PHP文件,但我想限制访问extra目录。 我已经将这些行添加到我的主要configuration: <Directory "/extra"> Order deny,allow Deny from all </Directory> 但PHP文件仍然执行…当我把一个不同types的文件在文件夹中,它被成功阻止,所以指令工程。 我猜ProxyPassMatch规则是禁止它为PHP文件工作。 我已经尝试了一些东西,比如将ProxyPassMatch规则放在一个<Directory>块中(不起作用,因为你不能在这样的块中使用ProxyPassMatch )并用[P]标志replaceProxyPassMatch来写一个RewriteRule (类似于这个: Apache 2.4 + PHP-FPM + ProxyPassMatch ,但是没有被代理)。 我的问题几乎和这个一样: http : //www.gossamer-threads.com/lists/apache/users/417758 。 然而,它没有得到明确的答案。 让我感到困惑的是你需要有代理规则,但是当你把它放进去的时候,没有其他东西似乎很重要(.htaccess也不能工作了)。 此外,这提出了有关安全的问题。 所有带.php东西都没有受到我想象的访问规定的影响,直接进入系统的内部。 如何将PHP-FPM与Apache中正确的安全规则结合起来?

基本身份validation在Apache 2.4中不起作用

我知道这似乎是一个简单的任务,我为Apache 2.0-2.2做了很多次,但在2.4configuration不起作用。 我正在尝试configurationdirectiry的基本身份validation: <Directory /var/www/html/docs> AuthType Basic AuthName Documents AuthBasicProvider file AuthUserFile /etc/apache2/.iRedMail Require valid-user </Directory> logging文件,当我打开并input正确的密码: [Sun Aug 17 10:51:17.817681 2014] [authz_core:debug] [pid 14318] mod_authz_core.c(802): [client 37.229.191.182:52066] AH01626: authorization result of Require valid-user : denied (no authenticated user yet) [Sun Aug 17 10:51:17.818377 2014] [authz_core:debug] [pid 14318] mod_authz_core.c(802): [client 37.229.191.182:52066] AH01626: authorization result of […]

为HTTPS调整Apache KeepAlive超时

我的网站强制使用HTTPS,平均首次加载时间为3-5秒。 由于caching,重复加载时间是0.8秒。 SSL协商在我的服务器上需要150-300ms,所以我想尽可能频繁地保持每个连接的活动,以防止延迟。 SSLSessionCache被设置为默认的300秒。 Apache KeepAlive Timeout最近从5秒降低到2秒。 这种变化导致服务器负载平均值(平均值为5%,而不是平均值为10%)明显下降,但是我想知道如果第一次加载时间是3-5秒,是否会导致第一次加载时间变慢? 这是否意味着它每次通过2秒超时都必须再次执行SSL协商? 使用较less的SSL协商(但更多的睡眠httpd任务),或更低的负载平均数与更多的SSL协商是否更好? 我们绝对拥有足够的CPU和内存资源。 所以最终的问题是,什么会为我们的观众带来最好的performance呢? 将KeepAlive Timeout提高到3-5,还是保持在2? 谢谢!