标签: mod-fastcgi

在Linux/Mono上运行ServiceStack的最佳方法是什么?

ServiceStack网站上列出,它表明ServiceStack可以在Mono上运行:

  • XSP
  • 是mod_mono
  • FASTCGI
  • 安慰

这些不同的配置是什么,哪些是Mono上的Web服务的首选?

c# linux mono mod-fastcgi servicestack

48
推荐指数
3
解决办法
2万
查看次数

mod_perl vs mod_fastcgi

我正在使用Perl开发一个带有一些C的Web应用程序,这对于一些重载数字运算来说是必要的.到目前为止我遇到的主要问题是试图决定是否应该使用mod-perl,mod-fastcgi或两者来运行我的脚本,因为我很难分析每个mod的优点和缺点.

任何人都可以发布摘要或提供一个链接,我可以找到一些比较信息,也许一些建议与示例?

apache perl mod-perl mod-fastcgi

15
推荐指数
3
解决办法
8382
查看次数

增加PHP-FPM空闲超时设置

我们最近迁移到了PHP-FPM.但是我们遇到了一些长时间运行的脚本的问题.代码看起来大致如下:

foreach ($items as $item) {
     set_time_limit(30);
     proccessThatTakesAround2secs(); 
}
Run Code Online (Sandbox Code Playgroud)

正常的PHP脚本时间限制也是30秒.之前工作正常,因为我们将每个项目的剩余时间限制重新设置为30秒.大约有1000个项目,这意味着该脚本通常需要大约30分钟才能完成.但是我们已经达到了以下问题:

FastCGI:comm与服务器"/usr/local/php-5.6.24/sbin/php5-fpm"中止:空闲超时(30秒)

现在我的问题是,将空闲超时增加到一个小时是否明智但仍然确保PHP脚本运行时间不超过30秒,除非我们使用set_time_limit?有没有办法在每个脚本的基础上设置空闲超时(类似于set_time_limit?)

这是我们的池配置:

[www]
user = www-data
group = www-data
listen = /var/run/php5-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = static
pm.max_children = 55
pm.max_requests = 10000

php_value[memory_limit] = 128M
php_value[max_execution_time] = 30
php_value[upload_max_filesize] = 20M
php_value[post_max_size] = 20M
php_value[max_input_vars] = 9999
Run Code Online (Sandbox Code Playgroud)

这是我们的fastcgi.conf

<IfModule mod_fastcgi.c>
    AddType application/x-httpd-fastphp5 .php
    Action application/x-httpd-fastphp5 /php5-fcgi
    Alias /php5-fcgi /usr/local/php-5.6.24/sbin/php5-fpm
    FastCgiExternalServer /usr/local/php-5.6.24/sbin/php5-fpm -socket /var/run/php5-fpm.sock -idle-timeout 30 -pass-header Authorization
    <Directory /usr/local/php-5.6.24/sbin/>
        Require …
Run Code Online (Sandbox Code Playgroud)

php apache mod-fastcgi

9
推荐指数
2
解决办法
3万
查看次数

mod_fastcgi空闲超时不起作用

我正在使用Apache + mod_fastcgi + php-fpm.我正在尝试解析大文件并在php脚本max_execution_time中设置为0,但脚本在30秒后失败,并在错误日志中显示消息:"FastCGI:comm with server"/ usr/lib/cgi-bin/lz-fcgi"aborted:空闲超时(30秒)".在下面的配置中,您可以看到-idle-timeout指令设置为900秒,我很困惑服务器获取值30s的位置?当我切换到mod_php或mod_fcgid时它没关系,这个mods的所有适当设置都正常工作请帮忙看看哪里?

这里配置:Apache全局conf示例

<IfModule mod_fastcgi.c>
   AddHandler fastcgi-script .fcgi
   FastCgiIpcDir /usr/local/etc/php-fpm/
   FastCgiConfig -singleThreshold 100 -killInterval 300 -idle-timeout 900  -maxClassProcesses 1 -pass-header HTTP_AUTHORIZATION
   FastCgiWrapper /usr/lib/apache2/suexec
   #AddHandler php5-fcgi .php .php3 .php4 .php5 .phtml
   #Action php5-fcgi /php5-fcgi
   #Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
</IfModule>
Run Code Online (Sandbox Code Playgroud)

Vhost示例

<VirtualHost *:80 >
ServerName site.ru  
DocumentRoot /var/www/site.ru
ServerAlias www.site.ru
SuexecUserGroup user group
ScriptAlias /cgi-bin/ /var/www/site/cgi-bin/

    <IfModule mod_fastcgi.c>
       FastCgiExternalServer /usr/lib/cgi-bin/lz-fcgi -socket /tmp/lz-fcgi.sock -idle-timeout 900 -user user -group group
       AddHandler lz-fcgi .php .php3 .php4 .php5 .phtml
       Action lz-fcgi …
