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

PHPは、特にWeb開発に適した汎用スクリプト言語です。オンラインマニュアルは、言語構文に関する優れたリソースであり、組み込み関数と拡張関数の広範なリストがあります。ほとんどの拡張機能はPECLにあります。

4
スクリプトの実行前に$ _SERVER ['REDIRECT_URL']をグローバルに設定できますか?
現在、多くのサイトを古いサーバー構成から新しいサーバー構成に移行しています。各サイトは、mod_rewrite URLを使用して、類似した(残念ながら同一ではない)コードベースに基づいています。 Ubuntu 8.04 LTS => Ubuntu 12.04 LTS Apache 2.22.8 => Apache 2.2.22 PHP 5.2(FastCGI)=> PHP 5.3(PHP5-FPM) ほとんどはチャームのように機能しますが、新しい構成では$ _SERVER ['REDIRECT_URL']が設定されなくなり、このグローバル変数への依存が原因でコードが失敗します。 私の理解では、この変数はリダイレクトが発生したときにApacheによって設定されます。明らかにこれは現在起こっていませんが、原因を見つけるのに苦労しています。 それはApacheのアップグレードですか、(私の推測では)PHP FastCGIからPHP5-FPMへの切り替えですか? この変数を元に戻すにはどうすればよいですか? 各サイトのコードを編集する必要はないので、必要に応じてグローバルなPHP auto_prependを設定しますが、理想的にはサーバー構成を修正し、これを最初に設定したいと思います。 潜在的に関連:私は今、いくつかの新しい$ _SERVER変数、つまりREDIRECT_SCRIPT_URLとREDIRECT_REDIRECT_SCRIPT_URLも持っています。これらはREDIRECT_URLに必要な正しいデータを持っているようですが、以前にはなかった2つの内部リダイレクトが発生していることも示しているようです-REDIRECT_REDIRECT_SCRIPT_URLを検索すると、ランダムなvar_dump出力しか返されません。SCRIPT_URLは新しいREDIRECT_URLですか? 編集1 再チェックREDIRECT_URLは(現在)設定されていますが、予想される型付きURLではなく、常に 'index.php'(mod_rewriteターゲット)に設定されています。PHP auto_prepend_fileを使用して、必要な変数を手動で設定しました。 初めて見逃したかどうかはわかりませんが、その間にいくつかの変更を加えたので、そこにない可能性が外部にあると思います。これが誰かを誤解させるならば、謝罪してください。 編集2 以下のErrorDocumentの言及に対処するために、使用されているmod_rewriteルールは次のとおりです。 RewriteRule ^(.*)$ /index.php?url=$1 [QSA,L] $ _GET ['url']変数が設定されているため、ルールが機能している必要があります。 明確にするために、この段階では、最初に述べたauto_prepend_fileの回避策を使用しました。

1
php.iniの代わりにphp-fpm confでphp値を設定する
php.iniで通常設定されている値をphp-fpm confファイルに設定したいのですが。nginxを使用しています。 次の設定を作成しましたが、これが機能するかどうかはわかりません。 php_value[memory_limit] = 96M php_value[max_execution_time] = 120 php_value[max_input_time] = 300 php_value[php_post_max_size] = 25M php_value[upload_max_filesize] = 25M これで大丈夫かと思いますか? php.iniとphp-fpm confファイルの両方に値が設定されている場合はどうなりますか?php-fpmはiniをオーバーライドしますか? 最後に、この方法ですべての仮想ホストに異なる値を設定できることは問題ではありませんか?php.iniはグローバル設定のように見えますが、これはホストに依存しています。異なるホストは異なるメモリ制限などで実行できますか?

2
1MBを超えるファイルのアップロード=接続のリセット
フロントエンドでnginxを「プロキシキャッシュ」として、バックエンドでapacheを使用しています。PHP設定を次のように設定しました。 error_log = /var/www/site1/php_error.log error_reporting = 22527 file_uploads = On log_errors = On max_execution_time = 0 max_file_uploads = 20 max_input_time = -1 memory_limit = 512M post_max_size = 0 upload_max_filesize = 1000M どうしたの?1MB未満のファイルのアップロードは成功しますが、それを超えるものは、Google Chromeで出力されます。 Error 101 (net::ERR_CONNECTION_RESET): The connection was reset. エラーログファイルを既に確認しましたが、ディレクトリに存在しません。私もチェックしました/var/log/httpd/error_logが、アップロードに関する問題はありませんでした。問題の原因となった可能性のある他に何も知らないので、私はあなたの救いの手を差し伸べました。ありがとう!
8 apache-2.2  php  nginx 

