Nginx를 다른 사용자로 실행하면 WordPress를 업데이트할 때 "업데이트를 설치할 수 없습니다..." 오류가 반환됩니다.

Nginx를 다른 사용자로 실행하면 WordPress를 업데이트할 때 "업데이트를 설치할 수 없습니다..." 오류가 반환됩니다.

이것은 Nginx를 사용자 정의하려는 첫 번째 시도이며 이미 Digital Ocean Droplet에서 실행 중입니다. 내 사이트 파일은 에 있습니다 /sites/rob_app.

  • 모든 것이 속한다rob
  • 모든 파일은0644
  • 모든 디렉토리는0755

robNginx가 실행 중인 사용자를 변경했습니다 nginx.conf. 사이트가 실행되지만 WordPress나 플러그인을 업데이트하려고 하면 다음 오류가 발생합니다.

Unpacking the update…

The update cannot be installed because some files could not be copied. This is usually due to inconsistent file permissions.: wp-admin/includes/update-core.php

Installation failed.

Nginx 오류 로그를 보면 파일 권한 문제처럼 들리지만 Nginx를 실행 중이고 rob파일 소유자는 다음과 같습니다 rob.

2023/01/27 01:08:51 [error] 11253#11253: *6 FastCGI sent in stderr: "PHP message: PHP Warning:  copy(/sites/rob_app/subdomains/vril/public/wp-admin/includes/update-core.php): Failed to open stream: Permission denied in /sites/rob_app/subdomains/vril/public/wp-admin/includes/class-wp-filesystem-direct.php on line 309" while reading upstream, client: (redacted)), server: vril.robr.app, request: "POST /wp-admin/update-core.php?action=do-core-reinstall HTTP/2.0", upstream: "fastcgi://unix:/var/run/php/php8.1-fpm.sock:", host: "(redacted)", referrer: "(redacted)/wp-admin/update-core.php"

모든 사이트 파일의 파일 소유자를 으로 변경 www-data하고 Nginx가 실행 중인 사용자를 변경 하면 www-dataWordPress와 플러그인을 성공적으로 업데이트할 수 있습니다 rob./sites/사용하지 않는 경우 sudo.

이유를 알 수가 없어요www-data파일 소유자 www-data와 같은 Nginx 취소, 하지만rob파일 소유자 로 robNginx를 실행하십시오.(스위치 간에 파일 권한이 변경되지 않은 경우에도 마찬가지입니다).

내 거 nginx.conf:

user rob;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
    worker_connections 1024;
}

http {
    sendfile on;
    tcp_nopush on;
    types_hash_max_size 2048;
    server_tokens off; 

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
    ssl_prefer_server_ciphers on;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;

    # https://sysopstechnix.com/7-tips-for-nginx-performance-tuning/
    client_body_buffer_size 10K;
    client_header_buffer_size 1k;
    client_max_body_size 8m;
    large_client_header_buffers 4 4k;   
    ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

    add_header Last-Modified "";    
}

답변1

Nginx의 사용자:그룹과 일치하면 FastCGI의 사용자:그룹을 변경해야 했고 모든 것이 작동했습니다.

답변2

WP-CLI를 사용하여 워드프레스 코어, 플러그인, 테마를 확인하고 업그레이드할 수 있습니다.

wp core check-update 


wp core update

관련 정보