ORACLE
SELECT *
FROM USER_OBJECTS
WHERE OBJECT_TYPE ='TABLE'
ORDER BY OBJECT_NAME
MS-SQL
SELECT *
FROM sysobjects
WHERE type = 'U'
ORDER BY name
MySQL
SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = '계정명'
ORACLE
SELECT *
FROM USER_OBJECTS
WHERE OBJECT_TYPE ='TABLE'
ORDER BY OBJECT_NAME
MS-SQL
SELECT *
FROM sysobjects
WHERE type = 'U'
ORDER BY name
MySQL
SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = '계정명'
linux 환경
명령어
cd /usr/local/apache
웹서버를 시작
pico : text editer
pico /usr/local/apache/conf/httpd.conf
위치
1. /usr/local/apache
2.
수정
#ServerName
이란 것이 주석 처리(#) 이 되어 있을 것이다.
이것을 주석을 지우고 도메인을 입력하도록 하자.
변경후
ServerName sansung.net
아파치 웹서버 httpds.conf 서버설정에 대해 정리한다.
ServerAdmin
- 관리자 이메일 주소를 설정한다. ServerSignature 값이 Email로 설정되었을 경우, 이메일 주소는 404, 500 에러가 발생했을 경우 에러 화면에 해당 이메일 주소가 표시된다.
DocumentRoot
- 웹 프로젝트가 있는 루트 디렉토리를 지정한다.
- 기본설정은 /var/www/html이다.
- 가상호스트에서도 사용할 수 있으므로 가상 호스트마다 각각 다른 웹 프로젝트 서비스가 가능해진다.
DirectoryIndex
- 웹요청 주소가 디렉토리만 있고 파일명이 없을 때 기본적으로 읽어서 전송할 파일명을 설정한다.
- index.html index.jsp 등
<Directory 디렉토리명></Directory>
- 디렉토리 단위별로 설정하는 지시자다. Location 지시자와 비슷하나 차이점은 Location은 URL을 기반으로 한다는 것이다. Directory 지시자는 로컬 파일의 경로를 대상으로 한다.
- 주로 Options와 접근권한을 설정하는 경우가 많다.
- 예제)
<Directory "/var/www/html">
Options Indexs FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
1) Options
- 설정한 디렉토리("/var/www/html") 하위의 모든 디렉토리와 파일에 대한 접근권한을 제어한다.
- https://httpd.apache.org/docs/2.2/ko/mod/core.html#directory [Options Directive] 참조
옵션 | 설명 |
None | 모든 접근을 허용하지 않는다. |
All | 모든 옵션설정을 허용한다. (단, MultiViews는 제외) |
Indexes | 디렉토리 접근시 DirectoryIndex에 설정한 파일이 없을 때 디렉토리내 파일 목록을 보여준다. |
Includes | Server-side includes provided by mod_include are permitted. |
IncludesNoExec | Server-side includes are permitted, but the #exec cmd and #exec cgi agr disabled. |
FollowSymlinks | 심볼릭 링크를 사용할 수 있다. |
ExecCGI | CGI 스크립트를 실행할 수 있다. |
MultiViews | 클라이언트가 요청한 media type과 content-encoding을 가지고 적절한 요청을 처리한다. |
2) AllowOverride
- 디렉토리에 .htaccess 파일이 있을 경우 기존 설정을 덮어쓸지 여부를 설정한다. 기본설정은 None이다.
※ .htaccess 파일은? 웹서비스 디렉토리별로 설정이 달라져야 할 경우가 있다. 이때 관리자가 모든 설정을 하기는 힘들기 때문에 개별 디렉토리마다 다르게 설정하기 위해 존재하는 파일이다. 예로, 호스팅을 받아 서비스를 할때 .htaccess 파일을 사용한다.
옵션 | 설명 |
None | 디렉토리별 설정을 허가하지 않는다. 즉, htaccess 파일을 Override하지 않는다. |
All | .htaccess 파일을 우선 적용하도록 Override를 허용한다. |
Options | .htaccess에 설정된 Options 지시자(디렉토리 옵션) 사용을 허용한다. |
FileInfo | .htaccess에 설정된 AddEncoding, AddLanguage, AddType, DefaultType, ErrorDocument, LanguagePriority와 같은 문서유형 지시자 사용을 허용한다. |
AuthConfig | .htaccess에 설정된 클라이언트 인증 지시자 사용을 허용한다. |
Limit | .htaccess에 설정된 Order, Allow, Deny와 같은 접근제어 지시자 사용을 허용한다. |
3) Order allow, deny
- 순서대로 Allow에 대한 부분을 먼저 확인 후, Deny를 확인한다.
4) Allow
- Allow from all : 모든 클라이언트로부터의 연결을 허용한다.
- Allow from 127.0.0.1 192.168.111.100 : 127.0.0.1과 192.168.111.100 IP 클라이언트만 허용한다.
5) Deny
- Deny from all : 모든 클라인트로부터의 연결을 거부한다.
- 예)
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Location>
<Files 파일명></Files>
- 파일명에 따라 특별한 처리를 할 때 사용한다.
- 파일명에 포함된 ?는 임의의 한 문자와 일치함을, *는 임의의 한 문자열이 일치함을 나타낸다.
- 파일명 앞에 ~가 붙게 되면 정규표현식을 사용할 수 있다.
- 예제1) 관리페이지는 외부인이 볼 수 없도록 설정
<Files admin.php>
Order deny,allow
Deny from all
Allow From 127.0.0.1
</Files>
- 예제2) htm, html, css, js, php 파일 인코딩 설정
<Files ~ "\.(htm|html|css|js|php)$">
AddDefaultCharset UTF-8
DefaultLanguage ko_KR
</Files>
<FilesMatch 정규표현식></FilesMatch>
- <Files>의 정규표현식 사용가 동일하다. 대신 <FilesMatch>는 ~를 붙히지 않아도 정규표현식이 적용된다.
- 예제1) htm, html, css, js, php 파일 인코딩 설정
<FilesMatch "\.(htm|html|css|js|php)$">
AddDefaultCharset UTF-8
DefaultLanguage ko_KR
</FilesMatch>
Redirect
- Redirect [HTTP 상태코드] [요청URL] [리다이렉트 URL]
- HTTP 상태코드는 리다이렉트가 되면서 바뀔 상태코드를 지정한다. 기본값은 302.
- 예제1)
Redirect 301 /hello http://www.naver.com
Redirect /world http://www.naver.com
RedirectMatch
- Redirect 지시자와 비슷하며 정규표현식으로 리다이렉트를 처리할 수 있다.
- 예제1) 톰캣의 WEB-INF와 META-INF 폴더를 접근 못하게 설정
RedirectMatch 404 /(?i)(WEB-INF|META-INF)(/|$)
DefaultType
- 모르는 타입이 들어왔을 경우 설정할 기본 MIME 타입을 설정한다.
LogFormat
- 서버의 로그파일 형식을 설정한다. common은 기본설정, combined는 Referer와 User-Agent가 추가되었다.
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
옵션 | 설명 | 예제 |
%h | 요청한 원격 호스트 | 192.168.111.100 |
%l | 원격 로그인명 | - |
%u | 원격 사용자명 | - |
%t | 요청날짜 및 시간 | [21/Feb/2016:15:28:28 +0900] |
%r | 요청의 첫번째 라인 | GET/HTTP/1.1 |
%s | HTTP 응답코드 | 200 |
%b | HTTP 헤더를 제외한 응답의 Byte 길이 | 66 |
%{헤더명}i | HTTP 헤더에서 작성한 헤더명에 대한 값을 출력 | %{Referer}i %{User-Agent}i |
ErrorLog
- 에러로그 파일을 설정한다.
- 예제)
ErrorLog "| /usr/local/apache/bin/rotatelogs -l /usr/local/apache/logs/error.log.%Y%m%d 86400" combined
CustomLog
- 클라이언트의 요청이력을 남길 로그파일을 설정한다.
- 예제)
CustomLog "| /usr/local/apache/bin/rotatelogs -l /usr/local/apache/logs/access.log.%Y%m%d 86400" combind
Alias
- 요청 URL을 특정 파일 시스템에 연결시킨다.
- 예제)
Alias /helpFiles /nas/2016/helpFiles
AddDefaultCharset
- 컨텐츠 형식이 text/plain이나 text/html일 경우 HTTP 응답 헤더에 설정된 charset 헤더를 추가한다.
- 가상 호스트마다 다르게 설정할 수 있다.
- HTTP 응답 헤더에 charset이 지정되었을 경우는 HTML <meta>태그로 charset을 지정해도 헤더에 있는 charset이 적용된다. DefaultCharset과 다른 HTML이 있다면 파일의 인코딩을 변경하거나 <meta>태그로 charset을 명시적으로 지정하고 해당 지시자를 Off하여야 한다.
- 예제)
AddDefaultCharset UTF-8
결과 : Content-Type : text/html; charset=UTF-8
출저 : http://pshcode.co.kr/88
exERD
Some projects cannot be imported because they already exist in the workspace
= workspace .. 내에 같은 프로젝트가 존재하기 때문에 import 할 수 없습니다.
[안드로이드] 안드로이드 MVC 구조 이해 설명 자료 (0) | 2016.03.17 |
---|---|
[안드로이드] 개발 팁 (0) | 2016.03.11 |
[안드로이드 참고] 안드로이드 환경 세팅 (0) | 2016.03.08 |
소켓 객체 직렬화 java.lang.ClassNotFoundException: com.chat.data.SendTalkData (1) | 2016.03.04 |
소켓 ... (0) | 2016.03.02 |
root@zetawiki:~# exit logout There are stopped jobs.
2016 . 3 . 8 AM 15:00
pwd /usr/local/mysql exit
logout
there are stopped jobs ...
CentOs 버전 및 Apache 버전 확인 / centos version and apache version check (0) | 2016.02.26 |
---|---|
리눅스 명령어 모음 (0) | 2016.02.24 |
vi 편집기 명령어 (0) | 2016.02.22 |
http://brad2014.tistory.com/257
JDK 설치 및 PATH 설정
http://rhyshan.com/207
[안드로이드] 개발 팁 (0) | 2016.03.11 |
---|---|
[안드로이드][이클립스][서버] Some projects cannot be imported because they already exist in the workspace (0) | 2016.03.09 |
소켓 객체 직렬화 java.lang.ClassNotFoundException: com.chat.data.SendTalkData (1) | 2016.03.04 |
소켓 ... (0) | 2016.03.02 |
[안드로이드] 안드로이드 키보드 가리기 업애기 / 키보드 보이기 (0) | 2016.03.01 |
java.lang.ClassNotFoundException: com.chat.data.SendTalkData
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:603)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1574)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
at com.chat.net.ChatServer$ClientHandler.run(ChatServer.java:124)
[접속자] 127.0.0.1
java.io.StreamCorruptedException: invalid stream header: 434E584E
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:782)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:279)
at com.chat.net.ChatServer$ClientHandler.run(ChatServer.java:121)
해결방법은 간단하다.
ObjectInputStream 및 ObjectOutputStream으로 서로 주고 받으려는 클래스가 위치한 패키지 이름이 서버와 클라이
언트에서 서로 같은지를 확인해보자.
나의 경우 안드로이드 클라이언트에서는 com.example.pmbs_client 패키지 내에 Header 클래스가 위치해 있었고,
자바서버에서는 server 패키지 내에 Header 클래스가 위치해 있었다.
그래서 서버와 클라이언트 모두 각각 shared 라는 패키지를 별도로 만들고 그 안에 Header 클래스를 넣어 두니 문제
가 해결되었다.
p.s) 참고로 ObjectInputStream 및 ObjectOutputStream으로 객체를 보내고자 할때 해당 클래스는 Serializable을 구
현해야 한다.
[안드로이드][이클립스][서버] Some projects cannot be imported because they already exist in the workspace (0) | 2016.03.09 |
---|---|
[안드로이드 참고] 안드로이드 환경 세팅 (0) | 2016.03.08 |
소켓 ... (0) | 2016.03.02 |
[안드로이드] 안드로이드 키보드 가리기 업애기 / 키보드 보이기 (0) | 2016.03.01 |
리스트뷰 아이템 클리 (0) | 2016.03.01 |
java.net.BindException: Address already in use: JVM_Bind
at java.net.PlainSocketImpl.socketBind(Native Method)
at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
at java.net.ServerSocket.bind(ServerSocket.java:328)
at java.net.ServerSocket.<init>(ServerSocket.java:194)
at java.net.ServerSocket.<init>(ServerSocket.java:106)
at com.chat.net.ChatServer$BroadcastServer$WaitingSocket.run(ChatServer.java:66)
at java.lang.Thread.run(Thread.java:662)
그래서 다음과 같이 입력하면 됩니다.
netstat -ano
-a : 모든 포트를 표시해줍니다.
-n : IP주소:포트 형태로 보여줍니다. (예 - 192.168.0.22:1234)
-o : PID (프로세스 ID)를 표시해줍니다. (해당 프로그램 중지시에 사용)
주소가 이미 사용중에 있다!
즉 내가 요구한 포트 6789가 사용중이라 안된다는 것이다!
따라서 그 포트를 닫아주어야 해결된다.
1. cmd창에서 netstat -o -a 를 실행한다.
2. 사용중인 포트들에 대한 정보들이 쫙 나온다.
3. 이중 해당하는 포트번호(지금의 경우 6789)를 찾아 PID를 기억해둔다.
4. 작업관리자를 실행하여 프로세스탭 선택
5. 기억해둔 PID를 찾아 해당 PID의 프로세스를 "프로세스끝내기" 한다.
리소스 모니터에서 javaw.exe 제거