এক্সডিবেগের সাথে পিএইচপি-তে কিছু সময়ের জন্য অ্যাপাচি চালানোর পরে ম্যাক ওএসএক্সে "অনেকগুলি ফাইল খোলা"


13

আমি ম্যাক ওএস এক্স ১০.৯.৪ চালাচ্ছি, যার মধ্যে ব্রু থেকে পিএইচপি 5.5.14 সহ বিল্টিন অ্যাপাচি 2 ওয়েবসার্ভার রয়েছে (প্যাকেজ: পিএইচপি 55, পিএইচপি 55-ইনটেল, পিএইচপি 55-পিডিএসকিএল, পিএইচপি 55-এক্সডিবাগ)।

এই সেটআপটি চালানোর সময় এটি বেশ ভালভাবে কাজ করে। যাইহোক, কিছু সময়ের পরে, আমি প্রতিটি অনুরোধের জন্য 403 ত্রুটিগুলি চালিয়ে যাব। আমি অ্যাপাচি ত্রুটি লগটি সন্ধান করেছি এবং নীচের মতো কিছু পেয়েছি:

[Fri Jul 25 05:28:18 2014] [error] [client 127.0.0.1] PHP Warning:  require_once(/Users/daniel/Development/massiveart/sulu-complete/app/bootstrap.php.cache): failed to open stream: Too many open files in /Users/daniel/Development/massiveart/sulu-complete/web/website.php on line 10, referer: http://sulu.lo/de
[Fri Jul 25 05:28:18 2014] [error] [client 127.0.0.1] PHP Stack trace:, referer: http://sulu.lo/de
[Fri Jul 25 05:28:18 2014] [error] [client 127.0.0.1] PHP   1. {main}() /Users/daniel/Development/massiveart/sulu-complete/web/website.php:0, referer: http://sulu.lo/de
[Fri Jul 25 05:28:18 2014] [error] [client 127.0.0.1] PHP Fatal error:  require_once(): Failed opening required '/Users/daniel/Development/massiveart/sulu-complete/web/../app/bootstrap.php.cache' (include_path='.:/usr/local/Cellar/php55/5.5.14/lib/php') in /Users/daniel/Development/massiveart/sulu-complete/web/website.php on line 10, referer: http://sulu.lo/de
[Fri Jul 25 05:28:18 2014] [error] [client 127.0.0.1] PHP Stack trace:, referer: http://sulu.lo/de
[Fri Jul 25 05:28:18 2014] [error] [client 127.0.0.1] PHP   1. {main}() /Users/daniel/Development/massiveart/sulu-complete/web/website.php:0, referer: http://sulu.lo/de
[Fri Jul 25 05:28:40 2014] [crit] [client 127.0.0.1] (24)Too many open files: /Users/daniel/Development/massiveart/sulu-complete/web/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable, referer: http://sulu.lo/de
[Fri Jul 25 05:28:41 2014] [crit] [client 127.0.0.1] (24)Too many open files: /Users/daniel/Development/massiveart/sulu-complete/web/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable, referer: http://sulu.lo/de
[Fri Jul 25 05:28:41 2014] [crit] [client 127.0.0.1] (24)Too many open files: /Users/daniel/Development/massiveart/sulu-complete/web/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable, referer: http://sulu.lo/de
[Fri Jul 25 05:28:41 2014] [crit] [client 127.0.0.1] (24)Too many open files: /Users/daniel/Development/massiveart/sulu-complete/web/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable, referer: http://sulu.lo/de
[Fri Jul 25 05:28:45 2014] [crit] [client 127.0.0.1] (24)Too many open files: /Users/daniel/Development/massiveart/sulu-complete/web/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable, referer: http://sulu.lo/de
[Fri Jul 25 05:28:45 2014] [crit] [client 127.0.0.1] (24)Too many open files: /Users/daniel/Development/massiveart/sulu-complete/web/.htaccess pcfg_openfile: unable to check htaccess file, ensure it is readable, referer: http://sulu.lo/de

আমার কাছে দেখে মনে হচ্ছে ফাইলটি আর পড়তে পারে না এবং এটি 403 কোনওভাবে ফেরত দেয়। আমি ইতিমধ্যে নির্দিষ্ট সীমা সম্পর্কে জানতে পেরেছি, তবে লঞ্চক্টেল রিটার্নগুলির আমার কাছে খোলা ফাইলগুলিতে সীমাহীন হার্ড সীমা রয়েছে:

 ~ $ launchctl limit
    cpu         unlimited      unlimited
    filesize    unlimited      unlimited
    data        unlimited      unlimited
    stack       8388608        67104768
    core        0              unlimited
    rss         unlimited      unlimited
    memlock     unlimited      unlimited
    maxproc     709            1064
    maxfiles    256            unlimited

আমি ইতিমধ্যে কমান্ডটি দিয়ে ম্যাক্সফিলগুলি 4096 এ সেট করার চেষ্টা করেছি launchctl limit maxfiles 4096 16384, তবে কিছু সময় পরেও বিষয়টি আবার ফিরে আসে। আর কি কি ধারণা আমি চেক করতে পারি?

