firewall on Ubuntu
source
http://www.shako.net/blog/ubuntu-server-14-04-initial-setup-guide/
ufw는 Ubuntu에 기본적으로 설치되어 있는 방화벽입니다. SSH 접속을 위해서 해당포트(기본값 22)를 열어줍니다. 필요한 경우 http 포트도 열어줍니다.
1 2 3 |
$ sudo ufw allow ssh $ sudo ufw allow http $ sudo ufw allow ftp |
이제 설정을 마쳤으므로 다음과 같이 enable할 수 있습니다.
1 |
$ sudo ufw enable |
현재 동작여부와 열려있는 포트의 목록을 보려면 다음과 같이 입력합니다.
1 |
$ sudo ufw status |
How to build a personal cloud
[server]To Update Unbuntu Server
- 최신 정보를 얻어오기
1$sudo apt-get update -
최신 정보로 서버를 갱신하기
1$sudo apt-get upgrade -
간혹 다음과 같은 메시지가 뜰 때가 있다.
123456The link /vmlinuz.old is a damaged linkRemoving symbolic link vmlinuz.oldyou may need to re-run your boot loader[grub]The link /initrd.img.old is a damaged linkRemoving symbolic link initrd.img.oldyou may need to re-run your boot loader[grub]이 때
1$sudo update-grub
[reference]
http://askubuntu.com/questions/518997/how-do-i-re-run-boot-loader
https://www.euperia.com/linux/you-may-need-to-re-run-your-boot-loader-grub/1456
[more info]
– 파일이 깨져 업데이트 에러 발생
– AptGet/Howto
[MySQL] 테이블 복구(How To Repair Corrupted MySQL Tables)
문제 1 : MySQL과 WordPress으로 운영되는 블로그에서 백업이 안 된다.
조치 1 : phpMyAdmin에서 복구 명령을 실행시켰다.
문제 2 : phpMyAdmin에서 테이블에 “사용중”이란 메시지만 나타났다. 또한, “복구”명령에서 에러가 떴다.
조치 2 : MySQL을 멈추기 위해서 다음과 같이 명령을 입력했다.
1 2 |
~$ sudo /etc/init.d/mysql stop * Stopping MySQL database server mysqld [fail] |
문제 3 : mysqld를 멈출 수 없다.
조치 3 : 다음 명령어를 입력했으나, 멈추지 않았다.
1 |
mysqladmin -u root -p shutdown |
문제 4 : mysqld를 멈출 수 없다.
조치 4 : 명령어를 다음과 같이 입력했다. 드디어 멈췄다.(ubuntu 14.04)
1 2 |
$ sudo service mysql stop mysql stop/waiting |
문제 5 : myisamchk를 이용하여 복구하려 했으나 다음과 같은 메시지가 떴다.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$ sudo myisamchk *.MYI Checking MyISAM file: wp_commentmeta.MYI Data records: 4 Deleted blocks: 0 myisamchk: warning: Table is marked as crashed and last repair failed - check file-size - check record delete-chain - check key delete-chain - check index reference - check data record references index: 1 - check data record references index: 2 - check data record references index: 3 - check record links MyISAM-table 'wp_commentmeta.MYI' is usable but should be fixed |
조치 5 : myisamchk를 통해 복구를 시도했다.
1 2 3 4 5 6 |
$ sudo myisamchk -r wp_commentmeta.MYI - recovering (with sort) MyISAM-table 'wp_commentmeta.MYI' Data records: 4 myisamchk: error: Can't create new tempfile: 'wp_commentmeta.TMD' MyISAM-table 'wp_commentmeta.MYI' is not fixed because of errors Try fixing it by using the --safe-recover (-o), the --force (-f) option or by not using the --quick (-q) flag |
문제 6 : 에러 메시지 “error: Can’t create new tempfile”가 나타나고 복구가 되지 않았다.
조치 6 : 강제 복구 명령어를 입력했다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
$ sudo myisamchk -f wp_commentmeta.MYI Checking MyISAM file: wp_commentmeta.MYI Data records: 4 Deleted blocks: 0 myisamchk: warning: Table is marked as crashed and last repair failed - check file-size - check record delete-chain - check key delete-chain - check index reference - check data record references index: 1 - check data record references index: 2 - check data record references index: 3 - check record links - recovering (with sort) MyISAM-table 'wp_commentmeta.MYI' Data records: 4 - Fixing index 1 - Fixing index 2 - Fixing index 3 |
조치 7 : 드디어 모든 테이블을 복구했다. 그래서 mysql을 재실행하다.
1 |
$ sudo service mysql start |
<교훈(lessons)>
1. ubuntu 14.04에서 MySQL를 멈추거나 실행하기 위해서는 다음과 같은 명령어를 입력한다.
1 2 |
$ sudo service mysql stop $ sudo service mysql start |
2. 테이블를 복구하기 위해서는 myisamchk명령어를 이용한다.
1 2 |
$ sudo myisamchk -r wp_commentmeta.MYI $ sudo myisamchk -f wp_commentmeta.MYI |
[서버]하드디스크 문제로 파일이 깨짐
[현상]
0) 서버 기능이 일부 상실함
1)
apt-get 명령을 해도 패키지를 내려 받을 수 없음
2) ssh 서버가 실행되고 있는데도 외부 컴에서 접근할 수 없음
[진단]
1 2 3 4 5 6 7 8 9 |
#sudo ldconfig /sbin/ldconfig.real: File /lib/i386-linux-gnu/libnss_nisplus.so.2 is empty, not checked. /sbin/ldconfig.real: file /lib/i386-linux-gnu/libanl.so.1 is truncated /sbin/ldconfig.real: file /lib/i386-linux-gnu/libnss_dns.so.2 is truncated /sbin/ldconfig.real: file /lib/i386-linux-gnu/libnss_dns-2.19.so is truncated /sbin/ldconfig.real: File /lib/i386-linux-gnu/libnss_nisplus-2.19.so is empty, not checked. /sbin/ldconfig.real: file /lib/i386-linux-gnu/libanl-2.19.so is truncated /sbin/ldconfig.real: File /usr/lib/libisccc.so.90 is empty, not checked. /sbin/ldconfig.real: File /usr/lib/libisccc.so.90.0.6 is empty, not checked. |
[원인]
– 하드디스크 문제로 파일이 깨짐
[해법]
– 서버 하드디스크에 임시로 저장되어 있는 패키지를 이용하여 다시 설치함
– 저장 장소는 var/cache/apt/archives 임
– ldconfig에서 깨지거나 없어진 파일이 패키지 libisccc90_1%3a9.9.5.dfsg-3ubuntu0.2_i386.deb 에 있음을 알게 됨
– 따라서 다음과 같은 명령을 내림
1 |
sudo dpkg -i /var/cache/apt/archives/libisccc90_1%3a9.9.5.dfsg-3ubuntu0.2_i386.deb |
[read more]
– AptGet/Howto
– 만약 다음과 같은 명령어를 실행했다면, 인터넷연결이 안 된 서버의 파일을 복구할 수 없었다.
1 |
$sudo apt-get clean |
이는 불행중 다행이라고 생각한다.
[mac]Apache, MySQL, PHP, phpMyAdmin 설정
MySQL 을 Yosemite(요세미티)에 설치하기
문제 1 : 현재의 최신 버전 MySQL 5.6.21은 매버릭스(Mac OS X 10.9)까지만 지원해서 설치시 오류 메시지가 발생한다.
해결 1 : 설치시 “사용자화(custom install)”를 선택해서 “start up item”을 체크해제하여야 한다.(http://coolestguidesontheplanet.com/get-apache-mysql-php-p…/)
문제 2 : MySQL이 요세미티에서는 맥 시작시 자동으로 실행되지 않고, 수동으로 실행시켜줘야 한다.
해결 2 : 아래 링크된 페이지(http://stackoverflow.com/questions/26476391/how-to-auto-load-mysql-on-startup-on-osx-yosemite)에서 소개하는 /Library/LaunchDaemons/com.mysql.mysql.plist 파일을 만든 다음, launchctl에 추가한다.
-다음의 파일 만들기
/Library/LaunchDaemons/com.mysql.mysql.plist
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<!--?xml version="1.0" encoding="UTF-8"?--> <plist version="1.0"> <dict> <key>KeepAlive</key> <true /> <key>Label</key> <string>com.mysql.mysqld</string> <key>ProgramArguments</key> <array> <string>/usr/local/mysql/bin/mysqld_safe</string> <string>--user=mysql</string> </array> </dict> </plist> |
launchctl에 추가하기
1 2 3 |
sudo chown root:wheel /Library/LaunchDaemons/com.mysql.mysql.plist sudo chmod 644 /Library/LaunchDaemons/com.mysql.mysql.plist sudo launchctl load -w /Library/LaunchDaemons/com.mysql.mysql.plist |
[wp]한글문서(hwp)를 글에 첨부하기
문제 : 워드프레스가 외국에서 만들어지다 보니, 한글문서(hwp)를 인식하지 못하여 글에 첨부할 수 없다.
해결 : 테마(메뉴->외모->테마편집기)의 functions.php를 다음과 같이 손을 봤다.
출처 : http://eastsocial.co.kr/2013/05/1497
1 2 3 4 5 |
add_filter('upload_mimes', 'custom_upload_mimes'); function custom_upload_mimes ( $existing_mimes=array() ) { $existing_mimes['hwp'] = 'application/hangul'; return $existing_mimes; } |
[wp]Roles and Capabilities
워드프레스에서 사용자를 등록할 때, 4가지 역할(subscriber/contributor/author/editor) 중의 하나를 지정할 수 있다.
각 역할은 다음과 같은 구분된 능력을 가진다.
Summary of Roles
source: http://codex.wordpress.org/Roles_and_Capabilities
Super Admin – somebody with access to the site network administration features and all other features. See the Create a Network article.
Administrator – somebody who has access to all the administration features within a single site.
Editor – somebody who can publish and manage posts including the posts of other users.
Author – somebody who can publish and manage their own posts.
Contributor – somebody who can write and manage their own posts but cannot publish them.
Subscriber – somebody who can only manage their profile.
[wp]외부 게시판을 iframe으로 넣기
1. 문제
– 옛 홈페이지의 게시판을 새 홈페이지에서 보여주고 싶다
2. 경과
– 옛 게시판 자료(XE)를 새 홈페이지(WordPress)로 옮기기가 어려웠다.
– 새 홈페이지에서 iframe명령어를 이용해서 옛 게시판을 불러오기로 했다.
3. 해법
– 새 페이지를 만들었다.
– 페이지 이름 : 학과게시판(구)
– 페이지 내용을 다음과 같이 입력
1 |
<iframe src="http://architecture.kunsan.ac.kr/xe/notice" width="100%" height="500" frameborder="0" scrolling="no" onload="autoResize(this)"></iframe> |
– Appearance -> Editor -> Header(header.php)를 편집
– header와 /header 사이에 autoResize()함수를 삽입
1 2 3 4 5 6 7 8 9 |
<script type="text/javascript"> // iframe resize를 위한 것으로 solarview가 삽입함 function autoResize(i) { var iframeHeight= (i).contentWindow.document.body.scrollHeight; (i).height=iframeHeight+20; } </script> |
4. 느낀 점
– 자료를 모두 이사하지 않아도 된다
– 강제로 테마 내의 파일(header.php)를 편집했는데, 혹 테마가 갱신되면 이 작업을 다시 해야 하는 걱정이 든다. 언발에 오줌누기일까?
– 자바 스크립트를 좀 더 깔끔하게 삽입하는 방법은 없을까?
5. 참고 문헌
http://felisis.wordpress.com/2012/05/31/워드프레스에서-외부게시판-사용하기-3/
http://janmori.tistory.com/entry/워드프레스에-xe-게시판-아이프레임으로-넣는법