WordPress 테마 폴더에 대한 심볼릭 링크가 작동하지 않는 것 같습니다.

WordPress 테마 폴더에 대한 심볼릭 링크가 작동하지 않는 것 같습니다.

다음을 사용하여 나만의 맞춤형 WordPress 테마를 만들려고 합니다.밑줄 tw.

주제 위치는 다음과 같습니다./home/j/code/mechanic360/wordpress_theme/mechanic360/theme

게다가nginx지원되는 로컬 WordPress 사이트는 다음 위치에 있습니다./var/www/mechanic360/

다음 명령을 사용하여 심볼릭 링크를 만들었습니다.

sudo ln -s /home/j/code/mechanic360/wordpress_theme/mechanic360/theme /var/www/mechanic360/wp-content/themes/mechanic360

디렉토리의 내용을 나열하면 wp-content/themes다음이 표시됩니다.

~ ❯ ls /var/www/mechanic360/wp-content/themes                                                                                                                                                                              ✘ INT
Permissions Size User Date Modified Name
.rw-r--r--    28 http 15 Oct 20:51  index.php
lrwxrwxrwx@   61 root 16 Oct 16:06  mechanic360 -> /home/j/code/mechanic360/wordpress_theme/mechanic360/theme
drwxr-xr-x     - http 15 Oct 20:51  twentynineteen
drwxr-xr-x     - http 15 Oct 20:51  twentytwenty
drwxr-xr-x     - http 15 Oct 20:51  twentytwentyone

실행 중인 WordPress 인스턴스에서 대시보드를 통해 테마로 이동하면 나열된 새 테마가 표시되지 않습니다.

권한 문제일 수 있고 http사용 중인 사용자가 nginx내 홈 폴더의 테마 디렉터리에 액세스할 수 없다고 생각하여 다음을 실행했습니다.

setfacl -m u:http:rwx ~/code/mechanic360/wordpress_theme/mechanic360/theme

안타깝게도 그것도 도움이 되지 않습니다. 여전히 WordPress 대시보드에서 내 테마를 볼 수 없습니다.

nginx 구성

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;
    
        location / {
            root   /usr/share/nginx/html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }

    include sites-enabled/*;
}

그런 다음 아래 sites-enabled내 사이트의 구성 파일은 다음과 같습니다.

# Upstream to abstract backend connection(s) for php
upstream php {
    server unix:/run/php-fpm/php-fpm.sock;
    server 127.0.0.1:9000;
}

server {
    ## Your website name goes here.
    server_name mechanic360.local;
    ## Your only path reference.
    root /var/www/mechanic360;
    ## This should be in your http block and if it is, it's not needed here.
    index index.php;

    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }

    location = /robots.txt {
        allow all;
        log_not_found off;
        access_log off;
    }

    location / {
        # This is cool because no php is touched for static content.
        # include the "?$args" part so non-default permalinks doesn't break when using query string
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
        include fastcgi_params;
        fastcgi_intercept_errors on;
        fastcgi_pass php;
        #The following parameter can be also included in fastcgi_params file
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
        expires max;
        log_not_found off;
    }
}

보시다시피 저는 없어요disable_symlinks 옵션설정, 기본값은 입니다 off.

내가 무엇을 놓치고 있나요?

관련 정보