플러그인 설치를 위해 내 FTP 자격 증명을 요구하는 WordPress


118

로컬 시스템에 WordPress 블로그를 설치했습니다. 그러나 관리자에서 플러그인을 추가하려고 할 때 FTP 액세스를 요청합니다. WordPress가 FTP없이 업로드 할 수 있도록 구성하려면 무엇이 필요합니까?

답변:


302

wp-config.php에 코드를 추가해보십시오.

define('FS_METHOD', 'direct');

29
인터넷 검색을하는 동안이 답변에 계속 걸려 넘어 지므로 여기에 나와 다른 사람을 위해 메모를 게시합니다. 코드는 wp-admin / includes / file.php : get_filesystem_method에 있습니다. Wordpress는 'wp-content / temp-write-test-'. time () 파일을 만들려고합니다. 이것이 실패하면 FTP 만 사용할 수 있다고 가정합니다. 그러나 wp-content 자체가 쓰기 가능하지 않은 경우 이는 사실이 아닐 수 있지만 예를 들어 wp-content / plugins는 그렇습니다. 그런 다음 FS_METHOD 강제가 작동합니다.
Sebastian Schmid

3
작동하지만 이제 문제는 패키지의 압축을 푼 후 "디렉터리를 만들 수 없습니다."라는 오류 메시지입니다.
Andrew

3
이것은 나를 도왔지만 실패에 대한 더 많은 정보를 노출했기 때문입니다. 핵심 문제는 업데이트를 수행하는 사용자 계정에 대한 쓰기 권한이 있다는 것입니다. 시스템 유형마다 다를 수 있습니다. (아래의 일부 답변은 데몬, httpd 또는 아파치에 대한 쓰기 권한을 설정하라고 알려줍니다 ...) 아래 주석에서 PHP 스 니펫을 보는 데 도움이되었습니다 (<? php echo (exec ( "whoami")); ?>) 업데이트를 실행중인 사용자를 알 수 있습니다. 여기에서 제안한 변경 사항은 단순히 FTP 자격 증명 문제를 억제하는 것처럼 보였으므로 오류 메시지를 볼 수있었습니다.
agentv

Apache가 아닌 nginx를 사용하고 있습니다. PHP-FPM 올바른 사용자 / 그룹 조합을 사용 한다는 것은 분명합니다 (@Aboozar Rajabi가 설명하는 트릭 사용). 그러나 어떤 이유로 WP 검사가 실패합니다 (로그에 오류 없음). 이 설정을 사용하면 4.7로 완벽하게 업그레이드 할 수있었습니다!
Gwyneth Llewelyn

1
내 추측은, 워드 프레스하기 전에 다른 지역의 개발 운영을 해왔 것은 FS_METHOD약자입니다 FILESYSTEM_METHOD. directFTP를 사용하지 않고 파일을 수정하도록 정의 할 때 WordPress에서 사이트의 파일을 직접 수정하도록 강제하는 것입니다.
Dylan Pierce

40

Ubuntu를 사용하는 경우.

sudo chown -R www-data:www-data PATH_TO_YOUR_WORDPRESS_FOLDER

7
-1 나쁜 생각, www-data여기에서 wp-content 만 소유해야합니다 : codex.wordpress.org/Hardening_WordPress 또는 여기 : stackoverflow.com/questions/18352682/…
timhc22

이 대답은 "설치 실패 : WordPress 콘텐츠 디렉터리 (wp-content)를 찾을 수 없음"오류도 수정합니다. 대시 보드에서 플러그인을 설치하려고 할 때.
WindChimes dec.

25

"WordPress 제어판을 사용하여 플러그인을 자동으로 설치, 업그레이드 또는 삭제할 때마다 WordPress는 파일 시스템의 파일을 변경해야합니다.

변경하기 전에 WordPress는 먼저 파일 시스템을 직접 조작 할 수있는 권한이 있는지 여부를 확인합니다.

WordPress에 파일 시스템을 직접 수정하는 데 필요한 권한이없는 경우 WordPress가 FTP를 통해 필요한 작업을 시도 할 수 있도록 FTP 자격 증명을 요청합니다. "

솔루션 : apache 인스턴스가 실행중인 사용자를 찾으려면 다음 내용으로 테스트 스크립트를 작성하십시오.

<?php echo(exec("whoami")); ?>

나에게는 www-data가 아닌 데몬이었습니다. 그런 다음 다음과 같이 권한을 수정합니다.

sudo chown -R daemon /path/to/your/local/www/folder

