Extra Form
PHP PHP 8.0
CMS Rhymix 2.1

 

rhymix.cnf 파일 저장 후 디포트 파일을 아래처럼 수정해줬습니다.

 

include snippets/rhymix.conf; 추가 및 

 

location / {

try_files $uri $uri/ =404;

if (!-e $request_filename) {

rewrite ^.*$ /index.php last;

 }

}

 

location / {

}

 

를 제거해 줬습니다.

 

이후 디폴트 파일 내용입니다.

 

 

# Default HTTPS server configuration

server {

listen 443 ssl http2 default_server;

listen [::]:443 ssl http2 default_server;

server_name smrte.or.kr;

 

client_max_body_size 32m;

 

ssl_certificate /etc/letsencrypt/live/smrte.or.kr/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/smrte.or.kr/privkey.pem;

ssl_trusted_certificate /etc/letsencrypt/live/smrte.or.kr/fullchain.pem;

 

include /etc/nginx/snippets/ssl.conf;

include snippets/rhymix.conf;

 

root /var/www/html;

index index.php index.html index.htm index.nginx-debian.html;

 

location ~ \.php$ {

include snippets/fastcgi-php.conf;

fastcgi_pass unix:/run/php/php8.0-fpm.sock;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

fastcgi_read_timeout 300;

}

location ~ /\.ht {

deny all;

}

 

# HTTPS www. server configuration

server {

listen 443 ssl http2;

listen [::]:443 ssl http2;

server_name www.smrte.or.kr;

ssl_certificate /etc/letsencrypt/live/smrte.or.kr/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/smrte.or.kr/privkey.pem;

ssl_trusted_certificate /etc/letsencrypt/live/smrte.or.kr/fullchain.pem;

include /etc/nginx/snippets/ssl.conf;

return 301 https://smrte.or.kr$request_uri;

}

# Default server configuration

server {

listen 80;

listen [::]:80 default_server;

server_name smrte.or.kr;

include /etc/nginx/snippets/letsencrypt.conf;

return 301 https://smrte.or.kr$request_uri;

}

# HTTP - CNAME Connect www.smrte.or.kr to smrte.or.kr

server {

listen 80;

listen [::]:80;

server_name www.smrte.or.kr;

include /etc/nginx/snippets/letsencrypt.conf;

return 301 https://www.smrte.or.kr$request_uri;

}

 

}

 

 

체크해 보니 아래와 같은 메세지가 뜨네요

 

$ sudo nginx -t

 

2024/07/21 15:49:52 [emerg] 17105#17105: open() "/snippets/rhymix.conf" failed (2: No such file or directory) in /etc/nginx/sites-enabled/default:14

nginx: configuration file /etc/nginx/nginx.conf test failed

 

rhymix.conf 파일 내용은 아래와 같습니다.

 

# block direct access to templates, XML schemas, config files, dotfiles, environment info, etc.
location ~ ^/modules/editor/(skins|styles)/.+\.html$ {
    # pass
}
location ~ ^/(addons|common/tpl|files/(faceOff|ruleset)|(m\.)?layouts|modules|plugins|themes|widgets|widgetstyles)/.+\.(html|xml|blade\.php)$ {
    return 403;
}
location ~ ^/files/(attach|config|cache)/.+\.(ph(p|t|ar)?[0-9]?|p?html?|cgi|pl|exe|[aj]spx?|inc|bak)$ {
    return 403;
}
location ~ ^/files/(env|member_extra_info/(new_message_flags|point))/ {
    return 403;
}
location ~ ^/(\.git|\.ht|\.travis|codeception\.|composer\.|Gruntfile\.js|package\.json|CONTRIBUTING|COPYRIGHT|LICENSE|README) {
    return 403;
}

# fix incorrect relative URLs (for legacy support)
location ~ ^/(.+)/(addons|files|layouts|m\.layouts|modules|widgets|widgetstyles)/(.+) {
    try_files $uri $uri/ /$2/$3;
}

# fix incorrect minified URLs (for legacy support)
location ~ ^/(.+)\.min\.(css|js)$ {
    try_files $uri $uri/ /$1.$2;
}

# fix download URL when other directives for static files are present
location ~ ^/files/download/ {
    try_files $uri $uri/ /index.php$is_args$args;
}

# all other short URLs
location / {
    try_files $uri $uri/ /index.php$is_args$args;
}

 

 

