我设法在我的django项目上设置了fastcgi,问题是当我让mi程序停止时,服务器继续以某种方式运行,并且我的页面保持在线。 这是我的supervisord程序指令: [program:helloworld] command=/var/www/django-projects/helloworld/run 这是我的“运行”脚本: #!/bin/bash source /var/www/django-projects/helloworld/venv/bin/activate; /var/www/django-projects/helloworld/manage.py runfcgi \ daemonize=false \ host=127.0.0.1 \ port=8000; 所有我想要的是一个方法来停止/启动/使用supervisord重新启动这个django项目,希望你能帮助我。
我试图将一个非常简单的.htaccess文件转换为nginx: Options -Indexes -MultiViews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] 正如我在谷歌和许多地方阅读,try_files应该做的伎俩。 我尝试了很多东西,但它只是不起作用,看起来像没有发送到index.php server { root /var/www/html/; location / { index index.php; try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } 文件结构很简单: /var/www/html/folder1/folder2/index.php /var/www/html/folder1/folder2/.htaccess 请求URL时的Nginx错误日志: 013/01/17 14:38:28 [error] 22379#0: *1 FastCGI sent […]
我们有一个脚本定期更新自己的计划任务。 它下载一个ZIP,然后提取并覆盖一堆新的应用程序文件。 我们看到许多情况下,在更新的文件不被“看到”的IIS:显示怪异或在最坏的情况下,错误,因为一个“新”文件包含了一个“旧”的文件。 重新启动IIS修复了这个问题。 我试着添加显式的调用wincache_refresh_if_changed但这似乎并没有解决它。 每个FastCGI进程是否使用自己的WinCachecaching? 所以我需要刷新所有这些(如何?)。 但在我看来,一切都应该“正常工作”,因为wincache.fcndetect被启用。
我试图移植我的一些我的客户在Windows上的Macconfiguration。 由于Windows不是Mac OS,我必须使用php-cgi.exe而不是PHP-FPM。 我已经testing了每个组件,并且一切似乎都起作用,所以我认为这是一个configuration问题。 在我的Mac上,我有这个RewriteRule : RewriteCond %{SERVER_NAME} ^([^.]+)\.([^.]+)\.dev$ RewriteRule ^/(.*\.php(/.*)?)$ "fcgi://127.0.0.1:9000%{DOCUMENT_ROOT}/%2/%1/$1" [P] 我已经添加了RewriteCond以便您可以看到%1和%2来自哪里。 在我的Mac上,它工作正常,因为%{DOCUMENT_ROOT}以/开头,但在Windows %{DOCUMENT_ROOT}以C:开头。 testing这个configuration时,会产生这个错误: 代理错误 代理服务器收到来自上游服务器的无效响应。 代理服务器无法处理请求GET /。 原因:DNS查找失败:127.0.0.1:9000c: 它看起来(通过查看error.log) 127.0.0.1:9000:C:被认为是IPv6地址的一部分,它在日志中被转换为[127.0.0.1:9000:C:] 。 如果我尝试用/分隔两个部分: RewriteCond %{SERVER_NAME} ^([^.]+)\.([^.]+)\.dev$ RewriteRule ^/(.*\.php(/.*)?)$ "fcgi://127.0.0.1:9000/%{DOCUMENT_ROOT}/%2/%1/$1" [P] ^ 我得到这个错误: 没有指定input文件。 实际上,到目前为止我testing过的所有东西都有这个错误。 有解决scheme吗?
我正在尝试为我的某个网站设置HHVM。 它运行在Apache 2.4,Ubuntu 14.04上。 我非常抱歉不是最高级的系统pipe理员,我更喜欢软件工程的最后一部分。 我已经安装了HHVM,但是当我为整个Apache服务器使用FastCGI时,它打破了ownCloud。 经过一番阅读后,我发现ownCloud开发者仍然在与HHVM兼容。 所以我想用FastCGI和HHVM只运行一个目录。 我想要运行FastCGI的网站位于:/ var / www / website这里的一个子目录是文档根目录: DocumentRoot /var/www/website/www (其中一些代码位于网站的文档根目录之上;类别等) ownCloud在:/ var / www / owncloud并且具有以下configuration: Alias /owncloud "/var/www/owncloud/" <Directory "/var/www/owncloud"> Options +FollowSymLinks AllowOverride All </Directory> 我在apache2.conf中尝试了很多东西,但都没有成功。 ProxyPass / fcgi://127.0.0.1:9000/var/www ProxyPass /owncloud/ //127.0.0.1:80/owncloud ProxyPass /var/www/website/ fcgi://127.0.0.1:9000/var/www/website ProxyPass /website/ fcgi://127.0.0.1:9000/var/www/website <Directory /var/www/website/> SetHandler fastcgi-script SetHandler proxy:fcgi://127.0.0.1:9000 </Directory> 有任何想法吗?
我无法安装php-fpm。 当我安装它,并打开一个PHP文件,我得到一个403 forbiden状态代码 看日志是看 client denied by server configuration: /usr/lib/cgi-bin/php5-fcgi 我改变了我的指示,允许所有问题修复。 有没有办法允许访问cgi-bin而不必允许所有人访问/? 到目前为止,我已经尝试从127.0.0.1允许我还尝试添加一个指令的CGI斌。 既没有工作 指令 <Directory /> Order allow,deny Allow from All Options None AllowOverride None </Directory> <Directory "/srv/public_html"> Options SymLinksIfOwnerMatch AllowOverride None Order allow,deny Allow from all </Directory> FastCGIconfiguration AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /tmp/php5-fpm.sock -pass-header Authorization […]
我有一个运行Apache + PHP-FPM + FastCGI的Ubuntu 14.04服务器,为用户主页提供服务。 为了安全起见,我在Apache的configuration中启用了: Header set X-Content-Type-Options: "nosniff" Header set X-Frame-Options: "sameorigin" Header set X-XSS-Protection: "1; mode=block" AllowOverride FileInfo已设置,因此用户可以在.htaccess文件中使用Header指令进行更多控制(如果需要的话)。 然而,似乎Apache没有兑现当CGI使用PHP( mod_headers没有发送标题时,文件是PHP ),即使Header always , .htaccess Header命令被忽略的PHP文件。 我的下一个想法是让用户修改他们的PHP代码来使用PHP header函数 ,以便他们可以将其设置为X,我可以使用setifempty应用这只有当用户没有。 经过一番尝试,我发现这些条目工作: Header set X-Frame-Options: "sameorigin" env=!SCRIPT_NAME Header always setifempty X-Frame-Options: "sameorigin" env=SCRIPT_NAME 没有envtesting,我发现第一个命令(即使是setifempty或merge )会添加一个头文件,以便在头文件中看到两个X-Frame-Options 。 那么,这是正确的方式呢? 如果env=SCRIPT_NAMEtesting足够了,还是有更好的testing来确定请求是否将由PHP-FPM / FastCGI或Apache本身处理?
考虑以下情况: 我正在运行lighttpd-1.4.19,并且正在处理大量的上传(数百MB但小于1GB)。 服务器在Ubuntu 8.04 LTS上运行。 文件被临时写入/ var / tmp。 PHP5正在通过fastcgi处理最终结果。 在上传过程中,上传块被写入临时目录。 奇怪的是,虽然块被写在磁盘上,但是在上传过程中,服务器上的空闲内存逐渐减less到最大文件大小。 我会理解,随着每个块的大小(比如1-2MB),RAM会缩小,直到它们写在磁盘上,但我不明白为什么它是整个文件大小(比方说300MB)。 你知道为什么内存将被占用整个文件,虽然块写在磁盘上? 是否可能/ var / tmp直接挂载在内存中? 与/ tmp? 如果没有,你会知道如何诊断和如何查明哪个进程正在占用内存? 我没有看到lighttpd和php-cgi过程与ps增加,但也许我不看正确的事情。 或者更好的是,你会有一个好的networking服务器(Apache,Nginx的,lighttpd等)和configuration来处理大上传的build议,而不是在RAM中存储的一切? 谢谢!
有没有人知道有一个很好的源代码 – 或者可以在这里回答 – 可以指导我有多lessFast-cgi进程和Nginx进程需要运行,以服务于一个温和的热门网站。 在75-100k pageview / day之间,相当密集的PHP填充页面,对于mysql中的重度查询,体面的caching很好。 我现在使用的是Apache mod_php,并且对于以cgi运行php是相对较新的,但是在PHP 5.3.0上使用APC + Memcache + Nginx + PHP-FPM(fast cgi)的早期设置非常快,在很轻的负载下有很多内存。 但是,我不确定如何在重负载下testing这个function,而不移动我最受欢迎的站点,但是我不想这样做,直到我知道我的5个cgi进程和5个nginx进程的当前设置是否足够。 谢谢
我见过很多教程,展示了如何通过各种FCGIstream程在nginx上设置PHP / Python / Perl / RoR 。 我find的教程都没有展示如何在一台服务器上提供多个FCGI服务。 如何configuration稳定的nginx(nginx-0.7.64)来为多个FCGI进程(每个上述语言一个)提供服务? 每个FCGI过程的示例地址如下所示: 127.0.0.1:8080 – PHP 127.0.0.1:8081 – Python 127.0.0.1:8082 – Perl 127.0.0.1:8083 – Ruby on Rails 一个示例configuration文件显示了如何实现多个FCGI的closures一台服务器是我真正需要的。 也许其他人也会受益。