Articles of apache 2.2

从命令行执行的php -i和从浏览器执行的phpinfo显示不同的php参数

我的问题是,当我执行php -i它显示PHP版本为PHP 5.4和加载的configuration文件为/usr/local/lib/php.ini 。 当我从命令行执行脚本phpinfo.php ,它显示php 5.3和加载的configuration文件为/etc/php.ini 。 我如何启用默认的PHP解释器为PHP 5.3? 我需要5.3,因为php 5.3configuration了PDO和pdo_mysql ,其中php 5.4没有configuration它也是php 5.3的zend版本是220090626,而php 5.4是220090525。 当我尝试从浏览器执行PHP脚本时,它正在使用PHP 5.4(它没有PDO扩展名)进行编译,并将未定义的PDO引发一个致命错误。 我如何configuration我的Apache为脚本加载php 5.3。 phpinfo.php脚本如下 <?php phpinfo(); ?>

VirtualDocumentRoot安装程序本地开发

我想了解如何设置httpd.conf和httpd-vhosts.conf文件。 我想有一个本地设置,在Windows 7上使用Wampserver,这样我就可以添加一个新的项目,只需要添加一个新的目录和一个快速编辑的hosts文件。 我希望它至less可以用于以下通用域格式:domain.com,www.domain.com,sub.domain.com和www.sub.domain.com。 以下是我到目前为止。 它似乎工作,但我只是想可能有一个更好的,可能更简洁的方式: NameVirtualHost *:80 <Directory "C:/wamp/www/%0/public_HTML"> Options Indexes FollowSymLinks Includes AllowOverride All Order allow,deny Allow from all </Directory> <VirtualHost *:80> VirtualDocumentRoot "C:/wamp/www/%0/public_HTML" </VirtualHost> <VirtualHost *:80> ServerAlias www.*.*.com VirtualDocumentRoot "C:/wamp/www/%3+/public_HTML/%2" </VirtualHost> <VirtualHost *:80> ServerAlias www.*.com VirtualDocumentRoot "C:/wamp/www/%2+/public_HTML" </VirtualHost> <VirtualHost *:80> ServerAlias *.*.com VirtualDocumentRoot "C:/wamp/www/%2+/public_HTML/%1" </VirtualHost> 我的文件夹结构如下:C:/ wamp / www /(project)/ public_HTML /(作为sub.domain.com的子部分命名的文件夹) […]

我应该为干净的Apacheconfiguration设置什么文件

我对Apache并不陌生,但我也不是专家(无论如何)。 我已经运行了WAMP和XAMP服务器设置的几个版本。 我的大部分Apacheconfiguration都很简单。 我通常运行一个默认主configuration文件( httpd.conf或apache.conf ),一个或两个包含(例如不同的端口)和一些站点特定的虚拟主机文件。 最近,我build立了一个使用HTTPS的服务器。 我买了证书,并设置了它。 这不是太糟糕,但它让我思考。 我设置的每个Apacheconfiguration似乎有点不同。 我不应用任何最佳做法; 只是使用这些更改来构build默认安装,使我的应用程序运行。 这现在困扰我了。 我目前运行Apache 2.2,并且希望为自己制定一个可以保持一致的约定,我可以更快地部署到更多的服务器上。 所以我的问题是,我应该使用什么文件,他们应该如何互动? 例如,我认为大多数人都同意用调整加载你的主Apacheconfiguration是一个坏主意。 那么你应该把它剥离到最低限度,并实施多个包括? 你如何正确设置sites-available目录( sites-enabled符号链接)? 因为有许多方法可以做,而且由于Apache允许在多个地方使用相同的影响,所以我发现在所有这些文件中都会散布出来,包括在.htaccess文件中使用类似mod_rewrite东西(我开始相信这是一个坏主意,除非你是共享主机,这是唯一的方法)。 对于SSL,您是否设置了default-ssl文件或project-ssl 。 我在一台服务器上运行了多less个虚拟主机? 我明白我的问题有些主观。 可能没有客观的答案。 但是我的目标是尽可能接近客观的答案。 然后是WSGI。 如果你部署Django的网站,这进一步复杂的事情。 我应该使用/home/user/project/project/wsgi.py还是/var/www/project/index.wsgi ? 这些文件如何与Apacheconfiguration交互? 以下是我关心的文件列表: /etc/apache2/apache.conf /etc/apache2/httpd.conf /etc/apache2/ports.conf /etc/apache2/envvars (mostly self explanatory) /etc/apache2/conf.d/project.conf /etc/apache2/conf.d/security /etc/apache2/sites-available/default /etc/apache2/sites-available/default-ssl /etc/apache2/sites-available/project /etc/apache2/sites-available/project-ssl 为什么一些Apache安装有一个Apache主configuration,其中包含模块,其他的有mods-available和mods-enabled ? 就像我上面所说,似乎有很多重叠,所以我不惊讶这是一个棘手的话题要掌握。 另外,如果有人知道一个很好的参考步骤,我会有兴趣看到它。 我有几本旧的阿帕奇书籍,他们只是没有把它分解。 他们认为你是完整的初学者,并且只保留默认值。 Apache的文档是相当不错的,我经常去他们,但我所寻找的一个全面的来源似乎并不存在(或者,我还没有find最好的search条件来find它)。