에러메시지를 보면 include snippets/rhymix.conf; 가 문제인것 같은데 어떻게 수정해야할지 잘 모르겠습니다.

 

 

  • Lv4
    $ service nginx restart
    ==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ====
    Authentication is required to restart 'nginx.service'.
    Authenticating as: Ubuntu (ubuntu)
    Password:
    polkit-agent-helper-1: pam_authenticate failed: Authentication failure
    ==== AUTHENTICATION FAILED ====
    Failed to restart nginx.service: Access denied
    See system logs and 'systemctl status nginx.service' for details.


    현상태에서 서버 재시작을 시도해 봤는데 에러가 발생 합니다. 이것도 추가로 올려 봅니다.
  • Lv4
    /var/log/nginx/error.log 에러 로그입니다

    2024/07/20 23:03:49 [alert] 9568#9568: aborting
    2024/07/21 00:00:38 [alert] 10458#10458: *9 open socket #8 left in connection 5
    2024/07/21 00:00:38 [alert] 10458#10458: aborting
  • Lv4 Lv37

    왜 아직도 ubuntu 계정으로 작업하고 계시죠? nginx는 root 외에는 아무도 터치 못합니다.

    ubuntu 계정으로는 뭘 해도 에러만 나는 것이 정상입니다.

     

    경로도 어떤 것은 /etc/nginx/snippets/.... 로 지정하고 어떤 것은 그냥 snippets로 지정하고

    절대경로 상대경로 사용에 일관성이 없는데, 한 가지로 통일해 보세요.

  • Lv37 Lv4
    이전 글 퍼미션 문제로 찾아보니 ssh로 접속하면 root 계정으로 로그인이 안된다고 본것 같아서요. 이부분을 수정하면 로그인은 되지만 나중에 보안 문제가 생긴다는걸 본것 같아서였습니다. 이전에 ubuntu로 모두 설치가 되었던것 같은데 몇 년전 설정이라 제 기억의 오류가 있을수 있습니다. 일단 경로들 모두 수정해 보고 root로 접속하는 방법을 찾아서 시도해 보겠습니다.
  • Lv4 Lv37

    ubuntu 계정으로 작업하시려면 모든 명령 앞에 빠짐없이 sudo를 붙여서 root 권한을 획득해야 합니다. 아니면 일단 ubuntu로 접속한 후 su를 사용해서 root로 전환하거나요. ubuntu 계정 단독으로는 아무 것도 못 합니다.

  • Lv37 Lv4

    계속 sudo로 진행했었습니다. 지금보니 리스타트에 빠트렸었군요. 간혹 su 로 들어가서 작업도 했는데 su로 root 접속 해보겠습니다. 일단 루트는 모두 통일 시켰는데 아직 해결은 못했습니다.

  • Lv37 Lv4

    제가 3년 전에 엑스이타운에 썻던 글중에 디폴트 파일 내용 올려둔게 있었는데 그걸 복사해서 넣으니 바로 연결이 되네요. 무사히 설치 파일 안착했습니다. 감사 합니다. 혹시 도움 되실 분 있을까해서 내용 복사해서 올려 두겠습니다.

    --------- 수정할 내용이 있어서 내용 수정 했습니다. ------------


    (도메인 넣을곳)에 본인의 도메인 쓰시고 중간에 php8.0-fpm.sock; 이곳에 자신의 php 버전 맞게 넣으세요.

    # Default HTTPS server configuration

    server {

    listen 443 ssl http2 default_server;

    listen [::]:443 ssl http2 default_server;

    server_name (도메인넣는곳);

    ssl_certificate /etc/letsencrypt/live/(도메인넣는곳)/fullchain.pem;

    ssl_certificate_key /etc/letsencrypt/live/(도메인넣는곳)/privkey.pem;

    ssl_trusted_certificate /etc/letsencrypt/live/(도메인넣는곳)/fullchain.pem;

    include /etc/nginx/snippets/ssl.conf;

    include /etc/nginx/snippets/rhymix.conf;


     

    root /var/www/html;

    index index.php index.html index.htm index.nginx-debian.html;

    location ~ \.php$ {

    include snippets/fastcgi-php.conf;

    fastcgi_pass unix:/run/php/php8.0-fpm.sock;

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    include fastcgi_params;

    fastcgi_read_timeout 300;

    # 502 에러를 없애기 위한 proxy 버퍼 관련 설정입니다.

    proxy_buffer_size 128k;

    proxy_buffers 4 256k;

    proxy_busy_buffers_size 256k;

     

    # 502 에러를 없애기 위한 fastcgi 버퍼 관련 설정입니다.

    fastcgi_buffering on;

    fastcgi_buffer_size 16k;

    fastcgi_buffers 16 16k;

     

    # 최대 timeout 설정입니다.

    fastcgi_connect_timeout 600s;

    fastcgi_send_timeout 600s;

     

    # 이 아래 설정은 PHP 성능 향상을 위한 옵션입니다. 추가해 주시면 좋습니다.

    sendfile on;

    tcp_nopush off;

    keepalive_requests 0;

    }

    location ~ /\.ht {

    deny all;

    }

    }

    # HTTPS www. server configuration

    server {

    listen 443 ssl http2;

    listen [::]:443 ssl http2;

    server_name www.(도메인넣는곳);

    ssl_certificate /etc/letsencrypt/live/(도메인넣는곳)/fullchain.pem;

    ssl_certificate_key /etc/letsencrypt/live/(도메인넣는곳)/privkey.pem;

    ssl_trusted_certificate /etc/letsencrypt/live/(도메인넣는곳)/fullchain.pem;

    include /etc/nginx/snippets/ssl.conf;

    location / {

    return 301 https://(도메인넣는곳)$request_uri;

    }

    }

    # Default server configuration

    server {

    listen 80;

    listen [::]:80 default_server;

    server_name (도메인넣는곳);

     

    include /etc/nginx/snippets/letsencrypt.conf;

    location / {

    return 301 https://(도메인넣는곳)$request_uri;

    }

    }

    # HTTP - CNAME Connect www.(도메인넣는곳) to (도메인넣는곳)

    server {

    listen 80;

    listen [::]:80;

    server_name www.(도메인넣는곳);

    include /etc/nginx/snippets/letsencrypt.conf;

    location / {

    return 301 https://www.(도메인넣는곳)$request_uri;

    }

    }

  • Lv4
    include /etc/nginx/snippets/rhymix.conf;

    내용이 빠져 있어서 추가하고 나머지 부분 수정해서 올렸습니다.