để thực hiện các hành động wordpress được yêu cầu cần truy cập vào máy chủ web của bạn. vui lòng nhập ftp của bạn


28

Tôi đang theo dõi Quyền thay đổi tệp «Codex WordPress , nhưng khi tôi cố gắng cập nhật và / hoặc cài đặt pluginvà / hoặc themethông qua wp-admin, tôi sẽ nhận được:

Để thực hiện hành động được yêu cầu, WordPress cần truy cập vào máy chủ web của bạn. Vui lòng nhập thông tin đăng nhập FTP của bạn để tiếp tục. Nếu bạn không nhớ thông tin đăng nhập của mình, bạn nên liên hệ với máy chủ web của mình.

từ cấp hệ thống tệp:

# 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/
# 

httpdchạy như 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
$ 

Tôi muốn có thể thực hiện hành động được yêu cầu ( installvà / hoặc update) thông qua /wp-admin mà không cần thông tin đăng nhập FTP.

Làm thế nào tôi có thể làm điều đó?


1
Đây có phải là một cài đặt localhost? Nếu vậy, hãy xem: wordpress.stackexchange.com/questions/19649/ Kẻ
Greg McMullen

1
@GregMcMullen không, đây KHÔNG phải là cài đặt localhost & câu trả lời "được chấp nhận" từ liên kết mà bạn nhận xét là thay đổi quyền sở hữu một thư mục wordpress thành nobody- điều này sẽ không hoạt động đối với tôi do httpdchạy như apache.
alexus

@alexus Có vẻ như các tệp của bạn được sở hữu bởi root.apache tại thời điểm này. Bạn đã thử apache.apache thay vì không ai?
Tim Malone

@TimMalone file thiết lập / thư mục như apache.apachehoặc root.apachesẽ không thực hiện bất kỳ sự khác biệt, miễn là httpdchạy như apache, và apache's uidlà một phần của apache gid' nhóm s, đó là tất cả như nhau, vì quyền của tôi thiết lập để g+w.
alexus

@alexus Ok, một cái gì đó khác để thử - đặt FS_METHOD thành 'direct' trong wp-config.php ( codex.wordpress.org/ Kẻ )
Tim Malone

Câu trả lời:


52

Thêm phần sau vào wp-config.php:

define( 'FS_METHOD', 'direct' );

Hãy cho tôi biết làm thế nào nó hoạt động cho bạn.



làm việc cho tôi trừ khi bạn có quyền xấu trong hệ thống tệp. Btw Tôi đã thêm nó ở đầu trang wp-config.php
Toskan

Hãy chắc chắn đọc bài Alexus được liên kết đến trước khi sử dụng phương pháp này. Phương pháp này chắc chắn hoạt động (nó đã giải quyết được vấn đề cho tôi), nhưng bạn chắc chắn không nên sử dụng phương pháp này trong môi trường lưu trữ được chia sẻ hoặc bất kỳ môi trường có nguy cơ nào mà bạn có thể làm tổn hại đến bảo mật bằng cách thực hiện điều này.
JamesHoux

16

Điều này có nghĩa là WordPress đang bị hạn chế quyền thực hiện các thay đổi trong thư mục mà nó đã được cài đặt.

Để khắc phục điều này, tất cả những gì bạn cần làm là cung cấp các quyền cần thiết cho cùng.

Chạy Lệnh sau trong Nhắc Terminal / Putty / Commandline của bạn sau khi kết nối với Máy chủ của bạn thông qua SSH:

sudo chown -R apache:apache /var/www/html

Kiểm tra bài viết này để biết chi tiết đầy đủ.


quyền là tốt, đọc lại câu hỏi của tôi)
alexus

3
chown: người dùng không hợp lệ: 'apache: apache'
numediaweb

1
Hãy nhớ rằng, Apache có thể là những người dùng khác nhau trong các hương vị khác nhau của Linux. Vì vậy, bạn có thể thử các nhóm <tên người dùng> và xem nó có lỗi hay không, vì người dùng và nhóm cho Apache thường giống nhau. Sau đó sử dụng đúng người dùng. Phổ biến nhất trong Ubuntu là "www-data: www-data" hoặc "www: www" cho các tệp Apache đang hoạt động.
Thẻ MontyThree

2

