서버/Linux III 2016. 4. 6. 12:29

Linux III - 11. Apache 웹-서버 (PHP & MySQL)

 

 

 

login as: root
root@192.168.1.100's password:
Last login: Tue Apr  5 14:38:50 2016 from 192.168.1.1
[root@main /root]#

 

 

login as: root
root@192.168.1.101's password:
Last login: Mon Apr  4 10:32:06 2016 from 192.168.1.1
[root@clone1 /root]#

 

 

리눅스에서 웹-서버를 구축할 경우 APM(Apache, PHP, MySQL)을 사용한다.

 

 APM

내용

 Apache

 

 - 리눅스에서 웹-서버를 구축할때 사용하는 웹-서버 httpd 데몬이다.

 - 윈도우에서는 IIS 서비스를 이용하여 웹-서버를 구축한다.

 

 PHP

 

 - 웹 프로그래밍 언어이다.

 - HTML은 일반 사용자도 브라우저에서 소스를 확인할 수 있다.

 - PHP는 서버에서 소스를 분석해 HTML 코드로 만들어 브라우저에게 전달하기 때문에

   일반 사용자는 PHP 소스를 확인할 수 없다.

 

 - 웹-서버에서는 PHP 소스 코드를 인식하여 HTML 코드로 변경하여 사용자에게  전달하는

   기능을 사용하기 위해서 Apache 웹-서버에서 PHP를 사용한다.

 

 MySQL

 

 - MySQL 커뮤니티 서버는 무료 데이터베이스이다.

 - PHP 언어와 연동이 쉽게 때문에 Apache 웹-서버에서 MySQL를 사용한다. 

 

 

 

 

 

1. Apache & PHP & MySQL 패키지 설치

 

[root@main /root]# rpm -qa | grep -E 'httpd|php|mysql'
qt-mysql-4.6.2-28.el6_5.x86_64
mysql-server-5.1.73-3.el6_5.x86_64
mysql-5.1.73-3.el6_5.x86_64
httpd-tools-2.2.15-39.el6.centos.x86_64
mysql-connector-odbc-5.1.5r1144-7.el6.x86_64
httpd-2.2.15-39.el6.centos.x86_64
mysql-libs-5.1.73-3.el6_5.x86_64

 

 

[root@main /root]# yum -y install httpd mysql mysql-server php php-server

 

[root@main /root]# rpm -qa | grep -E 'httpd|php|mysql'
php-5.3.3-46.el6_7.1.x86_64
qt-mysql-4.6.2-28.el6_5.x86_64
php-cli-5.3.3-46.el6_7.1.x86_64
httpd-2.2.15-47.el6.centos.4.x86_64
mysql-5.1.73-5.el6_7.1.x86_64
mysql-connector-odbc-5.1.5r1144-7.el6.x86_64
mysql-libs-5.1.73-5.el6_7.1.x86_64
mysql-server-5.1.73-5.el6_7.1.x86_64
php-common-5.3.3-46.el6_7.1.x86_64
httpd-tools-2.2.15-47.el6.centos.4.x86_64

 

 

[root@main /root]# rpm -qa httpd mysql php
php-5.3.3-46.el6_7.1.x86_64
httpd-2.2.15-47.el6.centos.4.x86_64
mysql-5.1.73-5.el6_7.1.x86_64

 

 

[root@main /root]# httpd -v
Server version: Apache/2.2.15 (Unix)
Server built:   Mar 22 2016 19:03:53

 

 

 

 

2. Apache 서비스 활성화

 

 - httpd 서비스를 시작한다.

 

[root@main /root]# service httpd start
httpd (을)를 시작 중:
[root@main /root]#

 

 

[root@main /root]# service httpd status
httpd (pid  36595)를 실행하고 있습니다..

 

 

 

 - 재부팅시에도 Apache 서비스가 활성화 되도록 구성한다.

 

[root@main /root]# chkconfig --list httpd
httpd           0:해제  1:해제  2:해제  3:해제  4:해제  5:해제  6:해제

 


[root@main /root]# chkconfig httpd on

 

[root@main /root]# chkconfig --list httpd
httpd           0:해제  1:해제  2:활성  3:활성  4:활성  5:활성  6:해제

 

 

 

 

3. Apache 환경 설정

 

 - httpd 환경 설정 파일은 '/etc/httpd/conf/httpd.conf' 파일로 관리한다. 

 

[root@main /root]# rpm -ql httpd | grep httpd.conf
/etc/httpd/conf
/etc/httpd/conf.d
/etc/httpd/conf.d/README
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic

 

[root@main /root]# ls /etc/httpd/conf
httpd.conf  magic

 

 

 

 - vi 편집기를 이용하여 다음과 같이 설정을 실시한다.


[root@main /root]# vi /etc/httpd/conf/httpd.conf

 

 ~ 중간 생략 ~

 240 #  don't use Group #-1 on these systems!
 241 #
 242 #User apache
 243 User nobody
 244 #Group apache
 245 Group nobody
 246
 247 ### Section 2: 'Main' server configuration
