បញ្ជីអត្ថបទ
កំហុសធ្ងន់ធ្ងរ របស់ WordPress ៖ អង្គចងចាំមិនគ្រប់គ្រាន់? រៀនជួសជុលបញ្ហា memory_limit របស់ WordPress ក្នុងរយៈពេល 5 នាទី
1. ទិដ្ឋភាពទូទៅនៃបញ្ហា
កំពុងប្រើ WordPress ប្រសិនបើអ្នកជួបប្រទះកំហុសដូចនេះ៖
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 10220888 bytes)
នេះមានន័យថា PHP អស់អង្គចងចាំ ដែលបណ្តាលឱ្យប្រព័ន្ធដំណើរការខុសប្រក្រតី។ ទំព័រខាងក្រោយរបស់អ្នកនឹងមិនបើកទេ ហើយមុខងារផ្ទាំងគ្រប់គ្រងក៏ជាប់គាំងផងដែរ។
កំហុសនេះកើតឡើងញឹកញាប់ជាពិសេសនៅលើ គេហទំព័រដែលមានចរាចរណ៍ខ្ពស់ ឬគេហទំព័រដែលប្រើ កម្មវិធីជំនួយ WordPress ច្រើនពេក ។
ទោះបីជាអ្នកបង្កើនអង្គចងចាំដល់ 512M ឬសូម្បីតែ 3024M ក៏ដោយ ក៏បញ្ហានៅតែមាន។ តើអ្វីជាមូលហេតុនៃបញ្ហា?
បន្ទាប់ យើងនឹងវិភាគមូលហេតុដែលអាចកើតមានជាជំហានៗ ហើយបង្រៀនអ្នកពីរបៀបដោះស្រាយបញ្ហានេះម្តង និងសម្រាប់ទាំងអស់គ្នា។

