콘텐츠로 건너뛰기

워드프레스 고유주소 글이름 변경 404 오류 해결 + 플러그인 설치 설정

워드프레스 고유주소 글이름 변경 후 오류에 대한 해결책을 제시합니다. 특히 AWS 인스턴스로 워드프레스를 설치하고 난 후 고유주소를 글 이름으로 바꾸고 나서 워드프레스 내의 글을 읽을 수도 글 발행을 할 수 없는 문제에 대한 해결책을 제시합니다. AWS로 워드프레스 설치후 플러그인이 설치 안되는 문제의 해결 방법도 함께 소개합니다.

.htaccess 파일 업데이트 후 SSH에서 권한 설정 변경

고유주소 글이름 변경

먼저 워드프레스의 설정에서 고유주소를 글 이름으로 변경 합니다.

SSH(Xshell 이나 Termius)를 통해서 .htaccess 파일의 권한 설정 변경

글 이름을 워드프레스에서 .htaccess 파일의 강제로 설정을 바꿔서 고유주소를 이 부분을 사용자만 .htaccess 파일을 수정할 수 있도록 apache 서버의 설정을 바꿔야 합니다. Xshell이나 Termius를 통해서 SSH에 로그인 한 후 아래에 이어지는 내용을 순서대로 진행하시면 됩니다.

404 오류 해결 ssh 접속
Xshell 로그인

소유자와 그룹 변경

워드프레스가 /var/www/html 폴더 설치되어 있을 경우에 아래와 같이 순차적으로 ssh에 입력합니다. 다른 곳에 워드프레스가 설치되어 있으면 /var/www/워드프레스 폴더명 이렇게 해주어야 합니다. 이 설정은 플러그인 설치 2번에 반복되는데 여기서 설정했으면 ssh에서 플러그인 설치 설정에서 반복 할 필요는 없습니다. 반복해도 상관은 없습니다.

cd /var/www/html
sudo chown ec2-user:apache .htaccess
sudo chmod 644 .htaccess

이제 사용자만 .htacces 파일을 수정할 수 있습니다.

플러그인 설치까지 하는 설정

1)wp-config.php 파일의 문구 수정  

아래와 같이 워드프레스가 설치된 폴더의 wp-config.php 파일을 우클릭해서 보기 및 편집을 눌러 열리는 문서 하단에 define(‘FS_METHOD’, ‘direct’); 문구를 추가합니다. 

2) 위 설정으로 해도 플러그인 설치가 안 될 때 SSH 설정 진행

위 설정대로 했는데 플러그인 설치가 안될 때 아래 설정을 진행하시면 됩니다. SSH에서 다음 설정을 진행해주세요.아래는 워드프레스가 /var/www/html 폴더에 있는 경우 입니다. 워드프레스의 위치가 달라지면 /var/www/워드프레스 폴더명 이런식으로 수정해야 합니다.

sudo chown -R apache:apache /var/www/html 
sudo usermod -a -G apache ec2-user
sudo chmod 2775 /var/www/html
find /var/www/html -type d -print0 | xargs -0 sudo chmod 2775
find /var/www/html -type f -print0 | xargs -0 sudo chmod 0664
sudo chown ec2-user:apache /var/www/html/.htaccess
sudo chmod 644 /var/www/html/.htaccess

기존의 find /var/www/html -type d -exec sudo chmod 2775 {} \;와
find /var/www/html -type f -exec sudo chmod 0664 {} \;
명령어를 => 다음과 같이 수정 했습니다.

find /var/www/html -type d -print0 | xargs -0 sudo chmod 2775
find /var/www/html -type f -print0 | xargs -0 sudo chmod 0664

3) -exec와 xargs의 차이점

find /var/www/html -type d -exec sudo chmod 2775 {} \;find /var/www/html -type d -print0 | xargs -0 sudo chmod 2775 두 명령어는 기본적으로 같은 작업을 수행하며, 둘 다 /var/www/html 디렉토리와 그 하위 디렉토리에 2775 권한을 설정합니다. 그러나 두 명령어는 내부적으로 다르게 작동합니다:

  1. -exec 사용:
    • find가 디렉토리 하나를 찾을 때마다 chmod 2775 명령을 새로 실행합니다.
    • 이 경우에는 find가 찾은 디렉토리 수 만큼 chmod 프로세스가 실행됩니다.
    • 이러한 방식은 비효율적일 수 있습니다.
  2. xargs 사용:
    • find 명령은 디렉토리 목록을 생성하고, 이 목록은 xargs 명령으로 전달됩니다.
    • xargs는 받은 목록을 chmod 2775 명령에 최대한 효율적으로 넘겨 줍니다. 즉, 가능한 적은 수의 chmod 프로세스로 같은 작업을 수행합니다.
    • 이러한 방식은 일반적으로 더 빠르고 효율적입니다.