Run Code Online (Sandbox Code Playgroud)

php apache mod-fastcgi

8
推荐指数
1
解决办法
3万
查看次数

在一台Apache服务器上的单独vhost中运行Apache mod_php和mod_fastcgi

所以,我需要在一台服务器上运行多个php应用程序/站点.一个或多个应该使用apache和mod_php5运行,一个或多个应该能够使用mod_fastcgi和php-fpm运行.mod_php5目前是正常的,如果我禁用mod_php5,fastcgi工作,但我很难让他们同时工作.

我认为这可以通过在apache中使用文件匹配,if.mod_fastcgi和if.mod_actions的某种组合来实现,但我无法弄清楚它是什么.如果需要,我们可以安装执行此操作所需的任何apache模块.

超级奖励积分,如果有不同版本的vhost for Apache 2.2或更少,你也有这个片段,或者至少知道我应该做什么

我不会发布我拥有的整个虚拟主机,因为我知道它们是错的,但第一个,默认的,基于mod_php的虚拟主机看起来像这样...

#NameVirtualHost 127.0.0.1:80     < Apache 2.2 or less    
 <VirtualHost 127.0.0.1:80>
   ServerAdmin webmaster@localhost
   ServerName some.site.tld
   DocumentRoot /var/www/some/site/
   <Directory /var/www/some/site/>
     Options Indexes FollowSymLinks MultiViews
     Require all granted
#               Order deny,allow     < Apache 2.2 or less
#               Allow from all     < Apache 2.2 or less
   </Directory>
   ErrorLog /var/log/apache2/error.log
   CustomLog /var/log/apache2/access.log combined
 </VirtualHost>
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望这些保持不变,如果我们需要更多这些,我们可以添加更多.

我想要的结果是能够使用像第一个配置这样的东西来放入为mod_php配置的新vhosts,并且还为了快速cgi而放入vhosts,如下所示.

# NameVirtualHost 0.0.0.0:80  < Apache 2.2 or Less
<VirtualHost 0.0.0.0:80>
   ServerAdmin webmaster@localhost
   ServerName some.application.tld
   DocumentRoot /opt/some/app/dir/
   ErrorLog /var/log/apache2/error.log
   CustomLog /var/log/apache2/access.log combined
   <IfModule mod_fastcgi.c> …
Run Code Online (Sandbox Code Playgroud)

php apache mod-php virtualhost mod-fastcgi

8
推荐指数
1
解决办法
4360
查看次数

Apache FastCGI PHP中FastCgiExternalServer和FastCgiServer的区别?

请允许我声明我是FastCGI的新手.我的OS X机器上有MAMP的Apache.默认的PHP处理程序是Apache Handler 2.0(libphp5.so).我想改变FastCGI并遵循这里的答案:如何配置Apache在Ubuntu 12.04上通过终端运行PHP作为FastCGI?

我在httpd.conf的末尾添加了以下内容:

<IfModule mod_fastcgi.c>
   AddHandler php5.fcgi .php
   Action php5.fcgi /php5.fcgi
   Alias /php5.fcgi /Applications/MAMP/fcgi-bin/php5.fcgi
   FastCgiServer /Applications/MAMP/fcgi-bin/php5.fcgi -socket /Applications/MAMP/tmp/php-fcgi/php5-fpm.sock -pass-header Authorization -idle-timeout 3600
   #FastCgiExternalServer /Applications/MAMP/fcgi-bin/php5.fcgi -socket /Applications/MAMP/tmp/php-fcgi/php5-fpm.sock -pass-header Authorization -idle-timeout 3600
   <Directory /Applications/MAMP/fcgi-bin>
       Order allow,deny
         Allow from all
   </Directory> 
</IfModule>
Run Code Online (Sandbox Code Playgroud)

但是,正如您所看到的,FastCgiExternalServer已被注释掉.相反,我不得不使用FastCgiServer原因,否则Apache在尝试请求页面时会给我以下错误:

[星期五06月23日23:25:22] [错误] [客户端:: 1](2)没有这样的文件或目录:FastCGI:无法连接到服务器"/Applications/MAMP/fcgi-bin/php5.fcgi" : 连接失败

[星期五06月23日23:25:22 2016] [错误] [client :: 1] FastCGI:从服务器"/Applications/MAMP/fcgi-bin/php5.fcgi"收到的不完整标题(0字节)

/Applications/MAMP/fcgi-bin/php5.fcgi存在且其内容是:

#!/bin/bash
PHP_CGI=/Applications/MAMP/bin/php/php5.6.2/bin/php-cgi
exec $PHP_CGI
Run Code Online (Sandbox Code Playgroud)

什么之间的区别FastCgiServerFastCgiExternalServer,为什么FastCgiExternalServer在我的情况没有工作,但FastCgiServer …

