Tôi có thể cài đặt / cập nhật plugin WordPress mà không cần cung cấp quyền truy cập FTP không?


565

Tôi đang sử dụng WordPress trên máy chủ trực tiếp của mình, chỉ sử dụng SFTP bằng khóa SSH .

Tôi muốn cài đặt và nâng cấp các plugin, nhưng có vẻ như bạn bắt buộc phải nhập thông tin đăng nhập FTP của mình để cài đặt các plugin. Có cách nào để cài đặt và nâng cấp plugin bằng cách tải lên các tệp theo cách thủ công thay vì WordPress xử lý toàn bộ quy trình không?


3
Có bạn có thể. Chỉ cần sử dụng cPanel hoặc bất kỳ công cụ tải lên tệp nào khác mà bạn có; tải lên plugin đã nén và giải nén vào wp-content/plugins/sau đó từ bảng điều khiển wp vào tab plugin và kích hoạt nó.
WPDev

Nếu sử dụng a VPS, nên thử điều này: stackoverflow.com/a/44137965/3160597
azerafati

@WPDev Nếu bình luận của bạn được liệt kê dưới dạng câu trả lời tôi sẽ phản hồi lại, đó là điều hữu ích nhất.
Hàng chục

Câu trả lời:


772

WordPress sẽ chỉ nhắc bạn về thông tin kết nối FTP của bạn trong khi cố gắng cài đặt plugin hoặc cập nhật WordPress nếu nó không thể ghi /wp-contenttrực tiếp. Mặt khác, nếu máy chủ web của bạn có quyền ghi vào các tệp cần thiết, nó sẽ tự động cập nhật và cài đặt. Phương pháp này không yêu cầu bạn phải có quyền truy cập FTP / SFTP hoặc SSH, nhưng nó yêu cầu bạn phải có quyền truy cập tệp cụ thể được thiết lập trên máy chủ web của mình.

Nó sẽ thử các phương thức khác nhau theo thứ tự và quay lại FTP nếu phương thức Direct và SSH không khả dụng.

https://github.com/WordPress/WordPress/blob/4.2.2/wp-admin/includes/file.php#L912

WordPress sẽ cố gắng viết một tập tin tạm thời vào /wp-contentthư mục của bạn . Nếu điều này thành công, nó sẽ so sánh quyền sở hữu tệp với uid của chính nó và nếu có kết quả trùng khớp, nó sẽ cho phép bạn sử dụng phương pháp 'trực tiếp' để cài đặt plugin, chủ đề hoặc cập nhật.

Bây giờ, nếu vì lý do nào đó bạn không muốn dựa vào kiểm tra tự động để sử dụng phương thức hệ thống tập tin nào, bạn có thể xác định một hằng số, 'FS_METHOD'trong wp-config.phptệp của mình , đó là một trong hai 'direct', 'ssh', 'ftpext' or 'ftpsockets'và nó sẽ sử dụng phương thức đó. Hãy nhớ rằng nếu bạn đặt điều này thành 'direct', nhưng người dùng web của bạn (tên người dùng mà máy chủ web của bạn chạy) không có quyền ghi thích hợp, bạn sẽ gặp lỗi.

Tóm lại, nếu bạn không muốn (hoặc bạn không thể) thay đổi quyền trên nội dung wp để máy chủ web của bạn có quyền ghi, thì hãy thêm quyền này vào tệp wp-config.php của bạn:

define('FS_METHOD', 'direct');

Quyền được giải thích ở đây:


30
Tôi đã phải làm: sudo chown -R www-data wp-content cũng như cấp quyền ghi
mikermcneil

5
Việc sử dụng getmyuidtrên dòng 876 được cho là không chính xác ở đây, vì nó trả về UID của chủ sở hữu tập lệnh, chứ không phải người thực thi tập lệnh. Tôi tin rằng nó nên được posix_getuid.
cmbuckley

