我正在尝试确定是否有人正在运行 Nginx、Apache、Lighttpd 或其他 PHP 网络服务器。
我使用预定义的 $_SERVER 变量尝试了此操作,但我不确定这是否以及如何工作,因为我只能在 Apache 2.4 上测试它。有谁知道我如何确定某人正在使用什么网络服务器?
我知道已经存在一个问题(实际上还有一些问题),但是对它们的回答并没有帮助我,因为我对lighttpd很新.
我有一个包含.pdf文件的文件夹.在对其中一个.pdf文件的位置执行HttpResponseRedirect时,用户应该能够下载.pdf文件(或在浏览器中查看).现在,Django只是重定向到我的"主页"html页面,没有显示任何pdf文件.
不知何故,我将不得不告诉lighttpd Django不应该再处理这个目录了.这是我唯一需要做的事情吗?如果是的话,我应该怎么做?
你能帮我选择一个网络服务器吗?我想在云服务器上更改我的Apache安装.我正在使用PHP,Node.js,也许有一天使用Python.
Apache,Ligthttpd和nginx中哪一个最简单的配置供我使用?
谢谢.
我正在阅读lighttpd 中mod_fastcgi的文档,它说:
"bin-path": 本地 FastCGI 二进制文件的路径,如果没有本地 FastCGI 正在运行,应该启动它
如果我想让 lighttpd 直接启动我的 fastcgi 进程,并且该进程是由 python 脚本创建的怎么办?像这样的东西:
# bang omitted... I need to use python from virtualenv
# File runfastcgi.py
import os
import sys
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "atc.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(['manage.py', 'runfcgi', ... ])
Run Code Online (Sandbox Code Playgroud)
此外,我正在使用 virtualenv,我有办法从环境中导出所有路径,甚至是 virtualenv 的 python 解释器的路径......唯一的问题是,根据 mod_fastcgi 文档,我只能通过二进制文件的路径,所以,我似乎不能这样做:
bin-path => (env.ATC_VIRTUALENV + 'bin/python' + ' ' + 'runfastcgi.py')
Run Code Online (Sandbox Code Playgroud)
我错了吗?有没有要求lighttpd使用virtualenv python来执行自定义runfastcgi.py?
我正在使用lighttpd作为一组Play实例的反向代理,目前版本为2.1.1.Play应用程序使用分块传输编码来执行COMet(服务器推送).Lighttpd版本是1.4.28(Ubuntu 12.04的最新支持版本).
这个设置运行良好,但现在我正在升级到Play Framework 2.2.1.play框架现在强制执行chunked响应必须响应HTTP/1.0请求(参见https://github.com/playframework/playframework/commit/5131c46626b82f966a9b7894cf9bfcdc1b464f3e),结果发现我的lighttpd代理正在转换HTTP/1.1对HTTP/1.0的请求.Play的确切响应是505,消息为" The response to this request is chunked and hence requires HTTP 1.1 to be sent, but this is a HTTP 1.0 request.".
那么接下来呢?我不知道我的哪个替代品(获取最新版本的lighttpd,切换到nginx)可能会起作用.
更新:lighttpd看起来并不乐观,因为mod_proxy.c有HTTP/1.0硬编码,即使它确实处理了分块编码.
我正在编写一组打算在Web上使用的Python脚本。目前,我有一些使用的测试脚本可以正常工作import cgi。
我基本上想要FastCGI / WSGI的行为。在这种情况下,我可以将特定URL下的所有请求传递给脚本。例如,假设用户访问URL http://www.example.com/script/run/1?param=true。对于/script我想要的给定脚本,例如/opt/mypython/webscript.py使用的任何请求import cgi,都可以运行并接收URL和GET参数。在这种情况下,我希望从脚本中能够看到包含一个参数/run/1和GET参数字典。
出于安全考虑,理想情况下,我们希望脚本位于文档根目录之外。
我还希望能够x-sendfile从脚本中使用标头。我知道FastCGI模块支持此功能,但不确定标准CGI是否支持。
我愿意迁移到FastCGI,但我不想重构任何代码。另外,我想在开发过程中使用标准的CGI,因为我调查的唯一FastCGI实现(波动)将导致脚本被缓存,因此在每次更改代码时都必须完全重新启动整个Web服务器。另外,flup要求您使用CGI接口进行一些不同的工作,这将意味着重写一些主要的代码。
flup确实提供了一些不错的便利;它的environ变量提供了一个PATH_INFO参数,用于指定如上所述的子路径。但是同样,标准的CGI模块并不能提供所有这些便利,因此flup需要重新编写代码,并且在开发过程中频繁更改代码的效率非常低。
因此,理想的解决方案是既使用标准CGI,又使用FastCGI来完成此任务,而无需重新编写代码。因此,在开发过程中,我可以使用标准的CGI及其伴随的性能下降(事实是python解释器必须每次启动),然后在代码准备好用于生产时轻松地将其迁移到基于FastCGI的后端,以便可以以最高性能运行。
我正在使用lighttpd的当前版本。如果可能的话,我需要做什么来配置lighttpd?
On a Linux system running Lighttpd, how can I automate certificate renewal for Let\xe2\x80\x99s Encrypt certs. Let\xe2\x80\x99s Encrypt provides great scripts for Apache 2 and NGINX but not Lighttpd which is much more comfortable for small systems like Raspberry Pi or old boxes.
\n读了一下后,我在Ubuntu服务器(14.04)上安装了phpmyadmin
sudo apt-get install phpmyadmin
Run Code Online (Sandbox Code Playgroud)
在安装配置屏幕中,我被问到是否要使用apache2或lighttpd服务器.我选择了lighttpd,安装顺利进行.我注意到它仍然(显然)安装了apache2服务器.
现在,阅读更多有关该主题的内容,如果我可以在apache2服务器而不是lighttpd上使用phpmyadmin,我会感到更加舒适.有没有办法现在更改此选择,而无需卸载并重新安装?
我正在http://wiki.alpinelinux.org/wiki/Setting_Up_Lighttpd_With_FastCGI上关注Alpine linux上的文件,但我在复制第一个命令时遇到问题:
apk add lighttpd php-common php-iconv php-json php-gd php-curl php-xml php-pgsql php-imap php-cgi fcgi
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
ERROR: unsatisfiable constraints:
lighttpd (missing):
required by: world[lighttpd]
php-cgi (missing):
required by: world[php-cgi]
php-common (missing):
required by: world[php-common]
php-curl (missing):
required by: world[php-curl]
php-gd (missing):
required by: world[php-gd]
php-iconv (missing):
required by: world[php-iconv]
php-imap (missing):
required by: world[php-imap]
php-json (missing):
required by: world[php-json]
php-pgsql (missing):
required by: world[php-pgsql]
php-xml (missing):
required by: world[php-xml]
scw-f9c40f:~# apk add lighttpd
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我的域上有一个面向前端的lighttpd服务器,它将特定的URL重定向到tomcat 8应用服务器.因此,mydomain.com/app的流量将被推送到tomcat.
但是,Tomcat会看到网址的"app"部分,并在从默认的webapp目录位置提供请求时尝试匹配它 - 导致所有内容都为404.我可以对tomcat进行配置更改,以便它知道查看来自"/ app"的请求的默认webapp目录吗?
例如,我想通过mydomain.com/app/mywebapp访问我的Web应用程序 - tomcat仍然应该在/ usr/lib/tomcat8/webapps/mywebapp中查找应用程序.
lighttpd ×10
apache ×3
nginx ×3
django ×2
python ×2
webserver ×2
alpine-linux ×1
cgi ×1
fastcgi ×1
java ×1
lets-encrypt ×1
linux ×1
php ×1
phpmyadmin ×1
raspberry-pi ×1
tomcat ×1
virtualenv ×1