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

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

1
AWS Elastic Beanstalkでphp.iniにディレクティブを追加する方法は?
これらのPHP設定をElastic Beanstalk環境に追加したいと思います。 upload_max_filesize = 64M post_max_size = 64M これらのオプションは、以下のoption_settingsで設定できません.ebextensions。 Namespace | Extend ---------------------------------------------|------- aws:elasticbeanstalk:application:environment | Yes aws:elasticbeanstalk:container:php:phpini | No php.iniElastic Beanstalkコンテナにカスタム設定を追加するにはどうすればよいですか?

5
IPアドレスを自動的に一時的にブロックして、短期間でサーバー上で大量のヒットを発生させる方法
私のLAMPサーバーの1つは、悪用を探しているスクリプトボットの種類によって最近停止されました。一見すると、1秒に非常に多くの要求が行われたため、サーバーのRAMが過負荷になり、サイト全体が1時間ダウンしました。その「attacK」はすべて単一のIPアドレスからのものです。 それでは、IPアドレスを自動的かつ一時的にブロックして、LAMPサーバーで短期間のうちに多くのヒットを発生させることができますか?仕事に最適なツールは何ですか?オペレーティングシステムレベルまたはPHPでこれを解決する必要がありますか?

5
ローカル開発マシンでphp mail()関数が非常に遅い
背景:開発目的でローカルのapacheサーバーをセットアップしている場合、sendmailが電子メールを送信するのに長い時間(少なくとも1分)かかる問題が発生する可能性があります。生成した電子メールの問題をデバッグしようとすると、これは非常にイライラします。 この問題について議論するインターネット上のフォーラム投稿がいくつかあります。しかし、テーマはどれも私の限られた知識のために十分に詳細に何をすべきかを説明していませんでした。ここに私のために働いたステップがあります: 1)次のコマンドを使用して、ホスト名を見つけます(忘れた場合)。 :~$ cat /hosts/hostname myhostname 2)ファイル/etc/hostsを編集し、最初の行が次であることを確認します。 127.0.0.1 localhost.localdomain localhost myhostname 3)sendmail構成ファイル(/etc/mail/sendmail.cfUbuntuで)を編集し、行のコメントを外します#O HostsFile=/etc/hosts 4)コンピューターを再起動します。これでコンピューターの起動が非常に速くなり、mail()関数がほぼすぐに戻るはずです。ただし、手順5を実行しない限り、実際にはメールは送信されません。 5)メール機能を使用するときは常に、sendmailの「-f」オプションを使用する必要があります。例えば: mail('recipient@somewhere.com', 'the subject', 'the message', null, '-fsender@somewhere.com'); 私の仲間のサーバー障害者に対する私の質問は: sendmail -fオプションを使用する必要がないように、さらに変更を加えることができますか?-fオプションを追加するのはそれほど難しくありませんが、メールの送信時にCMS(Drupalなど)が-fオプションを使用しない場合は問題になります。このオプションを追加するには、コアモジュールをハックする必要があります。
21 php  sendmail  email 

