همانطور که میدانید یک وب سایت برای اینکه در محیط اینترنت یا در بستر مشابه اینترنت (Localhost یا شبکه محلی) اجرا شود و کار کند عینا به بستری مثل بستر کامپیوتر خانگی یا دستکاپ ما نیاز دارد. به طور مثال هرچه کارایی و نیاز ما از سیستم خانگی مان بیشتر باشد میبایست میزان منابع آن هم بالاتر باشد. اگر ما یک گرافیست هستیم مطمئناً به یک هارد با حجم بالا، مهمتر از آن CPU و RAM بالا برای پردازش فایلهای حجیم پروژه های خود نیازمند هستیم. خب در محیط اینترنت و برای عملکرد هرچه بهتر سایت ها هم نیازمند منابعی هستیم که دقیقا متناسب با نیازمان میتوانیم برای خود متصور شویم. هرچه میزان بازدید و کارکرد ما در سایت بیشتر باشد نیازمند منابع سخت افزاری و نرم افزاری بالاتر و با کیفیت تری هستیم. حال همه ی این توضیحات و پیش زمینه ها مطرح شد تا به این مسئله برسیم که چرا خطای Allowed memory size بوجود می آید و راه حل آن چیست؟
خطای نمونه:
1 |
Fatal error: Allowed memory size of 165289810 bytes exhausted (tried to allocate 6192 bytes) in /home/sitename.com/public_html/filename.php on line 1 |
نمونه دوم:
1 |
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 66 bytes) in /home/lalejin/public_html/libraries/joomla/database/database/mysql.php on line 462 |
نمونه سوم:
1 |
Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 24 bytes) in /home/****/public_html/libraries/joomla/database/database/mysql.php on line ۴۶۲ |
همانطور که در خطا مشخص هست این ارور دقیقا به میزان پایین حافظه رم اختصاص یافته به شبکه محلی یا سرور شما مربوط می شود که زمانی که قصد نصب یک افزونه یا کامپوننت یا قالب پر حجم از طریق جوملا را دارید . به دلیل محدودیت موجود در کانفیگ PHP سرور شما با این خطا مواجه خواهید شد که برای رفع آن به ترتیب زیر عمل میکنیم:
روش اول:
فرض سایت ما در لوکال و با نرم افزار شبیه ساز وب سرور Xampp راه اندازی شده است. از طریق مسیر زیر:
1 |
C:\xampp\php\php.ini |
و حالت دوم سایت ما در لوکال و با نرم افزار شبیه ساز وب سرور WampServer راه اندازی شده است از طریق مسیر زیر:
1 |
C:\wamp\bin\php\php5.4.12\php.ini |
همانطور که مشخص است هر دو مسیر به یک فایل اشاره میکنند و میبایست فایل php.ini را با یک ادیتور متن باز کنید. و دنبال عبارت زیر باشید:
1 |
memory_limit = 16M |
فارغ از اینکه چه مقداری برای این عبارت بطور پیشفرض تعیین شده است برای حل مشکل خود میتوانید هر عددی بالاتر از عدد پیشفرض قرار دهید. (در اینجا فرض بر این قرار گرفت که مقدار پیشفرض عدد ۱۶مگابایت است) شما میتوانید مقادیر ۳۲ مگابایت یا ۶۴ مگابایت را وارد و ذخیره کنید.
پس از انجام ویرایش؛ میبایست برای اینکه تغییرات در آپاچی وب سرور شما اعمال شود اقدام به ریستارت آن نمایید.برای اینکار کافی ست که نرم افزار xampp یا wamp خود را یک بار ریست کنید و یا خاموش و روشن نمایید.
روش دوم :
استفاده از فایل .htaccess جوملاست. برای استفاده از آن میبایست این فایل را که در روت (root) یا همان پوشه public_html (اگر جوملا در مسیر اصلی نیست میبایست این فایل را در پوشه یا ساب دامنه ای که جوملا بروی آن نصب کرده اید بیابید) قرار گرفته پیدا کرده و آنرا باز کنید. (نکته: اگر چنین فایلی در پوشه public_html خود ندارید میتوانید آنرا بطور دستی ایجاد کنید)
ابتدا فایل رو باز کنید و کد زیر رو داخلش کنید و از انجام این کار فایلتون رو ذخیره کنید.
1 |
php_value memory_limit 64M |
اگر هم بروی هاست اشتراکی یا سرور کار میکنید میبایست از مدیر هاستینگ درخواست کنید که مقادیر memory_limit را از طریق PHP سرور تغییر دهد.
تبریک میگوییم مشکل شما با این دو روش مرتفع شده و دیگر نبایستی با این خطا مواجه شوید.
تشریح این خطا برای سیستم مدیریت محتوای وردپرس هم تشریح شده است. در صورت نیاز میتوانید این مقاله رفع مشکل خطای Fatal error Allowed memory size در وردپرس را با عنوان مطالعه نمایید.
امیدواریم که این آموزش برای شما مفید بوده باشد. سوالات خود را بعنوان کامنت در همین پست ارسال نمایید.