আপডেট : lsof -c httpdগর্ডন ডেভিসনের পরামর্শ অনুসারে কমান্ডটি চালানোর সময় , আমি দেখতে পাচ্ছি যে নীচের মতো প্রচুর এন্ট্রি রয়েছে:

httpd   1361 _www   15u    IPv4 0xb306b48659f63853       0t0     TCP localhost:50603->localhost:cslistener (CLOSED)

আমি বলতে পারি যে আমি যে অ্যাপ্লিকেশনটি ব্যবহার করি তা ওয়েবসকেটগুলি ব্যবহার করে এবং যখন ওয়েবসকেটগুলি উপলব্ধ না হয় বা সার্ভারে কাউন্টার পার্ট চলমান না থাকে তখন ফ্যালব্যাকও ব্যবহার করে। আমাকে কী বিভ্রান্ত করছে তা (CLOSED)পার্ট, কেন এটি এখনও তালিকাভুক্ত?

আপডেট : কিছু সময়ের পরে আমি স্লিসটেনার বন্দরটি দেখলাম, যা আসলে 9000, যা আবার কোন পোর্ট এক্সডিবাগ দূরবর্তী ডিবাগিংয়ের জন্য শুনছে। সুতরাং আমি অনুমান করি যে আমি সেখানে কিছু ভুল কনফিগারেশন পেয়েছি, বা এটি xdebug- এ একটি বাগ (আমি এক্সডিবেগ ২.২.৫ ব্যবহার করছি, বারু দ্বারা ইনস্টল করা)

উত্তর:


14

আপনি কি ম্যাকে এক্সডিবিউজি দিয়ে পিএইচপিএসটারম ব্যবহার করছেন?

আমি একই সমস্যা আছে। আমি এখানে এক্সডিবিউজি-র সাথে দায়ের করা একটি খোলা বাগ পেয়েছি:

http://bugs.xdebug.org/view.php?id=1070

হালনাগাদ

এই বাগটি এখন ঠিক করা হয়েছে:

আমি সান ডুবোইসের একটি প্যাচকে একত্রীকরণ করেছি, যা এই \ o / ঠিক করতে হবে! প্যাচটি 2.3.4 এবং 2.4.0 এ চলেছে।

আমি বিশ্বাস করি এটি প্রতিশ্রুতিবদ্ধ: https://github.com/xdebug/xdebug/commit/6efc6588efc277d648a78b69c11c721992c996f9

নিশ্চিত করুন যে আপনি এই প্যাচটির সাথে একটি আপডেট সংস্করণ ব্যবহার করছেন


আসলেই কোনও সমাধান নয়, তবে আমি মনে করি এটি প্রশ্নের উত্তর দেয়
ড্যানিয়েল রটার

মূলত, ডিবেগিং ক্লায়েন্টটি খোলা না থাকলে এক্সডিবাগ সংযোগ শ্রোতার জন্য ফাইল বর্ণনাকারীদের ফাঁস করে দিচ্ছেন (দুঃখিত যদি এটি প্রযুক্তিগতভাবে ভুল হয় তবে এটি ধারণাটি) when সমস্যা সমাধানের জন্য, দূরবর্তী ডিবাগার একটি ডিবাগিং সেশন শুরু করার সময় নিশ্চিত করুন যে ডিবাগার ক্লায়েন্টটি উন্মুক্ত রয়েছে। অবশ্যই, আরও ভাল সমাধান হ'ল বিকাশকারীদের বাগটি ঠিক করা।
এমসিডিডো

কিছু ডিবাগার খোলার সাথে এটিও ঘটে (উদাহরণস্বরূপ পিএইচপিস্টোরম)। আশা করি তারা এটি ঠিক করে দেবেন :)
স্টিভ টাবার

এটি বেশ বড়, আমি আশা করি শিগগিরই একটি ফিক্স জারি করা হবে।
হুবার্ট পেরোন

1
আরেকটি কার্যসংক্রান্ত সেট হয় xdebug.remote_enable=0মধ্যে php.iniযখন তাদের ব্যবহার করছে না xdebug দূরবর্তী সংযোগের বিরত রাখতে। অ্যাপাচি পুনঃসূচনা প্রয়োজন।
গ্রেগরি কসমো হান 23

7

আমি নিশ্চিত যে আপনার অ্যাপাচি চলমান কিছু আছে (সম্ভবত পিএইচপি মডিউল, তবে এটি নিশ্চিত হওয়া শক্ত) যে ফাইল বিবরণকারী ফাঁস করছে। এটি, এটি ফাইলগুলি খোলার এবং তারপরে এগুলি অনির্দিষ্টকালের জন্য খোলা রেখে দেয়। যদি এটি হয় তবে উন্মুক্ত ফাইলের সীমা বৃদ্ধি করা সীমাটিকে আঘাত করতে আরও বেশি সময় নেয়। আপনার সত্যিকারের যা করা দরকার তা হ'ল সমস্ত ফাইল খোলার এবং সেগুলি খোলা রেখে দেওয়া।

