글걸이

[PHP/SElinux] opcache JIT 기능을 켰을 때의 '502 Bad Gateway'

미리보기 그림 - [PHP/SElinux] opcache JIT 기능을 켰을 때의 '502 Bad Gateway'
PHP에 들어간 opcache의 JIT 기능을 켜면 '502 Bad Gateway' 오류가 떴는데, Selinux를 끄면 오류가 나지 않으므로 SELinux에 원인이 있었다. Centos Stream 9로 돌리는 웹 서버에서는 Selinux를 끄고 php-fpm을 다시 실행하면 502 오류가 다시 뜨지 않았지만, 알마리눅스(AlmaLinux) 9.4로 돌리는 웹 서버는 Selinux를 끄면 502 오류가 다시 나왔다. audit2why와 audit2allow로 audit 로그(audit.log)와 해결...

[curl] SSL certificate problem: unable to get local issuer certificate

신뢰할 수 있는 인증 기관으로 등록되지 않은 SSL/TLS 인증서를 쓰는 곳을 curl로 접근하먼 이런 오류를 겪을 수 있다. 구글(google) 인증서를 쓰는 곳에서 그럴 수 있다. # curl https://www... curl: (60) SSL certificate problem: unable to get local issuer certificate More details here: https://curl.se/docs/sslcerts.html curl failed to verify the legitimacy of the server and therefore...

[PHP] Cannot use isset() on the result of an expression (you can use "null !== expression" instead)

PHP Fatal error: Cannot use isset() on the result of an expression (you can use "null !== expression" instead) /.../???.php on line 21 이 오류가 일어난 것은 아래 내용 때문이었다. if(isset($data && $data=='ok')) $result = 'pass'; 닫는 괄호 )를 잘못 넣었기 때문에 오류가 생겼다. isset 함수 안에 변수가 아닌 조건문이 들어가는 것은 자연스럽지 않다. 아래처럼 고쳐야 한다. if(isset($data...

[PHP] 함수 이름에 잘못 넣은 $ : Can't use function return value in write context

PHP Fatal error: Can't use function return value in write context in /.../???.php on line 539 list 함수를 쓰려다가 다음처럼 'list'를 '$list'로 잘못 넣으면 이런 오류를 볼 수 있다. $list($a, $b) = func($p); list는 함수 이름이지만, $를 붙인 $list는 변수이다. '$list(..)'는 '변수(...)'로서 list 함수를 쓰는 형식에 어긋난다. 아래처럼 고치면 위의 오류가 나지 않는다. list($a, $b) = func($p);

[phpBB] cronstatus extension - container_exception (YAML, PHP)

미리보기 그림 - [phpBB] cronstatus extension - container_exception (YAML, PHP)
CONTAINER_EXCEPTION EXCEPTION: The file "/.../ext/boardtools/cronstatus/config/services.yml" does not contain valid YAML: The reserved indicator "@" cannot start a plain scalar; you need to quote the scalar at line 5 (near "- @config"). #0 /.../vendor/symfony/dependency-injection/Loader/YamlFileLoader.php(117): Symfony\Component\DependencyInjection\Loader\Yaml...

[PHP] Fatal error: Constant expression contains invalid operations in ...

PHP Fatal error: Constant expression contains invalid operations in /.../???.php on line 116 class myContent { public $content; private $default = null; public function set($var = $default) { $content = $var; } } PHP에서 함수의 매개변수(parameber)의 기본값(default parameter)은 상수로 세울 수 있고, 변수로는 세울 수 없다. 위처럼 매개변수 자리에 변수인 $default가 들어가면 오류...

[Pagespeed Insights] 양식 요소에 관련 라벨이 포함되어 있지 않습니다

미리보기 그림 - [Pagespeed Insights] 양식 요소에 관련 라벨이 포함되어 있지 않습니다
양식 요소에 관련 라벨이 포함되어 있지 않습니다 라벨을 사용하면 스크린 리더와 같은 보조 기술에서 양식 컨트롤을 올바르게 읽을 수 있습니다. 양식 요소 라벨에 관해 자세히 알아보기 구글 페이지스피드 인사이트(PageSpeed Insights)의 접근성(accessibility) 검사에서 나올 수 있는 경고문이다. input 태그에 aria-label 속성을 더 넣어 주면 이 경고문을 없앨 수 있다. <input type="text" name="name" value="...

[named] loading from master file domain.zone failed: unknown class/type

Jul 30 13:57:52 n1 named[9651]: zone 0.in-addr.arpa/IN: loaded serial 0 Jul 30 13:57:52 n1 named[9651]: ???.com.zone:3: unknown RR type '.' Jul 30 13:57:52 n1 named[9651]: zone ???.com/IN: loading from master file ???.com.zone failed: unknown class/type Jul 30 13:57:52 n1 named[9651]: zone ???.com/IN: unable to load from '???.com.zone'; renaming file to 'db-kDvN3CRK' for...

[PHP] iconv(): Wrong encoding, conversion from "utf8mb4" to "utf8mb4" is not allowed

iconv(): Wrong encoding, conversion from "utf8mb4" to "utf8mb4" is not allowed(2) File: /.../framework/data/MySQLi/Debug.php:51 부호화 방식(encoding)이 이미 utf8mb4인데 iconv 함수로 utf8mb4으로 바꾸려 하면 이런 오류가 나올 수 있다. 부호화 방식이 utf8mb4인지를 확인하는 조건문을 더 넣어 준다. if ($client_encoding != 'utf8' && function_exists('iconv')) { $__tcSqlLog[$__tcSqlLog...

[PHP] Call to undefined function create_function()

Error #0 "Call to undefined function create_function()" in /.../???.php on line 21 PHP 7.2부터 create_function 함수를 쓰지 말라는 비권장 경고문이 떴고(deprecated), PHP 8.0부터 create_function 함수를 쓸 수 없다. create_function 함수는 다음처럼 고쳐서 쓸 수 있다. (1) 보기 ① $output = preg_replace_callback($pattern_documents_area,create_function('$matches',"return preg_repla...