Apache – 如何限制Content-Type标题长度以避免CVE-2014-0050?

周四Tomcat邮件列表( “[SECURITY] CVE-2014-0050 Apache Commons FileUpload和Apache Tomcat DoS” )宣布Tomcat的DoS问题。 当我上传文件时(如果在Web应用程序中使用Servlet 3.0+上传function),攻击者似乎能够通过发送超长的content-type标头来导致无限循环,就我所了解的信息而言乍一看。 如果有人在Apache httpd服务器(使用AJP和mod_jk)后面运行他们的Tomcat服务器,那么可以采取什么措施来实现build议“将Content-Type头限制为小于4091字节” ? 当然,只要修补程序版本可用(通过下载页面或Linux发行版特定软件包存储库),就应该更新。 没有问题。 但目前可用的Tomcat 7.0.50版本似乎仍然受到影响。 但是,在固定版本发布之前,作为一种快速防御措施,可以做些什么呢? (不必… 卸载当前的Tomcat软件包(从软件包仓库安装), 从源代码(SVN)手动构build版本, 手动部署(不带apt-get或aptitude ), 稍后再次卸载所有手动构build的东西,以便从软件包存储库中获得舒适的可更新版本) 有没有类似于这个主题的临时解决方法: http : //wiki.apache.org/httpd/CVE-2011-3192 ? 那么,可以使用mod_headers , mod_setenvif或mod_rewrite来处理这个问题。 是否有类似的Apache httpd技巧来保持畸形的分段上传请求远离下游Tomcat服务器?

什么是Apache LOG中的“iscraped”(/ var / log / messages)

