ปรับค่า PHP (memory_limit, max_execution_time) บน Plesk
ค่าตั้งต้นของ PHP เช่น หน่วยความจำ 128 MB หรือเวลาทำงานสูงสุด 30 วินาที เพียงพอสำหรับเว็บทั่วไป แต่เว็บที่ใช้ Page Builder ปลั๊กอินร้านค้า การนำเข้าสินค้าจำนวนมาก หรือการอัปโหลดไฟล์ใหญ่ มักชนขีดจำกัดเหล่านี้ อาการที่พบคือ Error Allowed memory size exhausted, Maximum execution time of 30 seconds exceeded, อัปโหลดไฟล์ไม่ผ่าน หรือบันทึกหน้าเมนูแล้วรายการหาย
Plesk ให้ปรับค่าเหล่านี้แยกรายโดเมนได้จากหน้าจอ โดยไม่กระทบเว็บอื่นบนเซิร์ฟเวอร์ บทความนี้อธิบายความหมายของแต่ละค่า วิธีปรับ และวิธีตรวจว่าค่าใหม่มีผลจริง ส่วนการเปลี่ยนเวอร์ชัน PHP ดูได้ที่ การเปลี่ยนเวอร์ชั่น PHP ใน Plesk
สิ่งที่ต้องเตรียม
- บัญชีเข้า Plesk Obsidian ของเว็บไซต์ ที่มีสิทธิ์ปรับตั้งค่า PHP (ผู้ให้บริการอาจล็อกบางค่าไว้ในแพ็กเกจ)
- ข้อความ Error ที่พบ เพื่อรู้ว่าต้องปรับค่าใด ดูวิธีหาได้ใน ดู Log เว็บไซต์บน Plesk เพื่อหาสาเหตุ Error
ความหมายของค่าที่ปรับบ่อย
| ค่า | ควบคุมอะไร | ค่าที่ใช้บ่อย |
|---|---|---|
memory_limit | หน่วยความจำสูงสุดที่สคริปต์หนึ่ง Request ใช้ได้ | 256M สำหรับ WordPress ทั่วไป, 512M สำหรับร้านค้าขนาดใหญ่ |
max_execution_time | เวลาสูงสุด (วินาที) ที่สคริปต์ทำงานได้ | 60-120 สำหรับงานนำเข้า/ส่งออก |
max_input_time | เวลาสูงสุดที่ใช้รับข้อมูลที่ส่งเข้ามา เช่น ไฟล์อัปโหลด | 60-120 |
post_max_size | ขนาดข้อมูลรวมสูงสุดของฟอร์มหนึ่งครั้ง | ต้องมากกว่าหรือเท่ากับ upload_max_filesize เช่น 128M |
upload_max_filesize | ขนาดไฟล์เดียวสูงสุดที่อัปโหลดได้ | 64M-128M |
max_input_vars | จำนวนฟิลด์สูงสุดในฟอร์มหนึ่งครั้ง | 3000-5000 สำหรับเมนูหรือหน้าตั้งค่าขนาดใหญ่ |
หลักง่ายๆ คือ memory_limit ควรมากกว่า post_max_size และ post_max_size ควรมากกว่าหรือเท่ากับ upload_max_filesize อย่าตั้ง memory_limit สูงเกินจำเป็น เช่น 2G เพราะถ้ามีสคริปต์ผิดพลาดหลายตัวทำงานพร้อมกัน หน่วยความจำของทั้งเซิร์ฟเวอร์อาจหมด
ขั้นตอนที่ 1: เปิดหน้าตั้งค่า PHP
- ไปที่ Websites & Domains เลือกโดเมนที่ต้องการ
- กด PHP หรือ PHP Settings (ชื่อปุ่มต่างกันตามเวอร์ชันของ Plesk ในบางมุมมองอยู่ใต้กลุ่ม Dev Tools)
- ด้านบนของหน้าจะแสดงเวอร์ชัน PHP และ Handler ที่ใช้ เช่น FPM application served by nginx หรือ FPM application served by Apache
ขั้นตอนที่ 2: ปรับค่า
- ในส่วน Performance and security settings หา
memory_limitกดลูกศรเพื่อเลือกค่าที่มีให้ หรือพิมพ์ค่าเองในช่อง เช่น256M - ปรับ
max_execution_timeเป็น120และmax_input_timeเป็น120ถ้ามีปัญหาเรื่อง Timeout - ในส่วน Common settings ปรับ
post_max_sizeและupload_max_filesizeถ้ามีปัญหาเรื่องอัปโหลด - ค่าที่ไม่มีในรายการ เช่น
max_input_varsให้เลื่อนลงไปที่ Additional configuration directives แล้วพิมพ์ในรูปแบบของ php.ini หนึ่งค่าต่อบรรทัด
max_input_vars = 5000
- กด OK หรือ Apply ที่ด้านล่างของหน้า Plesk จะเขียนการตั้งค่าและโหลด PHP ของโดเมนนั้นใหม่ให้เอง ไม่ต้อง Restart เซิร์ฟเวอร์
หมายเหตุ: ถ้าช่องใดปรับไม่ได้หรือเป็นสีเทา แปลว่าผู้ให้บริการล็อกค่านั้นไว้ในแพ็กเกจ ต้องติดต่อผู้ให้บริการ การใส่ค่าเดียวกันใน Additional configuration directives เพื่อเลี่ยงการล็อกอาจไม่มีผล หรือถูกเขียนทับเมื่อมีการซิงก์แพ็กเกจ
ขั้นตอนที่ 3: เรื่องที่ต้องรู้เกี่ยวกับ PHP-FPM
บน Plesk สำหรับ Linux ส่วนใหญ่ PHP ทำงานแบบ FPM ซึ่งมีผลกับวิธีตั้งค่า
- ห้ามใส่
php_valueหรือphp_flagในไฟล์.htaccessเมื่อใช้ FPM คำสั่งเหล่านี้ใช้ได้เฉพาะโหมด Apache Module เมื่อใช้กับ FPM มักทำให้เว็บขึ้น 500 Internal Server Error ทันที ให้ตั้งผ่านหน้า PHP Settings แทน max_execution_timeที่เพิ่มขึ้นอาจยังชนเวลารอของ nginx หรือ Apache ที่อยู่ด้านหน้า ถ้าสคริปต์ทำงานเกินราว 60 วินาทีแล้วขึ้น 504 Gateway Time-out ทั้งที่ตั้ง PHP ไว้สูงแล้ว ให้ติดต่อผู้ดูแลเซิร์ฟเวอร์ งานที่ใช้เวลานานมากควรย้ายไปทำด้วย Cron หรือ Command Line แทนการรอผ่านหน้าเว็บ- ค่าของ PHP ที่ใช้ผ่าน Command Line (SSH, Cron) แยกจากค่าของเว็บ ถ้ารัน
php -iบน SSH ค่าที่เห็นอาจไม่ตรงกับหน้าเว็บ
ตรวจสอบผลลัพธ์
วิธีที่แม่นที่สุดคือดูจาก PHP ที่เว็บใช้จริง สร้างไฟล์ชื่อสุ่มยากๆ เช่น info-8f3k2.php ในโฟลเดอร์ httpdocs ผ่าน File Manager ใส่เนื้อหา
<?php phpinfo();
เปิด https://example.com/info-8f3k2.php แล้วกด Ctrl + F ค้นคำว่า memory_limit คอลัมน์ Local Value ต้องเป็นค่าที่ตั้งใหม่ จากนั้นลบไฟล์นี้ทันที เพราะหน้า phpinfo เปิดเผยข้อมูลเซิร์ฟเวอร์ที่ผู้ไม่หวังดีนำไปใช้ได้
ถ้ามี SSH และต้องการตรวจค่าของ PHP เวอร์ชันเดียวกับเว็บผ่าน Command Line ให้เรียก PHP ของ Plesk ตามเวอร์ชัน (ตัวอย่างนี้คือ 8.3 เปลี่ยนตามเวอร์ชันที่ใช้) แต่ค่าที่ได้เป็นของ CLI ไม่ใช่ค่าของโดเมน
/opt/plesk/php/8.3/bin/php -i | grep -E "memory_limit|max_execution_time"
สำหรับ WordPress ให้ดูที่ Tools > Site Health > Info > Server ด้วย ซึ่งแสดง PHP memory limit และ Max input variables ที่เว็บเห็นจริง
ปัญหาที่พบบ่อย
ปรับ memory_limit แล้ว WordPress ยังแจ้งหน่วยความจำไม่พอ
WordPress มีค่าจำกัดของตัวเองแยกจาก PHP คือ WP_MEMORY_LIMIT ใน wp-config.php ดูวิธีปรับใน เพิ่ม Memory Limit ใน WordPress ถ้าเป็นเรื่องอัปโหลดไฟล์ ดู เพิ่มขนาดไฟล์อัปโหลดสูงสุดใน WordPress
เว็บขึ้น 500 ทันทีหลังแก้ .htaccess
มีคำสั่ง php_value ใน .htaccess ตามที่อธิบายในขั้นตอนที่ 3 เปิดไฟล์ด้วย File Manager ลบบรรทัดเหล่านั้นออก (หรือใส่ # นำหน้า) แล้วตั้งค่าผ่านหน้า PHP Settings แทน
อัปโหลดไฟล์ใหญ่แล้วขึ้น 413 Request Entity Too Large
Error นี้มาจาก nginx ไม่ใช่ PHP แปลว่าขนาดไฟล์เกินค่าที่ nginx ยอมรับ ซึ่งตั้งในส่วนการตั้งค่า Apache & nginx ของโดเมน (ต้องมีสิทธิ์ผู้ดูแล) ให้ติดต่อผู้ให้บริการพร้อมบอกขนาดไฟล์ที่ต้องการ
ค่าที่ตั้งกลับเป็นค่าเดิมเอง
ถ้าโดเมนผูกกับ Service Plan และผู้ดูแลซิงก์แพ็กเกจ ค่าที่ตั้งรายโดเมนอาจถูกเขียนทับด้วยค่าของแพ็กเกจ แจ้งผู้ให้บริการให้ปรับที่ระดับแพ็กเกจ
หากทำตามขั้นตอนแล้วยังติดปัญหา สามารถติดต่อทีมงาน THAI DATA CLOUD ได้ที่ https://thaidata.cloud/contact/ โดยแจ้งชื่อโดเมน ขั้นตอนที่ทำไปแล้ว และข้อความ Error ที่พบ เพื่อให้ทีมงานตรวจสอบได้เร็วขึ้น
- Categories:
- Cloud
- Tags:
- Cloud
- Cloud Server
Related Posts
หมวดหมู่ที่น่าสนใจ
- Account Settings
- AD Server
- AI
- Alibaba Cloud
- Anti-Spam Gateway
- AWS Amazon Web Services
- Campaign
- CentOS/AlmaLinux
- Cloud
- Cloud Backup
- Cloud Communication
- Cloud Migration
- Cloud Security
- Cloud Server Management
- Cloud Solution
- Cloud Solution for Government
- Cloud Solutions by Industry
- Cloud Storage
- Cloud VPS App Plus +
- Cloud VPS DirectAdmin
- Cloud VPS Plesk
- CSR
- Cyber Security
- Cybersecurity
- Data Sovereignty
- Database Server
- DDoS
- Digital Tranformation
- Digital Transformation
- Direct Mail
- Directadmin
- Domainname
- Ecommerce
- ERP
- Generative AI
- Getting Started
- Google Cloud
- Google G Suite
- Huawei Cloud
- IT News
- Linux Server
- Managed Cloud Services
- Managed Service Provider
- Manual
- Microsoft
- Microsoft 365
- Microsoft Azure
- News
- On-premise
- Private Mail Server
- Promotion
- Recommend Solution (Enterprise)
- Server
- Sovereign Cloud
- THAI DATA CLOUD Platform
- Ubuntu
- Ubuntu
- Uncategorized
- VMware
- VPS Server
- Web Design
- Web Hosting
- Web Hosting (DirectAdmin)
- Web Hosting (Plesk)
- Web Technologies
- Windows Server
- Wordpress
- Zimbra
- เรื่องราวความประทับใจ
- โซลูชันสำหรับธุรกิจการผลิตและยานยนต์
- โซลูชันสำหรับธุรกิจการศึกษา
- โซลูชันสำหรับธุรกิจการเงิน
- โซลูชันสำหรับธุรกิจขนส่งและกระจายสินค้า
- โซลูชันสำหรับธุรกิจค้าปลีก
- โซลูชันสำหรับธุรกิจท่องเที่ยว
- โซลูชันสำหรับธุรกิจบริการสุขภาพและโรงพยาบาล
- โซลูชันสำหรับธุรกิจประกันภัย
- โซลูชันสำหรับธุรกิจพลังงานและสาธารณูปโภค
- โซลูชันสำหรับธุรกิจสื่อสารมวลชนและเอ็นเตอร์เทนเมนท์
- โซลูชันสำหรับธุรกิจอสังหาริมทรัพย์
- โซลูชันสำหรับธุรกิจเทคโนโลยี