lsof("LiSt ওপেন ফাইলগুলি") কমান্ডটি দিয়ে কী চলছে তা আপনি সম্ভবত ধারণা পেতে পারেন :

sudo lsof -c httpd

যখন আপাচি দীর্ঘকাল ধরে সাধারণ কোন অবস্থাটি চালাচ্ছে না তখন এটি চালান, তারপরে আবার সীমাটি হিট করে। প্রথম তালিকাটিতে নেই এমন প্রচুর অতিরিক্ত ফাইলের জন্য দ্বিতীয় আউটপুটটি সন্ধান করুন। মনে রাখবেন যে এটি সমস্ত httpd প্রক্রিয়া দ্বারা খোলার ফাইলগুলি তালিকাভুক্ত করবে এবং এগুলি (আপনার অ্যাপাচি সেটিংস এবং সার্ভারের লোডের উপর নির্ভর করে) এতে প্রচুর সংখ্যক থাকতে পারে এই বিষয়টি কিছুটা জটিল হয়ে উঠবে; গুরুত্বপূর্ণ বিষয় হ'ল একক প্রক্রিয়া দ্বারা খোলার ফাইলগুলির সংখ্যা, সমস্ত সার্ভার প্রক্রিয়াতে মোট নয়। আপনি sudo lsof -p someprocessIDএকবারে কেবল একটি একক সার্ভার প্রক্রিয়া তালিকা করতেও ব্যবহার করতে পারেন ।

আশা করি অতিরিক্ত ওপেন ফাইলগুলি কী তা আপনাকে সেগুলি খোলার এবং এগুলিকে খোলা রেখে দেওয়ার বিষয়ে একটি ভাল ধারণা দেবে।


চেষ্টা করে, আমি প্রশ্নটি আপডেট করেছিলাম।
ড্যানিয়েল রটার

টিসিপি সকেট রাজ্যের সঠিক অর্থের সাথে আমি খুব বেশি পরিচিত নই, তবে আমার কাছে মনে হচ্ছে যে অংশের সাথে সংযোগগুলি সঠিকভাবে বন্ধ হচ্ছে না। এটি কি স্লিসটেনার পোর্টে চলছে (সংখ্যা 9000)? আপনার অ্যাপ্লিকেশনটি ঠিক কীভাবে এর সমমনা অংশে সংযোগগুলি বন্ধ করে? এটি কি টিসিপি সেশনটি বন্ধ করে দিচ্ছে, তবে ফাইল বিবরণকারী নয়?
গর্ডন ডেভিসন

1
আমি জানতে পেরেছি যে 9000 বন্দরটি xdebug শুনছে, তাই এই ত্রুটিটি এই এক্সটেনশনে রয়েছে কি সম্ভব?
ড্যানিয়েল রটার

3

Xdebug.ini এ নিম্নলিখিত লাইন যুক্ত করাও আমার সমস্যার সমাধান করেছে

xdebug.remote_autostart = 0

1

আমি OSX 10.9.4 এবং ব্রা থেকে অ্যাপাচি 2.2 এবং পিএইচপি 5.3 উভয়ই একই জিনিস পাচ্ছি।

যদিও এটি আসলে সমস্যাটি সমাধান করে না, আপনি এটি অ্যাপাচি ম্যাক্সরেক্সেস্টপিরচিল্ড সেটটি 10 ​​এর মতো কিছুতে সেট করে রাখতে পারেন - যা বিকাশের জন্য সূক্ষ্ম হওয়া উচিত।

diff -r 2c0473b696fd -r acf809f04b17 apache2/2.2/httpd.conf
--- a/apache2/2.2/httpd.conf    Thu Aug 14 16:14:25 2014 -0500
+++ b/apache2/2.2/httpd.conf    Thu Aug 14 16:19:10 2014 -0500
@@ -437,7 +437,7 @@
 # necessary.

 # Server-pool management (MPM specific)
-#Include /usr/local/etc/apache2/2.2/extra/httpd-mpm.conf
+Include /usr/local/etc/apache2/2.2/extra/httpd-mpm.conf

 # Multi-language error messages
 #Include /usr/local/etc/apache2/2.2/extra/httpd-multilang-errordoc.conf
diff -r 2c0473b696fd -r acf809f04b17 apache2/2.2/extra/httpd-mpm.conf
--- a/apache2/2.2/extra/httpd-mpm.conf  Thu Aug 14 16:14:25 2014 -0500
+++ b/apache2/2.2/extra/httpd-mpm.conf  Thu Aug 14 16:19:10 2014 -0500
@@ -38,7 +38,7 @@
     MinSpareServers       5
     MaxSpareServers      10
     MaxClients          150
-    MaxRequestsPerChild   0
+    MaxRequestsPerChild  10
 </IfModule>

 # worker MPM

এই ফাঁস হওয়া ফাইলগুলি থেকে মুক্তি পাওয়ার জন্য আপনাকে প্রায়শই প্রায়শই অ্যাপাচি পুনরায় চালু করতে বাঁচাতে হবে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.