ข้ามไปยังเนื้อหา

การย้ายไซต์

อาจเป็นเทคนิคที่มีประโยชน์มากในการสร้างต้นแบบไซต์ XOOPS ใหม่บนระบบโลคัลหรือเซิร์ฟเวอร์การพัฒนา นอกจากนี้ ยังอาจใช้ความรอบคอบอย่างยิ่งในการทดสอบอัปเกรด XOOPS บนสำเนาของไซต์ที่ใช้งานจริงของคุณก่อน เผื่อในกรณีที่มีสิ่งผิดปกติเกิดขึ้น เพื่อให้บรรลุเป้าหมายเหล่านี้ คุณจะต้องสามารถย้ายไซต์ XOOPS ของคุณจากไซต์หนึ่งไปอีกไซต์หนึ่งได้ นี่คือสิ่งที่คุณจำเป็นต้องรู้เพื่อย้ายไซต์ XOOPS ของคุณให้ประสบความสำเร็จ

ขั้นตอนแรกคือการสร้างสภาพแวดล้อมไซต์ใหม่ของคุณ รายการเดียวกันที่กล่าวถึงในส่วน การเตรียมการล่วงหน้า ใช้ที่นี่เช่นกัน

ในการทบทวน ขั้นตอนเหล่านั้นคือ:

  • รับโฮสติ้ง รวมถึงข้อกำหนดชื่อโดเมนหรืออีเมล
  • รับบัญชีผู้ใช้และรหัสผ่าน MySQL
  • รับฐานข้อมูล MySQL ที่ผู้ใช้ด้านบนมีสิทธิ์ทั้งหมด

กระบวนการที่เหลือค่อนข้างคล้ายกับการติดตั้งปกติ แต่:

  • แทนที่จะคัดลอกไฟล์จากการแจกจ่าย XOOPS คุณจะคัดลอกไฟล์เหล่านั้นจากไซต์ที่มีอยู่
  • แทนที่จะเรียกใช้โปรแกรมติดตั้ง คุณจะนำเข้าฐานข้อมูลที่มีประชากรอยู่แล้ว
  • แทนที่จะป้อนคำตอบในตัวติดตั้ง คุณจะเปลี่ยนคำตอบก่อนหน้าในไฟล์และฐานข้อมูล

ทำสำเนาไฟล์ทั้งหมดของไซต์ที่มีอยู่ของคุณไปยังเครื่องท้องถิ่นของคุณซึ่งคุณสามารถแก้ไขได้ หากคุณทำงานกับโฮสต์ระยะไกล คุณสามารถใช้ FTP เพื่อคัดลอกไฟล์ได้ คุณต้องมีสำเนาเพื่อใช้งานแม้ว่าไซต์จะทำงานบนเครื่องของคุณ เพียงสร้างสำเนาไดเรกทอรีของไซต์อีกชุดในกรณีนั้น

สิ่งสำคัญคือต้องจำไว้ว่าต้องรวมไดเร็กทอรี xoops_data และ xoops_lib แม้ว่าจะถูกเปลี่ยนชื่อและ/หรือย้ายตำแหน่งก็ตาม

เพื่อให้สิ่งต่าง ๆ ราบรื่นยิ่งขึ้น คุณควรกำจัดแคชและไฟล์เทมเพลตที่คอมไพล์แล้ว Smarty ออกจากสำเนาของคุณ ไฟล์เหล่านี้จะถูกสร้างขึ้นใหม่ในสภาพแวดล้อมใหม่ของคุณ และอาจทำให้เกิดปัญหากับข้อมูลที่ไม่ถูกต้องเก่าที่ถูกเก็บรักษาไว้หากไม่ได้ล้าง ในการดำเนินการนี้ ให้ลบไฟล์ทั้งหมด ยกเว้น index.html ในทั้งสามไดเร็กทอรีเหล่านี้:

  • xoops_data/caches/smarty_cache
  • xoops_data/caches/smarty_compile
  • xoops_data/caches/xoops_cache