7
Ý nghĩa bảo mật của phương pháp này là gì?
Jahmic

1
Nếu bạn muốn xem người dùng nào đang chạy php, bạn có thể sử dụng điều này: print_r(posix_getpwuid(posix_geteuid())); Bạn có thể thêm mã trong wp-configtệp.
Ivan V.

3
chown -R www-data wordpress/wp-contentkhông làm việc cho tôi, nhưng chown -R www-data wordpressđã làm
Martin

252

Như đã nêu trước khi không có sửa chữa perm hoạt động nữa. Bạn cần thay đổi các perm cho phù hợp VÀ đặt các mục sau vào wp-config.php:

define('FS_METHOD', 'direct');

11
Mặc dù tôi có các quyền chính xác để máy chủ web có thể ghi vào thư mục plugin và thư mục wp-content, cài đặt này đã sửa nó để quản trị viên không nhắc cài đặt FTP / SFTP để cập nhật plugin. Cảm ơn bạn. Làm việc hoàn hảo.
Sean McCleary

7
Tôi đã phải rõ ràng làm điều này là tốt.
julien_c

5
Khi nào họ thực hiện điều này một yêu cầu?
danjp

Tôi cũng phải dựa vào cài đặt này, trên WP được cài đặt bởi gói debian trên Ubuntu 12.04. Mặt khác, các quyền đều ổn, nội dung wp có quyền rwx cho dữ liệu www của nhóm ...
alci

2
Theo dõi để đảm bảo những điều sau chưa có trong tệp wp-config.php: xác định ('FS_METHOD', 'ftpext'); Trong trường hợp này, đặt định nghĩa ('FS_METHOD', 'direct'); ở dưới cùng của tập tin sẽ không hoạt động. Bạn sẽ phải xóa hoặc nhận xét định nghĩa ('FS_METHOD', 'ftpext'); Điều này có thể đặc biệt xảy ra nếu bạn di chuyển từ một máy chủ khác yêu cầu FTP.
Doug

104

Chỉ muốn thêm rằng bạn KHÔNG BAO GIỜ được đặt wp-contentquyền hoặc sự cho phép của bất kỳ thư mục nào 777.

Đây là những gì tôi đã phải làm để:

1) Tôi đặt quyền sở hữu thư mục wordpress (đệ quy) cho người dùng apache, như vậy:

# chown -R apache wordpress/

2) Tôi đã thay đổi quyền sở hữu nhóm của thư mục wordpress (đệ quy) thành nhóm apache, như vậy:

# chgrp -R apache wordpress/

3) cung cấp cho chủ sở hữu đầy đủ đặc quyền cho thư mục, như vậy:

# chmod u+wrx wordpress/*

Và điều đó đã làm công việc. wp-contentThư mục của tôi có 755quyền, btw.

Phiên bản TL; DR:

# chown -R apache:apache wordpress
# chmod u+wrx wordpress/*

11
thiết lập wordpress của bạn là sở hữu bởi apache cũng tệ như cài đặt 777. Kết quả là như nhau: mọi tập lệnh php bây giờ có thể thay đổi các tập tin wordpress của bạn. Tùy chọn tốt nhất là chown apache: apache tạm thời, cài đặt các bản cập nhật của bạn và quay trở lại ban đầu HOẶC sử dụng thủ thuật ssh / ftp
woens

11
Tôi không đồng ý. Nó không hoàn toàn giống như cài đặt thành 777. Bất kỳ người dùng nào trong máy cũng sẽ có quyền ghi nếu bạn đặt quyền thành 777. Bản thân đó là một vấn đề. và trong khi bạn đúng, apache đó có thể thay đổi các tệp php ngay bây giờ, đó sẽ là ý định ở nơi đầu tiên (để cập nhật hoặc cài đặt bất cứ thứ gì). Nếu ai đó quản lý để đặt các tệp php độc hại vào máy chủ, đó là một vấn đề hoàn toàn mới và gây ra cho những người dùng khác nhau sẽ giúp ích rất ít.
sufinawaz