1
CPU使用率が高く、メモリ使用量が少ない場合、Apacheをどのように調整すればよいですか?
CentOS Webノード(LAMPスタック)で、CPU使用率が高く、メモリ使用率が低くなっています。ほぼすべてのプロセスがApacheです。私のCPU使用率が合理的になるまで、追加のWebノードを追加できることはわかっていますが、ここで長い道のりを歩むことができるいくつかのクイックチューニングのヒントがあると思います。 CPUは90-100%の間でバウンスします。Mysqlは5%から45%の間でバウンスします。残りはApacheが構成します。 上: top - 21:15:49 up 46 days, 20:39, 4 users, load average: 34.17, 44.62, 51.03 Tasks: 133 total, 32 running, 101 sleeping, 0 stopped, 0 zombie Cpu(s): 90.4%us, 9.6%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.1%st Mem: 8388608k total, 6116448k used, 2272160k free, 84160k buffers Swap: 16777208k total, …

3
memcache.soに関するトラブル
他の誰かが構築したサイトを立ち上げるように頼まれました。これは、実行するためにMemcachedを必要とするWordpressショップサイトであり、ローカルサーバーでMemcachedとmemcache phpプラグインを動作させるのに問題があります。memcachedとmemcache PHPプラグインをインストールする前に、次のエラーが発生します。 Fatal error: Class 'Memcache' not found in [Path]wp-content/object-cache.php on line 350 memcachedとmemcache PHPプラグインを(Homebrew経由で)インストールしたので、「データが受信されませんでした」ページが表示され、Apacheエラーログにこのエラーが表示されます。 dyld: lazy symbol binding failed: Symbol not found: _mmc_queue_pop Referenced from: /usr/lib/php/extensions/no-debug-non-zts-20090626/memcache.so Expected in: flat namespace dyld: Symbol not found: _mmc_queue_pop Referenced from: /usr/lib/php/extensions/no-debug-non-zts-20090626/memcache.so Expected in: flat namespace [Sat May 05 16:38:27 2012] [notice] …
8 php  mac  memcached  memcache  lion 

5
mysql_connect():サーバーは、クライアント[mysql_old_password]に不明な認証方法を要求しました
PHP 5.4.1(ソースからコンパイル)を実行しようとしていますが、mysqlで接続しようとすると、次のようになります。 Warning: mysql_connect(): The server requested authentication method unknown to the client [mysql_old_password] in PHP 5.3 / 5.2を使用すると、正常に動作します。この問題の原因は何ですか?
8 php 

3
Php5-fpm訪問者が多いとクラッシュする
Nginxにかかる低リソースについて詳しく読んだので、OPをLitespeedからNginxに変更することにしました。 500人のユーザーがオンラインでWordpressサイトを運営しています たくさんの助けをしてくれてGuysに感謝します:)私はいくつかのことを編集しました。 私もいくつか質問があります: を削除する必要がありますか?午後の前に。設定?私はそれを削除しましたどのような構成が重要ですか?/ etc / php5 / fpmにphp-fpm.confと呼ばれる2つの高速cgiと、www.confと呼ばれる/etc/php5/fpm/pool.dに1つあります。 私は一晩新しい設定を試しました、そして目覚めたとき、私はすでに空白のページを得ました。上: top - 13:55:27 up 1 day, 19:28, 2 users, load average: 0.18, 0.36, 0.19 Tasks: 84 total, 1 running, 83 sleeping, 0 stopped, 0 zombie Cpu(s): 0.2%us, 0.0%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 3974264k total, 1051360k used, …
8 php  nginx  php-fpm 

