タグ付けされた質問 「php-fpm」

PHP-FPM(FastCGIプロセスマネージャー)は、PHP FastCGIの代替実装であり、あらゆるサイズのサイト、特に使用頻度の高いサイトに役立ついくつかの追加機能を備えています。


14
Nginx 1 FastCGIがstderrで送信:「プライマリスクリプトが不明」
初めてNginxを使用しましたが、ApacheとLinuxに精通しています。既存のプロジェクトを使用していますが、index.phpを表示しようとすると、404ファイルが見つかりません。 access.logエントリは次のとおりです。 2013/06/19 16:23:23 [error] 2216#0: *1 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 127.0.0.1, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "www.ordercloud.lh" そして、ここにサイトで利用可能なファイルがあります: server { set $host_path "/home/willem/git/console/www"; access_log /www/logs/console-access.log main; server_name console.ordercloud; root $host_path/htdocs; set $yii_bootstrap "index.php"; charset utf-8; …
81 nginx  php-fpm 


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ソケットを使用するとこの問題を回避できる理由がわかりません。

7
PECLコマンドはエラーの長いリストを生成します
現在、CentOS 6.5でPHP 5.4を実行しています。 webtatic php55wパッケージをインストールし、PECLを介してredisおよびmongoとともにPEAR + PECLを問題なくインストールしました。 まもなく、私は5.5が私が作業していたフレームワークと互換性がないことに気づいたので、php55wを消去し、その場所にphp54wをインストールしました。 現在、peclコマンドはまったく機能しません。これは、peclコマンドを発行するたびに、この非常に長いエラー文字列を生成します(略して...何十回も繰​​り返されます)。 Warning: Invalid argument supplied for foreach() in Command.php on line 259 Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 259 ...etc etc etc... Notice: Undefined index: honorsbaseinstall in Role.php on line 180 Notice: Undefined index: honorsbaseinstall in Role.php on …
47 php  centos6  php-fpm  pecl  pear 

3
php5-fpm:サーバーがpm.max_childrenに到達しました
私が持っているnginxの +のPHP5-FPMを。1時間に数回私のWebサイトがスタックし、ログファイルに次のように表示されます 警告:[pool www]サーバーはpm.max_children設定(5)に達しました。引き上げることを検討してください。 /etc/php5/fpm/pool.d/www.confファイルには、次の構成が含まれています。 pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 サーバー: AMD Opteron™3280、Octo-Core、8x 2.4 GHz、16 GB DIMM(DDR3)。 このサーバーのwww.confファイルにどの数字を入れるべきかわかりません。誰か助けてもらえますか?ありがとう
41 php-fpm 

3
NGINXユーザーを変更するにはどうすればよいですか?
ディレクトリを作成し、ディレクトリに画像を出力するPHPスクリプトがあります。これはApacheの下ではうまく機能していましたが、最近、限られたRAMをさらに活用するためにNGINXに切り替えることにしました。PHP mkdir()コマンドを使用してディレクトリを作成しています。 mkdir(dirname($path['image']['server']), 0755, true); NGINXに切り替えた後、次の警告が表示されます。 Warning: mkdir(): Permission denied in ... 私はすでに親ディレクトリのすべての権限を確認しているので、おそらくNGINXまたはPHP-FPMの「ユーザー」を変更する必要があると判断しましたが、それを行う方法がわかりません(ユーザーを指定する必要はありませんでしたAPACHEの権限)。私はこれに関する多くの情報を見つけることができないようです。どんな助けも素晴らしいでしょう! (注:この小さなハングアップに加えて、NGINXへの切り替えは非常にシームレスでした。初めて使用するので、NGINXを起動して実行するのに文字通り約10分しかかかりませんでした。よじれます。)