-print0-0 옵션은 파일이나 디렉토리 이름에 공백, 줄바꿈, 특수문자가 포함되어 있을 경우에도 안전하게 처리할 수 있게 해줍니다.

결론적으로, xargs를 사용하는 방법이 대체로 더 빠르고 효율적입니다.

chat gpt 통해서 결과를 얻었고 현재까지 오류 없습니다.

 FTP 클라이언트(파일지라)를 사용하여 .htaccess 파일에 액세스

워드프레스 설치 디렉터리에 있는 .htaccess 파일에 액세스하기 위해 FTP 클라이언트를 사용합니다. 파일질라(FileZilla)를 통해 접속하였고 .htaccess 파일은 ‘/var/www/html’ 경로에 있습니다. 해당 파일을 우 클릭 해서 편집 및 보기를 선택한 내용을 아래의 내용을 복사 붙여 넣기 해서 수정한 후 저장합니다.

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

 

Apache 웹 서버 설정 확인 워드프레스 고유주소 글이름 변경 404 오류 해결 마지막 과정

1. SSH(Xshell이나 Termius) 를사용하여 서버에 로그인

2. Apache 설정 파일 열기
sudo nano /etc/httpd/conf/httpd.conf
3.퍼머링크 설정 확인 및 변경

설정 파일에서 “mod_rewrite 모듈” 을 활성화합니다. 아래와 같이 찾아서 확인하거나 없으면 추가합니다. Include conf.modules.d/*.conf를 찾아서 추가합니다. 그 아래에 다음과 같이 추가합니다.

Include conf.modules.d/*.conf
LoadModule rewrite_module modules/mod_rewrite.so

이 Apache 설정 코드는 웹 서버의 루트 디렉토리 (/)에 대한 설정을 나타냅니다. 이 설정은 AllowOverride 및 Require 지시문을 사용하여 웹 서버의 루트 디렉토리에 대한 권한을 구성합니다. 워드프레스의 고유주소를 글이름으로 바꿔도 오류가 나지 않게 하려면 다음과 같이 수정합니다. #으로 시작되는 부분은 주석처리 된 부분이니 천천히 내리면서 아래의 문구를 찾아서 아래처럼 수정합니다. (간혹 오류가 생기면 LoadModule rewrite_module modules/mod_rewrite.so 이 부분을 삭제하면 괜찮아지는 경우가 있습니다.  일부의 사례이니  안 될 때 해당 문구를 삭제해 보세요. )

<Directory />
    AllowOverride All
    Require all granted
</Directory>
<Directory "/var/www"> AllowOverride None # Allow open access: Require all granted </Directory>
<Directory "/var/www/html">
AllowOverride All
Require all granted
</Directory>

<Directory "/var/www/추가 워드프레스가 설치 된 폴더명">
AllowOverride All
Require all granted
</Directory>
<Files ".ht*"> Require all granted </Files> <Directory "/var/www/cgi-bin"> AllowOverride All Options None Require all granted </Directory>

서버에 워드프레스가 2개 이상 설치된 경우는 아래를 반드시 확인하시고 추가해 주세요. 
4. 설정 저장

Ctrl+o(알파벳 o) 누르고, 파일 이름을 그대로 두고 Enter 를 누르세요. 그런 다음 에디터를 종료하려면 Ctrl +X를 누릅니다.

5. Apache 웹 서버를 다시 시작

Apache 웹 서버를 다시 시작하여 변경 사항을 적용합니다.

sudo systemctl restart httpd

-학습자가 똑똑해지는 스마트 교육
스마트 교육의 정보를 공유합니다.
강의요청 jey78v@naver.com

“워드프레스 고유주소 글이름 변경 404 오류 해결 + 플러그인 설치 설정”의 21개의 댓글

  1. 선생님 저 지금 절하고 있습니다 절 받으세요. 현재시각 새벽 5:36분 6시간 이상 헤매다가 포기하고 잘려고 했는데 딱 발견해서 해결했네요 정말 감사합니다 ( _ _ ) 워프 초기화 했네요… aws 인스턴스로 만들면 이런건가요 ? 왜이런지 모르겠네요

  2. 안녕하세요. 주신정보 관련해서 문의좀 드려도될까요?

    1. sudo chown ec2-user:apache .htaccess 이거 입력전 아파치서버로 들어가야 하는거죠?
    쉘에 cd /var/www/html 이렇게요. htaccess가 이 폴더내에 있어서요.

    2. 플러그인 설치까지 하는 설정에서 find /var/www/html -type f -exec sudo chmod 0664 {} \; 입력후 작동을 안해서 위에 나온대로 ctrl+c해서 빠져나온후에 .htaccess 수정을 이어서 진행했는데 문제없나요?

    3. .htaccess 을 열었더니 아래와 같이 내용이 기본적으로 되어 있던데 (주신내용하고 거의 비슷해서요) 원래있던 내용을 지우고 알려주신 내용을 덮어쓰기하면 돼나요?아니면 기존 내용 아래 붙여넣기를 해야 하나요?

    # BEGIN WordPress
    # The directives (lines) between “BEGIN WordPress” and “END WordPress” are
    # dynamically generated, and should only be modified via WordPress filters.
    # Any changes to the directives between these markers will be overwritten.

    RewriteEngine On
    RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteBase /
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress

    4. nano편집기에서 위의 주신내용대로 수정하는 과정에서
    Include conf.modules.d/*.conf만 있는데 LoadModule rewrite_module modules/mod_rewrite.so을 추가하고

    AllowOverride none
    Require all denied

    위 내용을 아래와같이 수정하고

    AllowOverride All
    Require all granted

    그 다음 것도 나머지는 모두 건들지말고 위의 주신내용으로만 수정하면 됄까요?

    코드에 대해서 잘 모르다 보니 이렇게 하는게 맞는지 잘 모르겠어서요 ^^;; 가능하실때 회신부탁드릴께요. 감사합니다.

  3. 1. 네 cd /var/www/html 로 이동한 후 해주세요. 제 블로그도 수정하겠습니다. =>사실 이부분은 플러그인 설치해서 반복됩니다. 고유주소 해결만 원하는 경우 필요한 설정입니다. 플러그인 설치에서 반복되어도 상관 없습니다.
    2. wp-config.php 파일 부터 수정 하고 안되시면 ssh 설정 진행하시고. 작동 안하는 부분은 10분 정도 기다려보세요. 10분 이상 기다렸는데 작동이 없으면 ctrl+c로 나가고 난 후 다른 설정까지 다하고 플러그인 설치 진행해 보세요.
    3. 제 블로그에 쓰여진 문구로 덮어쓰기 하셔야 합니다. 저 설정을 서버가 자꾸 바꿔서 오류가 나는 겁니다. .htaccess의 수정을 사용자만 가능하게 하는 설정입니다.
    4. 네 블로그에 있는 대로 설정해 주시면 됩니다.

    안되면 또 댓글 달아주세요. 어떻게든 성공하시게 도와드릴게요

    1. 퇴근하고 바로 해봤는데 성공했습니다^^

      도움주셔서 너무 감사합니다. 복 받으실꺼예요 ^^

      아직 코린이다보니 잘못했다가 에러나면 겁부터 나서 귀찮게 해드렸네요.

      감사합니다 ^^

        1. 안그래도 서브도메인 입력하려고 했는데 마침 업뎃을 해주셨네요 ^^

          1. 기존워프(메인도메인)입력은 마쳤고 도메인추가(서브도메인)할경우 추가도메인워프의 config, htaccess 파일 처음부터 모두 해줘야 하는거죠? 어쨓든 서브도메인도 워프파일이 각각 있으니까요.

          2.
          AllowOverride All
          Require all granted
          에서 기존도메인부분은 입력안하고 추가도메인부분만 입력해주면 될까요? 아니면 기존/추가 둘다 입력해야할까요?

          가능하실때 확인부탁드릴께요. ^^ 감사합니다.

          1. 네 플러그인 설치 해주시는 설정은 동일 합니다.
            cd /var/www/새폴더
            sudo chown ec2-user:apache .htaccess
            sudo chmod 644 .htaccess
            새폴더에 있는 .htaccess 파일 문구 수정하시고

            1)wp-config.php 파일의 문구 수정
            이부분 만 해주시면
            sudo nano /etc/httpd/conf/httpd.conf 이거 여시고 위의 파란 박스 부분만 추가하시면 됩니다. 열심히 하시네요 화이팅입니다~

  4. 선생님요 근데 블로그 글 읽으면서 생각한건데 깔끔하게 가독성좋게 글 읽기가 아주 편안하네요 좋습니다 ㅎㅎ 눈에 확확 들어옵니다 .

    1. 아래처럼 ssh에서 설정하신뒤에
      cd /var/www/html
      sudo chown ec2-user:apache .htaccess
      sudo chmod 644 .htaccess

      글 중에 아래 제목 이하는 그대로 다하시면 됩니다
      FTP 클라이언트를 사용하여 .htaccess 파일에 액세스

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Exit mobile version