5
Nginx / FPM / PHPすべてのphpファイルは「ファイルが見つかりません」と言います。
私はちょうどcentos 5.8最終64ビットマシンにnginx 1.1.13とphp 5.4.0をインストールしました。NginxとPHP / Fpmが実行されており、sshコマンドラインを介してphpスクリプトを実行できますが、ブラウザで「ファイルが見つかりません」というメッセージが表示され続けます。すべてのPHPファイルのエラー。 これは私がnginx.confにPHPスクリプトを処理させる方法です: location ~ \.php$ { root /opt/nginx/html; fastcgi_pass unix:/tmp/fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /opt/nginx/html$fastcgi_script_name; include fastcgi_params; } これは、他のサーバーからの直接のコピー/貼り付けであり、この設定で正常に動作します(ただし、古いバージョンのphp / fpmを実行します)。 これらのエラーが発生するのはなぜですか?
8 php  nginx  php-fpm 

1
コマンドラインのPHPに「メモリ不足」と表示され、ファイル名、行番号、メモリ値が表示されない
私は最初にこれを/programming/9665189/php-on-command-line-displays-out-of-memoryに投稿しましたが、代わりにここに投稿することをお勧めしました。 これは、ファイル名、行番号、または使用されたメモリの量を提供しないため、スクリプトでメモリが不足した場合の通常の致命的なエラーではありません。スクリプトを渡すか、単純にphpを単独で実行したときに、コマンドラインでphpを実行しようとすると、「メモリ不足」と表示されます。存在しないスクリプトを実行しようとしても、同じメッセージが表示されます。 言い換えれば、私はこれを得る: dan@server [~]# php Out of memory dan@server [~]# php test.php Out of memory dan@server [~]# php doesntexist.php Out of memory dan@server [~]# php -v Out of memory ただし、Apacheを介したPHPはまったく問題なく動作します。このエラーが発生するのはCLIだけです。 問題のマシンは64ビットのCentOSリリース5.7(Final)とPHP 5.3.10を実行しています。専用サーバーです。 私はulimit -aをdanとして実行してみましたが、これが出力です。 core file size (blocks, -c) 200000 data seg size (kbytes, -d) 200000 scheduling priority (-e) …

3
Apache + PHP-FPM =ランダムな「エラー解析スクリプトヘッダー」+セグメントフォールト
私は、proxy_fcgiを使用して、Apache 2.4でPHP-FPMを設定していますが、すべて正常に動作しますが、4〜6リクエストのすべてで、Apacheは空白のページを返します。これは私のメインサイトhttp://danielhe.com/で発生しますが、サブドメインvhostsでは発生しません。 これは、Apacheのエラーログ[クライアントx]を表示しますAH01070:スクリプトヘッダーの解析エラー そして最終的には、Apache segfaults AH00052が時々発生します:子pid 9740終了信号セグメンテーション違反(11) 「エラー解析スクリプトヘッダー」はページを数回更新することで非常に簡単に再現できますが、「エラー解析スクリプトヘッダー」を数回実行すると、セグメンテーション違反がランダムに発生します。 更新 セグメンテーション違反の修正を見つけました。WSODは明らかにそれ自体を修正しました。mod_deflateにはいくつかの問題がありますが、Apacheドキュメントのこの構成により修正されました SetOutputFilter DEFLATE BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html # Don't compress images SetEnvIfNoCase Request_URI \ \.(?:gif|jpeg|jpg|png)$ no-gzip dont-vary # Make sure proxies don't deliver the wrong content Header append Vary User-Agent env=!dont-vary

6
DebianでPHP 5.4から5.3にダウングレード
サーバーでDebian dist-upgradeを実行する必要がありました...その過程で、PHPは5.4にアップグレードされました。5.3 atmまでしかサポートしていないioncubeを使用していますが、5.4から5.3にダウングレードする方法を見つけるのに苦労しています。誰か知ってる?
8 php  php5  debian 

3
S3バケットをEC2インスタンスに直接マウントすることは安全ですか?
私の質問のタイトルが言うように、これが良い習慣かどうか知りたいのですが、 EC2インスタンスにマウントできることはわかっていますが、アプリケーションをスケーリングするためにインスタンスを追加するので、これがいくつかの問題を引き起こすのではないかと考えていました。これについての経験はありますか? PHPスクリプトを介したファイルのアップロードを許可するためにS3を使用しているので、基本的には次の質問です。 moutingを使用することは良い習慣ですか、それともユーザーファイルのアップロードを処理するより良い方法がありますか? 前もって感謝します