3
exec () 또는 이와 유사한 민감한 기능을 비활성화하는 것을 잊지 마십시오. 생산 중.
Arda

2
더 나은 여전히 사용하는 <?php echo(exec("id")); ?>경우에도 사용자 ID를 넘어 당신에게 그룹 데이터를 제공합니다 :uid=5018(web27) gid=5012(client7) groups=5012(client7),5002(sshusers)
기네스 르 웰린은

sudo 및 chown을 할 수 있으면 입력 할 수 whoami있으므로 동일한 정보를 볼 수 있습니다 .sudo chown -R `whoami` /path/to/your/local/www/folder
Benji

11

OSX에서 다음을 사용했으며 작동했습니다.

sudo chown -R _www:_www {path to wordpress folder}

_www는 Mac에서 PHP를 실행하는 사용자입니다.

(또한 일부 폴더를 chmod해야 할 수도 있습니다.이 작업을 먼저 수행했지만 수정하지 않았습니다. chown 명령을 수행 할 때까지는 작동하지 않았으므로 chown 명령인지 확실하지 않습니다. 단독으로 또는 chmod와 chown의 조합.)


9

워드 프레스 폴더의 소유권을 www-data로 재귀 적으로 변경하고 아파치를 다시 시작했습니다.

sudo chown -R www-data:www-data <folderpath>

그것은 매력처럼 작동했습니다!


이것은 아마도 대부분의 사람들에게 정답 일 것입니다. 폴더를 만들고 쪼개는 것을 잊은 것은 이번이 세 번째라고 생각합니다.
MrMysterious2502

7

Google의 첫 번째 히트 곡에서 :

WordPress는 파일에 직접 액세스 할 수없는 경우 FTP 자격 증명을 요청합니다. 이는 일반적으로 WordPress 파일을 소유 한 사용자가 아닌 Apache 사용자 (mod_php 또는 CGI)로 실행되는 PHP로 인해 발생합니다.

이것은 대부분의 공유 호스팅 환경에서 다소 정상적입니다. 파일은 사용자로 저장되고 Apache는 사용자 apache또는 httpd. 이것은 실제로 좋은 보안 예방책이므로 익스플로잇과 해킹은 호스팅 된 파일을 수정할 수 없습니다. 모든 WP 파일을 777 보안으로 설정하여이를 피할 수 있지만 이는 보안이 없음 을 의미 하므로 이에 대해 적극 권장합니다. FTP를 사용하면 좋은 이유가있는 자동으로 권장되는 해결 방법입니다.


설명 해주셔서 감사합니다. 올바른 사용자로 PHP를 실행하거나 소유자 또는 다른 솔루션을 수정하도록 공유 서버를 구성하는 방법이 있습니까?
Maxwell sc

4

먼저 설치 폴더로 이동하십시오 (예 :)

cd /Applications/XAMPP/xamppfiles/

이제 htdocs 디렉토리를 수정하겠습니다.

sudo chown -R daemon htdocs

메시지가 표시되면 루트 비밀번호를 입력 한 다음 chmod 호출로 완료합니다.

sudo chmod -R g+w htdocs

4

여기에 설명 된 단계에 따라 Ubuntu 14.04에 WordPress를 로컬로 설치 하고 간단히 실행했습니다.

sudo chown -R www-data:www-data {path_to_your_project_directory}

플러그인 다운로드 문제를 해결했습니다. 내가이 게시물을 여기에 남기는 유일한 이유는 내 문제를 검색했을 때 이것이 첫 번째 결과 중 하나 였고 내 문제에 대한 해결책으로 이끌었 기 때문입니다.

이것이 누구에게나 도움이되기를 바랍니다!


3

우리는 더 큰 문제의 일부와 같은 문제를 겪었습니다. 제안 된 솔루션

define('FS_METHOD', 'direct');

해당 창을 숨기지 만 테마 및 업그레이드 등을로드하는 데 여전히 문제가 있습니다. 권한과 관련이 있지만 우리의 경우에는 php OS 공급 업체 mod_php 에서보다 안전한 php OS 공급 업체 FastCGI 응용 프로그램 으로 이동하여 문제를 해결했습니다 .


3

플러그인을 설치하는 동안 Wordpress에서 호스트 이름 또는 FTP 세부 정보를 요청합니다. 그런 다음 다음 단계를 따르십시오.

서버에 로그인하고 / var / www / html / wordpress /로 이동 합니다. wp-config.php를 열고 define ( 'DB_COLLATE') 뒤에이 줄을 추가하세요.

define('FS_METHOD', 'direct');