php apache fastcgi mod-fastcgi

8
推荐指数
1
解决办法
7113
查看次数

"待处理信号的最大数量(120)超过"是什么意思?

在Apache mod_fastcgi下运行的My Perl web-app经常会出现如下错误:

在线119处超过未决信号(120)的最大计数.

我已经看到这与文件上传有关,但我不确定这是唯一的时间.我在得到错误之前(或可能在之后)也得到了一个SIGPIPE.

有什么想法吗?

编辑 感谢大家的建议.有人问119行是什么.对不起,应该把它放进去.它是在一段代码中,我在上传的文件上运行病毒检查程序.我不是每次都会得到错误,只是偶尔.

if(open VIRUS_CK, '|/usr/local/bin/clamscan - --no-summary >'.$tmp_file) {

  print VIRUS_CK $data; // THIS IS LINE 119

  close VIRUS_CK;

  if (($? >> 8) == 1) {

    open VIRUS_OUTPUT, '<'.$tmp_file;
    my $vout = <VIRUS_OUTPUT>;
    close VIRUS_OUTPUT;
    $vout =~ s/^stdin:\s//;
    $vout =~ s/FOUND$//;


    print STDERR "virus found on upload: $vout\n";
    return undef, 'could not accept attachment, virus found: '.$vout;
  }
  unlink($tmp_file);
}
Run Code Online (Sandbox Code Playgroud)

perl fastcgi mod-fastcgi

7
推荐指数
1
解决办法
1489
查看次数

以安全的方式创建每用户php5-fpm池

在Apache mod_fastcgi上创建每用户php5-fpm池时,以下哪种方法是向PHP池授予Web服务器权限的最安全方式和有效方式?

选项1:

将组设置为www-data:

listen.owner = username
listen.group = www-data
listen.mode = 0660

user = username
group = www-data
Run Code Online (Sandbox Code Playgroud)

虽然这个由PHP创建的文件将所有权设置为用户名:www-data,而通过SCP上传的文件将具有用户名:username.


选项2:

加入www-data补充组username:

listen.owner = username
listen.group = username
listen.mode = 0660

user = username
group = username
Run Code Online (Sandbox Code Playgroud)

-

usermod -aG username www-data
Run Code Online (Sandbox Code Playgroud)

哪些选项是安全的?您也可以分享更好的方法.

我检查了以下指南:

但它们都是在发现并修复了#67060号错误之前编写的.

php apache fastcgi mod-fastcgi

6
推荐指数
1
解决办法
1314
查看次数

在mod_python上部署WSGI应用程序

我编写了一个WSGI应用程序,我需要将其部署到服务器,但是我已经获得了一个已经安装了mod_python的服务器.

我不允许删除mod_python,因为已经有一些mod_python应用程序在运行.

我考虑过的一个选项是将mod_wsgi与mod_python一起安装,但是我经历了一些消息,发现这是一个坏主意.显然mod_wsgi和mod_python混合不好.

我考虑的另一个选择是安装mod_fastcgi并使用fastcgi部署它.

我很想听听是否有人有更好的想法,这不会打破服务器上运行的当前mod_python应用程序.

python mod-wsgi mod-python mod-fastcgi

5
推荐指数
1
解决办法
1060
查看次数

将 PHP-FPM 与 Apache 一起使用时的自定义 404 消息

我将 Apache(Debian 上的 2.2.22)配置为通过 FastCGI 处理 PHP 文件:

<FilesMatch ".+.php$">

SetHandler 应用程序/x-httpd-php

</文件匹配>

动作应用程序/x-httpd-php /fcgi-bin/php5-fpm 虚拟别名

/fcgi-bin/php5-fpm /fcgi-bin-php5-fpm FastCgiExternalServer

/fcgi-bin-php5-fpm -socket /var/run/php5-fpm.sock -idle-timeout 600 -pass-header 授权

显示自定义文件未找到 (HTTP 404) 页面在 Apache 中配置如下:

<目录“/home/http/domain/root”>

..

错误文档 404 /pagenotfound.htm

..

</目录>

使用自定义 404 pagenotfound.htm 文件回答对不存在的非 PHP 文件的请求。没问题。

但是对不存在的 PHP 文件的请求以 http-status-header“HTTP/1.1 404 Not Found”和内容“File not found.”回答,所以不是我的自定义错误页面。问题!

Apache 错误日志显示(在后一种情况下):

[Sat Nov 21 14:03:07 2015] [error] [client xx.xxx.xx.xx] FastCGI: server "/fcgi-bin-php5-fpm" stderr: Primary script unknown

使用 PHP-FPM 时如何为不存在的 PHP 文件配置自定义 …

php apache mod-fastcgi

5
推荐指数
1
解决办法
4153
查看次数