2
Cảm ơn, nó cũng đã lưu ngày của tôi, vì tôi không có đặc quyền FTP, nhưng chỉ có quyền truy cập root.
shasi kanth

4
Đây là người duy nhất đã giúp tôi! Cảm ơn rất nhiều, sau nhiều năm phát triển các trang Wordpress, đây vẫn là một vấn đề kinh điển!
axitghost

1
Nếu bạn đang chạy WordPress dưới một bản dựng khác thường, hãy dán tệp này vào tệp PHP để kiểm tra xem Apache đang chạy với ai (ví dụ: Ubuntu là dữ liệu www): <? Php echo exec ('whoami'); ?>
Bắt buộc

70
  1. trong wp-config.phpadddefine('FS_METHOD', 'direct');
  2. Làm cho máy chủ ghi được các thư mục wp-content/, wp-content/plugins/.
  3. Cài đặt plugin (sao chép thư mục plugin vào wp-content/pluginsthư mục).

Hoạt động trên phiên bản 3.2.1


4
Làm việc trên phiên bản 4.0 là tốt.
Meetai.com

1
Bạn phải thêm tùy chọn này nhưng bạn chỉ cần thay đổi perm trên wp-content / plugin
John Kloian

Đây rõ ràng là các bước bạn nên thực hiện để cài đặt plugin mà không được nhắc thông tin FTP. Bạn có thể thực hiện các bước để Harden WordPress với quyền, sau đó thực hiện 2 thay đổi này và bạn sẽ vẫn an toàn chủ yếu.
bozdoz

51

mở wp-config.phptập tin và thêm dòng sau:

define('FS_METHOD', 'direct');

cái này hiệu quả với tôi ... Cảm ơn


Cũng hoạt động (và dường như bắt buộc) trên Phiên bản 5.4 kể từ tháng 6 năm 2020.
Ralf Hein

34

Chỉ cần thay đổi nhanh chóng với wp-config.php

define('FS_METHOD','direct');

Thế là xong, hãy tận hưởng những cập nhật wordpress của bạn mà không cần ftp !

Phương pháp luân phiên:

Có những máy chủ ngoài đó sẽ ngăn phương thức này hoạt động để dễ dàng cập nhật WordPress của bạn. May mắn thay, có một cách khác để ngăn chặn dịch hại này nhắc bạn về tên người dùng và mật khẩu FTP của bạn.

Một lần nữa, sau khi khai báo đăng nhập MYSQL trong tệp wp-config.php của bạn, hãy thêm vào như sau:

define("FTP_HOST", "localhost");
define("FTP_USER", "yourftpusername");
define("FTP_PASS", "yourftppassword");

22

Để cho phép sử dụng SSH2 cho các bản cập nhật và tải lên chủ đề của bạn, bạn phải tạo các khóa SSH và cài đặt mô-đun SSH SSH. Sau đó, WordPress sẽ phát hiện ra rằng bạn có sẵn SSH2 và bạn sẽ thấy một tùy chọn khác (SSH2) được hiển thị khi thực hiện tải lên / nâng cấp.

1.) Hãy chắc chắn rằng bạn đã cài đặt mô-đun PHP cho debian:

sudo apt-get install libssh2-php

2.) Tạo khóa SSH, thêm cụm mật khẩu là tùy chọn:

ssh-keygen
cd  ~/.ssh
cp id_rsa.pub authorized_keys

3.) Thay đổi quyền để WordPress có thể truy cập các khóa đó:

