it-swarm-id.com

Bagaimana saya bisa menghentikan WordPress dari meminta saya untuk memasukkan informasi FTP ketika melakukan pembaruan?

Bagaimana saya bisa menghentikan WordPress dari meminta saya untuk memasukkan informasi FTP ketika melakukan pembaruan?

29
artlung

Jika Anda mengedit file wp-config.php Anda, Anda dapat melakukan preload pengaturan FTP ini sebagai konstanta yang dibaca oleh WordPress. Ingat, pada Host bersama, Anda harus memperhatikan kemungkinan implikasi keamanan. Lihat Mengeditwp-config.php untuk informasi lebih lanjut.

Pengaturan Anda akan bervariasi, tetapi ini berfungsi untuk saya dan pengaturan hosting saya. Saya telah memasukkan beberapa konstanta yang tidak digunakan, diawali:

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);
23
artlung

Periksa kepemilikan file Anda. Ketika pengguna yang dijalankan Apache dapat menulis ke direktori wordpress, maka proses pemutakhiran terintegrasi semuanya bekerja tanpa ftp. Kredensial FTP adalah untuk jika server web tidak memiliki hak istimewa pada file Anda, maka wordpress meminta Anda untuk rincian FTP Anda, dan mencoba untuk menggunakannya untuk kembali ke server yang sama untuk dapat menulis file yang dibutuhkan.

12
pixeline

Tampaknya WordPress tidak hanya memeriksa apakah direktori dapat ditulisi, tetapi juga memeriksa apakah pengguna ApacheMEMILIKIdirektori (atau setidaknya, jika pengguna Apache memiliki file sementara yang dibuatnya). Amati baris kode ini di /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);
}

Jadi, solusi cepat adalah dengan mengeluarkan perintah ini dan memberikan kepemilikan seluruh instalasi Wordpress ke Apache:

Sudo chown -R www-data wordpress/

Di mana www-data adalah pengguna Apache, dan tentu saja wordpress adalah folder instalasi WordPress Anda.

Saya selanjutnya telah mendokumentasikan solusi saya di sini: https://ardeearam.wordpress.com/2013/02/03/solved-wordpress-asking-for-ftp-credentials-when-upgrading/

5
Ardee Aram

Ketika fine tuning Apache 2.4 melalui EasyApache4 untuk meningkatkan kecepatan memuat situs web dalam server Centos 7 PHP 7, saya telah mengaktifkan mod_pagespeed. Saat mengaktifkannya, ia akan secara otomatis menonaktifkan mod_ruid2 dan mod_cgi (dan mengaktifkan dua modul lainnya). Saat menonaktifkan mod_pagespeed, itu tidak akan mengaktifkan kembali mod_ruid2 secara otomatis - itu hanya akan mengaktifkan kembali mod_cgi. Tanpa mod_ruid2 Wordpress akan meminta kredensial FTP.

Tidak perlu kode keras wp-config.php atau mengatur izin file (berbahaya) ke 777. Cukup aktifkan mod_ruid2 secara manual, restart Apache dan masalah izin FTP/file diselesaikan Wordpress dan plugin sekarang dapat diperbarui seperti biasa dan media diunggah ke galeri Wordpress. Ini bekerja segera.

Saya baru saja memeriksa bahwa ketika mengubah dari MPM Prefork ke Worker, itu akan menonaktifkan mod_ruid2. Ketika kembali dari Worker ke Prefork, itu tidak akan mengaktifkan mod_ruid2, menyebabkan masalah yang dijelaskan dalam posting ini.

Dalam kedua kasus, kuncinya adalah untuk memeriksa dan mengaktifkan mod_ruid2.

Berharap bisa membantu.

1
itmonitor