Jawaban:
Jika Anda mengedit wp-config.php
file Anda, Anda dapat memuat 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);
Periksa kepemilikan file Anda. Ketika pengguna yang menjalankan apache dapat menulis ke direktori wordpress, maka proses pemutakhiran terintegrasi semua hanya 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.
Tampaknya WordPress tidak hanya memeriksa apakah direktori dapat ditulisi, tetapi juga memeriksa apakah pengguna Apache MEMILIKI direktori (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 telah mendokumentasikan solusi saya di sini: https://ardeearam.wordpress.com/2013/02/03/solved-wordpress-asking-for-ftp-credentials-when-upgrading/
Ketika fine tuning Apache 2.4 melalui EasyApache4 untuk meningkatkan kecepatan memuat situs web di 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). Ketika 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 membuat kode wp-config.php atau mengatur izin file (berbahaya) menjadi 777. Cukup aktifkan mod_ruid2 secara manual, restart Apache dan masalah izin FTP / file terpecahkan. 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) Saya tidak setuju dengan jawaban di atas karena terlalu umum
1a) Saya hanya tidak ingin mengubah kepemilikan semua file saya secara rekursif (seperti menggunakan senapan untuk membunuh seekor nyamuk). Terutama karena ini bekerja dengan sempurna sebelumnya.
1b) Wordpress memiliki fitur "licik" tiba-tiba meminta Anda untuk kredensial ftp
2) Jadi saya mulai menggali lebih dalam menggunakan Ardee Aram. Saya pergi memeriksa file file.php dan memeriksa kepemilikannya. Sepertinya file.php tergantung pada kepemilikannya sendiri (yang salah diatur sebagai root).
Perbaiki: chown www file.php
CATATAN: Ganti www dengan apa pun distro atau pengaturan Anda (Anda bisa menggunakan ps aux | egrep "php | http" dan lihat kepemilikannya di kolom pertama.
Saya harap ini membantu orang lain dari frustrasi tentang hal ini. Saya bahkan tidak mengerti mengapa wordpress tidak "mengeluh" sejak awal dan kemudian mengusulkan untuk menggunakan alternatif FTP. Sekarang ini seperti "fitur" yang tiba-tiba diperkenalkan.