내가 사용하고 워드 프레스를 에만 사용 내 라이브 서버에 SFTP를 사용하여 SSH의 키를.
플러그인을 설치하고 업그레이드하고 싶지만 플러그인을 설치하려면 FTP 로그인을 입력해야합니다. WordPress에서 전체 프로세스를 처리하지 않고 파일을 수동으로 업로드하여 플러그인을 설치하고 업그레이드하는 방법이 있습니까?
VPS
:이 시도해야 stackoverflow.com/a/44137965/3160597
내가 사용하고 워드 프레스를 에만 사용 내 라이브 서버에 SFTP를 사용하여 SSH의 키를.
플러그인을 설치하고 업그레이드하고 싶지만 플러그인을 설치하려면 FTP 로그인을 입력해야합니다. WordPress에서 전체 프로세스를 처리하지 않고 파일을 수동으로 업로드하여 플러그인을 설치하고 업그레이드하는 방법이 있습니까?
VPS
:이 시도해야 stackoverflow.com/a/44137965/3160597
답변:
플러그인 또는 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');
여기에 설명 된 권한 :
getmyuid
876 라인 의 사용은 스크립트 실행자가 아닌 스크립트 소유자의 UID를 반환하기 때문에 여기서 부정확합니다. 나는 그것이되어야한다고 믿는다 posix_getuid
.
print_r(posix_getpwuid(posix_geteuid()));
수 있습니다 wp-config
. 파일에 코드를 추가 할 수 있습니다 .
chown -R www-data wordpress/wp-content
나를 위해 작동 chown -R www-data wordpress
하지 않았지만
이전에 언급했듯이 더 이상 파마 수정 프로그램이 작동하지 않습니다. 그에 따라 파마를 변경하고 다음을 넣어야합니다 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
폴더에는 755
btw 권한이 있습니다.
TL; DR 버전 :
# chown -R apache:apache wordpress
# chmod u+wrx wordpress/*
wp-config.php
추가define('FS_METHOD', 'direct');
wp-content/
, wp-content/plugins/
.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 옵션이 제공됩니다.
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
습니다. 그러나이 방법은 다른 곳에서 참조되는 것을 보았습니다.
참고 문헌 :
일반적으로 wp-content\plugins
디렉토리에 플러그인을 업로드 할 수 있습니다 . SFTP를 통해이 디렉토리에 액세스 할 수 없으면 문제가 발생할 수 있습니다.
터미널에서 다음 코드를 실행
sudo chown -R www-data /var/www
자세한 내용은 FTP 액세스없이 Ubuntu 설치 플러그인에서 Wordpress를 방문하십시오.
sudo chown -R www-data /var/www/html
wp-config에 다음 코드를 추가하십시오
define('FS_METHOD', 'direct');
FS_METHOD 는 파일 시스템 메소드를 강제합니다. 직접, ssh2, ftpext 또는 ftpsocket이어야합니다. 일반적으로 업데이트 문제가 발생한 경우에만 변경해야합니다. 변경해도 도움이되지 않으면 다시 변경하거나 제거하십시오. 대부분의 상황에서 자동으로 선택된 방법이 그렇지 않으면 'ftpsockets'로 설정하면 작동합니다.
(기본 환경 설정) "direct" 는 PHP 내에서 Direct File I / O 요청을 사용하도록 강제합니다. 제대로 구성되지 않은 호스트에서 보안 문제가 발생하기 때문에 적절한 경우 자동으로 선택됩니다.
(2 차 기본 설정) "ssh2" 는 SSH PHP 확장이 설치된 경우 강제로 사용합니다.
(3 차 환경 설정) "ftpext" 는 FTP 액세스를위한 FTP PHP 확장을 강제로 사용하는 것입니다.
(4 번째 기본 설정) "ftpsockets" 는 FTP 액세스를 위해 PHP 소켓 클래스를 사용합니다.
자세한 내용을 보려면 다음 사이트를 방문하십시오 : http://codex.wordpress.org/Editing_wp-config.php#WordPress_Upgrade_Constants
당신은에있는 경우 우분투 , 나에게 소유권을주고있다 근무 빠른 솔루션 아파치 과 같이 사용자 (기본적으로 www가 데이터) :
cd your_wordpress_directory
sudo chown -R www-data wp-content
sudo chmod -R 755 wp-content
WordPress 2.7에서는 zip 파일을 직접 업로드 할 수 있습니다 (플러그인 페이지 하단에 링크가 있음). FTP 액세스가 필요하지 않습니다. 이것은 2.7의 새로운 기능이며, 아직 테마가 아닌 플러그인에서만 작동합니다.
오래된 스레드를 부활 시켰지만 SSH SFTP Updater Support 라는 환상적인 새로운 플러그인 이있어 wp-config.php
파일 을 편집 할 필요없이 SFTP 기능을 추가 합니다. 또한 Wordpress의 SFTP 구현은 서버에서 종종 활성화되지 않는 다소 모호한 PHP 모듈에 의존합니다. 이 플러그인은 다른 PHP SFTP 플러그인을 패키지화하므로 Apache 측에서 아무것도 구성 할 필요가 없습니다.
SFTP 지원을 작동시키는 데 많은 문제가 발생했습니다.이 플러그인은 모든 문제를 해결했으며 환상적입니다.
이 시도
1) wp-config.php
추가define('FS_METHOD', 'direct');
2) wp-content
디렉토리를 777
쓰기 가능으로 설정하십시오 .
3) 이제 플러그인을 설치하십시오.
stereointeractive의 답변은 모든 옵션을 다룹니다. FTP를 사용하는 다른 방법을 언급하고 싶었습니다. FTP 액세스를 허용하지 않는 이유는 보안 때문이라고 생각합니다. 이러한 보안 문제를 해결하는 한 가지 방법은 127.0.0.1에서만 FTP 서버 청취를 실행하는 것입니다.
이를 통해 WordPress 내에서 FTP를 사용할 수 있으며 다른 지역에 노출시키지 않으면 서 플러그인을 설치할 수 있습니다. Joomla!와 같은 널리 사용되는 다른 웹 응용 프로그램에도 적용 할 수 있습니다. 그리고 Drupal. 이것이 BitNami 어플라이언스 및 클라우드 서버 로 수행하는 작업이며 매우 잘 작동합니다.
또한 SSH SFTP Updater Support 플러그인을 권장합니다 . 방금 내 문제를 모두 해결했습니다 ... 특히 플러그인을 관리자를 통해 삭제하는 것과 관련하여. 일반적인 방법으로 설치하면 다음에 FTP에 대한 자세한 내용을 WordPress에서 묻는 메시지가 표시 될 때 개인 SSH 키를 복사 / 붙여 넣거나 PEM 파일을 업로드 할 수있는 추가 필드가 있습니다.
내가 가진 문제는 키를 기억하도록하는 것입니다 (두 가지 방법 모두 시도). 플러그인을 삭제해야 할 때마다 찾아서 입력해야한다는 생각이 마음에 들지 않습니다. 그러나 적어도 지금은 확실한 해결책입니다.
예, WordPress에 플러그인을 직접 설치하십시오.
다른 옵션
나는 많은 사람들이 777에 권한을 설정하도록 권장하는 것을 보았습니다. 나는 2 일 전에 같은 문제가 있었고 wp-content에 이것을 추가했습니다.
define('FS_METHOD', 'direct');
과
플러그인 폴더에 대한 권한을 775로 설정
이렇게하면 FTP 액세스 로그인 / 암호를 묻는 문제가 해결되었습니다.
그 전에 플러그인 폴더에 .zip 파일을 추가하여 플러그인을 수동으로 추가 한 다음 wp-admin/plugins
설치하여 설치해야했습니다.
방법 1 : 이것을 설정할 수 있습니다 : 1. wp-config.php에서이 줄을 작성해야합니다.
define('FS_METHOD', 'direct');
참고 :이를 define ( 'DB_CHARSET', 'utf8mb4') 뒤에 넣으십시오.
wp-content 권한 또는 재귀 적으로 777 전체 파일 권한을 설정하면 filezilla를 통해 부여 할 수 있습니다. 디렉토리> 권한> 쓰기-읽기 및 실행 확인 및 하위 디렉토리로의 재귀 확인을 클릭하십시오.
방법 2 :
또는 이것을 설정할 수도 있습니다
define("FTP_HOST", "localhost");
define("FTP_USER", "yourftpusername");
define("FTP_PASS", "yourftppassword");
Note: put this after define( 'DB_CHARSET', 'utf8mb4' ).
ftp 또는 SFTP 연결 또는 chmod 777을 설정하는 것은 로컬 환경 이외의 다른 방법으로는 좋지 않은 방법입니다. SFTP 방법을 열면 필요하지 않은 더 많은 보안 위험이 발생합니다.
필요한 것은 해당 디렉토리의 소유자가 / wp-content / uploads & / wp-content / plugins /에 대한 쓰기 가능한 권한입니다. (linux ls -la는 소유권을 보여줄 것입니다).
실행되는 기본 아파치 사용자는 www-data입니다.
chmod 777을 사용하면 컴퓨터의 모든 사용자가 apache / php 스레드 사용자뿐만 아니라 해당 파일을 편집 할 수 있습니다.
SFTP를 아직 사용하지 않는 경우 외부 소스에서 다른 가능한 실패 지점이 발생합니다. 목표를 완료하기 위해 apache / php 프로세스를 실행하는 로컬 사용자 만 액세스해야합니다.
이 요점을 아는 사람을 보지 못했기 때문에 온라인에서 지속적인 WP 보안 문제를 해결하는 데 도움이되는 정보를 제공 할 것이라고 생각했습니다.
간단한 방법은 다음과 같습니다.
다음 명령을 실행하십시오.
이를 통해 mod_rewrite 모듈을 Apache 용으로 사용할 수 있습니다
$sudo a2enmod rewrite
이 명령은 폴더의 소유자를 www-data로 변경합니다
$sudo chown -R www-data [Wordpress Folder Location]
위의 명령을 실행 한 후 FTP없이 테마를 설치할 수 있습니다.
sudo chown -R www-data [Wordpress Folder Location]
/ wp-content 디렉토리에 대한 쓰기 권한이없는 경우 WordPress에서 WordPress 관리 대시 보드를 통해 플러그인을 업로드 할 수없는 유일한 이유입니다. 워드 프레스 디렉토리 / wp-content에는 0755 권한 수준이 필요합니다. 폴더의 권한 수준을 변경하는 방법에는 여러 가지가 있습니다.
cPanel을 사용하여 파일 권한 변경 :
파일 관리자로 이동하여 wordpress 웹 사이트가있는 공개 HTML 폴더를 열거 나 웹 사이트가 다른 폴더에있는 경우 사이트 루트 디렉토리를여십시오. WordPress 루트 디렉토리에서 wp-content 폴더로 이동하십시오. wp-content 폴더 행의 끝에는 마지막 상자에이 폴더에 대한 파일 권한이 있습니다. 폴더 권한 수준을 0755로 편집해야합니다.
SSH 터미널을 사용하여 파일 권한 변경 :
터미널에서 WordPress 사이트의 루트를 찾은 경우 / var / www / html이므로 WordPress 루트 디렉토리로 이동하려면 다음 명령을 입력하십시오.
cd /var/www/html
이제 필요한 폴더 / wp-content가있는 WordPress 루트 디렉토리에 있습니다. 파일 권한을 변경하려면 다음 명령을 입력하십시오.
sudo chmod wp-content 755
/ wp-content 디렉토리 파일 권한이 0755로 변경됩니다.
이제 FTP를 통해 워드 프레스 플러그인을 업로드 할 때 오류 메시지가 표시되지 않습니다.
SSH를 사용하여 플러그인을 설치하는 가장 좋은 방법은 WPCLI입니다.
WP CLI 명령을 사용하려면 SSH 액세스가 필수입니다. 사용하기 전에 WP CLI가 호스팅 서버 또는 시스템에 설치되어 있는지 확인하십시오.
확인 방법 : wp --version
[설치된 wp cli 버전이 표시됩니다]
설치되지 않은 경우 설치 방법 : WP-CLI를 설치하기 전에 환경이 최소 요구 사항을 충족하는지 확인하십시오.
UNIX와 유사한 환경 (OS X, Linux, FreeBSD, Cygwin); Windows 환경에서 제한된 지원. PHP 5.4 이상 WordPress 3.7 이상. 최신 WordPress 릴리스 이전 버전은 기능이 저하 될 수 있습니다
위의 사항이 만족되면 다음 단계를 따르십시오. 참조 URL : 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 ]
이제 WP CLI를 설치할 준비가되었습니다.
이제 다음 명령을 사용하여 WordPress.org에서 사용 가능한 플러그인을 설치할 수 있습니다.
wp install plugin plugin-slug
wp delete plugin plugin-slug
wp deactivate plugin plugin-slug
참고 : wp cli는 wordpress.org에서 사용 가능한 플러그인 만 설치할 수 있습니다
wp-content/plugins/
wp 대시 보드에서 추출 한 다음 플러그인 탭으로 이동하여 활성화하십시오.