หมายเหตุ: การล้าง smarty_compile มีความสำคัญอย่างยิ่งเมื่อย้ายไซต์เข้าหรือออกจาก XOOPS 2.7.0 XOOPS 2.7.0 ใช้ Smarty 4 และเทมเพลตที่คอมไพล์ Smarty 4 ไม่สามารถใช้แทนกันได้กับเทมเพลตที่คอมไพล์ Smarty 3 การทิ้งไฟล์ที่คอมไพล์เก่าไว้จะทำให้เกิดข้อผิดพลาดของเทมเพลตเมื่อโหลดหน้าแรกบนไซต์ใหม่

XOOPS 2.7.0 จัดการการพึ่งพา PHP ผ่านนักแต่งเพลง ภายใน xoops_lib/ ไดเรกทอรี xoops_lib/vendor/¤ มีไลบรารีบุคคลที่สามที่ XOOPS ต้องการในขณะรันไทม์ (Smarty 4, PHPMailer, HTMLPurifier ฯลฯ) เมื่อย้ายไซต์ คุณต้องคัดลอกแผนผัง xoops_lib/ ทั้งหมด — รวมถึง vendor/ — ไปยังโฮสต์ใหม่ อย่าพยายามสร้าง vendor/ ใหม่บนโฮสต์เป้าหมาย เว้นแต่คุณจะเป็นนักพัฒนาที่ได้ปรับแต่ง composer.json และมี Composer พร้อมใช้งานบนเป้าหมาย

รายการเดียวกันที่กล่าวถึงในส่วน การเตรียมการล่วงหน้า ใช้ที่นี่เช่นกัน เราจะถือว่าคุณมีโฮสติ้งทุกอย่างที่คุณต้องการสำหรับไซต์ที่คุณกำลังย้าย

การย้ายไซต์ให้ประสบความสำเร็จนั้นเกี่ยวข้องกับการเปลี่ยนการอ้างอิงไปยังชื่อไฟล์และพาธ, URL, พารามิเตอร์ฐานข้อมูล และข้อมูลรับรองการเข้าถึง

สองไฟล์ mainfile.php ในเว็บรูทของไซต์ของคุณ และ data/secure.php¤ ในไดเรกทอรี xoops_data ของไซต์ของคุณ (เปลี่ยนชื่อและ/หรือย้ายตำแหน่ง) จะเป็นตัวกำหนดพารามิเตอร์พื้นฐานของไซต์ของคุณ เช่น URL ซึ่งอยู่ในระบบไฟล์โฮสต์ และวิธีเชื่อมต่อกับฐานข้อมูล

คุณจะต้องรู้ว่าค่าใดอยู่ในระบบเก่า และค่าใดบ้างในระบบใหม่

ชื่อค่าเดิมใน mainfile.phpค่าใหม่ใน mainfile.php
XOOPS_ROOT_PATH
XOOPS_PATH
XOOPS_VAR_PATH
XOOPS_URL
XOOPS_COOKIE_DOMAIN

จดบันทึกค่าเก่าและค่าใหม่ เนื่องจากเราจะต้องทำการเปลี่ยนแปลงที่คล้ายกันในที่อื่นๆ ในขั้นตอนถัดไป

ตามตัวอย่าง หากคุณกำลังย้ายไซต์จาก PC ในพื้นที่ของคุณไปยังบริการโฮสติ้งเชิงพาณิชย์ ค่าของคุณอาจมีลักษณะดังนี้:

ชื่อค่าเดิมใน mainfile.phpค่าใหม่ใน mainfile.php
XOOPS_ROOT_PATHc:/wamp/xoopscore27/htdocs/home8/example/public_html
XOOPS_PATHc:/wamp/xoopscore27/htdocs/xoops_lib/home8/example/private/xoops_lib
XOOPS_VAR_PATHc:/wamp/xoopscore27/htdocs/xoops_data/home8/example/private/xoops_data
XOOPS_URLhttp://localhost/xoopshttps://example.com
XOOPS_COOKIE_DOMAINโลคอลโฮสต์example.com

