- 1 1. บทนำ
- 2 2. ข้อกำหนดเบื้องต้นและการเตรียมตัว
- 3 3. วิธีติดตั้ง PHP
- 4 4. การตรวจสอบการทำงานของ PHP
- 5 5. การติดตั้ง PHP Modules ที่ใช้บ่อย
- 6 6. การจัดการเวอร์ชัน PHP และการสลับใช้งาน
- 7 7. การตั้งค่าร่วมกับ Apache และ Nginx
- 8 8. การแก้ไขปัญหาเบื้องต้น (Troubleshooting)
- 9 9. สรุป
- 10 10. คำถามที่พบบ่อย (FAQ)
- 10.1 Q1. จะติดตั้ง PHP เวอร์ชันล่าสุดบน Ubuntu ได้อย่างไร?
- 10.2 Q2. จะสลับ PHP เวอร์ชันบน CLI ได้อย่างไร?
- 10.3 Q3. PHP ไม่ทำงานบน Apache และแสดงโค้ด PHP ในเบราว์เซอร์
- 10.4 Q4. ไฟล์ตั้งค่า PHP (php.ini) อยู่ที่ไหน?
- 10.5 Q5. จะเปิดใช้ PHP module ได้อย่างไร?
- 10.6 Q6. PHP ทำงานบน Nginx ไม่ได้ ต้องตั้งค่าอะไรบ้าง?
- 10.7 Q7. ไม่แสดง error ของ PHP บนหน้าจอ
1. บทนำ
เหตุผลที่ใช้ PHP บน Ubuntu
PHP เป็นภาษาสคริปต์ฝั่งเซิร์ฟเวอร์ที่ถูกใช้งานอย่างแพร่หลายในการพัฒนาเว็บแอปพลิเคชัน รวมถึง WordPress ด้วย โดยเฉพาะในวงการพัฒนาเว็บ PHP ได้รับความนิยมมายาวนาน และมี CMS กับเฟรมเวิร์กหลายตัวที่สร้างขึ้นด้วย PHP
Ubuntu เป็นดิสทริบิวชันของ Linux ที่มีความเสถียรสูง ได้รับความนิยมจากนักพัฒนาทั่วโลก และเหมาะสมอย่างยิ่งสำหรับการใช้งานเป็นเซิร์ฟเวอร์ การจับคู่ระหว่าง Ubuntu กับ PHP ถูกใช้งานตั้งแต่โครงการส่วนตัวไปจนถึงระบบโปรดักชันขององค์กรขนาดใหญ่
กลุ่มเป้าหมายและวัตถุประสงค์ของบทความนี้
บทความนี้เหมาะสำหรับผู้เริ่มต้นที่ “อยากติดตั้ง PHP บน Ubuntu แต่ไม่รู้จะเริ่มอย่างไร” ไปจนถึงระดับกลางที่ “ต้องการติดตั้ง PHP เวอร์ชันเฉพาะ” โดยอธิบายขั้นตอนอย่างละเอียดและเข้าใจง่าย
บทความนี้อ้างอิง Ubuntu 22.04 LTS เป็นหลัก แต่เวอร์ชันอื่นๆ ก็ใช้ขั้นตอนพื้นฐานเดียวกันได้
สิ่งที่จะได้เรียนรู้จากบทความนี้
เมื่ออ่านบทความนี้จบ คุณจะสามารถเข้าใจและปฏิบัติเนื้อหาต่อไปนี้ได้
- วิธีติดตั้ง PHP เบื้องต้นบน Ubuntu
- วิธีติดตั้งและสลับใช้งาน PHP หลายเวอร์ชัน
- วิธีตรวจสอบการทำงานและแก้ไขปัญหา PHP
- วิธีตั้งค่าร่วมกับ Apache หรือ Nginx
- วิธีติดตั้งโมดูล PHP ที่ใช้บ่อย
2. ข้อกำหนดเบื้องต้นและการเตรียมตัว
วิธีตรวจสอบเวอร์ชันของ Ubuntu
ก่อนอื่น ควรตรวจสอบเวอร์ชัน Ubuntu ที่ใช้อยู่ เพราะขั้นตอนการติดตั้ง PHP หรือโมดูลต่างๆ อาจแตกต่างกันเล็กน้อยตามเวอร์ชัน
สามารถเช็คเวอร์ชัน Ubuntu ได้ด้วยคำสั่งต่อไปนี้
lsb_release -a
หรือใช้คำสั่งนี้เพื่อดูข้อมูลเวอร์ชัน
cat /etc/os-release
บทความนี้ใช้ Ubuntu 22.04 LTS เป็นตัวอย่างหลัก แต่ขั้นตอนพื้นฐานคล้ายกันกับเวอร์ชัน 20.04 หรือ 23.10
อัปเดตแพ็คเกจระบบให้เป็นเวอร์ชันล่าสุด
ก่อนติดตั้ง PHP ควรอัปเดตแพ็คเกจระบบให้เป็นเวอร์ชันล่าสุด เพื่อป้องกันปัญหาจาก dependency ที่ล้าสมัยหรือไม่ตรงกัน กรุณารันคำสั่งนี้ก่อน
sudo apt update
sudo apt upgrade -y
คำสั่งนี้จะอัปเดตดัชนีแพ็คเกจในระบบ ทำให้สามารถติดตั้งแพ็คเกจล่าสุดผ่าน APT ได้
ติดตั้งยูทิลิตี้ที่จำเป็น
ในกรณีที่ต้องติดตั้ง PHP เวอร์ชันเฉพาะ อาจต้องใช้แพ็คเกจ “software-properties-common” สำหรับจัดการ repository และแพ็คเกจต่างๆ หากยังไม่ได้ติดตั้ง สามารถติดตั้งได้ด้วยคำสั่งนี้
sudo apt install -y software-properties-common
แพ็คเกจนี้จำเป็นสำหรับใช้คำสั่ง add-apt-repository
โดยเฉพาะเมื่อต้องเพิ่ม PPA เพื่อเลือกติดตั้ง PHP เวอร์ชันต่างๆ
การใช้สิทธิ์ root หรือ sudo
การดำเนินการหลายอย่างในบทความนี้เป็นการเปลี่ยนแปลงระบบ จึงจำเป็นต้องใช้ sudo
หากไม่คุ้นเคยกับการใช้ sudo
แนะนำให้ศึกษาวิธีใช้งานเบื้องต้นก่อน
3. วิธีติดตั้ง PHP
การติดตั้ง PHP บน Ubuntu มี 2 วิธีหลัก คือ ติดตั้งจาก repository มาตรฐาน หรือใช้ PPA (Personal Package Archive) เพื่อติดตั้งเวอร์ชันที่ต้องการ ในส่วนนี้จะแนะนำแต่ละวิธีอย่างละเอียด
ติดตั้ง PHP จาก repository มาตรฐาน
ใน repository มาตรฐานของ Ubuntu มี PHP เวอร์ชันเสถียรให้เลือกใช้ หากไม่ต้องการเวอร์ชันเฉพาะ สามารถติดตั้งได้ง่ายๆ ด้วยขั้นตอนต่อไปนี้
sudo apt install -y php
หลังติดตั้งแล้ว ให้ตรวจสอบการติดตั้ง PHP ด้วยคำสั่งนี้
php -v
ตัวอย่าง:
PHP 8.1.2 (cli) (built: ...)
สำหรับ Ubuntu 22.04 จะเป็น PHP 8.1 โดยค่าเริ่มต้น
ติดตั้ง PHP เวอร์ชันเฉพาะด้วย PPA
หากต้องการใช้ PHP เวอร์ชันล่าสุด หรือสลับใช้งานหลายเวอร์ชัน สามารถเพิ่ม PPA ondrej/php เพื่อเลือกเวอร์ชันได้
ขั้นตอนที่ 1: เพิ่ม PPA repository
sudo add-apt-repository ppa:ondrej/php
sudo apt update
Repository นี้ได้รับความนิยมในชุมชน Ubuntu และให้ build ที่เสถียรของ PHP หลายเวอร์ชัน
ขั้นตอนที่ 2: ติดตั้ง PHP เวอร์ชันที่ต้องการ
ตัวอย่างเช่น หากต้องการติดตั้ง PHP 8.2 ให้ใช้คำสั่งนี้
sudo apt install -y php8.2
เช่นเดียวกัน สามารถติดตั้ง PHP 7.4, 8.0 หรือเวอร์ชันอื่นๆ ได้
ขั้นตอนที่ 3: ตรวจสอบเวอร์ชัน
php -v
หากติดตั้งสำเร็จ จะแสดงข้อมูลเวอร์ชันที่เลือก
4. การตรวจสอบการทำงานของ PHP
หลังติดตั้ง PHP แล้ว ควรตรวจสอบว่าทำงานได้ถูกต้องหรือไม่ บน Ubuntu สามารถเช็คผ่าน CLI และเช็คผ่าน Web Server (Apache/Nginx) ได้ บทความนี้จะแนะนำทั้งสองวิธี
ตรวจสอบผ่าน Command Line (CLI)
ตรวจสอบเวอร์ชัน PHP บน Terminal เพื่อเช็คการทำงานขั้นพื้นฐาน
php -v
หากแสดงเวอร์ชัน PHP และข้อมูล build แปลว่าทำงานปกติใน CLI
ตัวอย่าง output:
PHP 8.2.10 (cli) (built: Aug 23 2023 08:12:10) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.2.10, Copyright (c) Zend Technologies
ตรวจสอบผ่าน Web Server (กรณี Apache)
ถ้าใช้ Apache ให้สร้างหน้า test ด้วยฟังก์ชัน phpinfo()
เพื่อตรวจสอบการเชื่อมต่อ
1. สร้างไฟล์ทดสอบ
ใช้คำสั่งนี้เพื่อสร้างไฟล์ PHP ใน public directory ของ Apache (โดยทั่วไปคือ /var/www/html
)
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
2. เปิดดูผ่านเบราว์เซอร์
เข้าไปที่ URL ด้านล่างผ่านเบราว์เซอร์ (ถ้าเป็นเครื่อง local)
http://localhost/info.php
3. ตรวจสอบผลลัพธ์
หากแสดงข้อมูล PHP แสดงว่า Apache เชื่อมต่อ PHP สำเร็จ
🔍 หมายเหตุ: เนื่องจาก
phpinfo()
แสดงข้อมูลระบบจำนวนมาก หลังตรวจสอบแล้วควรลบไฟล์info.php
ทิ้งเพื่อความปลอดภัย
sudo rm /var/www/html/info.php
ตรวจสอบผ่าน Nginx + PHP-FPM
ถ้าใช้ Nginx PHP จะทำงานผ่าน php-fpm
ให้ตั้งค่า config และสร้างไฟล์ info.php
เช่นเดียวกับ Apache หากตั้งค่าไม่ถูกต้องจะขึ้น error 500 หรือขึ้นหน้าดาวน์โหลดไฟล์ ให้ตรวจสอบ fastcgi_pass
และ include fastcgi-php.conf;
ในไฟล์ config ของ Nginx
5. การติดตั้ง PHP Modules ที่ใช้บ่อย
PHP หลักไม่สามารถใช้งานทุกฟีเจอร์ได้ทันที หลายฟีเจอร์ต้องติดตั้ง “โมดูล” เพิ่มเติม บทความนี้จะแนะนำโมดูลยอดนิยมที่ใช้บ่อยในงานพัฒนาและ Production
PHP Modules คืออะไร?
PHP Modules (หรือ Extensions) เป็นส่วนขยายที่เพิ่มฟังก์ชันเฉพาะ เช่น การเชื่อมต่อฐานข้อมูล การจัดการภาษาไทย/Unicode การจัดการรูปภาพ การประมวลผล XML ฯลฯ
โมดูลสามารถติดตั้งได้ผ่าน apt ดังนี้
sudo apt install php-ชื่อโมดูล
หากต้องระบุเวอร์ชัน ให้ใช้เช่น php8.2-mbstring