例如,这是我在日志中看到的。 日志现在是几GB大:S 我已经尝试谷歌的解决scheme,但我发现没有:( Feb 10 09:41:53 vps2 iscraped[12861]: #SCRAPED# INFO: child started (12861) Feb 10 09:41:53 vps2 iscraped[20748]: #SCRAPED# ALERT: child 12861 is !dead!, will be restarted Feb 10 09:41:54 vps2 iscraped[12864]: #SCRAPED# INFO: child started (12864) Feb 10 09:41:54 vps2 iscraped[20748]: #SCRAPED# ALERT: child 12864 is !dead!, will be restarted Feb 10 09:41:55 vps2 […]

尽pipe重写规则匹配,404返回

我有一个重写规则,将所有请求发送到index.php : RewriteRule ^.*$ index.php [NC,L] (除了RewriteEngine On ,这就是.htaccess文件中的所有内容) 它工作,除非请求path以index/开头,在这种情况下,结果是404 Not Found 。 如果我将index.php的文件名更改为index2.php (并重写规则以匹配它),它将再次开始工作,所以当请求的path的第一个段等于目标文件的第一个段时 , 显然会有冲突 。 mod_rewrite日志包含这个(当请求/index/hello , 失败 ): add path info postfix: /path/to/index.php -> /path/to/index.php/hello strip per-dir prefix: /path/to/index.php/hello -> index.php/hello applying pattern '^.*$' to uri 'index.php/hello' rewrite 'index.php/hello' -> 'index.php' add per-dir prefix: index.php -> /path/to/index.php initial URL equal rewritten […]

Apache2 + mod_fcgid + php在从Debian升级到喘息之后停止工作

我已经把我的服务器从Debian挤到Debian喘息了。 在这个服务器上有几个apache2虚拟主机,它通过mod_fcgid运行php(我也使用mod_suexec,但这不应该是问题)。 更新后,所有我的PHP网站不工作了,如果我请求运行PHP的网站apache2提供了PHP源代码。 我所有的日志文件 的Apache2 / error.log中 的Apache2 / access.log的 的Apache2 / suexec.log 和虚拟主机错误/访问日志 没有提出任何错误,甚至没有警告。 所有neccesarry模块安装和加载。 我现在search了几个小时的解决scheme,而没有任何的努力。 这里是一个示例vhost文件(“敏感”数据被replace,用户/组和域): <VirtualHost *:80> ServerName example.com SuexecUserGroup john-doe john-doe AddHandler fcgid-script .php DocumentRoot "/var/www/example.com/data" DirectoryIndex index.php index.html <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory "/var/www/example.com/data"> Options Indexes MultiViews FollowSymLinks +ExecCGI FCGIWrapper /var/www/example.com/php-fcgi/php-fcgi-starter .php Order allow,deny allow from all […]

可能修改标题中的主机

每当有人访问intern.old-company-name.example.com我希望它被redirect到https://intern.new-company-name.example.com 。 一种方法是做到这一点 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*) https://intern.new-company-name.example.com$1 # RewriteRule ^(.*) https://%{HTTP_HOST}$1 </IfModule> 但我不喜欢我硬编码外部子域intern到httpd.conf 。 题 是否可以在%{HTTP_HOST}上执行正则expression式,以便在redirect到https之前将old-company-namereplace为new-company-name ? 或者也许类似的东西? 更新 # apachectl -S VirtualHost configuration: 10.10.10.10:443 is a NameVirtualHost default server aybcom (/etc/httpd/conf.d/ssl.conf:85) port 443 namevhost aybcom (/etc/httpd/conf.d/ssl.conf:85) Syntax OK

将我的用户添加到在Fedora上的www数据组?

所以我在Fedora 20桌面设置了一个本地主机来进行Web开发。 我已经安装httpd等等… 我遇到的问题是将我的用户添加到/ var / www和/ var / www / html。 我看着/ etc / group,没有看到www数据组,也没有看到一个http组,但是我看到了一个apache组。 但是当我ls -alF / var: drwxr-xr-x. 4 root root 4096 Mar 3 09:46 www/ 和/ var / www: drwxr-xr-x. 2 root root 4096 Oct 14 21:17 html/ 所以他们属于根组。 你会如何build议设置这些文件夹,以便我的用户有权访问这些文件夹进行Web开发?

如果两个IP在同一个VPS上,我如何发送不同的子域到不同的IP?

我有一个有三个IP的VPS。 他们都在完全不相关的IP(一个是23.226.xxx.x ,另一个是107.161.xx.xx ,第三个是167.88.xxx.xx )。 如果我去beta.mydomain.com (例如,这实际上不是子域),我想它到23.226.xxx.x 去mydomain.com只会去107.161.xx.xx ,去somethingelse.mydomain.com去167.88.xxx.xx 这可能吗?