Questions tagged «fastcgi»

FastCGI是一个开放界面,Web服务器可用于以安全,隔离的方式执行应用程序。


3
Nginx + PHP-FPM的PHP选项'cgi.fix_pathinfo'真的很危险吗?
已经有一个 很大 的 谈论关于相对于一个安全问题cgi.fix_pathinfo与Nginx的(通常是PHP-FPM,快速CGI)使用PHP选项。 结果,默认的nginx配置文件用来表示: # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini 但是,现在,“官方” Nginx Wiki 指出可以在不禁用上述PHP选项的情况下正确处理PATH_INFO。所以呢? 问题 您能清楚地解释cgi.fix_pathinfo做什么吗?(官方文档只是说:“有关PATH_INFO的更多信息,请参见CGI规范”) PHP将如何真正处理这些变量PATH_INFO和SCRIPT_FILENAME变量? 为什么使用Nginx以及如何会有危险?(详细示例) 在这些程序的最新版本中是否仍然存在该问题? Apache容易受到攻击吗? 我试图在每个步骤中了解问题。例如,我不明白为什么使用php-fpm Unix套接字可以避免此问题。


3
阿帕奇vs Nginx
我最近一直在研究Apache和Nginx之间的差异,并且对应该选择哪个感到困惑。 我进行了一些搜索,但两者之间没有确定的比较,我想知道是否有人可以就两者之间的差异发表意见。 我目前的知识使我了解到mod_php比fastcgi更快,更安全,但是Apache在同时连接和内存消耗方面要差得多。 我的网站使用了很多长时间轮询,但是没有基于AJAX的网站(例如,Apache的顶部一直进行长时间轮询)。 我最初对Apache内存问题的解决方案是通过node.js发送长时间的轮询,然后每2秒让node.js访问Apache,在这种情况下,Apache没有打开的连接,而是由node.js进行。我意识到这可能不够好,并且正在寻找不同的解决方案。对于我最初的想法是否可行,我仍然很感兴趣。 那么,哪个对现代网络更好?Apache还是Nginx? 更新:给出的所有建议都是有效的。我已经放弃了最初的第二个想法,那就是使用完整的Nginx服务器。我很满意,作为专用服务器,我不会遭受fastcgi的安全问题,并且由于我的长轮询脚本需要用PHP编写,因此我需要一台能够处理高负载同时连接的服务器,而Apache却无法做到这一点我更改结构后,仍然会占用大量内存。 自从Martin F对我的问题点给出了如此清晰,完整的答案后,我就标记了他的答案,以至于我认为他应得的分数。但是,这三个答案都是有效的,并且一定会考虑将反向代理用于我拥有的其他网站因为我刚刚发现Nginx在代理方面可以做的非常非常有用的事情。 谢谢,

8
Nginx + php-fpm“ 504网关超时”错误,负载几乎为零(在测试服务器上)
经过6小时的调试-我放弃了:| 我们在局域网中有一个nginx + php-fpm + mysql,具有将近100个wordpress(由从事测试wordpres设置的不同设计师/开发人员创建和使用) 我们正在使用nginx,长期以来没有任何问题。 今天,突然之间-nginx开始突然返回“ 504网关超时” ... 我检查了Nginx错误日志中的虚拟主机... 2010/09/06 21:24:24 [error] 12909#0: *349 upstream timed out (110: Connection timed out) while reading response header from upstream, client: 192.168.0.1, server: rahul286.rtcamp.info, request: "GET /favicon.ico HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "rahul286.rtcamp.info" 2010/09/06 21:25:11 [error] 12909#0: *349 recv() failed (104: Connection …

1
推荐的Nginx + WSGI配置
此问题已从堆栈溢出迁移,因为可以在服务器故障时回答。 迁移 7年前。 使用不同的Nginx WSGI接口时,请说明优点/缺点?请详细说明每种配置有何区别?哪种配置最合适? 如果相关,您现在正在运行什么,为什么? 我见过一些技巧,但是请告诉我是否错过任何技巧: Mod_wsgi uWSGI通过Nginx的uWSGI FastCGI + flup 代理另一个WSGI服务器(gevent,gunicorn,龙卷风,FAPWS3)

4
nginx + PHP-FPM = nginx日志中的“权限被拒绝”错误13;配置错误?
我已经在一台RHEL5服务器上在PHP 5.2.10下运行nginx 0.7x + PHP-FPM,但是试图在第二台服务器上在PHP 5.3.3的捆绑式PHP-FPM下复制该设置,每次有GET时都会出现权限错误。 FPM已启动,并确认fastcgi在9000上进行侦听,但是每次执行GET时,我都会在nginx日志中看到此错误: 2010/08/12 23:38:53 [crit] 5019#0: *5 stat() "/home/noisepages/www/" failed (13: Permission denied), client: 24.215.173.141, server: dev.noisepages.com, request: "GET / HTTP/1.1", host: "dev.noisepages.com" 准系统nginx.conf.default至少可以运行。这是我的nginx.conf server { listen 80; server_name dev.noisepages.com; root /home/noisepages/www; index index.html index.htm index.php; access_log logs/dev.access.log; error_log logs/dev.error.log; location / { if (-f …

2
Ubuntu上同时有多个php版本
我希望能够在运行Ubuntu 12.04的开发箱上运行多个php版本。我要实现的是,当我使用本地主机作为域时,使用默认值(假设php 5.3.17)。当我使用547.localhost作为域php 5.4.7时。我看过一些使用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。在此之后,我有了一个运行中的开发服务器,该服务器运行php的存储库版本。 然后,我使用phpfarm创建了两个php安装,一个用于5.3.17,一个用于5.4.7。phpfarm的位置为 /etc/php/phpfarm,因此可执行文件位于/etc/php/phpfarm/inst/php-{version}/bin 然后我为apache和disabe mod_php启用suaxec和fastcgi 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/创建了一个文件夹cgi-bin并在此文件夹中创建了两个文件,分别用于以下两个php版本(我只为5.3.17显示一个/var/www/php5317.fcgi): #!/bin/sh # you can …

