我们使用php-fastcgi在Nginx上运行Drupal 5.x. 事情一段时间都很好.突然之间,我们(用户)遇到了502 Bad Gateway错误.重启PHP-cgi,nginx ..重启机器等没有帮助.
有没有其他人遇到过这类问题?有哪些可能的嫌疑人?
当用Apache运行PHP时,我知道为每个请求加载了php核心和所有库.但是,使用PHP CGI,FastCGI或使用PHP-FPM,php进程在重新启动之前通常会持续500-1000个请求.
在此期间,它如何处理加载的PHP类或库?
假设我有一个加载大量库的文件,它会在每次请求时加载(然后转储)大型库,还是为我传递的每个新请求加载它?
"加载"我的意思是包含(并解析)类,但不创建任何对象.
APC如何发挥作用?
我想在python中有一个简单的程序,可以处理不同的请求(POST,GET,MULTIPART-FORMDATA).我不想使用完整的框架.
我基本上需要能够获得GET和POST参数 - 可能(但不一定)以类似于PHP的方式.获取一些其他SERVER变量,如REQUEST_URI,QUERY等.
我已经成功安装了nginx,但是我没有找到一个关于如何完成其余工作的好例子.因此,非常欢迎一个简单的教程或任何关于如何设置nginx以运行某些虚拟主机的python进程的方向和想法!
我在Nginx后面有一个自定义的FastCGI应用程序,我很难让Nginx返回除200状态代码之外的任何东西.
我尝试过以下方法:
设置fast_cgi_intercept_errors.
通过ApplicationStatus在中返回代码EndRequest.
返回StdError流上的错误.
发送以下任何标头:
"状态:404未找到"
"找不到HTTP/1.1 404"
"X-PHP-Response-Code:404"
"状态:404未找到;"
"找不到HTTP/1.1 404;"
"X-PHP-Response-Code:404;"
任何帮助都会很棒,我很困难.
假设我有一些Perl代码,每当它被命中时,它会增加数据库特定行中的列,并且我希望它经常被命中,所以我想用FCGI对它进行优化.现在,我基本上把大部分代码包装成这样的东西:
while (FCGI::accept() >= 0) {
[code which currently creates a db connection and makes calls through it]
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否最好将数据库连接(我的$ dbh = DBI-> connect(etc))放在FCGI循环之外,以便脚本保持连接活动,或者我仍然可以获得FCGI速度的优势将资源留在循环中?
我正在尝试在我的Dreamhost帐户上使用Poll教程(我没有任何部署Django的经验).我在我的主目录下载了我在这里找到的脚本(http://gabrielfalcao.com/2008/12/02/hosting-and-deploying-django-apps-on-dreamhost/)并执行了它.现在我在〜/ .myroot /中有Python 2.5和Django,我的Django项目目录是〜/ projects /
这是〜/ projects /目录的内容(我自己复制了民意调查/和模板/民意调查/目录).
projects/
|-- admin_media -> /home/imran2140/.myroot/usr/lib/python2.5/site-packages/django/contrib/admin/media
|-- dispatch.fcgi
|-- polls
| |-- __init__.py
| |-- __init__.pyc
| |-- admin.py
| |-- admin.pyc
| |-- models.py
| |-- models.pyc
| |-- polls.db
| |-- urls.py
| |-- urls.pyc
| |-- views.py
| `-- views.pyc
|-- script_templates
| |-- dispatch.template
| `-- htaccess.template
`-- templates
`-- polls
|-- detail.html
|-- index.html
`-- results.html
5 directories, 17 files
Run Code Online (Sandbox Code Playgroud)
现在我应该怎么做才能让民意调查应用程序运作?
更新
我终于得到了一个使用Passanger WSGI的"Hello World"Django应用程序.服务器的默认Python …
mojolicious在lighttpd网络服务器下工作吗?怎么配置?我需要设置FastCGI吗?这是我第一次使用lighttpd.
我有一个apache服务器,我正在设置它fcgi.我正在考虑是否要设置量身定制的mod_fastcgi或普通的旧款cgi-fcgi.
mod-fastcgi似乎不支持"多路复用"功能fcgi,我正在构建的Web服务是一个非常高的流量服务,每分钟有几千个呼叫,我希望它们尽快处理.
任何建议或意见??
我使用FastCGI运行Lighttpd网络服务器,网络服务器不输出PHP解析错误.
我的php.ini文件有以下设置:
error_reporting = E_ALL
display_errors = Off
display_startup_errors = Off
log_errors = On
html_errors = On
Run Code Online (Sandbox Code Playgroud)
我在我的PHP脚本中启用错误输出以进行开发(对于其他环境具有冗余):
error_reporting( E_ALL );
ini_set( 'display_errors', 1 );
ini_set( 'html_errors', 'On' );
Run Code Online (Sandbox Code Playgroud)
大多数错误输出正常.解析错误没有.下面是抛出解析错误的示例代码.Lighttpd网络服务器不输出错误,但是从命令行执行时,因为它没有使用FastCGI.(注意缺少的连接运算符):
<?php echo 'foo' 'bar'; ?>
Run Code Online (Sandbox Code Playgroud)
我发现如果我display_errors = On在php.ini中设置然后使用FastCGI和Lighttpd正确解析错误输出,但是我不能在我的PHP脚本中使用它来关闭它们ini_set( 'display_errors', 0 ).
我希望能够在开发它时在我的应用程序中显示这些,并且能够在不更改php.ini配置的情况下关闭它们进行生产.使用FastCGI时,我的PHP应用程序中无法执行此操作吗?
我有ajax的问题.它总是在请求后5分钟停止工作.我不知道是什么原因造成的.我查看了许多页面以找到溶剂,但也没有提供好的溶剂.我可以做什么 ?