หลังจากที่คุณเปลี่ยน mainfile.php แล้ว ให้บันทึก

เป็นไปได้ว่าไฟล์อื่นๆ บางไฟล์อาจมีการอ้างอิงแบบฮาร์ดโค้ดไปยัง URL ของคุณ หรือแม้แต่เส้นทาง สิ่งนี้มีแนวโน้มมากกว่าในธีมและเมนูที่กำหนดเอง แต่ด้วยโปรแกรมแก้ไขของคุณ คุณสามารถค้นหาไฟล์ทั้งหมดได้เพื่อความแน่ใจ

ในโปรแกรมแก้ไข ให้ค้นหาไฟล์ในสำเนาของคุณ ค้นหาค่า XOOPS_URL เก่า และแทนที่ด้วยค่าใหม่

ทำเช่นเดียวกันกับค่า XOOPS_ROOT_PATH เก่า โดยแทนที่ค่าที่เกิดขึ้นทั้งหมดด้วยค่าใหม่

เก็บบันทึกย่อของคุณไว้เพราะเราจะต้องใช้อีกครั้งในภายหลังในขณะที่เราย้ายฐานข้อมูล

ชื่อค่าเดิมใน data/secure.phpค่าใหม่ใน data/secure.php
XOOPS_DB_HOST
XOOPS_DB_USER
XOOPS_DB_PASS
XOOPS_DB_NAME

เปิด data/secure.php ในไดเร็กทอรี xoops_data ที่เปลี่ยนชื่อและ/หรือย้ายตำแหน่งในตัวแก้ไขของคุณ เปลี่ยนค่าสำหรับการกำหนดที่แสดงในแผนภูมิด้านบนจากค่าเก่าเป็นค่าที่เหมาะสมสำหรับไซต์ใหม่

อาจมีไฟล์อื่นๆ ที่อาจต้องดำเนินการเมื่อไซต์ของคุณย้าย ตัวอย่างทั่วไปบางส่วนคือคีย์ API สำหรับบริการต่างๆ ที่อาจเชื่อมโยงกับโดเมน เช่น:

  • Google แผนที่
  • Recaptch2
  • ชอบปุ่ม
  • การแชร์ลิงก์และ/หรือการโฆษณา เช่น Shareaholic หรือ AddThis

การเปลี่ยนการเชื่อมโยงประเภทเหล่านี้ไม่สามารถดำเนินการได้โดยอัตโนมัติได้อย่างง่ายดาย เนื่องจากการเชื่อมต่อกับโดเมนเก่าโดยทั่วไปจะเป็นส่วนหนึ่งของการลงทะเบียนทางฝั่งบริการ ในบางกรณี การดำเนินการนี้อาจเพิ่มหรือเปลี่ยนแปลงโดเมนที่เกี่ยวข้องกับบริการได้

คัดลอกไฟล์ที่แก้ไขแล้วของคุณไปยังไซต์ใหม่ของคุณ เทคนิคเหมือนกับที่ใช้ในระหว่าง การติดตั้ง นั่นคือ การใช้ FTP

สำหรับขั้นตอนนี้ ขอแนะนำให้ใช้ phpMyAdmin เข้าสู่ระบบ phpMyAdmin สำหรับไซต์ที่มีอยู่ของคุณ เลือกฐานข้อมูลของคุณ และเลือก Export

การตั้งค่าเริ่มต้นมักจะใช้ได้ ดังนั้นเพียงเลือก “วิธีการส่งออก” เป็น Quick และ “รูปแบบ” เป็น SQL

ใช้ปุ่ม Go เพื่อดาวน์โหลดข้อมูลสำรองฐานข้อมูล

การส่งออกฐานข้อมูลด้วย phpMyAdmin

