[wordpress] FTP 액세스를 제공하지 않고 WordPress 플러그인을 설치 / 업데이트 할 수 있습니까?

내가 사용하고 워드 프레스를 에만 사용 내 라이브 서버에 SFTP를 사용하여 SSH의 키를.

플러그인을 설치하고 업그레이드하고 싶지만 플러그인을 설치하려면 FTP 로그인을 입력해야합니다. WordPress에서 전체 프로세스를 처리하지 않고 파일을 수동으로 업로드하여 플러그인을 설치하고 업그레이드하는 방법이 있습니까?



답변

플러그인 또는 WordPress 업데이트를 /wp-content직접 작성할 수없는 경우 설치하는 동안 WordPress는 FTP 연결 정보를 묻는 메시지 만 표시합니다 . 그렇지 않으면 웹 서버에 필요한 파일에 대한 쓰기 권한이 있으면 업데이트 및 설치가 자동으로 처리됩니다. 이 방법을 사용하려면 FTP / SFTP 또는 SSH 액세스 권한이 필요하지 않지만 웹 서버에서 특정 파일 권한을 설정해야합니다.

다양한 방법을 순서대로 시도하고 직접 및 SSH 방법을 사용할 수없는 경우 FTP로 대체됩니다.

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

워드 프레스는 /wp-content디렉토리에 임시 파일을 쓰려고 시도합니다 . 이것이 성공하면 파일의 소유권을 자체 uid와 비교하고 일치하는 것이 있으면 플러그인, 테마 또는 업데이트를 설치하는 ‘직접적인’방법을 사용할 수 있습니다.

어떤 이유로 당신이, 당신은 상수를 정의 할 수있는 파일 시스템 방법 사용에 대한 자동 검사에 의존하지 않으려면 지금, 'FS_METHOD'당신의 wp-config.php하나 인 파일, 'direct', 'ssh', 'ftpext' or 'ftpsockets'그리고 그 방법을 사용합니다. 이를 ‘직접’으로 설정했지만 웹 사용자 (웹 서버가 실행되는 사용자 이름)에 적절한 쓰기 권한이없는 경우 오류가 발생합니다.

요약하면, 웹 서버에 쓰기 권한이 있도록 wp-content에 대한 권한을 변경하지 않으려면 (또는 변경할 수없는 경우) wp-config.php 파일에 추가하십시오.

define('FS_METHOD', 'direct');

여기에 설명 된 권한 :


답변

이전에 언급했듯이 더 이상 파마 수정 프로그램이 작동하지 않습니다. 그에 따라 파마를 변경하고 다음을 넣어야합니다 wp-config.php.

define('FS_METHOD', 'direct');


답변

wp-content폴더 의 권한을 절대로 설정해서는 안된다는 것을 추가하고 싶었 습니다 777.

이것이 내가해야 할 일입니다.

1) 다음과 같이 wordpress 폴더의 소유권을 (재귀 적으로) 아파치 사용자에게 설정했습니다.

# chown -R apache wordpress/

2) 워드 프레스 폴더의 그룹 소유권을 (재귀 적으로) 아파치 그룹으로 변경했습니다.

# chgrp -R apache wordpress/

3) 다음과 같이 소유자에게 디렉토리에 대한 모든 권한을 부여하십시오.

# chmod u+wrx wordpress/*

그리고 그 일을했다. 내 wp-content폴더에는 755btw 권한이 있습니다.

TL; DR 버전 :

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


답변

  1. wp-config.php추가define('FS_METHOD', 'direct');
  2. 디렉토리 쓰기 서버를 확인 wp-content/, wp-content/plugins/.
  3. 플러그인을 설치하십시오 (플러그인 디렉토리를 디렉토리에 복사하십시오 wp-content/plugins).

버전 3.2.1에서 작업


답변

wp-config.php파일을 열고 다음 줄을 추가하십시오.

define('FS_METHOD', 'direct');

이것은 나를 위해 일하고 있습니다 … 감사합니다


답변

wp-config.php 의 빠른 변경

define('FS_METHOD','direct');

ftp없이 워드 프레스 업데이트 즐기십시오 !

다른 방법 :

WordPress 업데이트를 쉽게하기 위해이 방법이 작동하지 못하게하는 호스트가 있습니다. 다행히도이 해충이 FTP 사용자 이름과 암호를 묻는 메시지를 표시하지 못하게하는 다른 방법이 있습니다.

wp-config.php 파일에서 MYSQL 로그인 선언 후에 다음을 추가하십시오.

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


답변

업데이트 및 테마 업로드에 SSH2를 사용하려면 SSH 키를 생성하고 PHP SSH 모듈을 설치해야합니다. 그러면 WordPress에서 SSH2를 사용할 수 있음을 감지하고 업로드 / 업그레이드를 수행 할 때 다른 옵션 (SSH2)이 표시됩니다.

1.) 데비안 용 PHP 모듈이 설치되어 있는지 확인하십시오 :

sudo apt-get install libssh2-php

2.) SSH 키 생성, 암호 추가는 선택 사항입니다.

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

3.) WordPress가 해당 키에 액세스 할 수 있도록 권한을 변경하십시오.

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

이제 업로드 / 업그레이드 / 플러그인을 수행 할 때 SSH2 옵션이 제공됩니다.
WP SSH 연결

4.) 추가 편의를 위해 기본값을 설정할 수 wp-config.php있으며 WordPress 업로드 창에 SSH 자격 증명이 미리 채워집니다.

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

‘암호 구문’은 ssh-kengen; 동안 암호 구를 설정하지 않은 경우 선택 사항입니다 . 그런 다음 추가하지 마십시오wp-config.php

이것은 내 문제를 해결했습니다. 그리고 나는 전혀 할 필요가 없었 chown습니다. 그러나이 방법은 다른 곳에서 참조되는 것을 보았습니다.

참고 문헌 :