Mr.Green

สร้าง บันทึกและแบ่งปัน

พิมพ์ค้นหาบทความได้ในช่องค้นหา

Lamp บน Ubuntu 22.04 lts

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 

http://your_server_ip

เมื่อลองเปิดบราวเซอร์ และพิมพ์หมายเลข 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 แล้ว ไม่สามารถกำหนดรหัสผ่านได้ และมีการการกำหนดรหัสใหม่อีกครั้ง แม้ว่าเราจะกำหนดรหัสตรงแล้วก็ตามมันเกิดจากปัญหาการกำหนดรหัส วิธีการแก้ไข

  1. เปิด terminal ใหม่ขึ้นมาอีกตัว
  2. ในTerminate ให้สั่งให้ mysql_secure_installation หยุดการทำงาน โดยใช้คำสั่งkillall command:
  3. sudo killall -9 mysql_secure_installation
  4. Start the mysql client: โดยใช้คำสั่ง
  5. sudo mysql
  6. Run the following SQL query:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'SetRootPasswordHere';
exit
  1. Then run the following command to secure it:
    sudo mysql_secure_installation
  2. When promoted for the password enter the SetRootPasswordHere (or whatever you set when you ran the above SQL query)
  3. 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
Tags:  ,

Leave a Reply

Your email address will not be published. Required fields are marked *