1. apache 설치(httpd)

yum install httpd

 

2. mysql 설치

yum install mysql

yum install mysql-server

 

3. php 설치

yum install php

 

여기까지 하면 php 연동은 되지만 mysql 연동은 되지 않는다.

 

4. php-mysql 연동 설치

yum install php-mysql

 

 최신 리눅스들은 설치시 네트워크를 체크하면 자동으로 최신으로 업데이트되며 설치 됩니다.


5. mysql 을 초기화 

mysql_install_db 를 실행하고

 (어디 있는지 모르겟다면~ find 명령어로!! find / | grep mysql_install_db 

   수많은 블로그를 찾아다녔지만 다들 /usr/local/mysql 이 있따는데..-_-나는 없다.

   find 함수로 겨우 찾앗따는...)

./mysql_install_db


# mysql -u root mysql  (root로 mysql 접속) 

mysql> UPDATE user SET Password=PASSWORD('new_password') WHERE user='root';

root의 비번을 바꾸는 것이다. new-pasword 란에 새로운 패스워드를 입력하자

 
mysql> FLUSH PRIVILEGES;

 db 계정설정, 비밀번호 등 수정사항이 있을시 적용시키기 위해 

 db를 재부팅하지 않아도 동일한 효과를 얻을수 있다.

인제 패스워드를 입력해야만 db에 접근할수 있다.

 

EX) #mysql -u root mysql

password):xxxxxx

 

mysql>

 

요렇게 바뀐다.

 

 

그리고 php가 잘 연동되는지 확인하려면

 

/var/www/html/ 디렉토리(홈페이지 화일 위치) 에 index.php 화일 하나를 만들어서

 

index.php

 

  <? phpinfo(); ?>

 

와 같이 한후 외부에서 접속을 해보자

 

브라우저에서 php에 대한 정보가 나온다면 성공...

 

 추가 사항

 (1) 아파치 설정파일(/usr/local/apache/conf/httpd.conf) 다루기

요것도 디렉토리가 다를수 있으므로 find / | grep httpd.conf 해서 찾으면됩니다.

아파치 설정파일을 다룹니다. 변경후에는 꼭 아파치를 재시작하시기 바랍니다. 

(( 아파치 2.2.X는 설정파일이 기능별로 분리가 되어 있습니다. 아래와 같습니다.
httpd-autoindex.conf  httpd-info.conf    httpd-mpm.conf  httpd-userdir.conf httpd-dav.conf httpd-languages.conf  httpd-multilang-errordoc.conf  httpd-vhosts.conf  httpd-default.conf httpd-manual.conf     httpd-ssl.conf ))


 -  .php 파일 및 html 파일에서 php 코드 실행되게 설정하려면
AddType application/x-httpd-php .php .phtml .php3 .html .htm
AddType application/x-httpd-php-source .phps

위 내용을 추가해 줍니다. 추가 하게 되면 위 파일들에 있는 php 코드는 실행하게 됩니다.

- index.php를 기본으로 실행하게 설정
 아파치는 기본적으로 DirectoryIndex index.html index.html.var 이렇게 설정 되어 있어 index.html 파일을 기본으로 읽습니다. 조금 바꾸어 주어 index.php 파일 및 기타 파일들도 기본으로 읽게 설정합니다.
DirectoryIndex index.html index.htm index.php index.php3 index.cgi

- 그림 파일 및 프래쉬 파일 로그 남기지 않게 설정
방문자 수가 많아지면 웹로그가 엄청 쌓이게 되고, 그 로그는 크기가  2G를 넘게 되면 웹페이지에 이상현상이 생깁니다. 그렇다고 로그를 안 남길 수는 없는 것이고, 이미지 파일들은 로그남기는 것에서 제외합니다.
CustomLog logs/access_log common 을
SetEnvIfNoCase Request_URI (gif|png|jpg|css|js|bmp|jpeg|swf)$ IMAGE=1
CustomLog /usr/local/apache/logs/access_log common env=!IMAGE

이렇게 바꾸면^^; 쉽게 가능합니다.

(2) php 설정파일 (/usr/local/lib/php.ini) 다루기
 php와 관련된 설정을 다룹니다. 변경후에 꼭 아파치 재 시작을 해 주시기 바랍니다.

