การติดตั้งและตั้งค่า PHP บน Ubuntu สำหรับมือใหม่และนักพัฒนาเว็บ | คู่มือครบจบในที่เดียว

目次

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 หวังว่าจะช่วยให้แก้ไขปัญหาได้อย่างมั่นใจ