Mặc dù hoàn toàn chính xác khi có quyền sở hữu như root:apachevới quyền 775 và httpd để chạy như vậy apache, Wordpress không thích điều này. Nó muốn chủ sở hữu được apache, theo wp-admin/includes/file.php:

    // Attempt to determine the file owner of the WordPress files, and that of newly created files
   $wp_file_owner = $temp_file_owner = false;
   if ( function_exists('fileowner') ) {
      $wp_file_owner = @fileowner( __FILE__ );
      $temp_file_owner = @fileowner( $temp_file_name );
  }

Bạn sẽ là:
wp_file_owner = root
temp_file_owner = apache

if ( $wp_file_owner !== false && $wp_file_owner === $temp_file_owner ) {
    // WordPress is creating files as the same owner as the WordPress files,
    // this means it's safe to modify & create new files via PHP.
    $method = 'direct';
    $GLOBALS['_wp_filesystem_direct_method'] = 'file_owner';
} elseif ( $allow_relaxed_file_ownership ) {
    // The $context directory is writable, and $allow_relaxed_file_ownership is set, this means we can modify files
    // safely in this directory. This mode doesn't create new files, only alter existing ones.
    $method = 'direct';
    $GLOBALS['_wp_filesystem_direct_method'] = 'relaxed_ownership';
}

Nếu $ wp_file_owner giống với $ temp_file_owner thì hãy tiếp tục. Bạn sẽ bị bắt gặp trong một điều khác, theo nhận xét không cho phép xóa / tạo, mà chỉ cập nhật (tôi đã xác minh điều này bằng cách cập nhật mã của một plugin từ bên trong Wordpress và nó đã hoạt động).

Lưu ý tôi đã không xem xét kỹ về mã, đây chỉ là cách giải thích nhanh của tôi. Tôi gặp vấn đề tương tự và một khi tôi đã chuyển người dùng: nhóm để người dùng httpd cũng là chủ sở hữu tệp, nó không nhắc thông tin đăng nhập FTP nữa.


Yup, thay đổi chủ sở hữu để www-datalàm việc cho tôi. WordPress vui nhộn!
ankush981

1

Không phải là một câu trả lời trực tiếp, nhưng có lẽ phải nói - đây là một vấn đề bạn nên tránh giải quyết trừ khi bạn đang nói về sự phát triển cục bộ trong trường hợp bạn chỉ có thể đặt quyền thành 777.

Lý do là nếu máy chủ web có thể ghi đè mã của bạn, thì bất kỳ mã độc hại nào đang chạy trên đó cũng sẽ có thể làm điều đó. Rủi ro chỉ lớn hơn nhiều so với sự tiện lợi của việc tiết kiệm vài giây bằng cách không phải nhập thông tin đăng nhập ftp.


0

Mặc dù câu hỏi không còn mới nữa nhưng tôi cũng muốn thêm hai xu của mình vào vấn đề này.

Rất nhiều ppl có Centos (7) trên máy chủ VPS của họ và các dòng mã sau có thể giải quyết vấn đề của họ.

Imho có tất cả những gì phải làm với SELinux, điều này ngăn cản WordPress thực hiện công việc như mong muốn. Nó đi xa để giải thích Selinux là gì và nó làm gì. Phần giới thiệu bắt đầu bằng:

Linux được tăng cường bảo mật (SELinux) là một cơ chế bảo mật kiểm soát truy cập (MAC) bắt buộc được triển khai trong kernel.

Chỉ 3 bước để folow:

  • 1 Mở thiết bị đầu cuối (hoặc truy cập máy chủ thông qua SSH)
  • 2 Thêm dòng mã sau chcon -R -t httpd_sys_content_t /var/www/html/wordpress
  • 3 Thêm dòng mã thứ hai chcon -R -t httpd_sys_rw_content_t /var/www/html/wordpress

Không khởi động lại từ máy chủ hoặc khởi động lại từ bất kỳ trình nền nào cần thiết.

Tôi sẽ không nói rằng nó giúp ích cho tất cả mọi người, nhưng với những người không vô hiệu hóa SELinux thì điều đó thật nhẹ nhõm.

Chúc mừng

Lưu ý: Vui lòng điều chỉnh theo nhu cầu của riêng bạn (nghĩa là đường dẫn đến WordPress)

chỉnh sửa: hãy chắc chắn xóa dòng define("FS_METHOD", "direct");khi nó được / được sử dụng wp-config.phpvì điều đó hoàn toàn không có khi dòng mã trên làm như mong muốn.


0

Trong trường hợp của tôi, tôi đã giải quyết điều này bằng cách chuyển từ GIT trở lại chế độ FTP.

Không còn cảnh báo nữa.

Có lẽ điều đó cũng sẽ giúp người khác.

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.