SELECT SHA2('enc_string', 256);
enc_string 을 SHA256 암호화한 문자열을 출력한다.
암호화 비트 종류
SHA-224 | SHA-256 | SHA-384 | SHA-512 |
공간나눔
SELECT SHA2('enc_string', 256);
enc_string 을 SHA256 암호화한 문자열을 출력한다.
암호화 비트 종류
SHA-224 | SHA-256 | SHA-384 | SHA-512 |
리눅스(우분투, 센트오에스, 페도라, 래드햇 등등)에서 어떤 이유인지는 모르나 텍스트 파일이 dos 형태로 저장되는 경우가 있다.
전형적인 형태로는 라인 끝에 ^M 문자가 붙는 것으로 인지하게 되지요.
원인으로 생각할 수 있는 것은 리눅스는 라인의 끝이 \n 으로 끝나야 하는데, 윈도우에서 생성된 파일의 경우 \r\n (CR/LF)로 끝나서 발생합니다.
vi에서 다음과 같이 설정하면 유닉스 타입(\n으로 라인이 끝나는 파일)으로 저장할 수 있습니다.
:set fileformat=unix
dos 타입으로 저장하려면
:set fileformat=dos
이상입니다.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond $1 !^(index\.php)
RewriteCond %[REQUEST_FILENAME] !-f
RewriteCond %[REQUEST_FILENAME] !-d
RewriteRule ^(.*)$ index.php?param=$1 [L]
</IfModule>
.htaccess파일은 아파치 웹 서버에서 URL 재작성(rewriting)을 위해 사용됩니다.
위 내용은 사용자가 웹사이트의 특정 URL에 접근할 때, 해당 요청을 index.php 파일로 리디렉션하고, 추가로 파라미터를 변수를 전달하는 것입니다.
각각의 라인을 하나씩 뜯어보도록 합시다.
<IfModule mod_rewrite.c>
아파치의 mod_rewrite 모듈이 활성화되어 있을 때만 이 규칙을 적용하겠다는 뜻입니다.
mod_rewrite 모듈은 URL을 재작성하는 데 사용됩니다.
RewriteEngine On
URL 재작성 기능을 활성화합니다.이 라인이 있어야만 아래의 RewriteRule과 RewriteCond가 적용됩니다.
RewriteCond $1 !^(index\.php)
조건을 정합니다.요청된 URL이 index.php가 아닌 경우에만 아래의 규칙이 적용되도록 합니다.
여기서 $1은 RewriteRule에서 첫 번째 그룹을 의미합니다.
!는 “부정(NOT)”을 의미하며, ^는 문자열의 시작을 의미하고, \.는 마침표(.)를 의미합니다.따라서 이 조건은 index.php로 시작하지 않는 요청을 의미합니다.
RewriteCond %{REQUEST_FILENAME} !-f
이 조건은 요청된 파일이 실제 서버에 존재하지 않는 경우에만 규칙을 적용하도록 합니다.
-f는 실제 파일 여부를 확인하는 플래그입니다.
RewriteCond %{REQUEST_FILENAME} !-d
이 조건은 요청된 경로가 실제 디렉토리가 아닌 경우에만 규칙을 적용하도록 합니다.-d는 디렉토리 여부를 확인하는 플래그입니다.
RewriteRule ^(.*)$ index.php?param=$1 [L]
이 라인은 실제 재작성 규칙을 정의합니다.
- ^(.*)$는 URL의 전체 경로를 저장합니다.
- .*는 모든 문자열을 의미하며, 이는 그룹 $1에 저장됩니다.
- index.php?param=$1는 저장된 URL 경로를 index.php의 param 파라미터로 전달합니다.
- [L]은 이 규칙이 마지막이라는 것을 의미합니다. 이 규칙이 적용되면 추가적인 규칙은 처리되지 않습니다.
종합
이 .htaccess 파일은 다음과 같이 작동합니다:
요청된 URL이 index.php로 시작하지 않으면,
요청된 URL이 실제 파일이나 디렉토리가 아니라면,
그 요청을 index.php 파일로 리디렉션하고, 원래의 URL 경로를 param이라는 파라미터로 전달합니다.
예를 들어, 사용자가 test.com/data에 접근하면, 이 파일은 내부적으로 test.com/index.php?param=data로 리디렉션합니다.
컨테이너 올릴때 –restart-always 옵션을 넣어주면 된다.
이미 실행 한 경우에는 다음과 같이 입력한다.
# docker update --restart=always <container-id> # 예) # docker update --restart=always dcciidlkasjdflk94
[+] Building 0.8s (1/2) docker:desktop-linux
[+] Building 0.8s (2/2) FINISHED docker:desktop-linux
=> [database internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 55B 0.0s
=> ERROR [database internal] load metadata for docker.io/library/mariadb:10.6 0.8s
------
> [database internal] load metadata for docker.io/library/mariadb:10.6:
------
failed to solve: mariadb:10.6: error getting credentials - err: exit status 1, out: ``
리눅스용으로 만든 도커파일을 맥 m1에서 올리려고 하니 에러가 발생한 듯합니다.
대처 방법
~/.docker/config.json 파일 열기
"credsStore":"desktop" 으로 설정되어 있는 것을
"credsStore":"osxkeychain" 로 변경
다시 빌드
sudo docker-compose up --build -d