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. 재부팅 하라는 창이 뜨면 다음에 한다고 한 이후 ..
-
[Azure/Linux] SSH 서버 외부 접속 차단하는 방법Azure 2020. 2. 18. 21:17
서비스를 개발하다 보면, 리눅스의 Shell을 통해 리눅스 서버에 접속해야 하는 경우가 많다. 리눅스 서버의 로그를 확인하며, 디버깅을 해야 하는 상황이 많기 때문이다. 랩탑을 통해서 개발을 하다 보면, 다양한 장소에서 무선으로 개발을 해야 하기 때문에 서버의 IP를 차단한다면 그때마다 현재 IP주소를 확인 한 후, 해당 IP에 대한 접속권한을 부여한 후에 리눅스 서버에 접속할 수 있다. 매우 번거로운 작업이지만, 혹시라도 누군가 서버에서 악의적인 의도를 가지고 실제 운영중인 서버를 닫거나, 파일을 제거할 수 있기 때문에 외부IP 접속에 대한 차단은 필수이다. 현재 개발환경은 Azure VM을 통해서 서버를 운영하고 있기 때문에, Azure를 기준으로 글을 작성한다. AWS를 사용해보지 않았지만 아마도 ..
-
[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으로 접속을 해보면 접속이 차단 된 것을 확인할 수 있다.