3
PHPモジュールのディレクトリを変更する
私はphpをコンパイルしていて、私のモジュールディレクトリを/ usr / lib64 / 20090626-ztsに設定しています これを/ usr / lib64 / php / modulesに変更したいのですが、そのための構成オプションが見つかりません。 php.iniで変更してディレクトリを移動できますが、phpizeを実行して新しいモジュールを作成すると、/ usr / lib64 / 20090626-ztsに配置されます
8 linux  php 

2
PHP + cURLからの発信httpリクエストをログに記録する方法は?
サイトでアクションが実行されるたびにcURLリクエストを行うPHPスクリプトを設定しています。問題は、アクションが実行されるたびに情報が2回POSTされることです。 これが私の問題(cURLが2回実行されている)であるか、POST先のURLが何かを2回実行している場合は、解決する必要があります。 これを行う最善の方法は、サーバーからの送信HTTP POST要求を表示することだと思います。 これは最良の選択肢ですか?もしそうなら、私はそれについてどうやって行くのですか?
8 linux  ubuntu  php  curl 

6
Apacheが転倒しないようにするにはどうすればよいですか?
中程度のトラフィックを持つ単一のMagento eコマースサイトをホストしているサーバーのペアがあります(Googleアナリティクスから報告された1日あたり6万ページビュー、サーバー自体については約8万レポート報告されています)。データベースサーバーは、まれに時折発生する問題を除いて、スムーズかつ迅速に実行されますが、Apacheサーバーは時々故障しています。 推奨のPHPキャッシング(APC)を使用するようにmagentoを設定し、1.5ギガのtmpfsに独自のキャッシュファイルを保持しています(このtmpfsは定期的にかなりいっぱいになり、tmpfsが実行されたときにキャッシュファイルをクリアするスクリプトを実行しています) 80%以上フル)。アマゾンクラウドフロントからほとんどの画像を提供します。私は最近、nginxをapacheのリバースプロキシとして設定しました(nginxは静的ファイルも提供します)。私はできる限りApacheを構成しました-キープアライブとホスト名検索はオフで、プリフォークは次のように構成されています。 <IfModule prefork.c> StartServers 50 MinSpareServers 50 MaxSpareServers 100 ServerLimit 512 MaxClients 256 MaxRequestsPerChild 400 </IfModule> .htaccessファイルをオフにしていません。アクセスログはオンになっています。オフにできるモジュールがいくつかあることは知っています。これら3つの変更のどれがどんな影響を与えるかはわかりません。 Apacheサーバーは、6ギガのRAMを備えたVPSです。執筆時点でサーバーはレポートしていますがload average: 17.77, 18.27, 49.76、約2ギガのRAMが解放されています。ひどい状態になると、負荷は120以上になり、そこに留まります。Apacheを再起動すると、サイトが復旧し、負荷が低下します。 vmstatは(サーバーが上記の負荷を報告している間)、CPUアイドル値が0から70の間で変動していることを示していると思います。iostatは0から0.2%のiowait値を示しています。 少し行き詰まっています。問題は、実行中のコードとユーザー数の組み合わせの結果としてCPUが過負荷になることであると私がほとんど知りません。しかし、私はそれが問題であることを確認するのに十分な経験がありません。それが問題である場合、解決策は、コードを改善するか、ロードバランサーを使用して2つのVPSでホストしているサイトを分割することです。 だから、私の質問は次のとおりだと思います: サーバー上の問題やボトルネックを見つけるために他に何ができますか? これを改善するためにサーバー構成に加えることができる明らかな変更はありますか? 負荷が特定のレベルを超えたときにapacheを再起動するように自動システムを設定することは良い考えですか? 上記から、サイトがサーバーを超えている可能性はどのくらいありますか? 編集: 私は変なものを見つけました-/ var / spool / mail / rootは大きいです... 38ギグ。それは聞こえます...不健康です。それが問題でしょうか?

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