- post, get , 쿠키 , 세션등의 변수를 일반변수로
 예전에 php는 기본적으로 위 변수를 일반변수로 사용할 수 있었습니다. 하지만 보안에 취약 하기 때문에 php 설치시 기본적으로 일반변소로 사용못하게 설정합니다. 이렇게 되면 문제가 예전에 사용하던 짜여졌던 프로그램은 정상적으로 실행되지 않습니다. 
register_globals=On  이렇게 설정합니다.

- 업로드 용량 제한 풀기
 기본적으로 업로드는 2M로 제한되어 있습니다. 만약 2M 이상으로 하면 여러 가지 설정들을 바꾸어 줘야 합니다. 업로드 되는 시간을 길 게 해 주어야 하고, 한번에 잡아먹을 메모리를 크게 해 주어야 합니다. 
default_socket_timeout = 600
post_max_size = 20M
memory_limit = 20M
upload_max_filesize = 20M

 
확인
 이렇게 열심히 설치 하였다면.. 확인을 해야 합니다. 서버단에서 확인은 이렇게 합니다.


(1) 프로세스 확인 
  
ps -ef | grep httpd
root     24963     1  0 00:46 ?        00:00:00 /usr/local/apache/bin/httpd -k restart
daemon    7319 24963  0 01:16 ?        00:00:00 /usr/local/apache/bin/httpd -k restart
daemon    7320 24963  0 01:16 ?        00:00:00 /usr/local/apache/bin/httpd -k restart
daemon    7321 24963  0 01:16 ?        00:00:00 /usr/local/apache/bin/httpd -k restart
daemon    7322 24963  0 01:16 ?        00:00:00 /usr/local/apache/bin/httpd -k restart
daemon    7323 24963  0 01:16 ?        00:00:00 /usr/local/apache/bin/httpd -k restart

  
ps -ef | grep mysql
root      5444 29124  0 00:13 pts/0    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe
mysql     5465  5444  0 00:13 pts/0    00:00:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --pid-file=/usr/local/mysql/data/study.superuser.co.kr.pid --skip-locking --port=3306 --socket=/tmp/mysql.sock
mysql     5466  5465  0 00:13 pts/0    00:00:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --pid-file=/usr/local/mysql/data/study.superuser.co.kr.pid --skip-locking --port=3306 --socket=/tmp/mysql.sock
mysql     5467  5466  0 00:13 pts/0    00:00:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --pid-file=/usr/local/mysql/data/study.superuser.co.kr.pid --skip-locking --port=3306 --socket=/tmp/mysql.sock
mysql     5468  5466  0 00:13 pts/0    00:00:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --pid-file=/usr/local/mysql/data/study.superuser.co.kr.pid --skip-locking --port=3306 --socket=/tmp/mysql.sock

(2) 포트 확인
 
netstat -an | grep LISTEN | grep 80
tcp        0      0 :::80                       :::*                        LISTEN
 
netstat -an | grep LISTEN | grep 3306
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN




WRITTEN BY
No.190
세계정복의 시작점

받은 트랙백이 없고 , 댓글  4개가 달렸습니다.
  1. 안녕하세요 apm 설치하다가 안되는 부분이 ㅠ ㅁ ㅠ

    /var/www/html/ 디렉토리에 index.php 파일에 <? phpinfo(); ?> 작성후에

    http://localhost/index.php 실행했는데 하얀화면만 나오는 경우는 제대로 설치가

    안된건가요?
  2. php파일이 아닌 html로 하셔야 합니다~
    <? phpinfo(); ?> 요문장 자체가 html에서 php설치 정보를 가져오는 함수니까요.
    파일명을 html로 바꿔서 해보세요^-^/
  3. 알려주세염 2010.05.19 11:12 신고
    PHP 외부접속해서 확인하는것처럼
    SQL은 확인하는 방법 없나요 ㅠ
    아파치는 그냥 아이피 주소 쳐서 확인하는것이 맞는지좀 ㅠ
  4. 아파치 버전을 말씀하시는건가요?
    일반적으론 웹상에서 확인이 불가능 한걸로 알고 있습니다.(일반적으로)
    버전 별로 해킹이 가능하기 때문에 버전을 숨기는데요.
    통신상의 패킷을 보면은 알수있습니다. paros 같은 툴로 패킷은 가능하고요.
    sql도 같은 방법으로 확인 가능합니다.
    또한 sql같은 경우 클라이언트를 설치해서 외부에서 들어갈수 있습니다.
secret