ไดเรกทอรีบทความ
เมื่อฉันเปิด แผงควบคุมผู้ดูแลระบบ WordPressตามปกติฉันก็พร้อมที่จะตรวจสอบบันทึกการสำรองข้อมูลแล้ว
จากนั้น ฉันก็เห็นตัวสีเหลืองๆ เยอะแยะเลย
คำเตือน คำเตือน และคำเตือนอีกมากมาย
警告: is_readable(): open_basedir restriction in effect. File(/home/admin/.aws/config) is not within the allowed path(s): (...)
การสำรองข้อมูลเสร็จสมบูรณ์โดยไม่มีการขัดจังหวะ แต่แถบสถานะเป็นสีเหลืองทั้งหมด ซึ่งดูแล้วน่ารำคาญมาก
คุณเข้าใจความรู้สึกนั้นไหม? มันเหมือนกับว่าคุณส่ง Pull Request (PR) ไปแล้ว ทุกอย่างผ่านการตรวจสอบ (CI) หมด แต่มีคำเตือนเรื่อง Lint ขึ้นมา คุณรู้ว่ามันจะไม่ส่งผลกระทบต่อการทำงาน แต่คุณก็ยังรู้สึกไม่สบายใจอยู่ดี
ฉันครุ่นคิดอยู่ครู่หนึ่ง
ปัญหาข้อนี้สามารถแก้ไขได้อย่างสมบูรณ์หรือไม่?

