Wednesday, October 19, 2022

Ubuntu 22.04 downgrade PHP 8.1 to PHP 8.0 or PHP 7.4 (Apache)

  • ประเด็นคือย้าย Codeignitor 4 จาก PHP 7.4 ที่ Server เครื่องเก่าไป VM เครื่องใหม่
  • โดย Server ตัวใหม่ลง apache2 + PHP 8.1 ไว้ใช้งานแล้ว แต่ CI4 เค้าว่ามีปัญหากับ PHP 8.1 ซะงั้น
  • https://stackoverflow.com/questions/70285088/uncaught-errorexception-strtolower-passing-null-to-parameter-1-string-of
  • เค้าแนะนำให้ใช้ PHP 8.0 พอ
  • ที่ทำอยู่นิ ใช้ Apache2 นะคับ

Solved

  • add repo ก่อนถึงจะติดตั้ง php8.0 ได้เพราะ 22.04 ค่าเริ่มของ repo เค้าได้ php8.1 นะ 
$ sudo add-apt-repository ppa:ondrej/php
$ sudo apt update

  • ติดตั้ง php8.0 และ package ที่จำเป็น

sudo apt install php8.0 php8.0-common php8.0-cli

sudo apt install php8.0-bcmath php8.0-bz2 php8.0-curl php8.0-intl php8.0-mbstring php8.0-mysql php8.0-readline php8.0-xml php8.0-zip php8.0-gd php8.0-gmp

  • เปิดใช้งาน php8.0 (a2enmod ใช้ได้เฉพาะ ลง apache แล้วเท่านั้น)

sudo a2enmod php8.0

  • ปิดการใช้งาน php8.1 (a2dismod ใช้ได้เฉพาะ ลง apache แล้วเท่านั้น)

sudo a2dismod php8.1

  • สลับให้ Ubuntu ไปใช้ lib ของ php8.0 เป็นค่าเริ่มต้น

sudo update-alternatives --set php /usr/bin/php8.0

  • restart apache ซะหน่อย

sudo /etc/init.d/apache2 restart หรือ $ sudo systemctl restart apache2

Add

  • ถ้าเราต้องการใช้  downgrade ไปที่ 7.4 ก็เปลี่ยนจาก 8.0 เป็น 7.4 ในคำสั่งด้านบนเท่านั้น
  • server ใหม่ในที่นี้ใช้ Ubuntu 22.04 ตัวเก่าใช้ 18.04
  • เช็ค version php ที่ระบบใช้อยู่ปัจจุบัน
sudo php -v

Ref

  • https://juuier.blogspot.com/2020/09/rewrite-urls-with-modrewrite-for-apache.html
  • https://juuier.blogspot.com/2021/06/update-to-php-74-on-ubuntu-1804.html
  • https://juuier.blogspot.com/2021/09/scp-copy-tool-ubuntu-2004.html


Tuesday, October 18, 2022

MySQL Export query data มากๆ ด้วย outfile

  • ปกติเราใช้ MySQL Workbench เป็น client แต่เค้าให้ export result ได้ทีละ 1000 per page
  • มันมีตั้งหลายหน้าทำไง เลยถามผู้รู้พี่เค้าแนะนำใช้ select to outfile แต่ผลลัพธ์ที่เป็น ไฟล์ output มันจะอยู่ที่ db server ซะงั้น แต่ก็ยังดีกว่า  export ที่ละหน้าแหละ

Solved

SELECT t1.* from table into outfile '/tmp/tb.csv' fields enclosed by '"' terminated by ';' escaped by '"' lines terminated by '\r\n';

เพิ่มเติม

  • พาธที่มันจะสร้างไฟล์ csv  จะอยู่ที่เครื่องที่ database server นั้น
  • และต้องใช้ export ลง /tmp ด้วย เพราะถ้าระบุพาธอื่นๆ ที่เราต้องการ mysql user ไม่มี สิทธิ์เขียนไฟล์ประมาณนี้

ERROR 1 (HY000): Can't create/write to file

Ref

  • https://www.navisite.com/blog/mysql-error-1-hy000-cant-create-write-to-file/
  • https://www.educba.com/mysql-export-to-csv/
  • https://stackoverflow.com/questions/2867607/mysql-select-into-outfile-local

Popular Posts