หากคุณมีตารางในฐานข้อมูลของคุณที่ไม่ได้มาจาก XOOPS หรือโมดูล และควรจะย้าย NOT คุณควรเลือก “วิธีการส่งออก” ของ Custom และเลือกเฉพาะตารางที่เกี่ยวข้อง XOOPS ในฐานข้อมูลของคุณ (ซึ่งเริ่มต้นด้วย “คำนำหน้า” ที่คุณระบุระหว่างการติดตั้ง คุณสามารถค้นหาคำนำหน้าฐานข้อมูลของคุณได้ในไฟล์ xoops_data/data/secure.php)

บนโฮสต์ใหม่ของคุณ ให้ใช้ฐานข้อมูลใหม่ของคุณ กู้คืนฐานข้อมูลโดยใช้ tools เช่น แท็บ Import ใน phpMyAdmin (หรือ bigdump หากจำเป็น)

อัปเดตลิงก์ http ใด ๆ ไปยังทรัพยากรบนเว็บไซต์ของคุณในฐานข้อมูลของคุณ ซึ่งอาจต้องใช้ความพยายามอย่างมาก และมี เครื่องมือ ที่ทำให้การดำเนินการนี้ง่ายขึ้นการเชื่อมต่อถึงกัน/มีผลิตภัณฑ์ชื่อ Search-Replace-DB ซึ่งสามารถช่วยได้ในเรื่องนี้ มันมาพร้อมกับการรับรู้ถึงสภาพแวดล้อม Wordpress และ Drupal ในตัว อย่างที่เคยเป็น เครื่องมือนี้มีประโยชน์มาก แต่จะดียิ่งขึ้นไปอีกเมื่อทราบถึง XOOPS ของคุณ คุณสามารถค้นหาเวอร์ชันที่ทราบ XOOPS ได้ที่ https://github.com/geekwright/srdb

ทำตามคำแนะนำในไฟล์ README.md เพื่อดาวน์โหลดและติดตั้งยูทิลิตี้นี้บนไซต์ของคุณชั่วคราว ก่อนหน้านี้ เราได้เปลี่ยนการกำหนด XOOPS_URL เมื่อคุณเรียกใช้เครื่องมือนี้ คุณต้องการแทนที่คำจำกัดความ XOOPS_URL ดั้งเดิมด้วยคำจำกัดความใหม่ นั่นคือแทนที่ http://localhost/xoops ด้วย https://example.com

การใช้การค้นหาและแทนที่ DB

ป้อน URL เก่าและใหม่ของคุณ แล้วเลือกตัวเลือกการทดลองเรียกใช้ ตรวจสอบการเปลี่ยนแปลง และหากทุกอย่างดูดีแล้ว ให้เลือกตัวเลือกการถ่ายทอดสด ขั้นตอนนี้จะตรวจจับรายการการกำหนดค่าและลิงก์ภายในเนื้อหาของคุณที่อ้างอิงถึงไซต์ของคุณ URL

การตรวจสอบการเปลี่ยนแปลงใน SRDB

ทำซ้ำขั้นตอนนี้โดยใช้ค่าเก่าและค่าใหม่สำหรับ XOOPS_ROOT_PATH

อีกวิธีหนึ่งในการดำเนินการขั้นตอนนี้ให้สำเร็จโดยไม่ต้องใช้เครื่องมือ srdb ก็คือดัมพ์ฐานข้อมูลของคุณ แก้ไขดัมพ์ในตัวแก้ไขข้อความโดยเปลี่ยน URL และเส้นทาง จากนั้นจึงโหลดฐานข้อมูลซ้ำจากดัมพ์ที่คุณแก้ไข ใช่ กระบวนการดังกล่าวมีส่วนร่วมเพียงพอและมีความเสี่ยงเพียงพอที่ผู้คนจะถูกกระตุ้นให้สร้างเครื่องมือพิเศษ เช่น Search-Replace-DB

ณ จุดนี้ เว็บไซต์ของคุณควรจะพร้อมที่จะทำงานในสภาพแวดล้อมใหม่!

แน่นอนว่าอาจมีปัญหาเกิดขึ้นได้เสมอ อย่ากลัวที่จะโพสต์คำถามใดๆ ใน ฟอรัม xoops.org