Discuz Thai

 ลืมรหัสผ่าน
 สมัครสมาชิก

ข้อตกลงการใช้งานกระดานข่าวดิสคัสไทย DiscuzThai Agreement (English Version) ประกาศดิสคัสไทย - ทำเนียบดิสคัสภาษาไทย

Discuz! X3.5 Thai R20231001 Rev.8 (NEW) [วิดีโอช่วยสอน] อัปเกรด Discuz! X3.4 เป็น X3.5 Discord ของ Discuz! Thai Community อย่างเป็นทางการ

Discuz! X3.4 Thai R20220811 (REV.75) สิ้นสุดการสนับสนุน Discuz! X3.4 ภาษาไทยตั้งแต่วันนี้เป็นต้นไป (ขอแนะนำให้อัปเกรดเป็น X3.5 แทน)

ค้นหา
แท็กยอดนิยม: ดิสคัสภาษาไทย Discuz Thai
ดู: 7757|ตอบกลับ: 27

เปลี่ยน HTTP เป็น HTTPS, SSL (Cloudflare)

  [คัดลอกลิงก์]
jaideejung007 โพสต์ 2015-2-26 19:05:52 |โหมดอ่าน
วิธีการต่อไปนี้ สำหรับผู้ที่ใช้บริการ Cloudflare ที่เป็นบริการแบบ CDN จากต่างประเทศ โดยทาง Cloudflare เองก็มีบริการหนึ่งที่น่าสนใจมาก นั่นก็คือ เปิดให้ใช้ SSL หรือ HTTPS ฟรี เพื่อเป็นการเข้าสู่ยุคแห่งการเข้ารหัสข้อมูล ซึ่งเราๆ เองก็เป็นที่ทราบดีแล้วจากข่าวที่มีการแอบดักฟังข้อมูลของเราไม่ว่าจากทาง▇▇▇▇▇ นั่นจึงเป็นเหตุให้ทาง Cloudflare สนับสนุนให้มีการใช้งาน HTTPS กันมากขึ้น

โดยปกติดิสคัสเวอร์ชันใหม่ (X3.2) จะรองรับ HTTPS สมบูรณ์อยู่แล้ว แต่อาจจะเนื่องด้วยปัญหาบางประการ ที่ตัวทางดิสคัสเอง อาจจะไม่รองรับกรณีมีการเปิดใช้งาน SSL ผ่านบริการของ Cloudflare เราจำเป็นต้องมีการปรับแต่งแก้ไขค่าซักเล็กๆ น้อยๆ เพื่อไม่ให้เว็บของเราขึ้นเป็นไอคอนตกใจ แทนที่จะเป็นไอคอนแม่กุญแจสีเขียว จากภาพด้านล่างนี้


