Saya mengikuti Mengubah Izin File «WordPress Codex , namun ketika saya mencoba memperbarui dan / atau menginstal plugin
dan / atau theme
melalui wp-admin
, saya mendapatkan yang berikut:
Untuk melakukan tindakan yang diminta, WordPress perlu mengakses server web Anda. Silakan masukkan kredensial FTP Anda untuk melanjutkan. Jika Anda tidak mengingat kredensial Anda, Anda harus menghubungi host web Anda.
dari tingkat sistem file:
# ls -ld wp-content/ wp-content/plugins/ wp-content/themes/
drwxrwxr-x. 6 root apache 4096 Jun 2 12:01 wp-content/
drwxrwxr-x. 28 root apache 4096 Jun 2 00:00 wp-content/plugins/
drwxrwxr-x. 11 root apache 4096 May 11 16:34 wp-content/themes/
#
httpd
berjalan sebagai apache
:
$ ps auxw | grep httpd
root 20158 0.0 0.1 533080 26192 ? Ss 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20233 0.0 0.2 612608 34908 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20234 0.0 0.2 538772 46904 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20235 0.0 0.1 536832 24268 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20236 0.0 0.2 626272 35640 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20237 0.0 0.0 535296 9592 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20322 0.0 0.1 537088 26620 ? S 15:03 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20380 0.0 0.2 626060 33816 ? S 15:04 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20429 0.0 0.1 538216 29184 ? S 15:04 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20447 0.0 0.2 629380 43180 ? S 15:04 0:00 /usr/sbin/httpd -DFOREGROUND
apache 20448 0.0 0.2 626172 35224 ? S 15:04 0:00 /usr/sbin/httpd -DFOREGROUND
alexus 24073 0.0 0.0 112652 972 pts/9 R+ 15:13 0:00 grep --color=auto httpd
$
Saya ingin dapat melakukan tindakan yang diminta ( install
dan / atau update
) melalui /wp-admin
tanpa kredensial FTP.
Bagaimana saya bisa melakukan itu?
plugins
themes
updates
permissions
alexus
sumber
sumber
nobody
- ini tidak akan berfungsi untuk saya karenahttpd
berjalan sebagaiapache
.apache.apache
atauroot.apache
tidak akan membuat perbedaan, selamahttpd
berjalan sebagaiapache
, danapache
'suid
merupakan bagian dariapache
gid
' kelompok s, itu semua sama, karena izin saya set keg+w
.Jawaban:
Tambahkan yang berikut ini ke wp-config.php:
Biarkan saya tahu cara kerjanya untuk Anda.
sumber
Ini berarti WordPress memiliki izin terbatas untuk membuat perubahan pada folder yang telah diinstal.
Untuk memperbaikinya, yang perlu Anda lakukan adalah memberikan izin yang diperlukan untuk hal yang sama.
Jalankan Perintah berikut di Terminal / Putty / Commandline Prompt Anda setelah terhubung ke Server Anda melalui SSH:
Periksa artikel ini untuk detail lengkap.
sumber
Meskipun benar-benar benar untuk memiliki kepemilikan
root:apache
dengan izin 775, dan httpd dijalankan sebagaiapache
, Wordpress tidak suka ini. Ia ingin pemiliknyaapache
, sesuaiwp-admin/includes/file.php
:Milik Anda adalah:
wp_file_owner = root
temp_file_owner = apache
Jika $ wp_file_owner sama dengan $ temp_file_owner maka lanjutkan. Milik Anda akan terperangkap di elseif, yang menurut komentar tidak mengizinkan hapus / buat, tetapi hanya pembaruan (saya memverifikasi ini dengan memperbarui kode plugin dari dalam Wordpress, dan itu berhasil).
Catatan saya tidak melihat kode secara ekstensif, ini hanya interpretasi cepat saya. Saya memiliki masalah yang sama dan sekali saya beralih pengguna: grup sehingga pengguna httpd juga pemilik file, itu tidak meminta kredensial FTP lagi.
sumber
www-data
bekerja untuk saya. WordPress yang lucu!Bukan jawaban langsung, tetapi mungkin harus dikatakan - ini adalah satu masalah yang harus Anda hindari untuk menyelesaikan kecuali Anda berbicara tentang pengembangan lokal dalam hal ini Anda hanya dapat mengatur izin ke 777.
Alasannya adalah jika server web dapat menimpa kode Anda, maka setiap kode jahat yang berjalan di dalamnya akan dapat melakukannya juga. Risikonya jauh lebih besar daripada kenyamanan menghemat beberapa detik dengan tidak harus mengetik kredensial ftp.
sumber
Meskipun pertanyaannya bukan yang baru lagi saya ingin menambahkan dua sen saya pada masalah ini juga.
Banyak ppl memiliki Centos (7) di server VPS mereka dan baris kode berikut dapat memecahkan masalah mereka.
Imho semua ada hubungannya dengan SELinux yang menahan WordPress dari melakukan pekerjaannya seperti yang diharapkan. Lebih jauh menjelaskan apa SELinux itu dan apa fungsinya. FYI pengantar dimulai dengan:
Hanya 3 langkah untuk mengikuti:
chcon -R -t httpd_sys_content_t /var/www/html/wordpress
chcon -R -t httpd_sys_rw_content_t /var/www/html/wordpress
Saya tidak akan mengatakan itu membantu semua orang, tetapi bagi mereka yang tidak menonaktifkan SELinux itu harus meringankan.
Tepuk tangan
Catatan: Silakan sesuaikan dengan kebutuhan Anda sendiri (artinya jalur ke WordPress)
sunting: pastikan untuk menghapus baris
define("FS_METHOD", "direct");
ketika sedang digunakanwp-config.php
karena itu benar-benar tidak jalan ketika baris kode di atas melakukan seperti yang diinginkan.sumber
Dalam kasus saya, saya memecahkan masalah ini dengan beralih dari GIT kembali ke mode FTP.
Tidak ada lagi peringatan.
Mungkin itu akan membantu orang lain juga.
sumber