ฉันจะหยุด WordPress ไม่ให้แจ้งให้ฉันป้อนข้อมูล FTP เมื่อทำการอัพเดทได้อย่างไร?
ฉันจะหยุด WordPress ไม่ให้แจ้งให้ฉันป้อนข้อมูล FTP เมื่อทำการอัพเดทได้อย่างไร?
คำตอบ:
หากคุณแก้ไขwp-config.php
ไฟล์คุณสามารถโหลดการตั้งค่า FTP เหล่านี้ล่วงหน้าเป็นค่าคงที่อ่านโดย WordPress โปรดจำไว้ว่าในโฮสต์ที่ใช้ร่วมกันคุณควรคำนึงถึงความปลอดภัยที่อาจเกิดขึ้นได้
ดูการแก้ไขwp-config.php
สำหรับข้อมูลเพิ่มเติม
การตั้งค่าของคุณจะแตกต่างกันไป แต่สิ่งเหล่านี้เหมาะสำหรับฉันและการตั้งค่าโฮสต์ของฉัน ฉันได้รวมค่าคงที่ที่ไม่ได้ใช้บางส่วนแล้วนำหน้า:
define('FS_METHOD', 'direct');
define('FTP_BASE', '/usr/home/username/public_html/my-site.example.com/wordpress/');
define('FTP_CONTENT_DIR', '/usr/home/username/public_html/my-site.example.com/wordpress/wp-content/');
define('FTP_PLUGIN_DIR ', '/usr/home/username/public_html/my-site.example.com/wordpress/wp-content/plugins/');
// define('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub');
// define('FTP_PRIKEY', '/home/username/.ssh/id_rsa');
define('FTP_USER', 'my-ftp-username');
define('FTP_PASS', 'my-ftp-password');
define('FTP_HOST', 'ftp.my-site.example.com');
// define('FTP_SSL', false);
ตรวจสอบความเป็นเจ้าของไฟล์ของคุณ เมื่อผู้ใช้ที่ apache ทำงานตามที่สามารถเขียนไปยังไดเรกทอรี wordpress แล้วกระบวนการอัพเกรดแบบบูรณาการทั้งหมดทำงานได้โดยไม่ต้อง ftp ข้อมูลประจำตัว FTP ใช้สำหรับหากเว็บเซิร์ฟเวอร์ไม่มีสิทธิ์ที่ถูกต้องในไฟล์ของคุณจากนั้น wordpress จะแจ้งให้คุณทราบรายละเอียด FTP ของคุณและพยายามใช้ข้อมูลเหล่านั้นกับ FTP กลับไปยังเซิร์ฟเวอร์เดียวกันที่อยู่บนเพื่อให้สามารถเขียน ไฟล์ที่ต้องการ
ดูเหมือนว่าไม่เพียง แต่ WordPress จะตรวจสอบว่าไดเรกทอรีนั้นเขียนได้หรือไม่ แต่ตรวจสอบว่าผู้ใช้ Apache เป็นเจ้าของไดเรกทอรีนั้น (หรืออย่างน้อยหากผู้ใช้ Apache เป็นเจ้าของไฟล์ชั่วคราวที่สร้างขึ้น) สังเกตบรรทัดรหัสเหล่านี้ได้ที่ /wp-admin/includes/file.php: get_filesystem_method ():
if ( $temp_handle ) {
if ( getmyuid() == @fileowner($temp_file_name) )
$method = 'direct';
@fclose($temp_handle);
@unlink($temp_file_name);
}
ดังนั้นทางออกที่รวดเร็วจะออกคำสั่งนี้และให้ความเป็นเจ้าของการติดตั้ง Wordpress ทั้งหมดให้ Apache:
sudo chown -R www-data wordpress/
ที่ www-data เป็นผู้ใช้ Apache และแน่นอน WordPress เป็นโฟลเดอร์การติดตั้ง WordPress ของคุณ
ฉันมีเอกสารเพิ่มเติมเกี่ยวกับวิธีแก้ปัญหาของฉันที่นี่: https://ardeearam.wordpress.com/2013/02/03/solved-wordpress-asking-for-ftp-credentials-when-upgrading/
เมื่อปรับแต่ง Apache 2.4 ผ่าน EasyApache4 เพื่อปรับปรุงความเร็วในการโหลดเว็บไซต์ในเซิร์ฟเวอร์ Centos 7 PHP 7 ฉันได้เปิดใช้งาน mod_pagespeed เมื่อเปิดใช้งานมันจะปิดการใช้งาน mod_ruid2 และ mod_cgi โดยอัตโนมัติ (และเปิดใช้งานอีกสองโมดูล) เมื่อปิดการใช้งาน mod_pagespeed มันจะไม่เปิดใช้งาน mod_ruid2 อีกครั้งโดยอัตโนมัติ - มันจะเปิดใช้งานใหม่เพียง mod_cgi หากไม่มี mod_ruid2 Wordpress จะขอข้อมูลรับรอง FTP
ไม่จำเป็นต้องใช้รหัสยาก wp-config.php หรือตั้งค่าการอนุญาตไฟล์ (อันตราย) เป็น 777 เพียงเปิดใช้งาน mod_ruid2 ด้วยตนเองรีสตาร์ท Apache และแก้ไขปัญหาการอนุญาต FTP / ไฟล์ ตอนนี้ Wordpress และปลั๊กอินสามารถอัปเดตได้ตามปกติและสื่อที่อัปโหลดไปยังแกลเลอรี Wordpress มันใช้งานได้ทันที
ฉันเพิ่งตรวจสอบว่าเมื่อเปลี่ยนจาก MPM Prefork เป็น Worker มันจะปิดการใช้งาน mod_ruid2 เมื่อย้อนกลับจากผู้ใช้งานไปยัง Prefork จะไม่เปิดใช้งาน mod_ruid2 ทำให้เกิดปัญหาที่อธิบายในโพสต์นี้
ในทั้งสองกรณีกุญแจสำคัญคือการตรวจสอบและเปิดใช้งาน mod_ruid2
หวังว่าจะได้ช่วย
1) ฉันไม่เห็นด้วยกับคำตอบข้างต้นเพราะมันเป็นคำที่กว้างเกินไป
1a) ฉันไม่ต้องการเปลี่ยนความเป็นเจ้าของไฟล์ทั้งหมดของฉันแบบวนซ้ำ (เช่นในการใช้ปืนลูกซองเพื่อฆ่ายุง) โดยเฉพาะอย่างยิ่งงานนี้อย่างสมบูรณ์แบบก่อน
1b) Wordpress มีคุณสมบัติ "ลับ ๆ ล่อๆ" ของฉับพลันทั้งหมดขอให้คุณใช้ข้อมูลประจำตัวสำหรับ ftp
2) ดังนั้นฉันเริ่มขุดลึกลงไปโดยใช้หัวหน้าของ Ardee Aram ฉันไปตรวจสอบในไฟล์ file.php และตรวจสอบความเป็นเจ้าของ ดูเหมือนว่า file.php ขึ้นอยู่กับความเป็นเจ้าของ (ซึ่งถูกตั้งค่าเป็นรูตไม่ถูกต้อง)
แก้ไข: chown www file.php
หมายเหตุ: แทนที่ www ด้วย distro หรือการตั้งค่าของคุณ (คุณสามารถใช้ ps aux | egrep "php | http" และดูว่ามีความเป็นเจ้าของอยู่ในคอลัมน์แรก
ฉันหวังว่าสิ่งนี้จะช่วยให้คนอื่นผิดหวังกับเรื่องนี้ ฉันไม่เข้าใจด้วยซ้ำว่าทำไม wordpress ไม่ "บ่น" ตั้งแต่แรกแล้วเสนอให้ใช้ทางเลือก FTP ตอนนี้มันเป็นเหมือน "คุณสมบัติ" ที่ทุกคนได้รับการแนะนำอย่างฉับพลัน