12
神秘的に空の$ _POST配列
サーバーフォールトで回答できるため、 この質問はStack Overflowから移行されました。 9年前に移行し ました。 次のHTML / PHPページがあります。 <?php if(empty($_SERVER['CONTENT_TYPE'])) { $type = "application/x-www-form-urlencoded"; $_SERVER['CONTENT_TYPE'] = $type; } echo "<pre>"; var_dump($_POST); var_dump(file_get_contents("php://input")); echo "</pre>"; ?> <form method="post" action="test.php"> <input type="text" name="test[1]" /> <input type="text" name="test[2]" /> <input type="text" name="test[3]" /> <input type="submit" name="action" value="Go" /> </form> ご覧のとおり、フォームは送信され、期待される出力は、値が入力された1つの配列と、値が「Go」(ボタン)のエントリ「action」を含むPOST配列です。ただし、フィールドに入力する値に関係なく、結果は常に: array(2) { ["test"]=> …
21 php 

4
Ubuntu 16.04、ApacheでPHP 7.2から7.1に切り替える
Ubuntu 16.0.4では、VMの1つでPHPを7.2から7.1にダウングレードする必要があります。前回、PHPのみを削除して別のバージョンに置き換えようとしたときに、ApacheとMySQLにあらゆる種類の問題がありました。Apache(この記事の執筆時点での最新バージョン)およびその他すべてをサーバーに完全に再インストールおよび構成することなく、PHPを7.2から7.1にダウングレードする簡単な方法はありますか? PHP 7.2でアプリケーションが実行されると主張するソフトウェアベンダーから受け取った悪い情報のため、ダウングレードする必要があります。7.1が必要です。 7.2から7.1にダウングレードする方法に関する情報を探してみましたが、「アップグレード」の結果しか得られませんでした。 ご協力ありがとうございました。

6
PHPからMySQLへの接続が非常に遅い
XAMPPを新規インストールしました。PHPMyAdminを最初に開いたとき、非常に遅いことがわかりました。ローカルホストでは、すべてのページを開くのに約5秒かかるとは意味がありませんでした。PHPMyAdminのせいにするために、小さなテストケースを作成しました。 $con = new PDO("mysql:host=localhost;dbname=mysql", "root", ""); $statement = $con->query('SELECT host,user,password FROM user;'); $users = $statement->fetchAll(PDO::FETCH_ASSOC); 上記のスクリプトは、実行に約3秒かかります(ただし、最初に実行したときに読み込むのに8秒近くかかりました)。 次に、PDOの障害かどうかを確認するために、mysql_connect代わりに使用してみました。 $con = mysql_connect("localhost", "root", ""); mysql_select_db("mysql", $con); $result = mysql_query('SELECT host,user,password FROM user;'); 終了するのに丁度時間がかかります。 最初はPHPのせいだと思っていましたが、PHPコードと静的ファイルは、更新をクリックするよりも早く提供されます。この小さなスクリプトを実行してPHPをテストしました。 header("Content-Type: text/plain"); for($i = 0; $i < 5000; $i++) { echo sha1(rand()) . "\n"; } 5000のsha1計算とページは、ウィンドウを更新できるよりもずっと速く表示されます。 それから、MySQLのせいだと思った。しかし、繰り返しますが、MySQLが必要以上に高速に動作していることを理解するために多くのテストをしませんでした。MySQL …
19 windows  mysql  php  xampp 

1
LinuxシステムにPECLをインストールする方法
http://pecl.php.net/にPECL拡張機能のダウンロードセクションがあり ますが、PECLのインストール手順が得られません*それ自体**。次のコマンドは機能しません- yum intall pecl 私のシステムにはPECLがインストールされているため、次のようなPECL拡張機能をインストールできます。 pecl install mailparse ただし、実行中のpeclコマンドが同じものを認識しないシステムでは、Fedora 7システム(古いシステム)にPECLを最初にインストールする方法。
19 php  pecl 

4
pecl install APCを介したAPCのインストールに失敗しました
私は経由でAPCをインストールしようとするpecl install APC-3.1.5 、あるいはpecl install APCパッケージがに来るとき、私は次のエラーを取得するmakeコマンド: running: make /bin/sh /var/tmp/pear-build-root/APC-3.1.5/libtool --mode=compile cc -I. -I/var/tmp/APC -DPHP_ATOM_INC -I/var/tmp/pear-build-root/APC-3.1.5/include -I/var/tmp/pear-build-root/APC-3.1.5/main -I/var/tmp/APC -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /var/tmp/APC/apc.c -o apc.lo mkdir .libs cc -I. -I/var/tmp/APC -DPHP_ATOM_INC -I/var/tmp/pear-build-root/APC-3.1.5/include -I/var/tmp/pear-build-root/APC-3.1.5/main -I/var/tmp/APC -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -I/usr/include/php/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c …
18 php  centos  centos5 

4
Apache / PHPベースのWebアプリで明らかなメモリリークの原因を特定するにはどうすればよいですか?
約1週間に1回ですが、何日間も正常に実行された後、1日数回でさえ、EC2インスタンスが応答しなくなります。Muninのメモリグラフは、「アプリ」に割り当てられたメモリが成長し始め、スワップが完全に使用され、インスタンスが効果的にひざまずくまで停止しません。別のカスタムグラフは、絶えず成長しているプロセスがapache2であることを示しています。 mod_phpといくつかのPHPスクリプトを使用して、標準のprefork Apacheセットアップを実行します。以下のグラフでわかるように、apache2プロセスをトリガーしてメモリの消費を開始する何かが発生します。私が間に合った最初の緑のスパイクは、物事が手に入らないうちにApacheを再起動しました。2番目のスパイクは少し遠くになり、インスタンスを完全に再起動する必要がありました。 ムニンメモリグラフ 私が疑問に思っているのは、これをどのようにデバッグするのが最善かということです。FastCGIを使用してPHPをセットアップし、独自のプロセスで実行する以外に、Apacheか、PHPとコードの組み合わせが過剰なメモリ使用の原因であるかを判断する良い方法は何ですか?この問題を追跡するためにどのような手順を取りますか? 更新:マットが以下に提案したように、私はstraceを巻き込んだ後にリークを追跡することができました。 メモリ内で徐々にそして継続的に成長しているapache2プロセスを見つけた後、PHPスクリプトにさらにいくつかのerror_log()呼び出しを追加し、実行中のさまざまなポイントで使用されるRSSの合計量を出力しました(psの出力を使用)。しかし、それは誤解を招くものであることが判明しました。RSSは、スクリプトの実行が完了した後にのみジャンプしたように見えましたが、後のデバッグでは実際にはそうではないことが明らかになりました。注意してください! 幸いなことに、これらのerror_log()呼び出しはすべて最終的には有用であることが判明しました。strace(strace -p <pid> -tt -o trace.log -s 256)を起動したとき、リクエストごとに、プロセスが約400kのメモリを割り当てていることがわかりました(「brk」システムコールを探し、最後のコールから最初のコールのパラメータを減算します-通常、いくつかは別の後に)。次に、error_log()メッセージを含む最新の「書き込み」システムコールを検索しました。これにより、スクリプトのどの時点でメモリが割り当てられているかがわかります。より正確に位置を特定するために、いくつかのより戦略的に配置されたerror_log()呼び出しで、最終的に犯人を見つけました。 PHPスクリプトからcurl_exec()を呼び出したときにメモリがリークしていました。SSL接続の処理に関連する一部のcurlコードは何か間違ったことをしている-HTTPに切り替えたときにリークはなくなりました。Curlのchangelogは、7.19.5で修正されたいくつかのSSLメモリリークを参照しているため(7.18.2でした)、次に試してみます。 それまでは、Apacheを妥当な範囲内に収める非常に低いMaxRequestsPerChildで実行しています。みんな、ありがとう!
18 php  apache-2.2  memory 

6
常に使用されているサイトでメンテナンスを実行する方法についてのアイデアはありますか?
オーストラリアの大規模なゲームサイトを手伝います。現地時間の午前7時から翌日の午前1時まで、毎日毎日コンテストを開催しています。サイトがリリースされてから1日もスキップしていません。当然、これによりメンテナンスの実行が非常に難しくなり、ステージングサーバーが本番ブランチよりも最大50コミット先になることがわかります。通常、メインの開発者は、ブランチをマージしてすべてが正常に機能することを確認するために、非常に早く起動する必要があります。 ステージングサイトはできる限り本番サイトと同じようにしようとしてきましたが、できるだけ同じようにすることができます。 私たちのサイトは、リアルタイムのNode.JSサーバーを備えたLaravelに基づいています。Laravel Forgeを使用しています。 更新をより頻繁にプッシュする方法について提案はありますか?私たちは何に対してもオープンです。


7
HomebrewによってインストールされたPHPにPostgresサポートを追加する方法は?
MySQLのサポートとXDebugを含むHomebrewを使用して、PHPの新しいバージョンを既にインストールして設定しています。それはうまくいきます。ただし、PostgreSQLのサポートもインストールする必要があります。どうすればいいですか? オプションを追加するだけで、PHPを初めてインストールするときに簡単だとわかりました。 homebrew install php53 --with-pgsql PHPがすでにインストールされているときに、完全に再インストールせずに同様のことを実現するにはどうすればよいですか?または、再インストールすると、すべての構成とXDebugなどの追加設定が保持されますか?
18 php  mac-osx 

3
PHP7を使用したfastcgi_passの許可が拒否されました
PHP7.0でLEMPを実行しています。 サーバーブロックにこれがあります fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; しかし、サイトを開くと、502 Bad Gatewayが返されます。以下はエラーログです。 *1 connect() to unix:/var/run/php/php7.0-fpm.sock failed (13: Permission denied) while connecting to upstream, client: xxx.xxx.xxx.xxx, server: example.com, request: "GET / HTTP1.1", upstream: "fsatcgi://unix:/var/run/php/php7.0-fpm.sock:", host: "example.com" 許可が拒否されたと表示されます。ここで何が問題なのですか?私はチェックしましたが、どのような許可を与える必要があるかを見つけることができないようです。 ありがとうございました。
18 nginx  php  php7 

1
cronジョブはどのタイムゾーンを使用していますか?
PHPの時間とサーバーの時間に違いがあると思います。 PHPで現在の時刻を確認すると、MSTが使用されていることがわかります。ただし、cronジョブは正しい時間に実行されていません。 PHPが使用するように設定されているのではなく、サーバー自体が使用しているタイムゾーンを確認するにはどうすればよいですか?
17 linux  php  time  timezone 

1
UbuntuでPHPのGMP(数学関数)をインストール/有効にする方法は?
のようなgmp数学関数を呼び出すと、次のようgmp_modになります: Fatal error: Call to undefined function gmp_mod() php5-gmpパッケージをインストールし、Webサーバーを再起動しましたが、機能は未定義のままです。サーバーはUbuntu 10.04を実行しており、PHPはApacheモジュールとして実行されています。すべてのソフトウェアは公式パッケージからインストールされました。 PHPでGMP数学関数を有効にするにはどうすればよいですか?ソースからコンパイルするのではなく、公式パッケージを使用するソリューションを探しています。

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