2. ហេតុអ្វីបានជាវានៅតែគ្មានប្រសិទ្ធភាពក្នុងការបង្កើន memory_limit?
អ្នកមានរួចហើយ memory_limit ពីលំនាំដើម 256M បានដំឡើងឋានៈទៅ 512M 和។ 3024Mប៉ុន្តែបញ្ហានៅតែមាន។ នេះមានន័យថា៖
- ការកំណត់ PHP មិនមានប្រសិទ្ធភាពទេ។៖ បរិស្ថានម៉ាស៊ីនមេមួយចំនួនអាចមិនអើពើនឹងការផ្លាស់ប្តូរដោយដៃរបស់អ្នក។
php.ini។ - កម្មវិធីជំនួយ ឬរចនាប័ទ្មយកធនធានច្រើនពេក៖ កម្មវិធីជំនួយ ឬកូដផ្ទាល់ខ្លួនមួយចំនួនប្រើប្រាស់អង្គចងចាំច្រើនពេក។
- ការកំណត់រចនាសម្ព័ន្ធម៉ាស៊ីនមេ៖ ម៉ាស៊ីនមេអាចកំណត់កម្រិតរឹងលើការបែងចែកអង្គចងចាំនៃស្គ្រីប PHP ដែលបណ្តាលឱ្យការកំណត់មិនត្រឹមត្រូវទោះបីជាវាលើសក៏ដោយ។
ដើម្បីដោះស្រាយស្ថានភាពនេះ អ្នកត្រូវពិនិត្យមើលការកំណត់រចនាសម្ព័ន្ធរបស់ម៉ាស៊ីនមេ និងប្លក, រូបភាពឱ្យបានទូលំទូលាយ។
3. ដំណោះស្រាយជាជំហាន ៗ
1. កែប្រែឯកសារ php.ini
ស្វែងរករបស់អ្នកជាមុនសិន php.ini ឯកសារដែលជាធម្មតាមានទីតាំងនៅ /etc/php/ 或 /usr/local/php/ នៅក្រោមផ្លូវ។
ស្វែងរក memory_limitត្រូវប្រាកដថាវាត្រូវបានកំណត់ទៅ៖
memory_limit = 512M
បន្ទាប់មកចាប់ផ្តើម ម៉ាស៊ីនបម្រើគេហទំព័រ របស់អ្នកឡើងវិញ ៖
- កម្មវិធី Apache:
sudo service apache2 restart - Nginx:
sudo service nginx restart
ចំណាំ ៖ សេវាកម្មបង្ហោះដែលបានចែករំលែកមួយចំនួនអាចនឹងមិនអាចចូលទៅកាន់ php.ini បានទេ។ ក្នុងករណីនេះ អ្នកអាចរំលងទៅវិធីសាស្ត្របន្ទាប់។
2. បដិសេធដែនកំណត់អង្គចងចាំ PHP នៅក្នុង wp-config.php
ទោះបីជាការកំណត់រចនាសម្ព័ន្ធអង្គចងចាំរបស់ម៉ាស៊ីនមេមានភាពសុក្រិតក៏ដោយ ពេលខ្លះ WordPress នឹងអស់អង្គចងចាំ ដោយសារការកំណត់របស់វាផ្ទាល់។
ដូច្នេះ អ្នកអាច កំណត់ដែនកំណត់អង្គចងចាំដោយដៃ នៅក្នុងឯកសារ wp-config.php ៖
define( 'WP_MEMORY_LIMIT', '512M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
ដាក់លេខកូដនេះទៅ wp-config.php ភាពយន្តឯកសារ 顶部ដើម្បីធានាថាវាមានប្រសិទ្ធភាពនៅពេលផ្ទុក។
- WP_MEMORY_LIMIT៖ ដែនកំណត់ខាងលើនៃអង្គចងចាំខាងមុខ ដែលគ្រប់គ្រងការប្រើប្រាស់ធនធាន នៅពេលអ្នកប្រើប្រាស់ចូលទៅកាន់ទំព័រ។
- WP_MAX_MEMORY_LIMIT៖ ដែនកំណត់ខាងលើនៃអង្គចងចាំផ្ទៃខាងក្រោយ ដើម្បីធានាថាប្រតិបត្តិការគ្រប់គ្រងនឹងមិនបរាជ័យ ដោយសារអង្គចងចាំមិនគ្រប់គ្រាន់។
3. ពិនិត្យមើលការប្រើប្រាស់អង្គចងចាំនៃកម្មវិធីជំនួយ និងស្បែក
កម្មវិធីជំនួយ មួយចំនួន ដែលប្រើប្រាស់ធនធានច្រើន អាចបណ្តាលឱ្យអស់កម្លាំងអង្គចងចាំ ដូចជាកម្មវិធីជំនួយសម្រាប់ caching កម្មវិធីជំនួយ SEO ឬ កម្មវិធីជំនួយ e-commerce (ដូចជា WooCommerce)។
ដំណោះស្រាយ ៖
- បិទកម្មវិធីជំនួយទាំងអស់ ហើយបើកការដោះស្រាយបញ្ហាម្តងមួយៗ។
- ប្តូរទៅប្រធានបទលំនាំដើម (ដូចជា ម្ភៃ ម្ភៃបី) ហើយមើលថាតើបញ្ហាត្រូវបានដោះស្រាយឬអត់។
- 使用 ត្រួតពិនិត្យសំណួរ កម្មវិធីជំនួយដើម្បីមើលសមាសធាតុដែលមានការប្រើប្រាស់អង្គចងចាំខ្ពស់។
4. ប្រើ .htaccess ឬការកំណត់ PHP ដែលកំណត់ដោយអ្នកប្រើប្រាស់
ប្រសិនបើអ្នកកំពុងប្រើ ការបង្ហោះរួមគ្នា អ្នកអាច កែលម្អការប្រើប្រាស់អង្គចងចាំ PHP ដោយកែប្រែ ឯកសារ .htaccess ៖
php_value memory_limit 512M
បន្ទាប់ពីរក្សាទុក សូមផ្ទុកទំព័រផ្ទាំងគ្រប់គ្រងរបស់អ្នកឡើងវិញ ដើម្បីពិនិត្យមើលថាតើបញ្ហាត្រូវបានដោះស្រាយដែរឬទេ។
5. ទាក់ទងអ្នកផ្តល់សេវាម៉ាស៊ីនមេ
ក្នុងករណីខ្លះ ម៉ាស៊ីនមេដាក់កម្រិតលើការប្រើប្រាស់អង្គចងចាំរបស់ PHP ។
ទោះបីជាអ្នកកែប្រែដែនកំណត់អង្គចងចាំក៏ដោយ ក៏ម៉ាស៊ីនមេនឹងមិនអនុញ្ញាតឱ្យវាមានប្រសិទ្ធភាពឡើយ។
នៅចំណុចនេះ អ្នកត្រូវទាក់ទង អ្នកផ្តល់សេវាបង្ហោះ របស់អ្នក ហើយសុំឱ្យពួកគេបង្កើនកូតាអង្គចងចាំរបស់អ្នក។
4. ផែនការចុងក្រោយ៖ បិទមុខងារដែលមិនចាំបាច់ និងបង្កើនប្រសិទ្ធភាពកូដ
ទោះបីជាអ្នកបង្កើនដែនកំណត់អង្គចងចាំដោយជោគជ័យក៏ដោយ អ្នកមិនអាចមើលរំលង ការបង្កើនប្រសិទ្ធភាព គេហទំព័របានទេ ។ ការពឹងផ្អែកខ្លាំងពេកលើកម្មវិធីជំនួយ ឬការប្រើប្រាស់ស្បែកដែលប្រើប្រាស់ធនធានច្រើនអាចនាំឱ្យមានកង្វះខាតអង្គចងចាំជាញឹកញាប់។ ដូច្នេះ៖
- លុប កម្មវិធីជំនួយដែលមិនចាំបាច់ និងលេខកូដដែលលែងប្រើ។
- ប្រើកម្មវិធីជំនួយឃ្លាំងសម្ងាត់ដែលមានប្រសិទ្ធភាពដូចជា WP Rocket 或 W3 សរុបឃ្លាំងសម្ងាត់) 。
- បង្កើនប្រសិទ្ធភាពមូលដ្ឋានទិន្នន័យជាទៀងទាត់ និងសម្អាតទិន្នន័យឥតបានការ។
5. សេចក្តីសង្ខេប៖ ជំហានប្រកបដោយប្រសិទ្ធភាពដើម្បីដោះស្រាយ memory_limit
- ត្រូវប្រាកដថាការផ្លាស់ប្តូរទៅ php.ini មានប្រសិទ្ធភាព: រៀបចំ
memory_limitគឺ 512M ឬខ្ពស់ជាងនេះ។ - កំណត់ដែនកំណត់អង្គចងចាំក្នុង wp-config.php៖ សូមប្រាកដថា WordPress ប្រើប្រាស់អង្គចងចាំគ្រប់គ្រាន់។
- ដោះស្រាយបញ្ហាកម្មវិធីជំនួយ និងបញ្ហាស្បែក៖ បិទកម្មវិធីជំនួយធនធានខ្ពស់។
- ទាក់ទងអ្នកផ្តល់សេវាម៉ាស៊ីនមេប្រសិនបើចាំបាច់៖ សូមប្រាកដថាម៉ាស៊ីនមេមិនអនុវត្តដែនកំណត់អង្គចងចាំនៅលើ PHP របស់អ្នកទេ។
- បង្កើនប្រសិទ្ធភាពដំណើរការគេហទំព័រ៖ កាត់បន្ថយកម្មវិធីជំនួយដែលមិនចាំបាច់ បង្កើនប្រសិទ្ធភាពមូលដ្ឋានទិន្នន័យ និងបង្កើនប្រសិទ្ធភាពប្រតិបត្តិការទាំងមូល។
ការបង្កើនប្រសិទ្ធភាពគឺជាដំណោះស្រាយរយៈពេលវែង ការចងចាំគ្រាន់តែជាមូលដ្ឋានគ្រឹះប៉ុណ្ណោះ។
ដោយធ្វើតាមជំហាននានាក្នុងអត្ថបទនេះ អ្នកមិនត្រឹមតែអាចដោះស្រាយ កំហុស Fatal ដែលរំខាននេះប៉ុណ្ណោះទេ ប៉ុន្តែថែមទាំងរៀនពីរបៀបដោះស្រាយបញ្ហាអង្គចងចាំផងដែរ។
ទោះជាយ៉ាងណាក៏ដោយ ការបន្តធ្វើឱ្យប្រសើរឡើងនូវការចងចាំតែម្នាក់ឯងមិនមែនជាដំណោះស្រាយជាមូលដ្ឋានចំពោះបញ្ហាគេហទំព័រនោះទេ។
ការធ្វើឱ្យប្រសើរឡើងនូវកូដឱ្យបានត្រឹមត្រូវ និងការដកកម្មវិធីជំនួយដែលមិនចាំបាច់ចេញ គឺជាគន្លឹះក្នុងការធានាបាននូវប្រតិបត្តិការដែលមានស្ថេរភាពរយៈពេលវែងរបស់គេហទំព័រ។
ខ្ញុំសង្ឃឹមថាអ្នកបានរៀនអ្វីមួយពីអត្ថបទនេះហើយចាប់ផ្តើមអនុវត្តបច្ចេកទេសទាំងនេះភ្លាមៗ!
តើអ្វីជាការពេញចិត្តជាងការដោះស្រាយបញ្ហាលំបាក? 💪
សង្ឃឹមថា អត្ថបទ "ការដោះស្រាយកំហុសធ្ងន់ធ្ងររបស់ WordPress៖ ទំហំអង្គចងចាំដែលអនុញ្ញាតចំនួន 268435456 បៃត្រូវបានអស់ (បានព្យាយាមបែងចែក 10220888 បៃ)" ដែលបានចែករំលែកនៅលើ ប្លក់របស់ Chen Weiliang ( https://www.chenweiliang.com/ ) នឹងមានប្រយោជន៍សម្រាប់អ្នក។
សូមចែករំលែកតំណភ្ជាប់អត្ថបទនេះ៖ https://www.chenweiliang.com/cwl-32129.html
