source

플러그인을 설치하기 위한 FTP 자격 증명을 요청하는 WordPress

goodcode 2023. 3. 27. 23:14
반응형

플러그인을 설치하기 위한 FTP 자격 증명을 요청하는 WordPress

로컬 시스템에 WordPress 블로그를 설치했습니다.단, admin에서 플러그인을 추가하려고 하면 FTP 액세스를 요구합니다.FTP 없이 WordPress를 업로드하려면 무엇을 구성해야 합니까?

wp-config에 코드를 추가해 보겠습니다.php:

define('FS_METHOD', 'direct');

Ubuntu를 사용하는 경우.

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

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

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

WordPress가 파일 시스템을 직접 수정하는 데 필요한 권한을 가지고 있지 않은 경우, WordPress가 FTP를 통해 필요한 작업을 수행할 수 있도록 FTP 자격 증명을 입력하라는 메시지가 표시됩니다.

솔루션:Apache 인스턴스가 어떤 사용자로 실행되고 있는지 확인하려면 다음 내용으로 테스트 스크립트를 만듭니다.

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

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

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

플러그인 설치 중에 Wordpress가 호스트 이름 또는 FTP 세부 정보를 묻습니다.다음으로 다음 단계를 수행합니다.

서버에 로그인하여 /var/www/html/wordpress/로 이동합니다.wp-config를 엽니다.php 및 정의 후에 이 행을 추가합니다('DB_COLATE').

define('FS_METHOD', 'direct');

"디렉토리를 작성할 수 없습니다" 오류가 표시되는 경우.워드프레스 디렉토리에 재귀적으로 쓰기 권한을 부여합니다.

chmod -R go+w wordpress

참고. 보안을 위해 플러그인을 설치한 후 다음 권한을 취소하십시오.

chmod -R go-w wordpress

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

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

그것은 마법처럼 작동했다!

OSX 에서는, 다음의 것을 사용하고, 동작했습니다.

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

_www는 Mac에서 PHP가 실행되는 사용자입니다.

(일부 폴더도 chmod해야 할 수 있습니다.내가 먼저 그것을 했지만 그것은 고쳐지지 않았다.chown 명령어를 실행한 후에야 작동하기 때문에 chown 명령어만 사용하는 것인지 chmod와 chown의 조합인지는 잘 모르겠습니다.)

Ubuntu 14.04에서 WordPress를 로컬로 설치했습니다.다음 절차에 따라 WordPress를 실행했습니다.

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

플러그인 다운로드 문제를 해결했습니다.제가 이 글을 남기는 유일한 이유는 제 문제를 검색했을 때 이것이 첫 번째 결과 중 하나였기 때문에 제 문제의 해결책으로 이어졌기 때문입니다.

이게 누구에게도 도움이 되길 바라!

구글의 첫 히트부터:

WordPress는 파일에 직접 액세스할 수 없는 경우 FTP 자격 증명을 요청합니다.이 문제는 보통 WordPress 파일을 소유한 사용자가 아닌 Apache 사용자(mod_php 또는 CGI)로 PHP가 실행 중이기 때문에 발생합니다.

이는 대부분의 공유 호스팅 환경에서 일반적인 현상입니다.파일은 사용자로 저장되며 Apache는 사용자로 실행됩니다.apache또는httpd이는 실제로 좋은 보안 예방책이기 때문에 악용 및 해킹이 호스트된 파일을 수정할 수 없습니다.모든 WP 파일을 777 보안으로 설정함으로써 이를 회피할 수 있지만, 그것은 보안이 없다는 을 의미하기 때문에 저는 강력히 반대합니다.FTP 를 사용해 주세요.자동으로 권장되는 회피책입니다.

이 질문에는 비슷한 답변이 많지만 근본 원인을 완전히 다루는 답변은 없습니다.원본 게시물에 대한 세바스찬 슈미드의 코멘트는 그것에 대해 언급하지만 완전히 언급되지는 않았다.2018년 11월 6일 현재 저의 견해는 다음과 같습니다.

근본 원인

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

파일을 만들 수 있는 경우 이 함수는 임시 파일의 파일 소유자와 함수의 현재 파일(ref: /wp-admin/includes/file.php:1572)을 검출하여 비교합니다.WordPress의 말에 따르면 "WordPress는 WordPress 파일과 동일한 소유자로 파일을 만들고 있습니다. 이는 PHP를 통해 새로운 파일을 수정하고 생성하는 것이 안전함을 의미합니다."라고 되어 있으며, 플러그인은 FTP Credentials 프롬프트 없이 정상적으로 업로드됩니다.일치하지 않으면 FTP Credentials 프롬프트가 나타납니다.