วิธีการ
1. เปิดไฟล์ source/class/discuz/discuz_application.php  (ขอบคุณโค้ดจาก @rokaisakkon)
หาโค้ดนี้
  1. $_G['isHTTPS'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? true : false;
  2. $_G['siteurl'] = dhtmlspecialchars('http'.($_G['isHTTPS'] ? 's' : '').'://'.$_SERVER['HTTP_HOST'].$sitepath.'/');
คัดลอกไปที่คลิปบอร์ด

แทนที่ด้วย
  1.                 if(!empty($_SERVER['HTTP_X_FORWARDED_PROTO'])) $_G['isHTTPX'] = $_SERVER['HTTP_X_FORWARDED_PROTO'];
  2.                 if(!$_G['isHTTPX']) $_G['isHTTPX'] = ($_SERVER['HTTPS'] && strtolower($_SERVER['HTTPS']) != 'off') ? 'https' : 'http' ;
  3.                 $_G['siteurl'] = dhtmlspecialchars($_G['isHTTPX'].'://'.$_SERVER['HTTP_HOST'].$sitepath.'/');
คัดลอกไปที่คลิปบอร์ด


2. เปิดไฟล์ source/plugin/cloudstat/cloudstat.class.php
แล้วลบโค้ดพวกนี้ออก (หรือจะใส่คำสั่งคอมเม้นท์ก็ได้ครับ)
  1. $return = '&nbsp;&nbsp;<span id="tcss"></span><script type="text/javascript" src="http://tcss.qq.com/ping.js?v=1'.VERHASH.'" charset="utf-8"></script>';
คัดลอกไปที่คลิปบอร์ด
  1. $pingd = 'http://pingtcss.qq.com/pingd?' . $query . 'ext=' . implode(';', $this->extraParams);
คัดลอกไปที่คลิปบอร์ด


3. เปิดไฟล์ source/function/function_core.php
แล้วลบโค้ดพวกนี้ออก (หรือจะใส่คำสั่งคอมเม้นท์ก็ได้ครับ)
  1. echo '<script type="text/javascript" src="http://notice.uchome.manyou.com/notice/userNotice?sId='.$sid.'&ts='.$ts.'&key='.$key.'&uchId='.$uchId.'" charset="UTF-8"></script>';
คัดลอกไปที่คลิปบอร์ด
  1. $tipsService = Cloud::loadClass('Service_DiscuzTips');
  2. $tipsService->show();
คัดลอกไปที่คลิปบอร์ด


4. เปิดไฟล์ source/plugin/manyou/Service/DiscuzTips.php
แล้วลบโค้ดนี้ออก
  1. <script src="http://discuz.gtimg.cn/cloud/scripts/discuz_tips.js?v=1" type="text/javascript" charset="UTF-8"></script>
คัดลอกไปที่คลิปบอร์ด


5. เปิดไฟล์ source\plugin\manyou\Service\SearchHelper.php
แล้วลบโค้ดพวกนี้ออก (หรือจะใส่คำสั่งคอมเม้นท์ก็ได้ครับ)
  1. $domain = 'search.discuz.qq.com';
คัดลอกไปที่คลิปบอร์ด
  1. $url = 'http://' . $domain . '/f/discuz';
คัดลอกไปที่คลิปบอร์ด


6. เปิดไฟล์ source/plugin/cloudsearch/template/module.htm
หา
  1. src = 'http://search.discuz.qq.com/api/suggest?q=' + encodeURIComponent(q) + '&' + cloudsearch_suggest.queryString;
คัดลอกไปที่คลิปบอร์ด

แทนที่ด้วย
  1. /*src = 'http://search.discuz.qq.com/api/suggest?q=' + encodeURIComponent(q) + '&' + cloudsearch_suggest.queryString;*/
คัดลอกไปที่คลิปบอร์ด


7. เปิดไฟล์ config/config_ucenter.php
แก้ค่า "UC_API" เป็น https

7.1 เปิดไฟล์ uc_server/data/config.inc.php (อัปเดตเนื้อหา)
แก้ไข http เป็น https

8. ไปที่ admin.php?action=setting&operation=uc
แก้ค่า "UCenter API access address:" (พูดง่ายๆ คือ เติม https เท่านั้นครับ)
จาก
  1. http://yoursite.com/uc_server
คัดลอกไปที่คลิปบอร์ด

เป็น
  1. https://yoursite.com/uc_server
คัดลอกไปที่คลิปบอร์ด


9. ทดสอบรันหน้าเว็บ

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

ทางเลือกอีกทาง
How to Discuz! X3.1/3.2 Open https (SSL) support!
https://www.cloudxns.net/Support/detail/id/356.html

ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? สมัครสมาชิก

x

คะแนน

จำนวนผู้เข้าร่วม 5จิตพิศัย +9 ย่อ เหตุผล
kanda + 1
submark + 1 ถูกใจ
damrongsak + 1 ถูกใจ
mylookhin + 1
mrkran + 5 ยอดเยี่ยมมาก

ดูบันทึกคะแนน

submark โพสต์ 2016-6-26 18:59:43
ผมใช้วิธียัดเยียดความเป็น https ให้เลยครับ ได้เหมือนกัน เอาไปเพิ่มไว้ที่ไฟล์ header ในโฟลเดอร์แม่แบบที่ใช้
  1. <script type="text/javascript">
  2.     if (window.location.protocol == "http:") {
  3.         var restOfUrl = window.location.href.substr(5);
  4.         window.location = "https:" + restOfUrl;
  5.     }
  6.         </script>
คัดลอกไปที่คลิปบอร์ด
mylookhin โพสต์ 2016-6-26 16:22:38
ขอบคุณมากครับ ยังสามารถใช้งานได้อย่างดีเลย

เพิ่มเติม

7.1 เปิดไฟล์ uc_server/data/config.inc.php แก้ไข http เป็น https
**ข้อนี้เหมือนจะไม่มีนะครับ แต่ไปแก้ใน ucenter ผ่าน admincp เอาครับ

เพิ่มเติมอีกข้อครับ

ในไฟล์ .htaccess

ให้เพิ่มโค้ด

  1. RewriteEngine On
  2. RewriteCond %{HTTPS} off
  3. RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
คัดลอกไปที่คลิปบอร์ด
damrongsak โพสต์ 2015-2-27 15:04:12
  1. $tipsService = Cloud::loadClass('Service_DiscuzTips');
  2. $tipsService->show();
คัดลอกไปที่คลิปบอร์ด


สองอันนี้หมายความว่าอะไรครับ

แล้วในกรณีที่คอนโซลผม มันขึ้นว่าเว็บยังดึงรูปอวาตาร์จาก HTTP ต้องแก้ที่ไฟล์ไหนหรอครับ
 เจ้าของ| jaideejung007 โพสต์ 2015-2-27 15:13:02
damrongsak ตอบกลับเมื่อ 2015-2-27 15:04
สองอันนี้หมายความว่าอะไรครับ

แล้วในกรณีที่คอนโซล ...


โค้ดสองบรรทัดนั้น เป็นคำสั่งสำหรับแสดงค่า ของโค้ดนี้ครับ
  1. echo '<script type="text/javascript" src="http://notice.uchome.manyou.com/notice/userNotice?sId='.$sid.'&ts='.$ts.'&key='.$key.'&uchId='.$uchId.'" charset="UTF-8"></script>';
คัดลอกไปที่คลิปบอร์ด


ใช้คำสั่งคอมเม้นท์ แทนการลบก็ได้ครับ (เผื่อบางวันอยากกลับไปใช้อีก )

ส่วนปัญหาที่สอง
ลองแก้ไขตามโค้ดที่ผมอัปเดตให้นะครับ

แก้ไข
ที่ว่ารูปส่วนตัวไม่ขึ้นใช่ไหมครับ
เราต้องไปแก้เป็น https ในส่วนของ admin.php?action=setting&operation=uc
mylookhin โพสต์ 2015-2-27 22:05:35
ขอบคุณมากครับสำหรับเนื้อหาดีๆ จริงๆแล้ว นอกจากจะแก้ปัญหาให้ใช้ https ได้อย่างสมบูรณ์ขึ้นแล้ว ยังมีมีผลพลอยได้ คือคนเข้าเว็บ จะโหลดเร็วขึ้นเล็กน้อยถึงปานกลางด้วยสินะ (ไม่ต้องลิ้งออกจีนตัดไปได้เยอะเลยเอ๋หรือว่าตัดไปบางส่วนแต่ยังหลงเหลือหว่า) ^-^
 เจ้าของ| jaideejung007 โพสต์ 2015-2-28 11:16:37
mylookhin ตอบกลับเมื่อ 2015-2-27 22:05
ขอบคุณมากครับสำหรับเนื้อหาดีๆ จริงๆแล้ว นอกจากจะแก้ ...

ไม่เล็กน้อยแล้วอ่ะครับ

มากๆ เลย โดยเฉพาะช่วงกลางคืนเนี่ย เว็บพี่จีน จะอืดเป็นพิเศษ

และจากที่ทดสอบเบื้องต้น เมื่อเราลบ ลิงก์นอกพวกนี้ออก ไม่ส่งผลเสียต่อการใช้งานเว็บเราด้วยซ้ำ

อาจจะมีบ้างที่ไม่ได้รับการแจ้งเตือนบางอย่าง แต่ใครจะสนล่ะ เพราะคุณพี่จีน ไม่เคยแคร์ ต่างประเทศอยู่แล้ว ฮ่าๆ
damrongsak โพสต์ 2015-2-28 13:36:27


กลายเป็นเชื่อมต่อ UCENTER ไม่ได้อะครับ ผมลองแก้ดูแล้วก็ยังแก้ไม่ได้

เพิ่มเนื้อหา (2015-2-28 13:47):
อัพรูปประจำตัวได้ แต่รูปประจำตัวไม่เปลี่ยน ครับ ^ - ^
 เจ้าของ| jaideejung007 โพสต์ 2015-2-28 14:31:16
damrongsak ตอบกลับเมื่อ 2015-2-28 13:36
กลายเป็นเชื่อมต่อ UCENTER ไม่ได้อะครับ ผมลองแก้ดูแล้วก ...

หลังจากอัพรูปประจำตัวแล้ว จะไม่ถูกเปลี่ยนทันทีนะครับ

เพราะ CloudFlare แคชค่าภาพเดิมไว้ครับ ต้องรอซักระยะหนึ่ง ภาพถึงจะเปลี่ยนครับ

ส่วน UCenter ของผมก็ไม่เชื่อมต่อครับ แต่ไม่มีผลกระทบกับเว็บบอร์ดผมนะครับ

เพราะจำนวนสมาชิกในเว็บบอร์ดกับ Ucenter ซิงค์ตรงกันอยู่ครับ
damrongsak โพสต์ 2015-2-28 17:15:28
jaideejung007 ตอบกลับเมื่อ 2015-2-28 14:31
หลังจากอัพรูปประจำตัวแล้ว จะไม่ถูกเปลี่ยนทันทีนะค ...

ผมไม่ได้เชื่อมต่อผ่าน CloudFlare ครับ
ผมใช้ Positive SSL ใส่ใน Directadmin เอาหนะครับ
 เจ้าของ| jaideejung007 โพสต์ 2015-2-28 18:54:17
damrongsak ตอบกลับเมื่อ 2015-2-28 17:15
ผมไม่ได้เชื่อมต่อผ่าน CloudFlare ครับ
ผมใช้ Positive SSL ใส่ใน Directadmin เอาหนะครับ


อ้าวเหรอ แจ่มเลย

ลองแก้ไขค่าใน uc_server/data/config.inc.php ดูนะครับ ได้ไหม

ค่า SSL ปีละเท่าไหร่ครับ?
damrongsak โพสต์ 2015-2-28 20:32:24
พี่ใจดีจัง เป็นครูอยู่ น่าจะมีเมล์ .ac.th นะครับ

ซึ่งอันนี้จะฟรี $9/1 Yr.
  1. https://education.github.com/pack
คัดลอกไปที่คลิปบอร์ด


แต่ผมกดรับไปแล้วให้อีกเว็บหนึ่ง เว็บนี้ผมเลยใช้ 4.80 Yr.
  1. https://cheapsslsecurity.com/
คัดลอกไปที่คลิปบอร์ด


ครับผม

// เดียวผมจะลองแก้ดูนะครับ
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | สมัครสมาชิก

รายละเอียดเครดิต

รายชื่อผู้กระทำผิด|Archiver|ดิสคัส ไทย Follow us: Become a fan on facebook. Follow us on Twitter.

GMT+7, 2024-4-19 09:30

Powered by Discuz! X3.4, Rev.66

Copyright © 2001-2021 Tencent Cloud. Licensed

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้