본문 바로가기
homaki.tistory.com의 구글 광고

컴퓨터42

[PHP] MariaDB(MySQL) 여러 DB 사용량 표시 php로 MariaDB(MySQL) 여러 데이터베이스 사용량을 구해서 표시하기. $dbconn = mysqli_connect("localhost", "dbuser", "dbpasswd") or die("mariadb died"); $dbname = array("db1", "db2", "db3"); $dbsize = 0; foreach($dbname as $db) { mysqli_select_db($dbconn, $db); $query = mysqli_query($dbconn, "show table status") or die("query failed"); while($status = mysqli_fetch_array($query)) { # 1048576로 나누어 MB 단위로 변환 $dbsize += ($.. 2016. 5. 23.
[CentOS 7] 구글 드라이브로 동기화 하기 CentOS 7에서 디렉토리를 구글 드라이브로 동기화 하는 프로그램을 이용해서 자동으로 동기화를 하는 방법을 작성한다. 먼저 구글 드라이브에 동기화 할 수 있는 프로그램인 grive를 설치한다. 우분투에서도 레포지토리를 추가하여 apt-get으로 grive를 설치할 수 있다. 설치 방법만 제외하고 나머지는 같은 걸... 주의. 기본 리포지토리에는 grive가 없으니 epel 리포지토리를 먼저 설치 후 아래 명령어를 실행해야 한다. [root@localhost ~]# yum install grive2 그 다음 동기화를 할 디렉토리로 이동하여 구글 드라이브 인증 절차를 거친다. [root@localhost ~]# cd /backup [root@localhost backup]# grive -a --------.. 2016. 5. 4.
PHP7에서 ssh2(sftp) 확장 모듈 사용하기 이전 게시물 개인 서버 웹에서 sftp 사용에 php 확장 모듈인 ssh2를 설치하는 방법을 올렸다. XE나 워드프레스 관리자 화면에서 sftp를 이용하여 편하게 업그레이드를 하기 위해서는 php 확장 모듈인 ssh2가 필요한데 php 최신 버전 패키지를 제공하는 remi 저장소에는 아직 php7용 ssh2 확장 모듈이 올라오지 않았다. 이를 사용하기 위해서는 소스를 받아 직접 컴파일을 하면 된다. 소스는 아래 주소로 접속해서 'Download ZIP'을 누르면 받을 수 있다. PHP Github 저장소 https://github.com/php/pecl-networking-ssh2 설치 경로는 CentOS 7, httpd(Apache2) 기준. # Github 저장소에서 다운로드(zip으로 받을 경우 이.. 2016. 1. 12.
디지털오션(DigitalOcean) 클라우드 호스팅 얼마전부터 디지털오션(DigitalOcean) 클라우드 호스팅을 사용하기 시작했다. 프로모션으로 크레딧 $10를 줘서 최저 플랜을 약 2개월간 무료로 사용할 수 있어서 실험용으로 사용하고 있는데 괜찮은 것 같다. 작년에 ncity 호스팅 관리자가 도저히 상식적이지 않는 행동을 하길래 다른 웹호스팅 업체를 찾아 보면서 남는 노트북으로 서버를 구축해서 사용하다가 마음에 드는 곳이 없어서 가상 서버 호스팅까지 알아보던 중에 가격이 저렴한 클라우드 호스팅을 알게 됐다. 가격과 서버 위치는 https://www.digitalocean.com/pricing/ 여기로 들어가면 볼 수 있다. 서버 속도 테스트는 http://speedtest-sgp1.digitalocean.com/ 여기에서 서버를 선택해서 할 수 있다.. 2016. 1. 9.
mod_cband 설치 apache2 트래픽 제어 모듈인 mod_cband 설치 방법이다. 내가 설치한 환경은 CentOS 7에서 yum으로 설치한 apache 2.4.x다. 다운로드는 아래 첨부파일을 받으면 되는데, 못 믿겠으면 그 밑에 페도라 프로젝트 저장소에서 받으면 된다. 페도라 저장소 http://pkgs.fedoraproject.org/repo/pkgs/mod_cband/ 다운로드를 받고 압축을 풀어 준다. [root@localhost ~]# tar xzf mod-cband-0.9.7.5.tgz 이 파일 그대로 설치를 하면 분명 make에서 에러가 날 것이다. 요렇게 에러가 뙇! 이런 에러를 보기 싫으면 소스를 조금 수정해야 한다. 간단하다. 일단 에디터로 수정할 파일을 연다. [root@localhost ~]# v.. 2015. 11. 15.
[CentOS 7] SELinux 활성화 시 XE 설치가 안 될 때 CentOS를 설치하면 SELinux가 기본 설치 및 활성화가 되어 있다. 이게 좀 귀찮아서 보통은 리눅스를 설치하자마자 비활성화를 해버리는데, 되도록이면 활성화 해서 사용하는 것이 좋다. 어쨌든... 분명히 files 디렉토리를 만들었고, 퍼미션도 777이나 707을 줬는데도 설치화면에서는 퍼미션 문제라고 뜨는 경우를 체험한 사람이 있을 것이다. selinux가 활성화가 된 상태에서 xe를 그냥 설치하려고 하면 이런 상황을 맞이 할 수 있는데, 이건 보안문맥 문제다. [root@localhost ~]# ls -Z 위와 같이 ls -Z 명령어를 치면 디렉토리나 파일에 설정된 보안문맥을 볼 수 있다. 위 스샷을 보면 files 디렉토리만 다른 부분이 보인다. 웹서비스를 하려면 보안문맥이 기본적으로 http.. 2015. 11. 14.
[CentOS 7] 개인 서버 웹에서 sftp 사용 PHP7에서 ssh2 모듈을 설치하는 방법 http://homaki.tistory.com/104 개인 서버를 구축 후 xe나 워드프레스를 사용할 때 관리자 화면에서 ftp를 이용한 쉬운 설치를 사용할 수 있다. 나처럼 ftp를 설치하지 않고 sftp를 사용하는 사람은 따로 설치해야 할 것이 있다. CentOS를 최소 설치하면 libssh2는 기본으로 설치가 된다. 웹에서 sftp를 사용하려면 libssh2 말고도 위에 보이는 php 확장 모듈이 하나 더 필요하다. [root@localhost ~]# yum install php-ssh2 [root@localhost ~]# systemctl restart httpd 위와 같이 php-ssh2 확장 모듈을 설치 후 웹서버를 재시작하면 바로 적용이 된다. ph.. 2015. 10. 30.
[CentOS 7] semanage 설치 CentOS 7을 최소설치하면 selinux 관련 명령어를 포함한 패키지가 몇 가지 설치된다. getenforce, setenforce, getsebool, restorecon, setsebool 등의 명령어가 포함된 패키지는 설치가 되지만 semanage가 포함된 패키지는 최소설치 목록에 없다. [root@localhost ~]# yum install policycoreutils-python policycoreutils-phtyon을 설치하면 semanage, audit2allow 등의 명령어를 사용할 수 있다. 2015. 10. 24.
[CentOS 7] SELinux 끄기, 켜기 전용 NAS를 구입하지 않고 자작 NAS를 만들 때 대부분 우분투나 CentOS를 사용하는데, CentOS를 설치하고 웹서버나 삼바 등을 이용할 때 분명히 제대로 설치를 했는데 읽기나 쓰기가 되지 않는 경우가 있다. 원인은 대부분 SELinux다. 외부(인터넷) 연결을 하지 않고, 내부 네트워크에서만 사용한다면 SELinux를 꺼도 괜찮은데, 인터넷에 연결해서 사용한다면 끄지 않는 것이 좋다. 귀찮다고 disabled 하지 말고, 보안을 생각한다면 selinux 보안문맥 사용법을 익히는 것이 좋다. 어쨌든 SELinux를 켜고 끄는 방법. 설정 파일은 /etc/selinux에 있는데 vi로 config 파일을 열면 된다. [root@localhost ~]# vi /etc/selinux/config 그럼 .. 2015. 10. 23.
ownCloud 설치 시 sql 에러 개인 서버나 NAS에서 클라우드 프로그램으로 인기가 많은 ownCloud 최신 버전을 설치할 때 데이터베이스 에러가 난다. 예전엔 그냥 됐는데... 버전이 8로 올라가면서 설치환경이 바뀐 것 같다. SQLSTATE[HY000]: General error: 1665 Cannot execute statement: impossible to write to binary log since BINLOG_FORMAT = STATEMENT and at least one table uses a storage engine limited to row-based logging. InnoDB is limited to row-logging when transaction isolation level is READ COMMITTED.. 2015. 7. 28.
[CentOS 7] USB 부팅이 안 될 때 작년에 CentOS를 설치하려고 iso 이미지를 받아서 iso2usb를 이용해 복사를 했는데 부팅 도중에 에러가 났다. 그래서 묵혀 놨던 dvd-multi를 연결해서 dvd에 구워서 설치한 경험이 있다. 얼마전에도 남은 노트북을 홈 서버로 만들기 위해 CentOS 7을 받아 usb에 복사했지만, 역시 작년과 같은 에러 메시지를 보이며 서버를 만들려던 노트북은 물론, 다른 노트북, 데스크탑 모두 usb로 부팅이 되지 않았다. 이번에도 역시 iso2usb를 이용했었고, 그 외에 UltraISO와 Fedora LiveUSB Creator로도 usb에 복사를 해봤으나 부팅이 되지 않거나 설치 화면까지 들어갔지만 저장소 오류로 설치를 진행할 수 없었다. 아, Universal USB Installer도 부팅이 안.. 2015. 5. 14.
[CentOS 7] Daum 리포지토리로 바꾸기 CentOS를 설치하고 업데이트를 할 때 좀 더 빠른 속도로 다운로드를 받고 싶다면 기본 리포지토리보다 국내 서버로 운영하는 미러를 이용하는 것이 좋다. 그중 국내 미러 중 유명한 Daum 리포지토리를 사용해보자. 먼저 리포지토리 파일이 있는 곳으로 이동한다. CentOS 7은 /etc/yum.repos.d에 있다. [root@localhost ~]# cd /etc/yum.repos.d/ 디렉토리 이동을 했으면 ls로 기본 리포지토리 파일을 확인하고, CentOS-로 시작하는 모든 .repo 파일을 지우거나 다른 곳에 옮긴 후에 vi나 cat을 이용해서 파일을 만들어준다. [root@localhost yum.repos.d]# vi Daum.repo또는[root@localhost yum.repos.d]# .. 2015. 5. 11.
sudo 허가 거부(Permission denied) 해결 방법 visudo 혹은 /etc/sudoers를 편집해서 일반 계정에 권한을 줬는데 아래와 같은 메시지가 뜨는 사람이 분명히 있을 것이다. [homaki@localhost ~]$ sudosudo: unable to stat /etc/sudoers: Permission deniedsudo: no valid sudoers sources found, quittingsudo: unable to initialize policy plugin 설치하고 기본 설정대로 사용한다면 볼 일이 없을 메시지인데, 이건 보통 리눅스를 설치하고 나서 보안설정을 한다고 루트에 있는 각종 디렉토리의 퍼미션을 바꾼 사람이 볼 확률이 높다. 이것을 해결하려면 아래 나열한 것을 확인해보자. 1. / 퍼미션이 511 이상으로 되어 있는가? 2. .. 2015. 5. 9.
그래픽카드 쿨러 분해 청소 본체 케이스가 통풍이 너무 잘 되는(?) 구조라 먼지가 금방 쌓인다. 그래서 청소를 좀 자주 해줘야 하는데 귀찮단 말이지... 나중에 케이스를 새로 사서 부품들 옮길 때 청소하려고 했는데 웬지 그냥 갑자기 그래픽카드만 빼서 청소를 하고 싶어졌다. cpu나 파워도 하고 싶었지만... 메인보드까지 빼기가 너무 귀찮아서... 어쨌든 그래픽카드만 빼서 쿨러를 분해했다. 으앙 먼지ㅠㅠ 작년인가 재작년인가 중고로 산 사파이어 Radeon HD5750이다. 처음부터 저랬던 건지... 전 사용자가 분해 청소를 한 건지 모르지만 참 많이도 발라놨다... 쭈욱 밀려 있는 써멀 컴파운드... 덮개에 붙은 먼지... 쿨러의 바람을 바로 맞는 부분엔 먼지가 좀 쌓였다. 가끔 컴퓨터 청소할 때 cpu 쿨러는 전부 분해해서 방열판.. 2015. 3. 19.
윈도우(Windows) php_curl 활성화 시 libssh2.dll 에러 윈도우(Windows)용 아파치(Apache)와 php를 연동했다. 사용한 버전은 httpd 2.4.12와 php 5.6.6 Thread Safe고 둘 다 x64다. php.ini에서 php_curl.dll을 활성화하고 아파치를 실행했는데... 요런 메시지박스가 날 반겨준다. httpd.exe - 시스템 오류 컴퓨터에 libssh2.dll이(가) 없어 프로그램을 시작할 수 없습니다. 프로그램을 다시 설치하여 이 문제를 해결하십시오. 당연히 phpinfo()를 아무리 찾아봐도 curl 정보는 나오지 않는다. 해결방법은 간단하다. php가 설치된 폴더로 들어가면 libssh2.dll이 있다. libssh2.dll을 C:\Windows\System32로 복사하고 서버를 재시작하면 끝. 그리고 phpinfo().. 2015. 3. 6.
homaki.tistory.com의 구글 광고