"디렉터리를 만들 수 없습니다"오류가 발생하는 경우. 재귀 적으로 wordpress 디렉토리에 쓰기 권한을 부여하십시오.

chmod -R go+w wordpress

노트. 보안을 위해 플러그인을 다음과 같이 설치하면 이러한 권한을 취소하십시오.

chmod -R go-w wordpress

2

이 문제를 해결하는 가장 쉬운 방법은 다음 FTP 정보를 wp-config.php

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/');

FTP_BASE 는 WordPress 설치의 "base"(ABSPATH) 폴더에 대한 전체 경로입니다. FTP_CONTENT_DIR 은 WordPress 설치 의 wp-content 폴더에 대한 전체 경로입니다. FTP_PLUGIN_DIR 은 WordPress 설치 플러그인 폴더의 전체 경로입니다.


FTP는 안전하지 않으므로 비활성화하므로 해결책이 아닙니다. 대신 SFTP를 사용합니다.
Laurence Cope

1

Niels가 언급했듯이 이것은 서버 프로세스 사용자가 Wordpress 폴더에 쓸 수 없기 때문에 발생합니다.

그러나 여기에 많은 기사가 설명하지 않는 것이 있습니다. nginx 프로세스가 아니라 PHP 프로세스의 소유자입니다. nginx 소유자를 변경하려고하면이 문제가 해결되지 않습니다.

이를 해결하려면 실행 ps aux하여 php-fpm 프로세스를 소유 한 사용자를 확인하십시오. 그런 다음 사용자가 wordpress 폴더의 소유자와 동일한 사용자인지 또는 최소한 쓰기가 가능한지 확인합니다. 사용자가 쓸 수없는 경우 폴더의 권한 및 / 또는 소유권을 변경해야합니다. 또는 두 사용자 (서버 소유자 및 wordpress 폴더 소유자)를 폴더에 쓸 수있는 공통 그룹에 넣습니다. 또는 php.ini "user"속성을 폴더에 쓸 수있는 사용자로 변경합니다.


1

이 질문에 대한 유사한 답변이 많이 있지만 근본 원인을 완전히 다루지는 않습니다. 원본 게시물에 대한 Sebastian Schmid의 의견은 그것에 대해 다룹니다. 다음은 2018-11-06 현재 내 의견입니다.

근본 원인

WordPress 관리자 인터페이스를 통해 플러그인을 업로드하려고하면 WordPress에서 "get_filesystem_method ()"라는 함수를 호출합니다 (참조 : /wp-admin/includes/file.php:1549 ). 이 루틴은 문제의 위치 (이 경우 플러그인 디렉토리)에 파일 쓰기를 시도합니다. 물론 파일 권한이 WordPress 사용자 (PHP를 실행하는 사용자 ID를 생각해보십시오)가 해당 위치에 파일을 쓸 수 있도록 설정되지 않은 경우 여기에서 즉시 실패 할 수 있습니다.

파일을 생성 할 수있는 경우이 함수는 함수의 현재 파일 (ref : /wp-admin/includes/file.php:1572 ) 의 파일 소유자와 함께 임시 파일의 파일 소유자를 감지 하고 둘을 비교합니다. 일치하는 경우 WordPress의 말에서 "WordPress는 WordPress 파일과 동일한 소유자로 파일을 생성합니다. 이는 PHP를 통해 새 파일을 수정 및 생성하는 것이 안전함을 의미합니다."그리고 FTP 자격 증명 프롬프트없이 성공적으로 업로드됩니다. 일치하지 않으면 FTP 자격 증명 프롬프트가 표시됩니다.

수정

  1. PHP 프로세스를 실행하는 ID로 플러그인 디렉토리를 쓸 수 있는지 확인하십시오.
  2. PHP 프로세스를 실행하는 ID가 다음 중 하나에 대한 파일 소유자인지 확인합니다.

    a) 모든 WordPress 애플리케이션 파일 또는 ...
    b) 최소한 /wp-admin/includes/file.php 파일

최종 의견

이 문제를 해결하기 위해 file.php에 파일 소유권을 구체적으로 적용하는 데 지나치게 관심이 없습니다. 이 시점에서 WordPress 코드베이스는 WordPress 응용 프로그램 파일의 파일 소유자와 동일한 사용자 주체로 PHP 프로세스를 실행하는쪽으로 기울고있는 것 같습니다. 이에 대한 커뮤니티의 의견을 환영합니다.


1

나는 같은 문제에 직면했다! 아래 코드를 wp-config.php 파일 (어느 줄 에나)에 추가했으며 현재 작동 중입니다!

define('FS_METHOD', 'direct');
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.