mysql.sock 라는 것은 Unix Domain Socket 입니다.
Unix Domain Socket 이라는 것은 TCP/IP와 같은 식으로 다룰 수 있는 통신 소켓입니다.
(소켓 프로그래밍에서도 socket을 생성할 때 TCP/IP와 인수만 다르게 주어서
생성시키죠. 그 뒤는 같은 방식으로 다룹니다.)
단 Unix Domain Socket은 다른 컴퓨터에 있는 프로세스와는 통신할 수 없고,
같은 컴퓨터에 있는 프로세스끼리 통신만 가능합니다. 일종의 IPC 죠.

왜 이런 게 필요하냐면,
Mysql 서버 프로그램(데몬이라고 하죠. mysqld)과 클라이언트 프로그램(mysql, 또는
php의 mysql 접속 루틴)은 서로 다른 프로세스입니다. 당연히 둘 사이에 통신이 이루어져야
어떤 일을 할 수 있는 거죠. 이 통신의 용도로 Unix Domain Socket을 쓰는 겁니다.

mysql은 TCP/IP 소켓과 Unix Domain Socket 둘 다 사용할 수 있습니다.
앞의 것은 mysql 서버와 클라이언트가 다른 컴퓨터에 있을 때 사용하며(이때 포트는 보통
3306이죠), 뒤의 것은 서버와 클라이언트가 같은 컴퓨터에 있을 때 사용합니다. 같은 컴퓨터에
있을 때에도 TCP/IP 소켓을 쓸 수도 있으나 Unix Domain Socket이 더 빠르죠.

TCP/IP 소켓이 아이피 주소와 포트를 이용해서 접속을 하듯이 Unix Domain Socket은
파일을 이용합니다. 질문에서 나왔던 mysql.sock 이라는 것이 바로 이 용도로 사용되는
파일입니다. 따라서 mysqld 를 실행시켰을 때는 mysql.sock 파일이 있지만, 중지시키면
저 파일은 사라집니다.

그래서 통신을 하기 위해서는 mysql.sock 라는 파일은 서버와 클라이언트 모두 접근
가능해야 합니다. mysql.sock 파일이 생성되는 위치에 서버가 파일을 쓰거나 읽을 수 없으면
서버는 에러를 발생시키고 중지되며, 클라이언트가 그 파일에 접근할 수 없으면 접속이
이루어지지 않습니다. mysql.sock 파일에 관한 문제는 이 접근 권한이 잘못되어서
발생하는 것이 대부분입니다.

rpm으로 설치하면 보통 mysql.sock 파일의 위치는 /var/lib/mysql/mysql.sock 입니다.
이것은 mysql 을 컴파일할 때 --with-unix-socket-path=.... 에서 설정할 수 있습니다.
이럿게 되면 mysqld, mysql, 그리고 libmysqlclient.a(so) 도 모두 이 설정을 이용해서
통신을 하게 됩니다. 이 도메인 소켓의 위치는 컴파일 후라도 명령행 인수를 이용해서
바꿔 줄 수 있습니다. 또는 /etc/my.cnf 파일에서 지정할 수도 있습니다.

unix domain socket 에 대해 더 자세히 알고 싶으시면
W. Richard Stevens, Unix Network Programming I 을 참조하시면 됩니다.  

사용중인 DB를 덤프할 때 특정 테이블을 제외하고 싶을 때는 아래 옵션을 이용하면 된다.

(전체 테이블 중 특정 1개 테이블만을 제외하는 덤프)

mysqldump -u root -p DBname --ignore-table=DBname.tbname > 저장파일명.sql

(제외할 테이블이 n개 일 경우 아래처럼 --ignore-table=dbname.tbname 을 추가한다)

mysqldump -u root -p DBname --ignore-table=DBname.tbname1 --ignore-table=DBname.tbname2 > 저장파일명.sql 

 

a.php 파일이 실행 되지 않을 경우

vi로 파일을 열어서 도스에서 만든 파일인지 확인 후, 

쉘에 dos2unix a.php 실행 하면 된다

​[참고] 시스템에 dos2unix 가 없을 경우  yum -y install dos2unix  (Redhat 계열)​


출처 : http://seobangnim.digimoon.net/zbxe/?mid=PHP&page=1&document_srl=586978

 

<?
$mobileKeyWords = array ('iPhone','iPod','BlackBerry','Android','Windows CE','Windows CE;','LG','MOT','SAMSUNG','SonyEricsson','Mobile','Symbian','Opera Mobi','Opera Mini','IEmobile');

for($i = 0 ; $i < count($mobileKeyWords) ; $i++) {

if(strpos($_SERVER['HTTP_USER_AGENT'],$mobileKeyWords[$i]) == true) {

header("Location: http://모바일페이지경로");

exit;

}
}

