Categories
Docker wordpress 🏴‍☠️

Migrate WordPress LAMP stack to Docker

วันนี้ได้ฤกษ์ migrate blog นี้ ซึ่งได้เริ่มเขียนลงบน wordpress.com ตั้งแต่ปี 2008 จากนั้นก็ migrate รอบแรกเมื่อ 5 ปีก่อนมาขึ้น DIgital Ocean ตอนนี้มันเน่ามากเป็น Lamp stack อัพอะไรไม่ไหวแล้ว ระเบิดทิ้งดีก่า

ตอนแรกตั้งใจ migrate ไป ghost แต่ลง plugin ไม่ได้เพราะ up php ที่ server เดิมไม่ผ่าน ด้วยฟามขึ้เกียจ export ไป wordpress นี่แหละวะ แต่ห่อมันด้วย docker หน่อยจะได้บาปน้อยลง 😂 มีเวลาค่อย migrate อีกรอบ

เริ่มต้นต้อง Export ก่อน ตอนแรกใช้ https://import.wp-migration.com มัน Export ได้แต่ตอนจะ Import ถ้าเกิน 512 MB ต้องซื้อ 69$

พอ export ออกมาโห 1 GB กว่าๆ เริ่มงกละ เอา export ธรรมดาดีกั่ว ฟริ้วววว

export ได้ไฟล์ xml มา 2.8 MB คิดว่าสบายละ แต่ๆๆ วิบากกรรมเพิ่งเริ่มต้น เราพักไว้ไปทำเรื่อง basic กันก่อน

WordPress Docker Official Images เราเลือกนาย https://hub.docker.com/_/wordpress/

จัดๆ Docker Compose ตาม doc ของ official ลยแก้นิดหน่อยตรง volumns เพราะเผื่อไว้แมนน่วล old school ftp บ้าง 555+

version: '3.1'

services:

  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: exampleuser
      WORDPRESS_DB_PASSWORD: examplepass
      WORDPRESS_DB_NAME: exampledb
    volumes:
      - ./wordpress:/var/www/html

  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: exampledb
      MYSQL_USER: exampleuser
      MYSQL_PASSWORD: examplepass
      MYSQL_RANDOM_ROOT_PASSWORD: '1'
    volumes:
      - db:/var/lib/mysql

volumes:
  db:

Save เป็น docker-compose.yml จากนั้นก็ลุยเลย

docker-compose up -d

เรียบร้อยแล้วจะได้ container มา 2 ตัวคือ wordpress กับ mysql

เข้าได้จาก http://127.0.0.1:8080 ( หรือ http://host-ip:8080)

กรณีของผมได้ทำ Reverse Proxy เอาไว้ก็เข้าไปติดตั้งจากโดเมนที่ Assign ไว้ได้เลย (Reverse Proxy Nginx + Cloudflare)

โคตรจะดีงาม แค่หน้าเดียวก็เสร็จละใช้งาน wordpress ได้แล้ว

ต่อไปก็จะ import ข้อมูลเข้าละ คิดว่าสบายแระ แต่วิบากกรรมเพิ่งจะเริ่มขึ้น

>

>

เชร็ดโด้ไฟล์ export ของเรา 2.8 MB ทำไงดี google ดิคร้าบบบ แล้วก็ไปเจอ https://help.servmask.com/2018/10/27/how-to-increase-maximum-upload-file-size-in-wordpress/ รอดตายละ

1. Update .htaccess file

php_value upload_max_filesize 128M
php_value post_max_size 128M
php_value memory_limit 256M
php_value max_execution_time 300
php_value max_input_time 300

2. Update wp-config.php file

@ini_set( 'upload_max_filesize' , '128M' );
@ini_set( 'post_max_size', '128M');
@ini_set( 'memory_limit', '256M' );
@ini_set( 'max_execution_time', '300' );
@ini_set( 'max_input_time', '300' );

เซฟ 2 ไฟล์ จากนั้นไปรีเฟรช ก็ได้ละ 128 MB หุหุ หมูๆ

แต่วิบากกรรมซ้ำซ้อนยังไม่จบ กดไปปุ๊บ 413 Request Entity Too Large ว๊อืเดอะฟลัคคคคคคค หมูแม่มเล่นกรูแล้ว

เกือบจะถอดใจละ เอาวะ google อีกรอบ อ่านไปอ่านมาก็เจอว่าต้องไปเซต  maximum accepted body size of client request ของ Nginx ที่ทำ Reverse Proxy นั่นเอง ก็จัดไปตามนั้น https://www.cyberciti.biz/faq/linux-unix-bsd-nginx-413-request-entity-too-large/

 sudo nano /etc/nginx/nginx.conf
# set client body size to 2M #
client_max_body_size 4M;
sudo systemctl reload nginx.service

เสร็จละก็ลุยเลย

เย่ๆๆๆ มาแล้วเว้ยยยยยย

แต่ๆ รูปยังมาไม่ครบตอน import ไม่เป็นไรว่าจะไปดึงตรงๆจากไฟล์ที่ server เก่าก็ได้หมูๆ แต่ก็อีกละ ทำนู่นทำนี่ไปเรื่อยดันลืม ระเบิด server เก่าทิ้งเสย ยังไม่ได้ backup รูปเลย อะไรวะเนี่ยยยย

คิดซิคิด เออว่ะจำได้ว่าใช้เคย all in one migrate แล้ว backup ไว้บน google drive ก็ไปหาเจอด้วย backup ไว้ถึงปี 2018 เอาวะ download ลงมาแล้วก็ google หาว่าจะแงะมันยังไงดีแบบไม่ต้องซื้อ ก็ไปเจอ https://traktor.wp-migration.com/ โคตรเทพ ระเบิดปุ๊บได้ไฟล์มาครบ

จากนั้นก็เอาไฟล์ไป ftp old school อัดเข้าไปตาม path

หนังจบ สวัสดี

Spread the love

ใส่ความเห็น