タグ付けされた質問 「fastcgi」

FastCGIは、安全で隔離された方法でアプリケーションを実行するために使用できるオープンインターフェイスのWebサーバーです。


3
PHPオプション「cgi.fix_pathinfo」はNginx + PHP-FPMで本当に危険ですか?
なされてきたたくさんの話にセキュリティ上の問題に対して約nginxの(通常はPHP-FPM、ファストCGI)で使用するPHPオプション。 cgi.fix_pathinfo その結果、デフォルトの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
ApacheとNginx
私は最近ApacheとNginxの違いを調査してきましたが、どちらを選択すべきか混乱しています。 私はいくつかの検索を行いましたが、2つの間に明確な比較はなく、ここの誰かが2つの違いについて意見を述べることができるかどうか疑問に思いました。 私の現在の知識は、mod_phpがfastcgiよりも高速で安全であることを理解させてくれますが、Apacheは同時接続とメモリ消費に関してははるかに悪いです。 私のサイトは多くの長いポーリングを使用していますが、非AJAX Webベースがあります(つまり、上部に長いポーリングがあるApache)。 Apacheのメモリ問題に対する私の最初の解決策は、長いポーリングをnode.jsを介して送信し、node.jsが2秒ごとにApacheにアクセスするようにすることでした。私はこれが十分ではないかもしれないと気づき、さまざまな解決策を検討しています。私の元のアイデアがうまくいったかどうかについては、まだ興味があります。 それでは、現代のウェブにとってどちらが良いでしょうか?ApacheまたはNginx? 更新:提示された提案はすべて適切で有効でした。私は、完全なNginxサーバーを使用するという元の2番目のアイデアに取り組んでいます。専用サーバーであるため、fastcgiのセキュリティの問題に悩まされることはなく、長いポーリングスクリプトをPHPで作成する必要があるため、高負荷の同時接続に対応できるサーバーが必要であり、Apacheはそれがいくらでもできない構造を変更しますが、それでもメモリが不足します。 私はマーティンFの答えにマークを付けました。彼が私の質問ポイントに非常に明確で完全な答えを与えたからです。 Nginxがプロキシでできる非常に非常にクールなものを見つけたからです。 おかげで、

8
Nginx + php-fpm「504ゲートウェイタイムアウト」エラー(負荷がほぼゼロ)(テストサーバー上)
6時間デバッグした後、これを放棄しています:| LANにはnginx + php-fpm + mysqlがあり、ほぼ100個のワードプレスがあります(テストワードプレスのセットアップに取り組んでいるさまざまなデザイナー/開発者によって作成および使用されています)。 長い間問題なくnginxを使用しています。 今日、突然-nginxは「504 Gateway Time-out」を突然返し始めました... 仮想ホストの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構成
サーバーフォールトで回答できるため、 この質問はStack Overflowから移行されました。 7年前に移行され ました。 異なるNginx WSGIインターフェイスを使用する場合の長所と短所を説明してください。各構成の違いを詳しく説明してください。どの構成が最適にスケーリングする必要がありますか? 関連する場合は、現在何を実行していますか?その理由は何ですか? 私が見たいくつかのテクニックですが、私が見逃した場合は教えてください: mod_wsgi Nginx uWSGI経由のuWSGI FastCGI + flup 別のWSGIサーバーのプロキシ(gevent、gunicorn、tornado、FAPWS3)

4
nginx + PHP-FPM = nginxログの「permission denied」エラー13。設定ミス?
1つのRHEL5サーバーでPHP 5.2.10の下でngi​​nx 0.7x + PHP-FPMを実行していますが、2台目のサーバー上の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" Barebones 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 / { …

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を使用して、5.3.17用と5.4.7用の2つのphpインストールを作成しました。phpfarmの地域は /etc/php/phpfarmですので、実行可能ファイルは/etc/php/phpfarm/inst/php-{version}/bin 次に、Apacheでsuaxecとfastcgiを有効にし、mod_phpを無効にします 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フォルダーを作成し、このフォルダーに2つのファイルを作成しました。2つのPHPバージョンのそれぞれについて、次のとおりです(5.3.17の1つのみを表示します/var/www/php5317.fcgi)。 #!/bin/sh # you can change …

2
FastCGI経由でPHPを偽装する必要がありますか?
私はFastCGIを介してIIS 7.5に最新バージョンのPHPをインストールしていますが、すべての指示はFastCGIが設定によって呼び出しクライアントになりすますべきだと言っています fastcgi.impersonate = 1 私のウェブサイトにこの設定がある場合 専用アプリケーションプール ApplicationPoolIdentityのアプリケーションプールID 匿名認証のみ(IUSRとして) 偽装したいのはなぜですか? 私はASP.NETのバックグラウンドから来ました。IUSRは読み取り専用のアクセス許可を取得し、アプリケーションプールIDは書き込みのアクセス許可を取得します。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」ディレクティブはここでは使用できません... 更新 私はむしろseparatlyチェックするよりも、私は聞かせできると思っ含ま私のためのチェックを。 server { listen 80 default; server_name _; root /path/www/$host; …

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にカスタムパラメータを渡す方法は?
パスと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
nginx fastcgi「プライマリスクリプトが不明です」(userdirの設定時)
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 upstreamnginxエラーログに。 ここに私があり/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 CONTENT_TYPE …
10 nginx  fastcgi  php-fpm 

3
サブフォルダー内のnginxプロジェクト
私はnginx設定に不満を感じているので、同じルートのサブディレクトリから複数のプロジェクトにサービスを提供するための設定ファイルの作成について助けを求めています。それらはすべて同じホスト値を使用しているため、これは仮想ホスティングではありません。おそらく例が私の試みを明確にするでしょう: 要求192.168.1.1/役立つはずであるindex.phpから、/var/www/public/ 要求192.168.1.1/wiki/役立つはずであるindex.phpから、/var/www/wiki/public/ 要求192.168.1.1/blog/役立つはずであるindex.phpから、/var/www/blog/public/ これらのプロジェクトはPHPを使用しており、fastcgiを使用しています。 私の現在の構成は非常に最小限です。 server { listen 80 default; server_name localhost; access_log /var/log/nginx/localhost.access.log; root /var/www; index index.php index.html; location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name; include fastcgi_params; } } 私はいろいろなことを試してみたaliasし、rewriteしかし、FastCGIのために正しく設定物事を取得することができませんでした。場所のブロックを書き込み、複製よりも雄弁な方法があるはずと思われるroot、index、SCRIPT_FILENAME、など 私を正しい方向に導くための指針はありがたいです。
10 php  nginx  fastcgi 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.