~ 중간 생략 ~

 

 

 278 #ServerName www.example.com:80
 279 ServerName www.test.com:80
 280
~ 중간 생략 ~

 


: wq! 

 

 

 

 - '/var/www/html/' 디렉토리에 'index.html' 파일을 생성한다.

 

[root@main /root]# vi /var/www/html/index.html

 

 1 <h1> Welcome to www.test.com <h1>
 

: wq!

 

 

 

 - httpd 서비스를 재시작한다.

 

[root@main /root]# service httpd restart
httpd 를 정지 중:                                          [  OK  ]
httpd (을)를 시작 중:                                      [  OK  ]

 

 

 

- clone1에서 'www.test.com' 접속 실시

 

 

 

 

 

 

4. PHP 환경 설정 및 Apache 연동

 

 - PHP를 연동하기 위해서 '/etc/httpd/conf/httpd.conf' 파일에 다음과 같은 설정을 추가한다. 

 

[root@main /root]# vi /etc/httpd/conf/httpd.conf

 

 ~ 중간 생략 ~

 403 # same purpose, but it is much slower.
 404 #
 405 DirectoryIndex index.html index.html.var index.htm index.php
 406
 407 #
 ~ 중간 생략 ~

 

 

 768 #AddType application/x-tar .tgz
 769 AddType application/x-httpd-php .php .html .htm .inc   <- PHP 모듈 처리가 가능한 확장자
 770 AddType application/x-httpd-php-source .phps   <- 확장자가 phps이면 클라이언트에게

                                                                                 소스코드를 보여줌
 771

~ 중간 생략 ~


: wq! 

 

 

 

 - '/var/www/html/' 디렉토리에 'index.php' 파일을 생성한다.

 

[root@main /root]# vi /var/www/html/index.php

 

 1 <?php phpinfo(); ?>  <- PHP 정보 및 환경 변수를 보여주는 함수 설정
 

: wq!

 

 

 

 - httpd 서비스를 재시작한다.

 

[root@main /root]# service httpd restart
httpd 를 정지 중:                                          [  OK  ]
httpd (을)를 시작 중:                                      [  OK  ]

 

 

 

- clone1에서 'www.test.com' 접속 실시

 

 

 

 

 

 

5. MySQL 환경 설정 및 활성화

 

 - mysqld 서비스를 시작한다.

 

[root@main /root]# service mysqld status
mysqld가 정지되었습니다

 


[root@main /root]# service mysqld start
MySQL 데이타베이스 초기화 중:  Installing MySQL system tables...
OK
~ 중간 생략

 

Please report any problems with the /usr/bin/mysqlbug script!

                                                           [  OK  ]
mysqld (을)를 시작 중:                                     [  OK  ]

 

 

[root@main /root]# service mysqld status
mysqld (pid  36979)를 실행하고 있습니다..

 

 

 

 - 재부팅시에도 MySQL 서비스가 활성화 되도록 구성한다.


[root@main /root]# chkconfig --list mysqld
mysqld          0:해제  1:해제  2:해제  3:해제  4:해제  5:해제  6:해제

 


[root@main /root]# chkconfig mysqld on

 


[root@main /root]# chkconfig --list mysqld
mysqld          0:해제  1:해제  2:활성  3:활성  4:활성  5:활성  6:해제

 

 

 

 - MySQL 접속이 되는지 확인한다. (처음에는 패스워드가 없기 때문에 '엔터'를 실시하면 된다.)

 

[root@main /root]# mysql -u root -p
Enter password: (엔터)
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.1.73 Source distribution

 

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

 

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
3 rows in set (0.01 sec)

 

mysql>
mysql> quit
Bye
[root@main /root]#

 

 

 

 - MySQL 접속 패스워드를 설정하도록 한다.


[root@main /root]# mysqladmin -u root password centos

 


[root@main /root]# mysql -u root -p
Enter password: centos
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.1.73 Source distribution

 

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

 

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

mysql> quit
Bye
[root@main /root]#

 

 

[참고] HTTP 상태 코드

 

코드

이름

내용

200

OK 

오류 없이 전송 성공 

301 

Moved Permanently 

영구 이동

403  

Forbidden

접근 차단, 권한 없음 

404 

Not Found

요청 페이지를 찾을 수 없음 

500

Internal Server Error 

서버 내부 오류 

503

Service Unavaliable

Service Unavaliable

 

 

 

 

 

 

 

'서버 > Linux III' 카테고리의 다른 글

Linux III - 13. Samba 서버  (0) 2016.04.08
Linux III - 12. Apache 웹-서버 (Tomcat & Tomcat-Connector)  (0) 2016.04.06
Linux III - 10. DNS 서버  (0) 2016.03.25
Linux III - 09. DNS 서비스 이해  (0) 2016.03.22
Linux III - 08. NFS 서버  (0) 2016.03.18
Posted by 김정우 강사(카카오톡 : kim10322)
,


Q