Lamp บน Ubuntu 22.04 lts
Table of Contents
Lamp บน Ubuntu 22.04 lts
คำว่า “Lamp” มันคือคำย่อมาจากกลุ่มของ software ที่เราติดตั้งด้วยกัน เพื่อให้ Server ที่เราต้องการทำเป็นโอสต์เว็บไซต์ ที่เขียนด้วย PHP มันประกอบไปด้วย Linux operating system with the Apache web server. The site data is stored in a MySQL database, and dynamic content is processed by PHP.
สิ่งที่ต้องเตรียม
ติตตั้ง LAMP บน Ubuntu 22.04 lts นี้ เราต้องติดตั้ง Ubuntu ก่อน ในกรณีที่เราสร้าง Server ขึ้นมาเอง แต่ ในกรณีที่เราเช่า Cloud Hosting อย่างเช่น DigitalOcean ก็ไม่ต้องติดตั้ง เพราะตอนสร้าง Droplets จะมีขั้นตอนการสร้าง Image ให้เราเลือกเพื่อสร้างเรียบร้อยแล้ว แล้วแต่ว่า เราจะเลือกเอา Linux ตัวไหน
ขั้นตอนที่ 1 ติดตั้ง Apache และอัพเดท Firewal
Apache web server เป็น ที่นิยมใช้ในการทำ Web server กันมาก แต่ ก่อนที่จะติดตั้ง Apache ต้องใช้คำสั่ง update ก่อน
sudo apt update |
หลังจากนั้นใช้คำสั่งติดตั้ง Apache ด้วยคำสั่ง
sudo apt install apache2 |
เมื่อใช้คำสั่ง จะคำถามให้ตอบว่า ตกลงจะติดตั้ง Apache หรือไม่ ให้ตอบ Y หากต้องการติดตั้ง หลังจากนั้นให้กด ENTER
เมื่อติดตั้ง เสร็จเรียบร้อย ขั้นตอนต่อมาคือจะต้องปรับแต่งไฟล์วอลเพื่อให้ สามารถใช้งานเส้นทางการไหลผ่านทาง HTTP ได้ Ubuntu มีค่าดีฟอลต์ สำหรับและเครื่องมือสำหรับปรับแต่งเรียกว่า Uncomplicated Firewall (UFW)
ในการใช้คำสั่งเพื่อตรวจสอบว่าตอนนี้ มีคุณสมบัติหรือที่ใช้งานได้ตอนนี้ มีอะไรบ้าง โดยการใช้คำสั่ง
sudo ufw app list |
Output
Available applications: Apache Apache Full Apache Secure OpenSSH |
ในแต่ส่วนที่เมื่อเราใช้คำสั่ง ufw app list แล้วแสดงผลออกมา สามารถอธิบายรายละเอียดสั้นๆๆ ได้
- Apache จะใช้งานได้เฉพาะ port 80 เท่านั้น normal, unencrypted web traffic
- Apache Full ใช้งานได้ ทั้ง port 80 และ 443 (TLS/SSL encrypted traffic)
- Apache Secure ใช้ได้เฉพาะ port 443 เท่านั้น
ในตอนนี้ สิ่งที่เราต้องทำคือเปิดเฉพาะ Port 80 ก่อน เพราะตอนติดตั้ง Apache ครั้งแรก เรายังไม่มีหรือยังไม่ได้ติดตั้ง TLS/SSL certicate ที่จะให้ผ่านได้
คำสั่งให้ผ่านเฉพาะ Port 80 ใช้คำสั่ง
sudo ufw allow in "Apache" |
ตรวจสอบดูการเปลี่ยนเปลง
sudo ufw status |
ผลที่แสดงผลออกมา
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6) |
การติดต่อสื่อสารผ่านทาง port 80 ตอนนี้ สามารถผ่านทาง firewall ได้แล้ว
เราสามารถทดสอบว่าที่เราได้ดำเนินการมาตั้งหมดสมบูรณ์ถูกต้องหรือไม่ โดยการลองเข้าไปเปิดดูว่าการติดตั้ง Apache และการกำหนดค่า firewall โดยการใช้คำสั่งเรียกผ่าน บราวเซอร์ โดยการพิมพ์หมายเลข IP ของ server ที่เราติดตั้ง apache
เมื่อลองเปิดบราวเซอร์ และพิมพ์หมายเลข IP ของ Server ของเรา หากเราติดตั้งถูกต้องและเปิด Port 80 แล้ว หน้าปกติของ apache web page มันจะแสดงข้อมูลรายละเอียดมาให้เรา ตามตัวอย่างด้านล่างคือหน้าเริ่มต้นของ Apache
Installing MySQL
ในตอนนี้ เรามี Web Server ที่มันสามารถทำงานได้แล้ว ต่อไปคือต้องติดตั้งระบบฐานข้อมูล เพื่อใช้ในการจัดการและเก็บข้อมูลในเว็บไซต์ของเรา ในส่วนนี้ เท่าที่ทดสอบมา MySQL น่าจะเป็นตัวเลือกได้ดี หรือใครจะใช้ MariaDB ก็ได้ แต่ในบทความนี้ขออธิบายการติดตั้งโดยใช้ MySQL
เช่นเดิม ใช้คำสั่ง apt เพื่อรับโปรแกรมมาจาก reop และติดตั้งซอฟร์แวร์
sudo apt install mysql-server |
เมื่อติดตั้งเสร็จ สิ่งที่ต้องทำต่อไปคือการใช้คำสั่ง เพื่อรัน สคริปต์ด้านการระบบความปลอดภัย ในขั้นตอนการดำเนินการหรือการใช้คำสั่งนี้ เป็นการเอาออกค่าปกติของซอฟต์แวร์ที่อาจจะไม่มีความปลอดภัยหรือเชื่อถือไม่ได้ออกและการกำหนดการเข้าถึงฐานข้อมูลของเราเป็นส่วนที่ค่อนข้างจะสำคัญ มาก การเรียกใช้คำสั่ง
สิ่งแรกที่เจอเมื่อใช้คำสั่งดังกล่าวคือ ระบบจะถามว่าต้องการคอนฟิก validate password plugin หรือไม่ ในขั้นตอนนี้ สามารถเลือกตอบ y หรือ no ได้
VALIDATE PASSWORD PLUGIN can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD plugin? Press y|Y for Yes, any other key for No: |
หากเราตอบ Y จะเข้าสู่ขั้นตอนการเลือกระดับการสร้าง Password ที่เราต้องการสร้างว่าให้มีความสมบูรณ์หรือแข็งแรงในระดับไหน ในการกำหนด Password อาจจะมีการแจ้งผิดพลาดบ้าง หากเราตั้งค่า Password ของเราไม่มีส่วนประกอบด้วย ตัวเลข ตัวอักษรตัวเล็กและตัวใหญ่ รวมทั้งตัวสัญญาลักษณ์ต่าง ๆๆ หากมีการแจ้งข้อผิดพลาดให้แก้ไข ด้วยกำหนดให้ประกอบด้วยรูปแบบดังกล่าว
There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1 |
เมื่อเราเลือกระดับความสมบูรณ์ของ password แล้ว จะเข้าสู่ขั้นตอนการกำหนด password หากเราคิดว่า เราพอใจแล้วกับ password ที่เรากำหนด ก็ให้ดำเนินการต่อไป
sudo mysql_secure_installation |
Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y |
Warning, Tip, Notice, or Information.
ในขั้นตอนนี้ หากเจอปัญหา กดปุ่ม Yes แล้ว ไม่สามารถกำหนดรหัสผ่านได้ และมีการการกำหนดรหัสใหม่อีกครั้ง แม้ว่าเราจะกำหนดรหัสตรงแล้วก็ตามมันเกิดจากปัญหาการกำหนดรหัส วิธีการแก้ไข
- เปิด terminal ใหม่ขึ้นมาอีกตัว
- ในTerminate ให้สั่งให้
mysql_secure_installation
หยุดการทำงาน โดยใช้คำสั่งkillall command
: sudo killall -9 mysql_secure_installation
- Start the mysql client: โดยใช้คำสั่ง
sudo mysql
- Run the following SQL query:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'SetRootPasswordHere'; exit |
- Then run the following command to secure it:
sudo mysql_secure_installation
- When promoted for the password enter the
SetRootPasswordHere
(or whatever you set when you ran the above SQL query) - That is all.
.
sudo mysql |
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 8.0.28-0ubuntu4 (Ubuntu) Copyright (c) 2000, 2022, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> |
หากเราสังเกตุดู ขั้นตอนในการเรียกใช้ Mysql เราไม่ต้องใส่ Password เพื่อใช้งานในฐาน root แม้ว่าเราจะกำหนดไว้ในขั้นตอนการรันสคริปต์ mysql_secure_installation นั้นเป็นเพราะกระบวนการตรวจสอบค่าปกติของ Mysql ถูกกำหนดไว้เป็น unix_socket แทนที่ password แมัมันจะดูว่าอาจจะมีปัญหาด้านความปลอดภัย แต่จริงๆๆ แล้วมันจะทำให้ฐานข้อมูลที่ความปลอดภัยมากยิ่งขึ้น เนื่องจากผู้ใช้ที่สามารถเข้าใช้งานในระบบ root ของ mysql ได้คือใช้ระบบที่ใช้คำสั่ง sudo นั้นหมายถึงเป็นผู้มีสิทธิ์เต็มในการจัดการในทางปฎิบัติ
การตั้ง password สำหรับ root นั้น ถือเป็นการป้องกัน หากเรากำหนดแบบนี้ นั้นหมายถึงกระบวนการในการตรวจสอบมันจะเปลี่ยนจาก unix_socket
to password
.
เพื่อความปลอดภัยที่สูงขึ้น วิธีการที่ที่สุดคือ จะต้องสร้างชื่อผู้ใช้ที่มีสิทธิ์น้อยกว่า ไว้สำหรับเพื่อเข้าใช้งานในแต่ละฐานข้อมูล
Warning, Tip, Notice, or Information.
มี php บางรุ่นที่ไม่รองรับ caching_sha2_password
ทางคือให้ใช้ mysql_native_password แทน สำหรับวิธีการนี้อ่านได้จากตรงนี้
เป็นว่าได้ติดตั่ง MySQL server และระบบป้องกันเสร็จเรียบร้อยแล้ว ถัดไปจะเป็นการติดตั้ง PHP ซึ่งเป็นส่วนประกอบอีกตัวของ LAMP
Installing PHP
ตอนนี้ เราได้ติดตั้ง apache เพื่อใช้ในงานบริการเนื้อหาและติดตั้ง MySQL เพื่อเก็บและจัดการเกี่ยวกับข้อมูล ส่วน PHP เป็นส่วนประกอบตัวที่เราติดตั้งเพื่อประมวลผลเนื้อหน้าหาแบบไดนามิค คือเนื้อหาที่เขียนด้วย PHP
ในการติดตั้งแพ็คเก็ตของ PHP สิ่งที่ Module ของ PHP ต้องใช้ในการติดต่อระหว่าง MySQL คือ php-mysql
ดังนั้นตัวนี้ต้องติดตั้งด้วย นอกจากนี้ แล้วต้องติดตั้ง libapache2-mod-php เพื่อเปิดการทำงานให้ apache สามารถจัดการเกี่ยว ไฟล์ของ PHP สำหรับ Core ของ PHP ตัวอื่นจะถูกติดตั้งโดยอัตโนมัติ
ในการติดตั้งแพ็คเก็ตเหล่านี้ ติดตั้งโดยใช้คำสั่ง
sudo apt install php libapache2-mod-php php-mysql |
เมื่อติดตั้งเสร็จ ใช้คำสั่งนี้ เพื่อตรวจสอบดูรุ่นและรายละเอียด
php -v |
Output
PHP 8.1.2 (cli) (built: Mar 4 2022 18:13:46) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies
มาถึงจุดนี้ ถือว่าการ ติตตั้ง LAMP และ WordPress บน Ubuntu 22.04 lts ในส่วนของ LAMP ของเราสร็จสิ้นสมบูรณ์ ในขั้นตอนต่อไปก่อนที่เราจะไปปรับแต่ง PHP เพื่อให้รองรับการติดตั้ง wordpress
ทางที่ดีที่สุดคือต้องปรับแต่ง Apahe Virtual Host เพื่อจัดการไฟล์ในเว็บไซต์ของเราและ Folders
การสร้าง virtual Host สำหรับเว็บไซต์ของเรา
ในกรณีที่เราใช้ Apache เราสามารถสร้าง Virtual Host เพื่อสรุปรายละเอียดการกำหนดค่า และใช้เพื่อกำหนดในกรณีที่มี Host จำนวน Domain มากกว่า หนึ่งโดเมน แต่ใช้แค่ Server เดียว
ตามตัวอย่าง ในการกำหนดโดเมน จะใช้คำว่า You_Domain แต่หากใครมีโดเมนเป็นของตัวเองให้เปลี่ยนเป็นชื่อโดเมนของตัวเองแทน
Apache ที่เราใช้ทำเป็นเว็บเซิร์ฟเวอร์บน Ubuntu 22.04 จะมี Virtual Host เปิดใช้งานเริ่มต้นปกติอยู่แล้ว โดยมันจะบริการงานเกี่ยวเก็บเอกสารที่เราสามารถจะเอาข้อมูลเว็บไซต์ของเราไปเก็บไว้ที่ไดเร็กเตอรี่ /var/www/html
ซึ่งมันจะทำงานได้ดีสำหรับในกรณีที่เรามีเว็บไซต์เดียว แต่มันอาจจะยุ่งยากในกรณีที่เราต้องการจะสร้างหลายเว็บไซต์ใน Server เดียว
ทางที่ดีเราน่าจะสร้าง โครงสร้างไดเร็กเตอรีใหม่ ไว้ใน /var/www
สำหรับเว็บไซต์ของเรา ที่เป็นชื่อตามโดเมนของเรา
แล้วปล่อยทิ้ง /var/www/html
เพื่อต้องการใช้ในการทดสอบหรือผู้ใช้บางคนต้องการ การสร้างไดเร็กเตอรีใหม่ ใช้วิธีการตามคำสั่งด้านล่าง
sudo mkdir /var/www/your_domain |
การกำหนดเจ้าของไดเร็กเตอรีที่เราสร้าง หรืออาจจะข้ามไปก่อนก็ได้ แล้วค่อยใช้คำสั่งอื่นแทนในตอนเราติดตั้ง WordPress
sudo chown -R $USER:$USER /var/www/your_domain |
หลังจากนั้นให้ไปสร้างไฟล์สำหรับคอนฟิกใหม่ขึ้นมาอีกไฟล์ โดยให้ตั้งชื่อตามโดเมนของเราหรือชื่อที่เราสามารถอ่านแล้วเข้าใจ หรือจำได้ดีในกรณีทีมี Host ของโดเมนเนมหลายตัว
วิธีกรสร้างให้สร้างไนไดเร็กเตอรีทีมีชื่อว่า sites-available
แล้วใช้ตัว command-line editor ตัวที่เราชอบ อาจจะเป็น VI,ViM ,NANO ตามตัวอย่างใช้ Nano แต่หากยังไม่ได้ติดตั้ง ให้ใช้ VI แทนก็ได้
นี่คือสั่งสร้างไฟล์ ให้เปลี่ยนชื่อตรง you_domain.con ให้เป็นชื่อตามที่เราต้องการ
sudo nano /etc/apache2/sites-available/your_domain.conf |
ตอนที่เราสร้างจะมีแค่หน้าจอว่างเปล่า ให้คัดลอกไฟล์คอนฟิกข้างล่างไปวาง แล้วเปลี่ยนชื่อ your_domain ให้เป็นชื่อที่เราตั้งไว้ตอนสร้างไดเร็กเตอรี่ ที่อยู่ใน /var/www
<VirtualHost *:80> ServerName your_domain ServerAlias www.your_domain ServerAdmin webmaster@localhost DocumentRoot /var/www/your_domain ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
บันทึกแล้วปิดเมื่อเราแก้ไขเสร็จ หากเราใช้ Nano การบันทึกให้กด CTRL+X
, then Y
and ENTER
.
อธิบายนิดในขั้นตอนที่ผ่านมา ที่เราปรับแต่งค่าหรือคอนฟิก VirtualHost นั้น เพื่อเป็นการบอก Apache ว่า เราใช้ไดเร็กเตอรี่ /var/www/your_domain เป็นพื้นที่สำหรับเก็บข้อมูลของเว็บไซต์ เป็นไดเร็กเตอรี่หลัก (web root directory)
หากเราไม่มีโดเมนเนม แต่เราต้องการทดสอบ Apache ก็ให้ลบ หรือทำเครื่อง # หน้าบรรทัดที่เขียนว่า ServerName
and ServerAlias
ต่อมาเป็นการใช้คำสั่ง a2ensite
เพื่อเปิดใช้งาน Virtual Host ที่เราสร้างใหม่
sudo a2ensite your_domain |
หลังจากนั้นก็ให้ปิดค่าการใช้เว็บเบื้องต้นที่เป็นไฟล์คอนฟิกมาพร้อมกับการติดตั้ง apache หากไม่ปิด ตรงนี้ค่าเริ่มต้นนี้จะทำงานแทนที่ Virtual Host ที่เราสร้างไว้
คำสั่งที่ใช้คือ a2dissite
sudo a2dissite 000-default |
ตรวจสอบว่าการคอนฟิกที่ผ่านมาของเราถูกต้องไม่มึการเขียนค่าผิดพลาดตามที่โปรแกรมกำหนดไว้ โดยใช้คำสั่ง
sudo apache2ctl configtest |
ท้ายสุดใช้คำสั่ง เพื่อให้ Apache อ่านค่าคอนฟิกใหม่ ให้สมบูรณ์
sudo systemctl reload apache2 |
เป็นอันว่า น่าจะเสร็จสิ้นสำหรับการ ติตตั้ง LAMP บน Ubuntu 22.04 lts หลังจากนี้ จะเป็นขั้นตอนในการติดตั้ง WordPress ในกรณีที่เราจะใช้ WordPress ในการสร้างเว็บไซต์ เพื่อไม่ให้บทความยาว สามารถอ่านต่อได้ที่นี้
ส่วนรายละเอียดข้างล่างคือขั้นตอนในการติดตั้งทั้งหมดรวมทั้งวิธีแก้ปัญหาเพื่อใครเข้าใจแล้ว จะได้ไล่ตามคำส่งได้เลยไม่ต้องงอ่านบทความซ้ำให้เสียเวลา
บทความนี้ทั้งหมดอ้างอิงมาจากคู่มือในการใช้ Droplet ของ DigitalOcean
apt update 2 apt list --upgradable 3 adduser green 4 usermod -aG sudo green 5 ufw app list 6 ufw allow OpenSSH 7 ufw enable 8 sudo apt update 9 sudo apt install apache2 10 sudo ufw app list 11 sudo ufw allow in "Apache" 12 sudo ufw status 13 sudo apt install mysql-server 14 sudo systemctl status unattended-upgrades.service 15 sudo apt update 16 sudo apt install unattended-upgrades 17 sudo apt install mysql-server 18 sudo mysql_secure_installation 19 sudo mysql 20 sudo mysql -u root -p 21 sudo apt install php libapache2-mod-php php-mysql 22 php -v 23 sudo mkdir /var/www/cib 24 sudo nano /etc/apache2/sites-available/cib.conf 25 sudo a2ensite cib 26 sudo a2dissite 000-default 27 sudo apache2ctl configtest 28 vi /etc/apache2/apache2.conf 29 sudo apache2ctl configtest 30 sudo systemctl reload apache2 31 sudo nano /etc/apache2/mods-enabled/dir.conf 32 sudo systemctl reload apache2 33 nano /var/www/cib/info.php 34 php -v 35 sudo apt-get install -y php8.1-cli 36 sudo apt-get install -y php8.1-cli php8.1-common php8.1-mysql php8.1-zip php8.1-gd php8.1-mbstring php8.1-curl php8.1-xml php8.1-bcmath 37 sudo mysql -u root -p 38 sudo apt update 39 sudo apt install php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-xmlrpc php8.1-soap php8.1-intl php8.1-zip 40 sudo systemctl restart apache2 41 sudo nano /etc/apache2/sites-available/wordpress.conf 42 sudo a2enmod rewrite 43 sudo apache2ctl configtest 44 sudo systemctl restart apache2 45 cd /tmp 46 curl -O https://wordpress.org/latest.tar.gz 47 tar xzvf latest.tar.gz 48 touch /tmp/wordpress/.htaccess 49 cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php 50 mkdir /tmp/wordpress/wp-content/upgrade 51 sudo cp -a /tmp/wordpress/. /var/www/cib 52 sudo chown -R www-data:www-data /var/www/cib 53 sudo find /var/www/cib/ -type d -exec chmod 750 {} \; 54 sudo find /var/www/cib/ -type f -exec chmod 640 {} \; 55 sudo nano /var/www/wordpress/wp-config.php 56 sudo nano /var/www/cib/wp-config.php 57 cd /var/www 58 ls 59 cd cib 60 ls 61 ls -la 62 sudo chown -R www-data:www-data /var/www/cib 63 sudo systemctl restart apache2 64 cd /etc/apache2/sites-available 65 ls 66 rm wordpress.conf 67 sudo systemctl restart apache2 68 cd /tmp 69 cd wordpress/ 70 ls 71 cp .htaccess /var/www/cib 72 cd .. 73 ls 74 cd /var/www/cib/ 75 ls 76 rm -rf * 77 ls 78 cd /tmp 79 ls 80 rm -rf wordpress/ 81 curl -O https://wordpress.org/latest.tar.gz 82 tar xzvf latest.tar.gz 83 cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php 84 sudo cp -a /tmp/wordpress/. /var/www/cib 85 sudo apt update 86 sudo apt install certbot python3-certbot-apache 87 sudo apache2ctl configtest 88 sudo systemctl reload apache2 89 sudo ufw status 90 sudo ufw allow 'Apache Full' 91 sudo ufw status 92 sudo certbot --apache 93 sudo chown -R www-data:www-data /var/www/cib 94 sudo find /var/www/cib/ -type d -exec chmod 750 {} \; 95 sudo find /var/www/cib/ -type f -exec chmod 640 {} \; 96 vi /var/www/cib/wp-config.php 97 nano /var/www/cib/wp-config.php 98 cd /var/www/cib 99 ls 100 ls -la 101 systemctl restart apache2 102 chown -R www-data:www-data /var/www/cib 103 systemctl restart apache2 104 chmod -R 755 /var/www/cib 105 systemctl restart apache2 106 ls -la 107 systemctl restart apache2 108 nano /var/www/cib/wp-config.php 109 systemctl restart apache2 110 nano /var/www/cib/wp-config.php 111 mysql -u root -p 112 nano /var/www/cib/wp-config.php 113 systemctl restart apache2 114 mysql -u root -p 115 mysql -u cibgreen -p 116 mysql -u root -p 117 nano /var/www/cib/wp-config.php 118 sudo find /var/www/cib/ -type d -exec chmod 750 {} \; 119 sudo find /var/www/cib/ -type f -exec chmod 640 {} \; 120 chown -R www-data:www-data /var/www/cib 121 systemctl restart apache2 122 sudo apt install php8.1-dom 123 sudo apt install php8.1-gmagick 124 sudo apt install php8.1-SimpleXML 125 sudo apt install php8.1-ssh2 126 sudo apt install php8.1-xml 127 sudo apt install php8.1-xmlreader 128 sudo apt install php8.1-curl 129 sudo apt install php8.1-exif 130 sudo apt install php8.1-ftp 131 sudo apt install php8.1-date 132 sudo apt install php8.1-gd 133 sudo apt install php8.1-hash 134 sudo apt install php8.1-imagick 135 sudo apt install php8.1-json 136 sudo apt install php8.1-libxml 137 sudo apt install php8.1-openssl 138 sudo apt install php8.1-posix 139 sudo apt install php8.1-pcre 140 sudo apt install php8.1-tokenizerz 141 sudo apt install php8.1-spl 142 systemctl restart apache2 143 nano /var/www/cib/wp-config.php 144 cd /etc/php/8.1/ 145 ls 146 cd apache2/ 147 ls 148 vi php.ini 149 systemctl restart apache2 150 cd /var/www/cib/ 151 ls 152 cd wp-includes/ 153 ls 154 cd .. 155 ls 156 cd wp-content/ 157 ls 158 cd themes/ 159 ls 160 systemctl restart apache2 161 vi /var/www/cib/wp-config.php 162 systemctl restart apache2 163 cd wplms/ 164 ls 165 mkdir plugins 166 chmod 755 -R plugins 167 cd / 168 ls 169 cd /etc/apache2/cd .. 170 pwd 171 cd /etc/php/8.1/apache2/ 172 vi php.ini 173 systemctl restart apache2 |
ปัญหาที่เจอและวิธีการแก้ไข
เดิม เป็น php 7.4 แล้ว update Ubuntu >php8.1 จะมีปัญหาเรียก php ไม่ได้ทางแก้
sudo a2dismod php7.4 sudo a2enmod php8.1 |
apt install php8.1 libapache2-mod-php8.1 |
sudo apt install php8.1-common php8.1-mysql php8.1-xml php8.1-xmlrpc php8.1-curl php8.1-gd php8.1-imagick php8.1-cli php8.1-dev php8.1-imap php8.1-mbstring php8.1-opcache php8.1-soap php8.1-zip php8.1-redis php8.1-intl -y |
การแก้ไข php.ini
nano /etc/php/8.1/apache2/php.ini |
upload_max_filesize = 32M post_max_size = 48M memory_limit = 256M max_execution_time = 600 max_input_vars = 3000 max_input_time = 1000 |