3
nginx + php-fpm-$ _GETパラメーターはどこにありますか?
ここに奇妙な問題があります。私はちょうどapache + mod_phpからnginx + php-fpmに移動しました。この1つの問題を除いて、すべてがうまくいった。 たとえば、example.comというサイトがあります。私がそれにアクセスするときexample.com?test=get_param $_SERVER['REQUEST_URI']はそう/?test=get_paramであり、$_GET['test']またあります。 しかし、私example.com/ajax/search/?search=get_param $_SERVER['REQUEST_URI']が/ajax/search/?search=get_paramまだアクセスしているときは何もありません$_GET['search']($_GET配列はまったくありません)。 Kohanaフレームワークを使用しています。どのルート/ajax/searchコントローラに、私は入れているphpinfo()時にindex.php私がチェックしてるので$_GET(disapearingのgetのparamsは、フレームワークの障害ではないことを、この手段)フレームワークは何かを行う前に、変数。 私のnginx.confはこのようなものです worker_processes 4; pid logs/nginx.pid; events { worker_connections 1024; } http { index index.html index.php; autoindex on; autoindex_exact_size off; include mime.types; default_type application/octet-stream; server_names_hash_bucket_size 128; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log …
34 nginx  php-fpm  kohana 

12
Apache 2.4 + PHP-FPM + ProxyPassMatch
最近、PHP-FPMを使用してPHP 5.4.8と一緒にローカルマシンにApache 2.4をインストールしました。 すべてが順調に進みました(しばらくしてから...)が、まだ奇妙なエラーがあります: PHP-FPM用にApacheを次のように構成しました。 <VirtualHost *:80> ServerName localhost DocumentRoot "/Users/apfelbox/WebServer" ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/Users/apfelbox/WebServer/$1 </VirtualHost> 動作します。たとえば、私が呼び出した場合http://localhost/info.php、正しい結果が得られますphpinfo()(これは単なるテストファイルです)。 ただし、ディレクトリを呼び出すと、本文File not found.とエラーログに404が記録されます。 [Tue Nov 20 21:27:25.191625 2012] [proxy_fcgi:error] [pid 28997] [client ::1:57204] AH01071: Got error 'Primary script unknown\n' 更新 mod_rewriteでプロキシを実行してみました。 <VirtualHost *:80> ServerName localhost DocumentRoot "/Users/apfelbox/WebServer" RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^/(.*\.php(/.*)?)$ …

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
常にPHP-FPMをリロードする必要があります
nginxとPHP-FPMを実行しているかなり負荷の高いサーバーがあります。このサーバーには、PHP-FPMとnginxを実行する6つのWebサイトがあります。ソフトウェアはすべてvBulletin 3.8およびWordPressです。データベースは別のサーバーにあります。 現在、これらは非常に人気のあるWebサイトであるため、通常、一度に7〜8,000人の訪問者がオンラインになり、各ページの大部分がデータベースにアクセスします。これが問題の原因だと思います。 MySQLサーバーには非常に多くの大規模なデータベースがあり、クエリは正直なところソフトウェアではるかに優れている可能性があるため、MySQLは時折PHPに結果を返せず、最終的にはカスケード効果を生み出すと思いますPHP-FPMをリロードするまですべてが停止します。それを行った後、物事は再び正常に動作し始めます。 このトラブルシューティングで問題が発生する理由は、ログから何も実際に識別できないためです。MySQLのスロークエリログでは、ダウンタイムが発生しても何も関心がありません。nginxログには、読み取り要求がタイムアウトしたか、接続がタイムアウトした(PHP-FPMへ)と言っている何千ものエントリがあります。また、PHP-FPMログには、「実行がタイムアウト(31秒)で終了しました」という行がたくさんあります。 したがって、この時点では、どこで問題を探すべきか完全にわかりません。明らかに、これらのスクリプトは時々十分な速さで実行されないため、何が起きているのでしょう(通常は1秒未満でロードされますが、ロード時間が急増する原因が発生します)。これは1日に何度も発生し、私たちにとって非常に大きな問題となっています。 今のところ、クラッシュの問題を処理するために、10分ごとにphp5-fpmのリロードを処理するcrontabを用意しています。もちろん、PHPがリロードすると、nginxは502ゲートウェイエラーをスローするため、あまり解決策にはなりません。 それが重要な場合、PHPはAPCキャッシュを実行しています。特定の状況下でAPCがハングする可能性があることをいくつかのスポットで読みました。 任意のポインターが役立ちます。このマシンをいつも心配する必要はありません。 もちろん、より多くの情報を提供できます。必要なものをお知らせください。 更新: apc.phpをWebルートにコピーし、アクセスして統計を確認しました。物事はよさそうだ。次に、リンクをクリックして[ユーザーの統計]に移動し、サーバーがすぐにハングするようにしました。php-fpmをリロードしてから、ユーザーの統計ページをリロードしましたが、うまくいきました。しばらく待ってから、再度リロードし、サーバーが再びハングしました。 したがって、これは間違いなくAPC関連のようです。質問は-どのように修正すればよいですか? APC構成: [apc] apc.enabled="1" apc.stat = "1" apc.max_file_size = "2M" apc.localcache = "1" apc.localcache.size = "256" apc.shm_segments = "1" apc.ttl = "3600" apc.user_ttl = "7200" apc.gc_ttl = "3600" apc.cache_by_default = "1" apc.filters = "" apc.write_lock = "1" apc.num_files_hint= …
27 mysql  nginx  php-fpm 

8
Apache2プロキシタイムアウト
私は、Apache2とPHP + PHP-FPMを次のように構成しています。 http://wiki.apache.org/httpd/PHP-FPM 内部Vhostでの実行に時間がかかるスクリプトを作成していますが、タイムアウトが発生し続けます。スクリプトが30秒未満で実行されると、すべてが正常に実行されます。 私のApacheログは私に伝えます: [Wed Apr 17 21:57:23.075175 2013] [proxy_fcgi:error] [pid 9263:tid 140530454267648] (70007)The timeout specified has expired: [client 58.169.202.172:49017] AH01075: Error dispatching request to :, referer: スクリプトを実行しようとすると、503 Service Unavailableちょうど30秒の実行時間が経過します。論理的には、これはタイムアウトディレクティブまたは設定が30秒に設定されていることを意味しますが、Vhostの構成には次のようなものがあります。 Timeout 600 <IfModule proxy_module> ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9001/home/pyrokinetiq/scripts/$1 timeout=600 ProxyTimeout 600 </IfModule> (php-fpmは私にとってポート9001で実行されています) 私はまた、配置しようとしているTimeoutとProxyTimeoutにhttpd.conf違いはありませんで。 に固有の別のタイムアウト設定があるようですがmod_proxy_fcgi、見つけることができません。公式のtarballからApache2 httpdをインストールしましたが、どのmodにも構成ファイルが付属していないようです。 誰かが私を正しい方向に向けることができれば、それは大歓迎です。

6
PHP-FPMの最大アップロード/投稿サイズを増やす
Ubuntu 14.04でNginxの下でphp5-fpmを実行しています。最大アップロードサイズを増やしたい。 /etc/php5/fpm/php.ini次の行を次のように定義するように編集しました。 upload_max_filesize = 20M post_max_size = 25M php5-fpmとnginxを再起動しましたphpinfo()が、投稿とアップロードの上限はそれぞれ8Mと2Mです。 ここで見逃したものはありますか?
22 nginx  php-fpm  php.ini 

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
php-fpmのアップストリームとロケーションの使用の違いは何ですか?
私は探し回っていましたが、答えを見つけることができませんでした。誰かがこれを明確にしてくれれば、感謝します! location ~ \.php$ { try_files $uri = 404; fastcgi_pass unix:/run/php-fpm/php-fpm.sock; fastcgi_index index.php; include fastcgi.conf; } または? upstream php { server unix:/run/php-fpm/php-fpm.sock; } ありがとう!

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