세이박스

fedora APM apache mysql php 설치

서버,보안

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 -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

출처 : http://uiandwe.tistory.com/127