고치다

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

    WordPress 프로그램 파일 a) WordPress 응용 프로그램 파일
    )는 /wp-admin/includes/file.php 입니다.

최종 코멘트

파일 소유권을 파일에 적용하는 것은 그다지 좋아하지 않습니다.php는 이 문제를 회피하기 위해 노력하고 있습니다(최소라고 말하기에는 조금 허술한 느낌입니다).이 시점에서 WordPress 코드 베이스는 WordPress 응용 프로그램 파일의 파일 소유자와 동일한 사용자 주체에서 PHP 프로세스를 실행하는 쪽으로 기울고 있는 것으로 보입니다.나는 이것에 대한 커뮤니티의 코멘트를 환영한다.

은 다음 를 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 설치 플러그인 폴더의 전체 경로입니다.

우리는 더 큰 문제의 일부로서 같은 문제를 안고 있었다.권장되는 솔루션

define('FS_METHOD', 'direct');

창을 숨겼지만 테마 로드나 업그레이드 등에 문제가 있었습니다.이것은 권한과 관련되어 있습니다만, 이 경우 php OS 벤더 mod_php에서 보다 안전한 php OS 벤더 Fast CGI 어플리케이션으로 이행함으로써 문제를 해결했습니다.

Ubuntu를 사용하여 로컬호스트에서 작업할 수 있게 된 프로세스는 다음과 같습니다(물론 myUser를 사용자로 대체해야 합니다.모르면 보여줘야 합니다).

  • www-data 그룹에 나를 포함시킵니다(sudo 없이도 파일에 액세스하고 편집할 수 있도록 하기 위해):

    sudo usermod -aG www-data myUser
    
  • 자신과 이 그룹을 파일 소유자로 설정합니다.

    sudo chown -R myUser:www-data /var/www/html
    
  • 그룹의 메이저 권한을 설정합니다(그룹도 기입할 필요가 있습니다).

    sudo find . -type f -exec chmod 664 {} \;
    sudo find . -type d -exec chmod 775 {} \;
    
  • 다음으로 이 행을 config에 추가합니다.php

    define('FS_METHOD', 'direct');
    

먼저 설치 폴더로 이동합니다(예:

cd /Applications/XAMPP/xamppfiles/

이제 htdocs 디렉토리를 변경합니다.

sudo chown -R daemon htdocs

프롬프트가 뜨면 root 비밀번호를 입력하고 chmod 호출로 종료합니다.

sudo chmod -R g+w htdocs

나도 같은 문제에 직면해 있었어!아래 코드를 wp-config.php 파일에 (어느 행이든) 추가해서 동작하고 있습니다!

define('FS_METHOD', 'direct');
define('FS_METHOD', 'direct'); 

이것을 wp-config에 추가합니다.php

그래도 문제가 해결되지 않으면 플러그인 폴더의 권한을 755로 설정해 볼 수 있습니다.또는 Linux에서는 이 명령으로 설정할 수 있습니다.

Chmod -R 755

Niels가 언급한 바와 같이, 이 문제는 서버 프로세스 사용자가 Wordpress 폴더에 쓸 수 없기 때문입니다.

하지만 여기 많은 기사들이 설명하지 않는 것이 있다.이것은 nginx 프로세스가 아닌 php 프로세스의 소유자입니다.nginx 소유자를 변경하려고 해도 해결되지 않습니다.

하려면 , 「실행해 」를 실행해 보세요.ps aux processfpm을 하고 있는지 합니다.그런 다음 사용자가 워드프레스 폴더의 소유자와 동일한 사용자이거나 적어도 폴더에 쓸 수 있는지 확인합니다.사용자가 쓸 수 없는 경우 폴더의 권한 및/또는 소유권을 변경하거나 폴더에 쓸 수 있는 공통 그룹에 두 사용자(서버 소유자 및 워드프레스 폴더 소유자)를 포함하거나 폴더에 쓸 수 있는 사용자에게 php.ini "user" 속성을 변경해야 합니다.

파일 소유권 변경은 작동했지만 워드프레스 웹 사이트에서 로그아웃하고 다시 로그인한 후에만 작동했습니다.Apache 서버도 다시 시작했지만 그럴 필요는 없습니다.

언급URL : https://stackoverflow.com/questions/17922644/wordpress-asking-for-my-ftp-credentials-to-install-plugins

반응형