我希望能够在运行Ubuntu 12.04的开发框中运行多个php版本。 我想要完成的是,当我使用localhost作为域默认使用(让我们说php 5.3.17)。 当我使用域名为php 5.4.7时使用547.localhost。 我见过一些教程,使用fastcgi这个工作,但直到现在我还没有能够得到它的工作。 我看过这些教程: http://dbforch.wordpress.com/2010/05/21/apache2-fastcgi-multiple-php-versions-ubuntulucid-10-04/ http://www.metod.si/multiple-php-versions-with-apache-2-fastcgi-phpfarm-on-ubuntu/ 就我所知,我已经做了所需要的一切。 问题是,PHP根本不运行。 当我去http://localhost/somephpfile.php它只是输出的PHP文件的来源。 对于http://547.localhost/somephpfile.php 。 我会分解我所采取的步骤,希望有人能够发现我错过了什么。 首先,我使用sudo apt-get install lamp-server^ phpmyadmin安装了一个默认灯pipe栈。 在此之后,我有一个运行PHP版本的工作的开发服务器。 然后我用phpfarm创build两个php安装,一个用于5.3.17,一个用于5.4.7。 phpfarm的地方是/etc/php/phpfarm ,所以可执行文件在/etc/php/phpfarm/inst/php-{version}/bin 然后,我启用suaxec和fastcgi的Apache和disabe mod_php与sudo a2enmod fastcgi actions suexec && sudo a2dismod php5 接下来,我编辑了/etc/apache2/mods-enabled/fastcgi.conf来读取: <IfModule mod_fastcgi.c> FastCgiIpcDir /var/lib/apache2/fastcgi FastCgiWrapper /usr/lib/apache2/suexec FastCgiConfig -idle-timeout 110 -killInterval 120 -pass-header HTTP_AUTHORIZATION -autoUpdate ScriptAlias /php-fcgi/ /var/www/cgi-bin/ </IfModule> 然后在/var/www/我创build了一个文件夹cgi-bin,并在这个文件夹中有两个文件,每个php版本如下(我只显示了5.3.17 […]
在Ubuntu的Apache2在我有我的网站上听80,现在我想添加SSL。 有没有办法启用端口443的SSLEngine,所以我不必复制整个VirtualHost块? 当我这样做: Listen 80 Listen 443 NameVirtualHost * <VirtualHost *> SSLEngine On … a bunch more lines… </VirtualHost> 它打开端口80的SSLEngine。有没有办法只使用一个VirtualHost块,只打开端口443的SSLEngine? 所以我可以做这样的事情? Listen 80 Listen 443 NameVirtualHost * <VirtualHost *> <IfPort 443> SSLEngine On </IfPort> … a bunch of lines I don't want to copy into another VirutalHost block… </VirtualHost>
有没有办法显示Apache正在使用的有效configuration值? 我有一个cPanel服务器使用多个包含文件,并有一些服务器范围的设置在多个地方定义。 我想find一种方法来确认Apache在运行时实际使用的值。
我在Fedora 13上运行LAMP服务器,工作正常。 不过,我刚刚添加一个“.htaccess”文件到我当前站点的docroot文件夹被完全忽略。 我已经尝试了六种不同的testing,包括这一个: RewriteEngine on RewriteBase / RewriteRule ^.*$ index.php 但图像和所有其他网页加载罚款,而不存在的文件仍然404。我也试过这个: order deny,allow deny from all 但每页仍然加载正常。 .htaccess文件再次被100%忽略。 我们把我们的虚拟主机logging放在/etc/httpd/conf.d/virtual.conf中。 它看起来像这样: NameVirtualHost * <VirtualHost *> ServerName intranet DocumentRoot /var/www/default <Directory "/var/www/default"> Options FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost *> ServerName ourwebsite.com DocumentRoot /var/www/html/ourwebsite.com/docroot <Directory "/var/www/html/ourwebsite.com/docroot"> Options FollowSymLinks AllowOverride All Order […]
我想确保用户来到www.mydomain.com即使他们通过别名mydomain.com到达。 这样我就可以控制子域上的Cookie,这样Google就可以看到一个域名,而不是一个url的大杂烩。 我怎样才能做到这一点与Apache?
我正在调查Slowloris的漏洞,我想我明白这种攻击是如何以及为什么会起作用的。 我不明白的是为什么Lighttpd和NginX不受影响(根据上面链接的同一篇文章)。 他们做了什么如此不同?
我的服务器用Server: Apache/2.2.15 (CentOS)响应所有的请求。 我想这就让我的服务器体系结构更容易破解。 这对网页浏览器有用吗? 我应该继续吗?
对于apache,有一个htpasswd实用程序,它可以用来为.htaccess访问限制等生成encryption密码。在Ubuntu中,我可以通过apache2-utils软件包进行安装,但是在Scientific Linux(Red Hat)中,我发现只有以下包,当我做yum search htpasswd : perl-Apache-Htpasswd.noarch : Manage Unix crypt-style password file 但这似乎并不是我正在寻找的软件包,因为它不包括htpasswd命令,而且当我在Ubuntu中执行apt-cache search htpasswd时,我得到: libapache-htpasswd-perl – Manage Unix crypt-style password file lighttpd – A fast webserver with minimal memory footprint nanoweb – HTTP server written in PHP apache2-utils – utility programs for webservers …其中第一个显然是与我在上面(?)find的那个相对应的那个。 那么,对于Red Hat / Scientific Linux,是否有与apache2-utils软件包或任何其他软件包(包括htpassd实用程序)的等价物? 至less我找不到
我试图启用模块“标题”到我的apache2安装在Ubuntu 10.04系统,这里有一些信息: 服务器版本:Apache / 2.2.14(Ubuntu) 当我运行命令: a2enmod标题 我得到这个输出: 错误:模块头不存在! 但在/ usr / lib / apache2 / modules /下可以看到有mod_headers.so 有什么build议? 提前致谢 编辑:有我的模块出了问题,当我访问webmin的Apache模块列表,它列出我只是一些模块,而不是每个模块,我可以find/ usr / lib / apache2 / modules / example:我看不到mod_rewrite从列表中,但我已经在/ usr / lib / apache2 / modules /
大约每周一次,但有时甚至几天后运行良好,我的EC2实例变得没有反应。 Munin的内存图表讲述了一个非常简单的故事:分配给“应用程序”的内存开始增长,直到swap完全被使用并且实例被有效地closures为止。 另一个自定义图表显示,不断增长的过程是apache2。 我使用mod_php和几个PHP脚本运行标准的prefork Apache安装程序。 正如你在下面的图表中看到的,触发apache2进程开始消耗越来越多的内存的事情发生了。 我发现了第一个绿色尖峰,并在事情失控之前重新启动了Apache。 第二个秒杀得到了更远,实例必须彻底重新启动。 Munin记忆图 我想知道的是如何最好的debugging。 使用FastCGI设置PHP并让它在自己的进程中运行的缺点是什么是一个很好的方法来找出它是Apache还是PHP和我的代码的组合导致过度的内存使用? 你们会采取什么措施来追踪这个问题? 更新:我能跟踪泄漏后,涉及strace,如马特build议如下。 在find一个在内存中不断增长的apache2进程之后,我又添加了一些error_log()调用到我的PHP脚本中,这个脚本打印出了执行中各个点(使用ps的输出)使用的RSS总量。 然而事实certificate这是误导性的 – 虽然看起来RSS只是在我的脚本执行完毕后才跳转,后来的debugging显示事实并非如此。 小心! 幸运的是,所有这些error_log()调用最终都是有用的。 当我启动strace( strace -p <pid> -tt -o trace.log -s 256 )时,我看到对于每个请求,进程分配了大约400k的内存(寻找“brk”系统调用并减去来自最后一次呼叫的第一个呼叫的参数 – 一些通常会一个接一个地进入)。 然后,我search了包含我的error_log()消息的最近的“写入”系统调用,该消息告诉我脚本内存分配的哪一点。 有一些更具战略意义的调用error_log()调用来更准确地查明位置,我终于find了罪魁祸首。 当我们从我们的PHP脚本调用curl_exec()时,内存泄漏。 一些与处理SSL连接有关的curl代码是做错了事 – 当我切换到HTTP时泄漏消失了。 Curl的更新日志引用了一些在7.19.5(我们在7.18.2)中修复的SSL内存泄漏,所以我会在下一步尝试。 与此同时,我正在运行一个非常低的MaxRequestsPerChild,使Apache保持在合理的范围内。 感谢大家!