สาเหตุที่แท้จริงของคำเตือน BackWPup คือ AWS SDK ไปกระตุ้นขีดจำกัด open_basedir
พูดตามตรง ตอนแรกฉันคิดว่าเป็นปัญหาของปลั๊กอินสำรองข้อมูล BackWPup เพราะมีคำเตือนปรากฏขึ้นในบันทึกของปลั๊กอินนั้น
แต่เมื่อตรวจสอบอย่างละเอียดแล้ว พบว่ามีบางอย่างผิดปกติ
คำเตือนดังกล่าวระบุถึงเส้นทางหนึ่ง/home/admin/.aws/configนี่คือขั้นตอนที่ AWS SDK จะค้นหาไดเร็กทอรีการกำหนดค่า AWS เริ่มต้นของผู้ใช้ปัจจุบันโดยอัตโนมัติในระหว่างการเริ่มต้นระบบ
ฟังดูซับซ้อนไปหน่อยใช่ไหม?
โดยพื้นฐานแล้ว หมายความว่า หากคุณติดตั้งปลั๊กอินที่เกี่ยวข้องกับ AWS ใน WordPress เช่น ที่เก็บข้อมูล S3 หรือ CloudFront ปลั๊กอินเหล่านี้จะใช้ AWS SDK เป็นแกนหลัก เมื่อ AWS SDK เริ่มทำงาน มันจะตรวจสอบไดเร็กทอรีโฮมของคุณโดยอัตโนมัติเพื่อหาเครื่องมือติดตั้ง AWS SDK.awsโฟลเดอร์นี้มีไฟล์การกำหนดค่าและข้อมูลรับรอง
อย่างไรก็ตาม ด้วยเหตุผลด้านความปลอดภัย เซิร์ฟเวอร์ PHP จึงเปิด...open_basedirโดยพื้นฐานแล้ว ฟังก์ชันนี้เปรียบเสมือนการกำหนดขอบเขตบนเซิร์ฟเวอร์ และบอก PHP ว่าคุณสามารถเคลื่อนที่ได้เฉพาะภายในขอบเขตนี้เท่านั้น และห้ามเดินออกไปนอกขอบเขต
/tmpไดเร็กทอรีอยู่ในรายการที่อนุญาตแล้ว ไดเร็กทอรีเว็บไซต์ก็อยู่ในรายการที่อนุญาตแล้ว แต่ขออภัย ไดเร็กทอรีของคุณไม่ได้อยู่ในรายการที่อนุญาต
เมื่อ AWS SDK พยายามเข้าถึงไดเร็กทอรีของคุณ ระบบจะบล็อกการเข้าถึงนั้น
จากนั้นคำเตือนก็ปรากฏขึ้น
แนวทางที่ถูกต้องในการแก้ไขคำเตือน open_basedir คือ การเปลี่ยนเส้นทางการกำหนดค่า AWS
พูดตามตรง ปฏิกิริยาแรกของผมคืออยากจะเปลี่ยนมันopen_basedirตั้งค่า ใส่/home/adminเพิ่มเข้าไป
แต่พอคิดดูอีกที ฉันก็รู้ว่ามันไม่ถูกต้อง
คุณทำผิดพลาดตรงนี้ การจัดรูปแบบไม่ถูกต้อง คุณลืมใส่เครื่องหมายทับ (/) และใส่ช่องว่างเพิ่ม ทำให้เกิดข้อผิดพลาด 500 และเว็บไซต์ทั้งหมดก็หายไป
และopen_basedirเปิดไว้เพื่อเหตุผลด้านความปลอดภัย หากคุณเปิดเอง คุณก็เท่ากับเปิดช่องโหว่ให้เซิร์ฟเวอร์ ซึ่งไม่คุ้มค่าเลย
มีวิธีที่ปลอดภัยกว่านี้ไหม?
ฉันคิดอยู่ครู่หนึ่ง เพราะสิ่งที่คุณต้องค้นหาคือ AWS SDK.../home/admin/.aws/configฉันสามารถหลอกให้มันค้นหาไฟล์นี้ในที่อื่นได้ไหม?
ไปที่สถานที่ใดสถานที่หนึ่งที่อยู่ในรายชื่อที่อนุญาตไว้แล้ว
แก้ไขคำเตือน BackWPup ของ WordPress: เพิ่มโค้ดสองบรรทัดลงในไฟล์ wp-config.php
จริงๆ แล้ววิธีแก้ปัญหานั้นง่ายมากจนน่าเหลือเชื่อ
ใน WordPresswp-config.phpเพียงเพิ่มโค้ดสองบรรทัดลงในไฟล์ก็พอ
// 解决 AWS open_basedir 警告的环境变量设置
putenv('AWS_CONFIG_FILE=' . __DIR__ . '/wp-content/uploads/.aws_config');
putenv('AWS_SHARED_CREDENTIALS_FILE=' . __DIR__ . '/wp-content/uploads/.aws_credentials');
putenv('AWS_EC2_METADATA_DISABLED=true');
/* That's all, stop editing! Happy publishing. */เพิ่มไปยัง/* That's all, stop editing! Happy publishing. */แค่ขึ้นไปเหนือเส้นนี้ก็พอ
แค่สามบรรทัดนี้ครับ/ค่ะ
ที่ไปแล้ว.
ตรวจสอบผลการแก้ไข: ไฟล์บันทึกการสำรองข้อมูลของ BackWPup กลับสู่สภาวะปกติแล้ว
หลังจากทำการเปลี่ยนแปลงเสร็จแล้ว ให้กลับไปที่ส่วนหลังบ้านของ WordPress เปิด BackWPup แล้วคลิก "เรียกใช้ทันที"
ตรวจสอบบันทึกการทำงานหลังจากที่การดำเนินการเสร็จสิ้น
คำเตือนสีเหลืองสดใสหายไปแล้ว ถูกแทนที่ด้วยข้อความสีเขียวที่แสดงว่า "ดำเนินการเสร็จสมบูรณ์แล้ว"
มันเรียบลื่นมาก
ใช้โค้ดเพียงสองบรรทัด ไม่มีความเสี่ยง ใช้เวลาแก้ไขน้อยกว่า 10 วินาที และปัญหาได้รับการแก้ไขอย่างสมบูรณ์
ปัญหาประเภทนี้ที่ "ไม่ถึงกับร้ายแรงแต่ก็สร้างความรำคาญ" กลับเป็นปัญหาที่เสียเวลามากที่สุด เพราะคุณไม่รู้ว่ามันจะแย่ลงหลังจากอัปเดตหรือไม่ และคุณก็ไม่รู้ว่ามันจะส่งผลกระทบต่อปลั๊กอินอื่นๆ ด้วยหรือไม่
ถ้าสิ่งใดสามารถกำจัดออกไปได้อย่างสมบูรณ์ด้วยโค้ดเพียงสองบรรทัด ก็อย่าปล่อยให้มันขวางทางอยู่เลย
โอเค บทความนี้ก็จบลงเพียงเท่านี้
เนื่องจากเรื่องนี้ไม่ซับซ้อน ผมจึงไม่จำเป็นต้องให้ความรู้พื้นฐาน การวิเคราะห์อุตสาหกรรม หรือแนวโน้มในอนาคตแก่คุณ
มันเป็นเพียงคำเตือนเล็กๆ ในแผงควบคุมผู้ดูแลระบบ WordPress และแก้ไขได้ด้วยโค้ดเพียงสองบรรทัด
หวังว่าครั้งต่อไปที่คุณเห็นป้ายเตือนสีเหลือง คุณจะนึกถึงบทความนี้
หวังว่า บทความ "วิธีแก้ไขปัญหา WordPress BackWPup plugin is_readable(): open_basedir restriction in effect. AWS path warning?" ที่แชร์บนบล็อกของ Chen Weiliang ( https://www.chenweiliang.com/ ) จะเป็นประโยชน์กับคุณ
โปรดแชร์ลิงก์บทความนี้ได้ตามสบาย: https://www.chenweiliang.com/cwl-34455.html