if(strpos($HTTP_HOST, '접속도메인') == strlen($HTTP_HOST)-strlen('접속도메인)) {
    header("location:http://연결할URL".$REQUEST_URI);
    exit;
}
else
header('Location: 예외처리경로<http형식의 절대주소로기입>');


?>
 

 

1. JDK(java) 설치

rpm -ivh jdk-7u40-linux-x64.rpm

설치 확인 : rpm -qa | grep jdk
whereis java (jdk 가 설치된 경로 확인)

cd /usr/java
mv jdk1.7.0_40 /usr/local/java
vi /etc/profile 해서 아래의 내용을 최하단에 추가할 것!
#JAVA JDK7
export JAVA_HOME=/usr/local/java
export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:/usr/local/bin:$JAVA_HOME/bin:$CATALINA_HOME/bin


source /etc/profile (/etc/profile의 내용을 적용시킴)
javac --version   (java가 연동되었는지 버전을 확인하는 것으로 검증)
2. Apache Tomcat 설치

다운로드 사이트 http://tomcat.apache.org

tar zxxf apache-tomcat-7.0.37.tar.gz
cd apache-tomcat-7.0.37
mv apache-tomcat-7.0.37 /usr/local/
cd /usr/local
ln -s apache-tomcat-7.0.37/ tomcat
vi /usr/local/tomcat/conf/server.xml  해서 아래의 내용을 기존에 등록된 </Host> 하단에 추가!

        <Host name="hasudo24.com" appBase="/home/hasudo24/public_html"
              unpackWARs="true" autoDeploy="true">
         <context path="" docBase="/home/hasudo24/public_html"></context>
        </Host>

만일 다수의 계정을 Port 별로 추가하고 싶다면 아래의 <Service> 항목을 최하단에 추가

<Service name="Catalina">
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
    <Connector port="8012" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
             resourceName="UserDatabase"/>
      <Host name="sudo04.com"  appBase="/home/sudo04/public_html"
            unpackWARs="true" autoDeploy="true">
            <context path="" docBase="/home/sudo04/public_html"></context>
      </Host>
    </Engine>
  </Service>
/usr/local/tomcat/bin/startup.sh
ll /usr/local/tomcat/conf/Catalina/ 하위에 적용을 원하는 도메인명 폴더가 있는지 확인하고 없으면
mkdir 호스트네임명폴더 해서 만든다.  (대부분 자동으로 만들어질 것이다.
cd 호스트네임명폴더
vi ROOT.xml 해서 아래의 내용을 추가한다.!
<?xml version="1.0" encoding="utf-8"?>
<Context crossContext="true" docBase="/home/계정명/public_html" path="/" reloadable="true">
</Context>
netstat -nlp 해서 8080 포트가 java 로 사용되는지 확인
3. Tomcat-Connector 설치
tar zxvf tomcat-connectors-1.2.37-src.tar.gz
cd tomcat-connectors-1.2.37-src/native/
./configure --with-apxs=/usr/local/apache/bin/apxs
make && make install
cd apache-2.0/ (주의 : 자신의 apache 버전에 맞는 것으로 이동) mod_jk 가 설치된 것을 확인
* 정상적으로 설치가 되면 apache 모듈디렉토리에도 동일한 모듈이 만들어져있다.
 
(호스트먼트의 경우 first_setup/home/httpd/build 디렉토리를 /home/httpd/ 에 복사하면 에러 안남)
컴파일 에러가 발생하는 서버를 위해 완성된 모듈을 첨부한다. (첨부파일 참조)

vi /etc/httpd/conf/httpd.conf 해서 아래의 항목 추가
apache 1.3.x 의 경우 LoadModule jk_module     libexec/mod_jk.so
apache 2.x.x 의 경우 LoadModule jk_module          modules/mod_jk.so
 
그리고 아래의 Tomcat connector 설정 파일을 적절한 위치에 추가
 
# JSP TOMCAT
JkWorkersFile "/etc/httpd/conf/workers.properties"
JkLogFile "/var/log/httpd/mod_jk.log"
JkLogLevel emerg
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
JkMount /*.do ajp13
JkMount /*.pts ajp13
JkMount /*.app ajp13
JkMount /*.bbs ajp13
 
vi /etc/httpd/conf/workers.properties 해서 아래의 내용을 추가할 것!
 
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
#worker.ajp13.lbfactor=1
 
vi /etc/httpd/conf/virtualhosts.conf 해서 적용을 원하는 계정의 </Virtualhost> 상단에 아래내용 추가!
 
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
JkMount /*.do ajp13
 
해당 계정 public_html 하단에 test.jsp 파일을 만들어 아래내용 추가
 
<%@ page contentType="text/html; charset=euc-kr" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
 </HEAD>
 <BODY>
<% out.print("이 페이지가 보이신다면 JSP 환경이 정상적으로 구성된 것입니다.");%>
 </BODY>
</HTML>