cd ~
chmod 755 .ssh
chmod 644 .ssh/*

Bây giờ bạn sẽ có tùy chọn SSH2 khi thực hiện tải lên / nâng cấp / plugin. Kết nối WP SSH

4.) Để dễ dàng hơn, bạn có thể thiết lập mặc định trong wp-config.phpvà điều này sẽ điền trước thông tin đăng nhập SSH trong cửa sổ tải lên WordPress.

define('FTP_PUBKEY','/home/<user>/.ssh/id_rsa.pub');
define('FTP_PRIKEY','/home/<user>/.ssh/id_rsa');
define('FTP_USER','<user>');
define('FTP_PASS','passphrase');
define('FTP_HOST','domain.com');

'Cụm mật khẩu' là tùy chọn, nếu bạn không thiết lập cụm mật khẩu trong thời gian ssh-kengen; sau đó không thêm nó vàowp-config.php

Điều này đã giải quyết vấn đề của tôi. Và tôi đã không phải làm gì chowncả. Nhưng tôi đã thấy phương pháp này được tham chiếu ở những nơi khác.

Người giới thiệu:


Tôi không phải là chuyên gia bảo mật và tôi nhận ra wordpress bao gồm khả năng này và nghĩ rằng nó ổn .... nhưng tôi không cảm thấy tốt về điều này ... 1. có một tài khoản ssh không có cụm mật khẩu, (bất cứ ai đã từng sử dụng Khóa riêng sau đó có thể đăng nhập từ xa bất cứ lúc nào họ muốn mà không cần mật khẩu) và 2. có cụm mật khẩu được lưu trong văn bản gốc (xem 1). nó nhắc tôi về rsh, tùy thuộc vào ý tưởng rằng "không ai sẽ có quyền truy cập vào các tệp cục bộ của tôi" để bảo vệ mật khẩu mạng cho hệ thống.
don sáng

Tôi chắc chắn rằng bạn có thể tạo cụm mật khẩu và KHÔNG thêm nó vào wp-config.php, sau đó bạn sẽ chỉ cần nhập nó khi bạn vào hộp thoại Thông tin kết nối.
JacquelineIO

Đây là một lỗ hổng bảo mật rất lớn để sử dụng khóa riêng không được mã hóa theo cách này. Nhưng bạn có thể giảm thiểu vấn đề bằng cách thêm "từ = bất cứ thứ gì" vào dòng có liên quan trong ủy quyền.
markhahn

Điều này thật tuyệt, nhưng dường như không có khả năng với php7: core.trac.wordpress.org/ticket/35517
Supaiku

21

Thông thường bạn chỉ có thể tải lên plugin của bạn vào wp-content\pluginsthư mục. Nếu bạn không có quyền truy cập vào thư mục này qua SFTP, tôi sợ bạn có thể bị kẹt.


Đúng, chỉ cần thả chúng trong wp-content / plugin.
ceejayoz

17

Bạn có thể lấy nó rất dễ dàng bằng cách gõ lệnh sau vào lệnh promt

sudo chown -R www-data:www-data your_folder_name

hoặc sao chép và dán đoạn mã sau vào tệp wp-config.php của bạn.

define('FS_METHOD', 'direct');

Trong đó "your_folder_name" là thư mục nơi WordPress của bạn được cài đặt bên trong thư mục này.



15

Thêm mã sau vào wp-config

define('FS_METHOD', 'direct');

FS_METHOD buộc phương thức hệ thống tập tin. Nó chỉ nên là trực tiếp, ssh2, ftpext hoặc ftpsockets. Nói chung, bạn chỉ nên thay đổi điều này nếu bạn đang gặp vấn đề cập nhật. Nếu bạn thay đổi nó và nó không có ích, hãy thay đổi lại / xóa nó đi. Trong hầu hết các trường hợp, đặt nó thành 'ftpsockets' sẽ hoạt động nếu phương thức được chọn tự động không có.

(Ưu tiên chính) "trực tiếp" buộc nó sử dụng các yêu cầu I / O tệp trực tiếp từ bên trong PHP, điều này gây khó khăn cho việc mở các vấn đề bảo mật trên các máy chủ được cấu hình kém, Điều này được chọn tự động khi thích hợp.

(Tùy chọn phụ) "ssh2" là bắt buộc sử dụng Tiện ích mở rộng SSH PHP nếu được cài đặt

(Ưu tiên thứ 3) "ftpext" là bắt buộc sử dụng Phần mở rộng FTP của FTP để truy cập FTP, và cuối cùng

(Ưu tiên thứ 4) "ftpsockets" sử dụng Lớp ổ cắm PHP để truy cập FTP

Để biết thêm thông tin, hãy truy cập: http://codex.wordpress.org/Editing_wp-config.php#WordPress_UpTHER_Constants


15

Nếu bạn đang sử dụng Ubuntu , một giải pháp nhanh chóng phù hợp với tôi là trao quyền sở hữu cho người dùng Apache (dữ liệu www theo mặc định) như sau:

cd your_wordpress_directory
sudo chown -R www-data wp-content
sudo chmod -R 755 wp-content

2
Đừng cấp quyền thực thi cho các tệp không cần nó.
Burhan Ali

13

Thay đổi từ php_modthành fastcgivới cgi& SuEXECđược kích hoạt. Làm việc cho tôi.

Nếu không hoạt động, hãy thử thay đổi wp-contentthành 775root:

chmod -R 775 ./wp-content

Thêm vào wp-config.php:

define('FS_METHOD', 'direct');

Tôi hy vọng nó hoạt động


12

WordPress 2.7 cho phép bạn tải lên tệp zip trực tiếp (có một liên kết ở cuối trang plugin) - không cần truy cập FTP. Đây là một tính năng mới trong 2.7 và nó chỉ hoạt động cho các plugin (chưa có chủ đề).


BTW, việc nâng cấp thậm chí còn dễ dàng hơn - bạn sẽ thấy một biểu tượng cho biết đã có phiên bản mới và bạn nhấp vào "nâng cấp" và để nó thực hiện. Rất đẹp. Ngay cả lõi WordPress cũng được nâng cấp theo cách này - tôi đã chuyển từ 2.7 lên 2.7.1 w / o tải lên bất cứ thứ gì.
D. Lambert

Điều này chỉ đúng nếu bạn đã đặt quyền truy cập tệp để máy chủ web / người dùng PHP có thể ghi cho họ. Nếu không, nó sẽ nhắc bạn về thông tin đăng nhập FTP / SFTP. Xem câu trả lời của stereulumactive.com.
Dave Forgac

9

Phục hồi một chủ đề cũ, nhưng có một plugin mới tuyệt vời có tên SSH SFTP Updater Support hỗ trợ thêm các khả năng SFTP mà không cần chỉnh sửa wp-config.phptệp của bạn . Ngoài ra, việc triển khai SFTP của Wordpress dựa trên một số mô-đun PHP hơi khó hiểu thường không được bật trên các máy chủ; plugin này gói một plugin SFTP PHP khác nhau để bạn không phải định cấu hình bất cứ thứ gì về phía Apache.

Tôi đã gặp phải vô số vấn đề khi hỗ trợ SFTP hoạt động - plugin này đã giải quyết tất cả chúng và thật tuyệt vời.


9

Thử cái này

1) Trong phần wp-config.phpthêmdefine('FS_METHOD', 'direct');

2) Đặt wp-contentthư mục 777để ghi.

3) Bây giờ cài đặt plugin.


6
Xin chào Mohan, cảm ơn rất nhiều cho tùy chọn FS_METHOD. Đây thực sự là những gì tôi đang tìm kiếm. Tôi cần phải nói như sau: không có thư mục nào cũng cần 777 trừ khi hoàn cảnh là ngoại lệ. Điều này làm cho một thế giới thư mục có thể đọc, ghi và thực thi. Đây là một rủi ro bảo mật lớn. Giải pháp thích hợp là tìm ra người dùng apache của bạn là ai (dữ liệu www, _www hoặc tương tự). Người dùng này cần đọc và ghi quyền truy cập vào nội dung wp hoặc cần quyền sở hữu đối với thư mục này ('sudo chown www-data wp-content'), không có quyền thực thi. Tôi xin lỗi vì hơi cùn nhưng 777 nguy hiểm cho nội dung web.
Ruben

8
Không 777 thư mục tải lên của bạn, điều này không an toàn và không nên là một câu trả lời!
Giải pháp web MKN

8

Câu trả lời từ stereulumactive bao gồm tất cả các tùy chọn. Chỉ muốn đề cập đến một cách khác để sử dụng FTP. Tôi đoán rằng lý do bạn không cho phép truy cập FTP là để bảo mật. Một cách để giải quyết những lo ngại về bảo mật đó là chỉ chạy máy chủ FTP của bạn trên 127.0.0.1

Điều này cho phép bạn sử dụng FTP từ bên trong WordPress và bạn sẽ có thể cài đặt các plugin trong khi không để nó tiếp xúc với phần còn lại của thế giới. Điều này cũng có thể được áp dụng cho các ứng dụng web phổ biến khác như Joomla! và Drupal. Đây là những gì chúng tôi làm với các thiết bị BitNamimáy chủ đám mây của chúng tôi và hoạt động khá tốt.


8

Tôi cũng khuyên dùng plugin Hỗ trợ Trình cập nhật SSH SFTP . Chỉ cần giải quyết tất cả các vấn đề của tôi ... đặc biệt là liên quan đến việc có các plugin để xóa thông qua quản trị viên. Chỉ cần cài đặt nó theo cách thông thường và lần sau khi bạn được WordPress nhắc chi tiết về FTP, sẽ có thêm các trường để bạn sao chép / dán khóa SSH riêng tư hoặc tải lên tệp PEM của bạn.

Vấn đề duy nhất tôi có là làm cho nó nhớ khóa (đã thử cả hai phương pháp). Đừng thích ý tưởng phải tìm và nhập nó mỗi khi tôi cần xóa một plugin. Nhưng ít nhất bây giờ nó là một sửa chữa vững chắc.


1
"sẽ có thêm các trường để bạn sao chép / dán khóa SSH riêng tư của bạn" .... tôi không phải là thiên tài bảo mật nhưng ... không phải là toàn bộ các khóa ssh riêng tư mà bạn không bao giờ phải gửi chúng qua mạng ?
don sáng

8

Có, trực tiếp cài đặt plugin trong WordPress.

  1. Sao chép thư mục plugin và dán vào thư mục plugin WordPress.
  2. đi đến phía quản trị viên (/ test / wp-admin) sau đó vào liên kết plugin và kiểm tra tên của plugin.
  3. Kích hoạt plugin để cài đặt plugin dễ dàng.

tùy chọn khác

  1. tạo tập tin zip cho mã plugin.
  2. đi đến phía quản trị viên (/ test / wp-admin), sau đó vào liên kết plugin và sau đó nhấp vào add new, sau đó duyệt thư mục zip plugin và cài đặt plugin, sau đó đi ra tùy chọn kích hoạt plugin, vì vậy hãy kích hoạt plugin và kích hoạt plugin.

6

Có thể sử dụng SFTP hoặc SSH để tự động cập nhật Plugin trong WordPress, nhưng bạn cần phải có tiện ích mở rộng ssh2 pecl. Bạn có thể tìm hiểu làm thế nào để làm điều đó, bằng cách sử dụng hướng dẫn sau đây


6

Chúng tôi sử dụng SFTP với SSH (trên cả máy chủ phát triển và máy chủ trực tiếp) và tôi đã cố gắng (mặc dù không quá khó) để sử dụng tính năng tải lên WordPress. Tôi đồng ý với Toby, tải (các) plugin của bạn lên wp-content/pluginsthư mục và sau đó kích hoạt chúng từ đó.


6

Tôi thấy rất nhiều người khuyên nên đặt quyền cho 777. Tôi gặp vấn đề tương tự như 2 ngày trước và tất cả những gì tôi đã làm là, thêm điều này vào nội dung wp

define('FS_METHOD', 'direct');

đặt quyền thành 775 cho thư mục plugin

Điều này giải quyết vấn đề của tôi về yêu cầu đăng nhập / mật khẩu truy cập FTP.

Trước đó, tôi đã phải thêm plugin thủ công bằng cách thêm tệp .zip vào thư mục plugin và sau đó đi đến wp-admin/pluginsvà phải cài đặt nó.


5

Hãy thử điều này Kiểm tra xem quyền có được cấp cho thư mục wp-content không.

Chỉnh sửa wp-config.php thêm dòng sau

define('FS_METHOD', 'direct');

chmod thư mục "wp-content" vào dữ liệu www để truy cập đầy đủ.

Bây giờ hãy thử cài đặt plugin.


4

Có, bạn có thể làm điều đó.

Bạn cần phải thêm

define('METHOD','direct');

trong wpconfig của bạn. Nhưng phương pháp này sẽ không được ưa thích hơn vì nó có các lỗi bảo mật.

Cảm ơn,


3

Phương pháp 1: Bạn có thể đặt điều này: 1. trong wp-config.php bạn cần viết những dòng này.

define('FS_METHOD', 'direct'); 

Lưu ý: đặt cái này sau khi xác định ('DB_CHARSET', 'utf8mb4').

  1. đặt quyền hoặc nội dung wp đệ quy 777 quyền đầy đủ mà bạn có thể cấp cho nó qua filezilla. viết bấm vào thư mục> quyền> kiểm tra đọc-ghi và thực thi và cũng kiểm tra Recurse vào thư mục con

    Cách 2:

hoặc Bạn cũng có thể đặt cái này

define("FTP_HOST", "localhost");
define("FTP_USER", "yourftpusername");
define("FTP_PASS", "yourftppassword");

vào tháng 2 năm 2020, đó là một hướng dẫn rõ ràng,Note: put this after define( 'DB_CHARSET', 'utf8mb4' ).
Osify

2

thiết lập ftp hoặc thậm chí kết nối SFTP hoặc chmod 777 là những cách không tốt để thực hiện bất cứ điều gì khác ngoài môi trường địa phương. Mở ngay cả một phương thức SFTP cũng mang lại nhiều rủi ro bảo mật không cần thiết.

những gì cần thiết là sự cho phép có thể ghi đối với / wp-content / tải lên & / wp-content / plugin / bởi chủ sở hữu của các thư mục đó. (linux ls -la sẽ cho bạn thấy quyền sở hữu).

Người dùng apache mặc định chạy là dữ liệu www.

chmod 777 cho phép bất kỳ người dùng nào trên máy chỉnh sửa các tệp đó, không chỉ người dùng luồng apache / php.

SFTP nếu bạn chưa sử dụng nó, sẽ giới thiệu một điểm khác có thể xảy ra từ nguồn bên ngoài. Trong khi đó, bạn chỉ cần truy cập bởi người dùng cục bộ đang chạy quy trình apache / php để hoàn thành mục tiêu.

Không thấy ai đưa ra những quan điểm này, vì vậy tôi nghĩ rằng tôi sẽ cung cấp thông tin này để giúp giải quyết vấn đề bảo mật WP liên tục của chúng tôi trực tuyến.


2

Đây là một phương pháp đơn giản.

Thực hiện các lệnh sau.

Điều này sẽ kích hoạt mô-đun mod_rewrite của bạn cho Apache

$sudo a2enmod rewrite

Lệnh này sẽ thay đổi chủ sở hữu của thư mục thành dữ liệu www

$sudo chown -R www-data [Wordpress Folder Location]

Sau khi bạn thực hiện các lệnh trên, bạn có thể cài đặt bất kỳ chủ đề nào mà không cần FTP.


1
Đối với Nginx, chỉ cần chạy lệnh thứ haisudo chown -R www-data [Wordpress Folder Location]
pkkatonie

@srokatonie cảm ơn vì nhận xét. Điều này sẽ hữu ích cho tất cả mọi người.
Manuja Jayawardana


1

Lý do duy nhất mà WordPress sẽ không cho phép bạn tải lên bất kỳ plugin nào thông qua bảng điều khiển quản trị viên WordPress khi bạn không được phép viết trên thư mục / wp-content. Hãy nhớ rằng thư mục wordpress / wp-content của bạn yêu cầu mức cấp phép 0755. Có nhiều cách khác nhau để thay đổi cấp phép của thư mục.

Thay đổi quyền truy cập tệp bằng cPanel:

Đi đến Trình quản lý tệp khi mở thư mục HTML công cộng nơi có trang web wordpress của bạn hoặc mở thư mục gốc của trang web nếu trang web của bạn nằm trong một thư mục khác. Trong thư mục gốc WordPress của bạn điều hướng đến thư mục wp-content; ở cuối hàng thư mục wp-nội dung, hộp cuối cùng mang quyền truy cập tệp cho thư mục này. Đảm bảo chỉnh sửa mức cấp phép thư mục thành 0755, và bạn đã hoàn thành.

Thay đổi quyền truy cập tệp bằng thiết bị đầu cuối SSH:

Trong thiết bị đầu cuối của bạn xác định vị trí gốc của trang web WordPress mà trong trường hợp của tôi là / var / www / html để di chuyển vào thư mục gốc của WordPress, hãy nhập lệnh sau:

cd /var/www/html 

Bây giờ bạn đang ở trong thư mục gốc WordPress nơi chứa thư mục / wp-content yêu cầu. Vì vậy, để thay đổi quyền truy cập tập tin, gõ lệnh sau:

sudo chmod wp-content 755 

Điều này sẽ thay đổi quyền tập tin thư mục / wp-content của bạn thành 0755.

Bây giờ bạn sẽ không nhận được thông báo lỗi khi tải lên các plugin wordpress qua FTP.


0

Cách tốt nhất để cài đặt plugin bằng SSH là WPCLI.

Lưu ý rằng, truy cập SSH là bắt buộc để sử dụng các lệnh WP CLI. Trước khi sử dụng, hãy kiểm tra xem WP CLI đã được cài đặt tại máy chủ hoặc máy chủ lưu trữ của bạn chưa.

Cách kiểm tra: wp --version[Nó sẽ hiển thị phiên bản wp cli đã cài đặt]

Nếu chưa được cài đặt, làm thế nào để cài đặt nó: Trước khi cài đặt WP-CLI, vui lòng đảm bảo môi trường đáp ứng các yêu cầu tối thiểu:

Môi trường giống như UNIX (OS X, Linux, FreeBSD, Cygwin); hỗ trợ hạn chế trong môi trường Windows. PHP 5.4 trở lên WordPress 3.7 trở lên. Các phiên bản cũ hơn bản phát hành WordPress mới nhất có thể đã bị suy giảm chức năng

Nếu các điểm trên thỏa mãn, vui lòng làm theo các bước: URL tham chiếu: WPCLI

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
[ download the wpcli phar ]

php wp-cli.phar --info [ check whether the phar file is working ]

chmod +x wp-cli.phar [ change permission ]
sudo mv wp-cli.phar /usr/local/bin/wp [ move to global folder ]
wp --info [ to check the installation ]

Bây giờ WP CLI đã sẵn sàng để cài đặt.

Bây giờ bạn có thể cài đặt bất kỳ plugin nào có sẵn trong WordPress.org bằng cách sử dụng các lệnh sau:

wp install plugin plugin-slug
wp delete plugin plugin-slug
wp deactivate plugin plugin-slug

LƯU Ý: wp cli chỉ có thể cài đặt các plugin có sẵn trong wordpress.org

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.