ฉันจะหยุด WordPress ไม่ให้แจ้งให้ฉันป้อนข้อมูล FTP เมื่อทำการอัพเดทได้อย่างไร?


29

ฉันจะหยุด WordPress ไม่ให้แจ้งให้ฉันป้อนข้อมูล FTP เมื่อทำการอัพเดทได้อย่างไร?

คำตอบ:


23

หากคุณแก้ไข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);

นี่เป็นวิธีที่ง่ายที่สุด แต่ตามที่ pixeline บอกไว้ด้านล่างให้ตรวจสอบการอนุญาตไฟล์ สองในสามของข้อมูลประจำตัวจะถูกเก็บไว้ในฐานข้อมูล แต่ที่สามถูกเขียนไปยังไฟล์ (ฉันจำไม่ได้ว่ามันอยู่ที่ไหน
John P Bloch

12

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


1
คุณไม่ควรแก้ไขการเป็นเจ้าของไฟล์กับของเว็บเซิร์ฟเวอร์เนื่องจากอาจเสี่ยงต่อความปลอดภัย
อ็อตโต

... ถ้ามันเป็นชุดที่ไม่ดีขึ้นตามที่มันเป็นในกรณีของฉัน :)
Pixeline

5

ดูเหมือนว่าไม่เพียง แต่ 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/


ลิงค์นั้นตายไปแล้ว นี่คือที่เก็บถาวร: web.archive.org/web/20131213005955/http://rubiks.ph/ …
Sam Wilson

ทุกคนสามารถอธิบายรายละเอียดของ: "$ allow_relaxed_file_ownership หรือไม่ก็ได้ไม่ว่าจะอนุญาตให้เขียนกลุ่ม / โลกได้หรือไม่"
Sam Wilson

@ Sam Wilson ตอนนี้ฉันได้ย้ายรายการบล็อกของฉันไปยังบัญชี WordPress ฟรีแล้ว โดเมนเก่าตายแล้ว
Ardee Aram

1

เมื่อปรับแต่ง 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

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 ตอนนี้มันเป็นเหมือน "คุณสมบัติ" ที่ทุกคนได้รับการแนะนำอย่างฉับพลัน


ยินดีต้อนรับสู่ WPSE, th3penguinwhisperer โปรดอย่าลังเลที่จะใช้ทัวร์ เช่น 'คำตอบข้างต้น' คำตอบสามารถเปลี่ยนลำดับได้ตลอดเวลาเนื่องจากการลงคะแนนของผู้คน ชอบที่จะให้คุณแก้ไขโพสต์ของคุณเพื่อระบุคำตอบที่คุณอ้างถึงเพื่อให้ชัดเจน ขอบคุณสำหรับการเพิ่มความคิดของคุณ!
Tim Malone
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.