Bagaimana cara mengatasi kesalahan `is_readable(): open_basedir restriction in effect. AWS path warning` pada plugin WordPress BackWPup?

Saat saya membuka panel admin WordPress seperti biasa , saya siap untuk memeriksa log cadangan.

Lalu, saya melihat banyak yang berwarna kuning.

Peringatan, peringatan, dan peringatan lagi.

警告: is_readable(): open_basedir restriction in effect. 
File(/home/admin/.aws/config) is not within the allowed path(s): (...)

Proses pencadangan memang selesai tanpa gangguan, tetapi bilah status sepenuhnya berwarna kuning, yang sangat mengganggu untuk dilihat.

Apakah Anda tahu perasaan itu? Rasanya seperti Anda mengirimkan PR, semua CI berwarna hijau tetapi ada peringatan lint. Anda tahu itu tidak akan memengaruhi operasi, tetapi Anda tetap merasa tidak nyaman.

Aku memikirkannya sejenak.

Bisakah masalah ini diselesaikan sepenuhnya?

Bagaimana cara mengatasi kesalahan `is_readable(): open_basedir restriction in effect. AWS path warning` pada plugin WordPress BackWPup?

Alasan sebenarnya dari peringatan BackWPup: AWS SDK memicu batas open_basedir.

Sejujurnya, awalnya saya mengira itu masalah dengan plugin pencadangan BackWPup, karena peringatan itu muncul di log-nya.

Namun setelah diperiksa lebih teliti, ada sesuatu yang salah.

Peringatan itu menyebutkan sebuah jalan./home/admin/.aws/configIni adalah cara AWS SDK secara otomatis mencari direktori konfigurasi AWS default pengguna saat ini selama inisialisasi.

Kedengarannya agak berbelit-belit, bukan?

Pada dasarnya, ini berarti bahwa jika Anda menginstal plugin terkait AWS di WordPress, seperti penyimpanan S3 atau CloudFront, semua plugin ini menggunakan AWS SDK sebagai intinya. Saat AWS SDK dimulai, ia akan secara otomatis memeriksa direktori beranda Anda untuk alat instalasi AWS SDK..awsFolder ini berisi file konfigurasi dan kredensial.

Namun, karena alasan keamanan, server PHP membuka...open_basedirPada dasarnya, ini seperti menandai wilayah di server dan memberi tahu PHP bahwa Anda hanya dapat bergerak di dalam wilayah ini dan tidak boleh berkeliaran.

/tmpDirektori tersebut ada dalam daftar putih, direktori situs web ada dalam daftar putih, tetapi direktori Anda, maaf, tidak ada.

Saat AWS SDK mencoba mengakses direktori Anda, akses tersebut diblokir.

Kemudian peringatan itu muncul.

Pendekatan yang tepat untuk mengatasi peringatan open_basedir: Alihkan jalur konfigurasi AWS.

Sejujurnya, reaksi pertama saya adalah mengubahnya.open_basedirKonfigurasi, letakkan/home/adminTambahkan itu.

Namun kemudian saya memikirkannya lagi, dan menyadari bahwa itu tidak benar.

Anda membuat kesalahan di sini. Formatnya salah. Anda lupa menambahkan garis miring dan menambahkan spasi ekstra. Akibatnya, terjadi error 500, dan seluruh situs hilang.

danopen_basedirItu dibuka karena alasan keamanan. Jika Anda membukanya, pada dasarnya Anda memberi server celah keamanan, yang tidak sepadan.

Adakah cara yang lebih aman?

Saya memikirkannya sejenak, karena AWS SDK adalah yang perlu Anda cari.../home/admin/.aws/configBisakah saya mengakali sistem agar mencari file ini di tempat lain?

Pergilah ke salah satu tempat yang sudah ada dalam daftar putih (whitelist).

Perbaiki peringatan BackWPup WordPress: Tambahkan dua baris kode ke wp-config.php

Solusinya sebenarnya sangat sederhana.

Di WordPresswp-config.phpCukup tambahkan dua baris kode ke dalam file tersebut.

// 解决 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. */

Tambahkan ke/* That's all, stop editing! Happy publishing. */Lewati saja garis ini.

Hanya tiga baris ini.

Hilang.

Verifikasi efek perbaikan: Log cadangan BackWPup telah kembali normal.

Setelah melakukan perubahan, kembali ke halaman utama WordPress, buka BackWPup, dan klik "Jalankan Sekarang".

Periksa log setelah proses selesai.

Peringatan berwarna kuning terang telah hilang, digantikan oleh pesan hijau "berhasil diselesaikan".

Ini sangat halus.

Dua baris kode, tanpa risiko, kurang dari 10 detik untuk memodifikasi, dan masalah pun teratasi sepenuhnya.

Masalah-masalah "tidak fatal tetapi menjengkelkan" semacam ini sebenarnya paling banyak menghabiskan energi. Karena Anda tidak tahu apakah masalah ini akan tiba-tiba memburuk setelah pembaruan, dan Anda tidak tahu apakah itu akan memengaruhi plugin lain.

Jika sesuatu dapat dihilangkan sepenuhnya dengan dua baris kode, maka jangan biarkan hal itu menghalangi.

Oke, itu saja untuk artikel ini.

Karena masalah ini tidak rumit, saya tidak perlu memberikan Anda pengetahuan latar belakang, analisis industri, atau tren masa depan.

Ini hanya peringatan kecil di panel admin WordPress, dan perbaikannya hanya membutuhkan dua baris kode.

Semoga, lain kali Anda melihat peringatan kuning itu, Anda akan mengingat artikel ini.

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Gulir ke Atas