โมดูล PHP ที่นิยมใช้และวัตถุประสงค์
php-mbstring (รองรับอักขระหลายไบต์)
จำเป็นเมื่อใช้งานกับภาษาไทยหรือภาษาญี่ปุ่น ใช้จัดการ string หลายไบต์ เช่น การแสดงผลเว็บไซต์หรือส่งอีเมล
sudo apt install php-mbstring
php-mysql (เชื่อมต่อ MySQL/MariaDB)
จำเป็นสำหรับเชื่อมต่อฐานข้อมูล MySQL หรือ MariaDB โดยเฉพาะกับ WordPress หรือแอปที่ใช้ database
sudo apt install php-mysql
php-gd (ประมวลผลรูปภาพ)
สำหรับสร้าง แปลง หรือย่อรูป ใช้กับการสร้างภาพแคปเจอร์ หรือสร้าง thumbnail อัตโนมัติ
sudo apt install php-gd
php-xml (จัดการ XML)
จำเป็นเมื่อใช้งาน RSS feed, SOAP หรือ API ที่ใช้ XML
sudo apt install php-xml
php-curl (เชื่อมต่อ HTTP/REST API)
ใช้ส่ง HTTP request จากเซิร์ฟเวอร์ เช่น ติดต่อ API ภายนอก นิยมใช้ในเฟรมเวิร์กยุคใหม่
sudo apt install php-curl
php-zip (จัดการไฟล์บีบอัด)
ใช้สร้างหรือแตกไฟล์ ZIP มักใช้คู่กับระบบอัปโหลดไฟล์
sudo apt install php-zip
การเปิดใช้โมดูลและรีสตาร์ทเซอร์วิส
บางโมดูลอาจต้องเปิดใช้ด้วย phpenmod
หลังติดตั้ง
sudo phpenmod ชื่อโมดูล
sudo systemctl restart apache2
เมื่อเปิดใช้โมดูลแล้ว ต้องรีสตาร์ทเว็บเซิร์ฟเวอร์เพื่อให้การเปลี่ยนแปลงมีผล
6. การจัดการเวอร์ชัน PHP และการสลับใช้งาน
บน Ubuntu สามารถติดตั้ง PHP หลายเวอร์ชันในเครื่องเดียวได้ โดยเฉพาะสำหรับ Dev หรือ Server ที่รันหลายเว็บ ในส่วนนี้จะแนะนำวิธีสลับเวอร์ชันผ่าน CLI และกำหนดเวอร์ชันบน Apache
สลับเวอร์ชัน PHP ผ่าน CLI
คำสั่งที่ใช้: update-alternatives
บน Ubuntu สามารถใช้ update-alternatives
เพื่อสลับเวอร์ชัน PHP บน CLI ได้ง่ายๆ
ขั้นตอนที่ 1: ตรวจสอบ PHP ที่ติดตั้งไว้
ls /usr/bin/php*
ขั้นตอนที่ 2: ลงทะเบียนเวอร์ชัน PHP (ทำครั้งแรกเท่านั้น)
sudo update-alternatives --install /usr/bin/php php /usr/bin/php7.4 74
sudo update-alternatives --install /usr/bin/php php /usr/bin/php8.2 82
ขั้นตอนที่ 3: เลือกเวอร์ชันที่ต้องการใช้งาน
sudo update-alternatives --config php
จะมีเมนูให้เลือกเวอร์ชัน PHP ที่ต้องการ
There are 2 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/php8.2 82 auto mode
1 /usr/bin/php7.4 74 manual mode
2 /usr/bin/php8.2 82 manual mode
Press <enter> to keep the current choice[*], or type selection number:
เลือกหมายเลขของเวอร์ชันที่ต้องการ ระบบจะสลับให้ทันที
ขั้นตอนที่ 4: ตรวจสอบเวอร์ชัน
php -v
การสลับ PHP บน Apache
บน Apache จะมีโมดูลสำหรับแต่ละเวอร์ชัน สามารถเปิด/ปิดโมดูลเพื่อสลับเวอร์ชันที่ใช้ได้
1. ตรวจสอบโมดูลที่มีอยู่
ls /etc/apache2/mods-available | grep php
2. ปิดใช้งานโมดูลเวอร์ชันปัจจุบัน
sudo a2dismod php7.4
3. เปิดใช้งานเวอร์ชันใหม่
sudo a2enmod php8.2
4. รีสตาร์ท Apache เพื่อให้มีผล
sudo systemctl restart apache2
วิธีนี้จะเปลี่ยน PHP ทั้งบน CLI และ Apache ตามเวอร์ชันที่เลือก
7. การตั้งค่าร่วมกับ Apache และ Nginx
PHP จะใช้งานเต็มประสิทธิภาพเมื่อเชื่อมต่อกับ Web Server อย่าง Apache หรือ Nginx บน Ubuntu บทความนี้จะแนะนำวิธีตั้งค่าร่วมกับทั้งสองเซิร์ฟเวอร์
ตั้งค่าร่วมกับ Apache (mod_php)
บน Apache สามารถใช้ mod_php
เพื่อรัน PHP ได้โดยตรง วิธีนี้ตั้งค่าง่าย เหมาะกับการรัน CMS อย่าง WordPress
ขั้นตอนที่ 1: ติดตั้ง Apache และ mod_php
sudo apt install -y apache2 libapache2-mod-php
ติดตั้ง libapache2-mod-php
จะทำให้ Apache รันไฟล์ PHP ได้
ขั้นตอนที่ 2: รีสตาร์ท Apache
sudo systemctl restart apache2
ขั้นตอนที่ 3: ทดสอบ PHP ไฟล์
สร้างไฟล์ test.php
ใน /var/www/html
แล้วเปิดในเบราว์เซอร์
<?php
phpinfo();
?>
ตัวอย่าง URL:
http://localhost/test.php
ตั้งค่าร่วมกับ Nginx (PHP-FPM)
Nginx ไม่สามารถรัน PHP โดยตรง ต้องใช้ PHP-FPM เป็นตัวกลาง
ขั้นตอนที่ 1: ติดตั้ง Nginx และ PHP-FPM
sudo apt install -y nginx php-fpm
ขั้นตอนที่ 2: แก้ไขไฟล์ตั้งค่า Nginx
โดยปกติจะแก้ไขไฟล์ /etc/nginx/sites-available/default
sudo nano /etc/nginx/sites-available/default
เพิ่ม/แก้ไข block ต่อไปนี้
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
ขั้นตอนที่ 3: รีสตาร์ท Nginx
sudo systemctl restart nginx
ขั้นตอนที่ 4: ทดสอบด้วย PHP ไฟล์
สร้าง /var/www/html/test.php
แล้วเปิดผ่านเบราว์เซอร์ให้แสดง phpinfo()
หมายเหตุ: การตั้งค่า Firewall (ถ้ามี)
ถ้าใช้ UFW ให้อนุญาต traffic ไปยัง Web Server ดังนี้
sudo ufw allow 'Apache Full'
# หรือ
sudo ufw allow 'Nginx Full'
Apache เด่นเรื่องใช้งานง่าย Nginx เด่นเรื่องความเร็วและประสิทธิภาพ เลือกใช้ให้เหมาะกับงานและตั้งค่าคู่กับ PHP ให้ถูกต้อง
8. การแก้ไขปัญหาเบื้องต้น (Troubleshooting)
แม้จะติดตั้ง PHP และเชื่อมต่อ Web Server แล้ว อาจเกิดปัญหาได้จากการตั้งค่าหรือสภาพแวดล้อม บทความนี้จะแนะนำปัญหายอดนิยมและวิธีแก้ไข
PHP ทำงานไม่ถูกต้อง (แสดงโค้ดในเบราว์เซอร์)
สาเหตุ
Web Server ไม่ได้ประมวลผล PHP แต่แสดงเป็น text เกิดจากไม่ได้ติดตั้งหรือเปิดใช้ PHP module หรือ FastCGI
แนวทางแก้ไข
- สำหรับ Apache:
ตรวจสอบให้ติดตั้งlibapache2-mod-php
และรีสตาร์ท Apache
sudo apt install libapache2-mod-php
sudo systemctl restart apache2
- สำหรับ Nginx:
ตรวจสอบให้ติดตั้งphp-fpm
และตั้งค่าfastcgi_pass
ให้ถูกต้อง
sudo systemctl restart php8.2-fpm
sudo systemctl restart nginx
ฟีเจอร์ PHP ใช้งานไม่ได้ (function ไม่ถูกนิยาม)
สาเหตุ
อาจไม่ได้ติดตั้งหรือเปิดใช้ PHP module ที่จำเป็น
แนวทางแก้ไข
- ติดตั้งโมดูลที่จำเป็น เช่น
mbstring
xml
curl
sudo apt install php-mbstring php-xml php-curl
- หลังเปิดใช้โมดูล ให้รีสตาร์ท Web Server
sudo systemctl restart apache2 # หรือ nginx
- ตรวจสอบรายชื่อโมดูลที่เปิดใช้งาน
php -m
ไม่แสดง error ของ PHP บนหน้าจอ
สาเหตุ
โดยปกติการแสดง error ของ PHP จะปิดไว้
แนวทางแก้ไข
แก้ไขไฟล์ php.ini
เพื่อเปิดการแสดง error
sudo nano /etc/php/8.2/apache2/php.ini
ค้นหาและแก้ไขบรรทัดต่อไปนี้
display_errors = On
error_reporting = E_ALL
หลังจากนั้นให้รีสตาร์ท Web Server
sudo systemctl restart apache2
วิธีดู error log
Apache:
/var/log/apache2/error.log
Nginx:
/var/log/nginx/error.log
PHP-FPM log (กรณีใช้ Nginx):
/var/log/php8.2-fpm.log
ตรวจสอบ log เหล่านี้จะช่วยให้แก้ปัญหาได้ตรงจุด
sudo tail -f /var/log/apache2/error.log
หากเกิดปัญหา ให้ ดู log → ตรวจสอบ config → รีสตาร์ท server ตามลำดับ
9. สรุป
บทความนี้อธิบายขั้นตอนการติดตั้ง PHP บน Ubuntu ตั้งแต่พื้นฐานถึงขั้นสูง พร้อมสรุปประเด็นสำคัญและแนะนำเนื้อหาที่ควรศึกษาต่อ
สรุปประเด็นสำคัญ
- ตรวจสอบเวอร์ชัน Ubuntu และอัปเดตระบบ
ก่อนติดตั้ง PHP ต้องตรวจสอบ OS และอัปเดตแพ็คเกจให้ล่าสุด - วิธีติดตั้ง PHP มี 2 ทาง
ติดตั้งจาก repo มาตรฐาน หรือติดตั้งเวอร์ชันที่ต้องการผ่าน PPA - ตรวจสอบการทำงานหลังติดตั้ง
ใช้php -v
หรือphpinfo()
ตรวจสอบทั้ง CLI และ Web - เพิ่มฟังก์ชันด้วยโมดูล
ติดตั้งphp-mbstring
php-mysql
ฯลฯ ตามต้องการ - รองรับการสลับ PHP หลายเวอร์ชัน
ใช้update-alternatives
หรือสลับ module ของ Apache ได้ - ตั้งค่าร่วมกับ Apache/Nginx
เลือกใช้ Web Server ให้เหมาะกับงานและตั้งค่าให้ถูกต้อง - เมื่อมีปัญหาให้ดู log
ปัญหา PHP/Server ให้ตรวจสอบ log ก่อนเสมอ
ก้าวถัดไปที่ควรศึกษา
หลังติดตั้ง PHP บน Ubuntu เรียบร้อย แนะนำให้ศึกษาหัวข้อต่อไปนี้เพื่อพัฒนาทักษะเพิ่ม
- ติดตั้ง MySQL (MariaDB) และเชื่อมต่อฐานข้อมูล
- ติดตั้งและสร้างเว็บด้วย WordPress
- ติดตั้งเฟรมเวิร์ก PHP เช่น Laravel
- ตั้งค่า HTTPS (SSL) ด้วย Let’s Encrypt
- ตั้งค่าการ start/stop อัตโนมัติด้วย systemd
หากรวมความรู้เหล่านี้เข้าด้วยกัน จะสามารถพัฒนา Web Service หรือ Application ขั้นสูงได้อย่างมั่นใจ
Ubuntu กับ PHP เป็นคู่ที่แข็งแกร่งสำหรับสาย Open Source หวังว่าบทความนี้จะช่วยปูทางให้ทุกคนพัฒนาฝีมือในสายงานนี้ต่อไป
10. คำถามที่พบบ่อย (FAQ)
รวบรวมคำถามยอดนิยมที่มักเจอหรือถูกค้นหาบ่อยเมื่อติดตั้ง/ตั้งค่า PHP บน Ubuntu พร้อมคำตอบที่เข้าใจง่ายสำหรับผู้เริ่มต้น
Q1. จะติดตั้ง PHP เวอร์ชันล่าสุดบน Ubuntu ได้อย่างไร?
A1.
Ubuntu repo มาตรฐานอาจไม่มี PHP เวอร์ชันล่าสุด หากต้องการเวอร์ชันใหม่ ให้เพิ่ม PPA ondrej/php
แล้วระบุเวอร์ชันที่ต้องการติดตั้ง
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2
Q2. จะสลับ PHP เวอร์ชันบน CLI ได้อย่างไร?
A2.
หากติดตั้ง PHP หลายเวอร์ชัน ใช้ update-alternatives
เพื่อเลือกเวอร์ชันที่ต้องการ
sudo update-alternatives --config php
จากเมนูที่แสดง ให้เลือกหมายเลขเวอร์ชันที่ต้องการ
Q3. PHP ไม่ทำงานบน Apache และแสดงโค้ด PHP ในเบราว์เซอร์
A3.
Apache ไม่ได้ประมวลผล PHP ให้ตรวจสอบว่าติดตั้งและเปิดใช้ libapache2-mod-php
แล้วรีสตาร์ท Apache
sudo apt install libapache2-mod-php
sudo systemctl restart apache2
Q4. ไฟล์ตั้งค่า PHP (php.ini) อยู่ที่ไหน?
A4.
php.ini มีสำหรับ CLI และ Web Server โดยทั่วไปจะอยู่ที่
- Apache:
/etc/php/8.2/apache2/php.ini
- CLI:
/etc/php/8.2/cli/php.ini
เลขเวอร์ชัน (8.2) ให้เปลี่ยนตามที่ติดตั้ง
Q5. จะเปิดใช้ PHP module ได้อย่างไร?
A5.
หลังติดตั้ง module ให้ใช้คำสั่ง phpenmod
เพื่อเปิดใช้
sudo phpenmod mbstring
sudo systemctl restart apache2
เปิดใช้ module แล้วต้องรีสตาร์ท Web Server
Q6. PHP ทำงานบน Nginx ไม่ได้ ต้องตั้งค่าอะไรบ้าง?
A6.
บน Nginx ต้องใช้ php-fpm
ให้ตรวจสอบว่า config มี fastcgi_pass
ถูกต้อง
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
เปลี่ยน .sock ให้ตรงกับเวอร์ชันที่ใช้
Q7. ไม่แสดง error ของ PHP บนหน้าจอ
A7.
ตรวจสอบ php.ini
ดู display_errors = Off
หรือไม่ เปิดเฉพาะช่วงพัฒนาได้โดยแก้เป็น
display_errors = On
error_reporting = E_ALL
หลังแก้ไขแล้ว รีสตาร์ท Web Server
ทั้งหมดนี้คือคำถามและคำตอบยอดนิยมสำหรับการใช้งาน PHP บน Ubuntu หวังว่าจะช่วยให้แก้ไขปัญหาได้อย่างมั่นใจ