태그 보관물: 문제 해결

우분투 서버 24.04 LTS에 설치한 워드프레스에서 avif 이미지 포맷 사용하기 with gd or imagick

php8.3-imagick 모듈 정보
처음부터 이걸 설치했으면 아무 문제 없었을 것을…

게임 스크린샷을 풀사이즈로 올리니 이미지 파일 용량이 너무 커지는게 신경 쓰였는데, 우분투 서버 버전을 올리고 워드프레스 플러그인 정리를 좀 하다 보니 워드프레스 공식으로 나온 새로운 이미지 포맷 지원 플러그인이 있길래 설치했다.
플러그인에서는 webp, avif 이미지 포맷을 지원하는데 webp 다음에 나온게 avif 포맷이고 지원하는 브라우저는 webp 보다 적다고 하는데 최신 브라우저는 전체적으로 더 좋은건 avif 라 avif 포맷으로 가기로 결정.
플러그인을 설치하고 설정에서 avif 포맷을 선택하고 썸네일 등 이미지 재생성을 하려고 우분투 콘솔에서 wp media regenerate 커맨드를 실행했다.

여기서부터 문제가 발생하는데, 일단 처음엔 php에 있는 gd 모듈이 avif 포맷을 지원하지 않았다.
우분투 서버 24.04 버전에서는 php 8.3을 설치하는데 avif 를 지원한다고 하는 gd 버전이 설치되어 있어도 워드프레스 플러그인에는 avif 지원을 하지 않는다고 표시 된다.
이래저래 알아본 결과 ppa(개인 패키지 저장소)에 있는 gd 모듈을 설치하면 문제 없다는 글을 발견해 리포지토리를 추가.

없을 경우

리포지토리 추가 후

업그레이드를 하면 php8.4도 같이 설치되더라.
php 버전이 두개가 설치되면 좀 헷갈림… php -v 해서 지금 작동하는게 어떤 버전인지 확인하도록. php 8.4가 설치되면 기본적으로 이게 우선된다.

워드프레스 관리화면에서 도구->사이트 건강->정보(탭)->미디어 처리 항목->GD 지원 파일 포맷에 AVIF가 추가 되어있을 것이다.
GD 버전은 2.3.3으로 업그레이드 이전과 같은게 함정.

우분투 콘솔에서 본 php 8.3과 8.4 버전 gd의 정보.

wp media geraerate 커맨드로 다시 avif 파일 생성을 시도해 보면 avif파일이 생성이 되긴하는데 곳곳에 경고가 뜨고, 파일이 제대로 만들어지지 않아 0byte 파일이 생성되거나 하더라.
예를 들면 gd가 팔레트 이미지를 지원하지 않아서 생기는 에러.
Warning: imageavif(): avif doesn’t support palette images

이것저것 찾아보면서 php 에서 gd 외에 이미지 처리를 하는 라이브러리가 imagick 이라고 하나 더 있는데 이걸 쓰면 된다는 이야기가 있어서 설치해 봤다.

8.3, 8.4 두 버전을 설치해야 되는 이유 → 우분투 서버 24.04 LTS PHP 버전이 여러개 설치 되어 있는 경우

그냥 깔끔하게 다 해결 된다.
avif 파일로 가고 싶으면 처음부터 imagick을 설치했으면 아무 문제가 없었을 듯.

우분투 22.04 -> 24.04 업그레이드 후기

워드프레스에서 webp 이미지 포맷을 사용해 보려다 결국 php 버전을 올려야 하는것 같아서 포기하고,
대신 avif 이미지 포맷을 사용하고 싶었는데 마찬가지로 php 버전을 올려야해서 우분투 업그레이드를 해 버렸다.

하는 중에 딱히 문제는 없었고 업그레이드 후에 iptables 설정이 초기화 되서 다시 잡아줘야 됐고,
NGINX와 php 설정이 초기화 되어서 조금 고쳤다.

nginx에서는 /etc/nginx/nginx.conf 파일 제일 위에 아래 유저 부분이 초기화 되서 다시 잡아줬고,

마찬가지로 php 설정에서도 /etc/php/8.3/fpm/pool.d/www.conf 파일을 열어 user 설정이 초기화 되어서 다시 잡아줬다.

이건 여러부분 있으니 잘 수정할 것.

위에 것들을 안고치면 워드프레스에서는 502 에러가 발생하고 로그 파일(/var/log/nginx/error.log)에는 아래와 같이 에러가 나온다.

Dell Inspiron 7472 윈도우11에서 업데이트 후, 터치패드 사용 불가 문제

윈도우 11 23H2 누적업데이트 설치 후, 터치패드에 투핑거 제스쳐라든가 마우스 버튼 기능 등이 작동하지 않는 문제가 있었다.
이전에도 이런 일이 있었는데, 그때는 Intel-HID-Event-Filter-Driver_33CDY_WIN_2.2.1.377_A11_04 드라이버 설치해서 고쳐졌던 기억이 있었는데 이번에는 안되더라.