2
我应该通过FastCGI模拟PHP吗?
我正在通过FastCGI将最新版本的PHP安装到IIS 7.5上,所有说明都指出,FastCGI应该通过设置来模拟调用客户端 fastcgi.impersonate = 1 如果我的网站将具有此配置 专用应用程序池 ApplicationPoolIdentity的应用程序池标识 仅匿名身份验证(作为IUSR) 我为什么要假冒? 我来自ASP.NET背景,IUSR获得只读权限,而应用程序池标识获得任何写权限。授予对IUSR的写访问权通常会打开WebDAV漏洞的大门。因此,我犹豫让PHP作为IUSR运行。 我找不到很多人问这个问题(1 | 2),所以我想我一定很想念。有人可以帮我澄清一下吗?


4
您如何有条件地在Nginx vhost中包含文件?
在下面的几行中,我可能会有一个特定于站点的配置文件,其中包含该站点唯一的其他fastcgi_params。如果该文件存在,我要加载它。 server { listen 80 default; server_name _; root /path/www/$host; # Pass PHP scripts to php-fastcgi listening on port 9000 location ~ \.php { include fastcgi_params; fastcgi_pass 127.0.0.1:9000; if (-f /path/www/$host/nginx.conf) { include /path/www/$host/nginx.conf; } } } 但是,这不起作用,我得到的错误是: nginx:[emerg]此处不允许包含“ include”指令 更新资料 我认为与其分开检查,不如让我包括检查。 server { listen 80 default; server_name _; root …

2
如何正确启用lighttpd中的错误日志?
我有一个启用了Lighttpd和fastcgi的Centos 5系统。它记录日志访问,但不记录错误。我有内部服务器错误500,日志中没有信息,当我尝试也不打开文件时-错误日志中也没有信息。如何正确启用它? 以下是我已启用的模块列表: server.modules = ( "mod_rewrite", "mod_redirect", "mod_alias", # "mod_access", # "mod_cml", # "mod_trigger_b4_dl", # "mod_auth", "mod_status", "mod_setenv", "mod_fastcgi", # "mod_webdav", # "mod_proxy_core", # "mod_proxy_backend_fastcgi", # "mod_proxy_backend_scgi", # "mod_proxy_backend_ajp13", # "mod_simple_vhost", # "mod_evhost", # "mod_userdir", # "mod_cgi", # "mod_compress", # "mod_ssi", # "mod_usertrack", # "mod_expire", # "mod_secdownload", # "mod_rrdtool", …

2
nginx,别名,php-fpm =找不到文件
我正在尝试使用DAViCal设置nginx。但是,我在日志中收到一个“找不到文件”和“在stderr中发送了一个FastCGI:“主脚本未知”。我的别名似乎有问题,但我确定无法解决。 我的虚拟主机: server { listen 80; ## listen for ipv4; this line is default and implied listen [::]:80 default_server ipv6only=on; ## listen for ipv6 root /var/www-data; index index.html index.htm index.shtml index.php; # Make site accessible from http://localhost/ server_name just.a.server; location / { # First attempt to serve request as file, …
10 php  nginx  php-fpm  fastcgi  alias 

2
如何从Nginx向PHP传递自定义参数?
我与通行证Nginx 1.2.4结合使用PHP-FPM 5.4.8,fastcgi并尝试将自定义参数传递给PHP。这是我到目前为止找到的选项: 使用env指令在中设置环境变量nginx并通过getenv()或$_ENV从中获取环境变量PHP。问题是env仅在main上下文中运行,而我需要在上下文中设置参数server。 fastcgi_param为此使用指令。 我尝试使用更改某些参数的值,fastcgi_param但未成功: nginx: fastcgi_param PATH_INFO "/var/tmp"; PHP: 我检查了所有可以找到的预定义数组: echo '<pre>'; echo "\n".'$GLOBALS'."\n"; var_dump($GLOBALS); echo "\n".'$_SERVER'."\n"; var_dump($_SERVER); echo "\n".'$_GET'."\n"; var_dump($_GET); echo "\n".'$_POST'."\n"; var_dump($_POST); echo "\n".'$_FILES'."\n"; var_dump($_FILES); echo "\n".'$_REQUEST'."\n"; var_dump($_REQUEST); echo "\n".'$_SESSION'."\n"; var_dump($_SESSION); echo "\n".'$_ENV'."\n"; var_dump($_ENV); echo "\n".'$_COOKIE'."\n"; var_dump($_COOKIE); echo "\n".'$php_errormsg'."\n"; var_dump($php_errormsg); echo "\n".'$HTTP_RAW_POST_DATA'."\n"; var_dump($HTTP_RAW_POST_DATA); echo "\n".'$http_response_header'."\n"; var_dump($http_response_header); …
10 php  nginx  fastcgi  php-fpm 

3
配置userdir时,nginx fastcgi“主脚本未知”
我讨厌配置nginx。太复杂了 如何使PHP在用户目录中工作?这是我的nginx.conf的相关部分: location ~ ^/~(.+?)(/.*)?$ { autoindex on; autoindex_exact_size off; alias /home/$1/public_html$2; location ~ \.php { include /etc/nginx/fastcgi.conf; fastcgi_intercept_errors on; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; } } 这给了我错误:FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream在nginx错误日志中。 这是我的/etc/nginx/fastcgi.conf: fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param QUERY_STRING $query_string; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param …
10 nginx  fastcgi  php-fpm 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.