Linux
-
[PHP/Linux/Ubuntu] crontab으로 PHP 스케줄링 세팅Linux 2021. 2. 21. 21:38
서버에서 주기적으로 데이터베이스의 상태를 파악해서 실행되어야 하는 경우가 있다. 하루에 한번, 1시간에 한 번, 5분에 한번 등 특정 시간마다, 함수를 실행시켜 무언가 변화된 부분이 있거나 했을 때 액션을 취하는 경우다. 현재 개발하고 있는 플랫폼에서는 DB에서 물건의 상태가 변경되는 것을 캐치한 후, 사용자에게 알림톡을 발송해야 하는 경우가 있어, 해당 기능을 이용했다. 이 외에도, 가상계좌의 유효기간 만료, 안심번호 만료 안내 등 다양한 경우가 있을 것이다. 예제는 AzureVM, Linux Ubuntu, Apache2 를 사용중이다. 현재 개발하고 있는 플랫폼은 Codeigniter를 통해 개발을 하고 있어, CI코드를 통해 예제를 보여주고자 한다. PHP스케줄링은 리눅스 서버에서 crontab을 ..
-
[Linux/PHP/CI] 서버의 용량이 가득차서 접속이 안될 경우 로그파일을 확인하세요!Linux 2020. 6. 28. 01:27
오후 12시 갑자기 서버에 접속이 안되는 이슈가 발생했습니다. 아직 서버에 대한 지식이 부족한 탓에 원인조차 파악을 못하고 있었는데 의심스러운 부분이 한 곳 있었습니다. 현재 Azure VM을 사용해서 서버를 운영하고 있는데, 시스템 용량을 99.9% 사용 중인 것이 확인되었습니다. 따로 스토리지를 사용하고 있어, 서버의 용량이 크게 차지하지 않는 상황이라 어디에서 용량을 많이 차지하고 있는지 원인을 찾을 필요가 있었습니다. $ df -h 디스크에서 사용 중인 용량을 보여주는 명령어를 입력하면 요런 상태를 볼 수 있는데, 지금은 /dev/sdal1이 57% 사용 중 이지만, 서버에 접속되지 않았을 때는 100% 사용 중으로 나왔습니다. 현재 PHP Codeigniter를 통해 개발을 하고 있었기 때문에,..
-
[Linux/Apache2] Let's encrypt SSL 보안인증서 갱신하는 방법Linux 2020. 5. 28. 00:27
Let's encrypt의 SSL 보안인증서는 유효기간이 3개월이지만, 무료라는 장점으로 인해 번거롭더라도 매번 갱신을 해야 한다. 방법은 간단하다. 1. Let's encrypt의 인증서는 80포트를 통해 발급되기 때문에 일단 80포트를 닫는다. $ sudo service apache2 stop 2. 인증서 갱신 명령어 $ sudo letscnryptsudo letsencrypt renew 인증서를 입력하면 해당 서버에 발급되어 있는 모든 인증서를 갱신하게 된다. 인증서의 개 수에 따라 소요시간의 차이가 있지만 1~2분 내외로 완료 3. 서버 재시작 $ sudo service apache2 restart 현재 매번 수동으로 인증서를 갱신하고 있지만, 자동으로 인증서를 갱신할 수 있는 방법도 있다고 하니..
-
[Linux/WSL] Windows10 에서 리눅스 사용하는 방법Linux 2020. 5. 1. 22:59
MS가 최근 개발자들을 끌어들이기 위한 노력을 기울이고 있다. 그 중 하나가, 개발을 하다 보면 압도적으로 Mac이 편리하다. 리눅스 기반으로 작동하기 때문에, 개발자들에게는 너무나도 익숙한 환경일 것이다. 이에 반해 Windows의 경우, 개발자들에게 친숙하지 못했다. 하지만, 최근들어 VSCode부터 시작해서 GitHub까지 MS의 행보가 심상치 않더니 WSL (Windows Subsystem for Linux) 즉 윈도우에서 리눅스를 사용할 수 있는 것이 나타났다. 개발 환경 세팅은 아주 단순하다. 1. 제어판-프로그램-프로그램 및 기능에서 Windows 기능 켜기/끄기 선택 2. Linux용 Windows 하위 시스템, 가상 머신 플랫폼 체크 3. 재부팅 하라는 창이 뜨면 다음에 한다고 한 이후 ..
-
[Linux,Apache2] .git 디렉토리 접근 차단하기Linux 2020. 2. 17. 20:07
멘토 개발자로부터 보안 이슈를 지적받았다. 지금 근무중인 회사는 git을 통해 버전관리를 하고 있는데 도메인/.git을 통해 git으로 관리되던 소스 전체를 다운로드 받을 수 있다는 것이다. 위 사진과 같이 내 소스 전체가 노출되고 있던 것이다. 빠르게 해당 이슈를 해결해야 했다. 1. apache 폴더로 이동 $ cd /etc/apache2/conf-enabled 2. 보안 파일 열기 $ sudo vi sudo vi security.conf 3. Line 54 ~ 56 주석 풀고 아래와 같이 변경 Require all denied 4. Apache 서버 재시작 $ sudo service apache2 restart 이 후 다시 도메인/.git으로 접속을 해보면 접속이 차단 된 것을 확인할 수 있다.
-
[Linux/Apache2] HTTP에서 HTTPS(SSL) 마이그레이션 하는 방법Linux 2020. 1. 8. 01:47
HTTPS로 접속하기 위해서는 SSL 인증서가 필요하다. 발급받은 인증서를 Apache에 설정해야 한다. # 인증서의 경우 무료인 Let's Encrypt 의 SSL 보안인증서를 사용 # 타 사이트에서 보안 인증서를 구입해서 사용한다면, 인증서 발급 과정은 생략해도 된다. 1. 패키지 인덱스를 업데이트 한다. $ sudo apt-get update 2. SSL 인증서 발급을 위해 letsencrypt 설치 $ sudo apt-get install letsencrypt 3. Let's Encrypt의 SSL 인증서를 발급받을 때 80포트를 사용하기 때문에, 80포트를 비운다. (Apache는 기본적으로 80포트를 사용하기 때문에 Apache를 잠시 꺼둔다) $ sudo service apache2 stop..