장치 관리자에서 I2C HID 디바이스에 코드10 에러가 떠 있고, 장치를 시작할 수 없습니다.라고 되어있었다.
Intel-Serial-IO-Driver를 설치해 보라는 글이 있어서 그것도 해 봤지만, 안됨.

I2C HID DEVICE
여기 페이지에 matheus_ap씨 말대로 PS/2 마우스 장치를 제거하고 리부팅하면 기존 PS/2 마우스 드라이버 대신 다른 PS/2 마우스 드라이버가 설치 되면서
I2C HID 에 에러가 사라지고, 터치패드 기능이 모두 원래대로 돌아왔다. 만세!

며칠 후 다시 터치패드 스크롤 기능이 먹통이 되어서 PS/마우스 장치를 제거 했는데 커서가 사라지는 문제가 생겼다.
장치 관리자에서 I2C HID 디바이스가 다시 에러표시가 되어있어서 장치를 제거하고 새로고침(하드웨어 변경을 스캔)하니 고쳐졌다.
계속 이 문제가 생기는 듯…

Clipboard (copy, paste, cut) not working when dragging and dropping files in Swing

We’ll set the TransferHandler on the JTextArea to be a handler that can drag and drop files, which will overwrite the existing TransferHandler associated with the clipboard and make it disappear.

I couldn’t find a solution to this problem, even after hours of searching Stackoverflow, because it doesn’t happen unless the file is dropped into a JTextField or JTextArea.

This is where ChatGPT comes in as a savior.

I loved working with ChatGPT to find the answers.

Written in Korean.
https://chatgpt.com/share/8c34c15e-2d32-4c03-9ec0-f21ee0b6bd22

Below, the above is written in Korean.

JTextArea에 TransferHandler를 파일 드래그 앤 드롭이 가능한 핸들러로 설정하게 되는데 이렇게 하면 기존 클립보드와 연결된 TransferHandler가 덮어씌워져서 사라지게 된다.
JTextField나 JTextArea에 파일드롭을 하지 않으면 생기지 않은 문제여서 그런지 Stackoverflow를 몇시간 뒤져도 이 문제를 해결 할 방법이 없었다.
여기서 구세주 ChatGPT가 나타남.
ChatGPT와 함께 해답을 찾아가는 과정이 너무 좋았다.
https://chatgpt.com/share/8c34c15e-2d32-4c03-9ec0-f21ee0b6bd22

한글로 검색해서 들어올 사람은 없을것 같으니 DeepL로 번역한 영어로 씀.

이전에도 안풀리는 문제가 있어서 ChatGPT한테 물어보니 답은 아니어도 힌트를 얻어서 해결한 적이 있는데,
이번에는 ChatGPT가 해결 못하는 부분을 내가 힌트를 줘서 ChatGPT가 답을 찾는 장면이 나왔다.

이런건 구글 검색으로도 해결하지 못하는 문제라서 AI가 아주 인상적인 능력을 보여주는 것 같다.

윈도우11 0x80004002 에러로 업데이트 불가 문제 해결

마소 스토어 앱에서 앱 업데이트가 안되길래 알아보니 윈도우 업데이트도 똑같은 0x80004002 에러로 안되고 있는 상태.

0x80004002 에러

0x80004002 에러로 검색해 보니 온갖 해결 방법이 있는데 제대로 된것 찾기가 힘들었지만 결국 찾아내서 해결했다.

출처 – https://www.reneelab.jp/0x80004002.html (일본어)

관리자 권한으로 CMD 실행
->윈도우키 누른 후에 cmd 검색하고 커맨드 프롬프트 위에서 마우스 오른쪽 클릭해서 관리자 권한으로 실행한다.

커맨드 프롬프트에서 아래 커맨드를 순서대로 입력한다.

ren은 rename으로 해당 폴더를 .old폴더로 바꾸는거니 추후 삭제해도 무방. 다른 문제가 생기면 원래대로 되돌리기 위해 .old를 붙여서 백업하는 것.

계속해서 아래 커맨드를 순서대로 입력한다.

이 커맨드를 실행하는 목적은 SoftwareDistribution, catroot2 폴더를 지우는것인데
그냥 지우면 이 폴더들을 사용하는 서비스들로 인해서 정상적으로 지워지지 않기 때문에 우선 서비스를 정지시키고, 폴더를 삭제(이동) 후, 서비스를 재시작하는 것이다.

이후 윈도우 재시작을 하고 나서 업데이트를 해 보면 잘 된다.
업데이트 중에 0x800706BA 에러가 나오는 경우도 있는데 잠시 시간(5분 10분?)을 두고 재시도하니 업데이트가 잘 된다.