エラーメッセージ:
--------------------------------------------- -------
: (
許容メモリ サイズ 1916796928 バイトが使い果たされました (3086655745 バイトを割り当てようとしました)
ファイル:/Data/XXX/Common/Function s.php 行: 370
Thinkphp3.2.2 { 高速かつシンプルOOP PHP フレームワーク } -- [ 考えるだけでできる ]
---------------------------------- --------------------
環境はphp5.4+nginx+mysql、マシンはAlibaba Cloudホスト、メモリは1024mです
そのようなことに遭遇した人はいますか?問題は何ですか?
どうすれば解決できますか? www.conf のmemory_limit を変更した後もこの問題が発生します
一度に 2.8G が必要ですか?行は次のようなものです:
return ucfirst(preg_replace_callback('/_([a-zA-Z])/', function($match){return strtoupper($match[1]);}, $name));実際に 2.8G メモリを割り当てたいですか?
許容メモリ サイズ 1916796928 バイトが使い果たされました (3086655745 バイトを割り当てようとしました)
の意味:191679692 8b (1828M) の使用可能なメモリ
3 を申請します086655745b ( 2943M) スペースに失敗しました
処理される変数 $name に明らかに問題があります
Runtime ディレクトリをクリアしても、問題はまだ解決されていません
2 日経ちましたが、問題はまだ解決されていません! 解決策...
フレームワークがメモリを消費します。
フレームワークがどれだけのメモリを消費しても、おそらく無限ループになり、スペースが空き続けます。問題、書かないでください
$b = preg_replace_callback('/_([a-zA-Z])/', 'aaa', $name)
function aaa($match){
Return strtoupper($match[1]);}
_([a-zA-Z]) を置き換えて最初から検索するため、無限ループになる可能性があります終了させる必要があります。
たとえば、停止するには _ を削除します おそらく、別の解決策を使用できます: preg_replace、preg_match_all、preg_split
まあ、フレームワークがどれだけのメモリを消費しても、2G を消費することはできません
おそらく無限ループで常にスペースが開かれます。
問題がその文にあると確信している場合は、それほど複雑に書かないでください
$b = preg_replace_callback('/_([a-zA-Z])/', 'aaa', $name)
return ucfirst($ b);
function aaa($match){
return strtoupper($match[1]);
_([a-zA-Z]) を置き換えて最初から開始するためかもしれません、つまり無限ループになるので、何らかの方法で終了させる必要があります。
別の解決策としては、preg_replace、preg_match_all、preg_split が考えられます
----------- ---------- --------------------
これはフレームワーク内のコードです。私が書いたものではありません。
リフレッシュ後、再度以下の問題が発生しました。再度リフレッシュしても上記のメモリ問題が交互に発生します。
------------------
502 Bad Gateway
nginx/1.4.1
プログラムの書き方が間違っている可能性があります。間違っているため、基礎となるフレームワークが無限ループを作成します。
これを実行すると、制御できる論理フローがわかります。
どの文が開かれるまでこの問題が発生するか、その文は間違っています。
その文でどのような関数が使用されているかを確認し、変数を出力し、パラメータを渡す順序が正しいかどうかを確認します。
うまくいかない場合は、その文と近くのコードを投稿して、みんなが見てみるのを手伝ってください
3.0 を見てみましたが、あなたが言及したような機能はないようです
http://doc.thinkphp. cn/reference/functions.html
バージョンが古い可能性がありますか?
ああ、3.2.2 を読み間違えました。9 階を押して実行してください。
http://document.thinkphp.cn/manual_3_2.html
一度に 2.8G 必要ですか?
--------- ----- ----------------
問題の原因は、preg_replace_callback にメモリ リークがあることです。 Windows では問題ありませんが、Linux 5.4.22 では突然上記の問題が発生します。
問題は、Linux で php5.4 を使用すると、TP32 で上記の問題が発生する可能性があることです。
我的php环境是 5.4.22.
很奇怪!即便我判定是 bug,那也不能说明什么
什么东西一次要2.8G?
----------------------------
版主,你不是碰到和回答过同样问题么?你是不是天天熬夜到2点,达到了过目就忘的能力啊。
问题原因就在于:preg_replace_callback出现内存泄露。在windows下没有问题,在linux下5.4.22,一下有上面问题。
所在,TP32在linux用php5.4可能会出现上面问题。
我怀疑是你的程序哪里错了,可能是写法错了,使底层框架产生死循环。
你这样做,查看你可控的逻辑流程。
从上面开始,一句句往下添加exit();(当然你可以用二分法找)
直到开启哪一句使得出现这个问题,就是那句错了。
查一下那句用到了什么函数,打印一下变量,看看传参顺序有没有错。
不行的话把那句及附近的代码贴上来让大家帮你看看
多谢,和我程序完全没有关系。随便使用下 preg_replace_callback就会出现问题。比如test.php:
var_dump(preg_replace_callback('/\w{2}/',function($m)use(&$i){ echo ' i='.$i++; return $m[0]."cc ";},'abcd2acc'));
也会出现同样的问题。在国外网站随便一搜索,报告这个bug的人实在是太多了。但一直反复解决了,又反复出现。
自己写了个自认为比TP优秀多的框架YuYan PHP,从根本上解决了此问题。

phpssionscanStorestrings、numbers、arrays、andobjects.1.strings:textdatalikeusernames.2.numbers:integersorfloatsforcounters.3.arrays:listslikeshoppingcarts.4.objects:complextructuresthataresialized。

tostartaphpsession、outsession_start()atthescript'sbeginning.1)placeitbe foreanyouttosetthesscookie.2)usesionsionsionsionserdatalikelogintatussorshoppingcarts.3)再生セッションインドストップレベントフィックスアタック

セッション再生とは、新しいセッションIDを生成し、セッション固定攻撃の場合にユーザーが機密操作を実行するときに古いIDを無効にすることを指します。実装の手順には次のものが含まれます。1。感度操作を検出、2。新しいセッションIDを生成する、3。古いセッションIDを破壊し、4。ユーザー側のセッション情報を更新します。

PHPセッションは、アプリケーションのパフォーマンスに大きな影響を与えます。最適化方法には以下が含まれます。1。データベースを使用してセッションデータを保存して応答速度を向上させます。 2。セッションデータの使用を削減し、必要な情報のみを保存します。 3.非ブロッキングセッションプロセッサを使用して、同時実行機能を改善します。 4.セッションの有効期限を調整して、ユーザーエクスペリエンスとサーバーの負担のバランスを取ります。 5.永続的なセッションを使用して、データの読み取り時間と書き込み時間を減らします。

phpsesionsareserver-side、whilecookiesareclient-side.1)Sessionsionsionsoredataontheserver、aremoresecure.2)cookiesstoredataontheclient、cookiestoresecure、andlimitedinsizeisize.sesionsionsionivationivationivationivationivationivationivationivate

phpidentifiesauser'ssessionsingsinssessionCookiesIds.1)whensession_start()iscalled、phpgeneratesauniquesidstoredsored incoookienadphpsessidontheuser'sbrowser.2)thisidallowsphptortorieSessiondatadata fromthata

PHPセッションのセキュリティは、次の測定を通じて達成できます。1。session_regenerate_id()を使用して、ユーザーがログインまたは重要な操作である場合にセッションIDを再生します。 2. HTTPSプロトコルを介して送信セッションIDを暗号化します。 3。Session_Save_Path()を使用して、セッションデータを保存し、権限を正しく設定するためのSecure Directoryを指定します。

phpsessionFilesToredInthededirectoryspecifiedBysession.save_path、通常/tmponunix-likesystemsorc:\ windows \ temponwindows.tocustomizethis:1)uesession_save_path()tosetaCustomdirectory、ensuringit'swritadistradistradistradistradistra


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ホットトピック









