오늘은 LAMP(Apache 2.4, MariaDB 5.5, PHP 5.6)을 설치해보겠습니다.
CentOS 7 기본 리포지토리는 Apache 2.4, MariaDB 5.5, PHP 5.6 버전이 설치가 불가능합니다.
Apache 2.4, MariaDB 5.5, PHP 5.6 버전을 설치하려면 이전에 포스팅한 WebTatic 리포지토리를 설치해주세요.
Jhok’s Blog – [CentOS 7] Yum 최신버전 리포지토리 (WebTatic) – 설치
1. 우선 패키지 업데이트를 진행해주세요.
(업데이트 해야할 패키지가 없으면 아무것도 업데이트 되지 않습니다.)
yum -y update
2. Apache, MariaDB, MySQL, PHP 중 설치되어 있는게 있는지 확인합니다.
(mariadb-libs-5.5.47-1.el7_2.x86_64는 기본으로 설치되어 있는 MariaDB 라이브러리 패키지입니다.)
rpm -qa | egrep "^(httpd*|mariadb*|mysql*|php*)"
3. httpd(Apache), MariaDB(Client), MariaDB-Server, php56w(PHP 5.6), php56w-mysql(PHP에서 MariaDB 와 연결시 필요한 패키지)를 Yum을 이용해 설치해줍니다.
yum -y install httpd mariadb mariadb-server php56w php56w-mysql
4. 설치가 정상적으로 완료되었으면 하단에 Complete!가 출력됩니다.
(Yum을 이용할때 내가 입력하지 않았는데도 설치되는 패키지들은 대부분 의존성에 의해서 설치되는 패키지입니다.)
5. 설치가 완료되었으면 rpm -qa 명령어를 통해 확인해보세요.
보기좋게 sort -n(정렬 -이름순) 정렬해서 표시되도록 해보세요.
rpm -qa | egrep "^(httpd*|mariadb*|mysql*|php*)" | sort -n
6. 데몬이 동작하는 서비스들은 처음 설치를 하면 서비스를 시작해야 합니다.
(이 명령어만 입력했다면 서버를 재시작 시 다시 서비스를 시작해야 합니다.)
service httpd start
7. 마찬가지로 MariaDB 서비스도 시작해주세요.
(이 명령어만 입력했다면 서버를 재시작 시 다시 서비스를 시작해야 합니다.)
service mariadb start
8. MariaDB 서비스를 시작했다면 이 명령어를 통해서 초기 설정을 진행해주세요.
mysql_secure_installation
9. MariaDB 초기 설정을 위해서 루트 비밀번호를 입력해주세요.
(여기서 말하는 루트 비밀번호는 리눅스 루트 비밀번호와 상관이 없습니다.
MariaDB 초기 루트 비밀번호는 공백입니다. 엔터를 쳐주세요)
10. 루트 비밀번호를 설정하시겠습니까?
Y(Yes)입력후 엔터를 치셔도 되고, 그냥 엔터를 치셔도됩니다.(기본이 Yes)
루트 비밀번호를 입력후 다시한번 입력해주세요.
11. 익명 사용자를 삭제하시겠습니까?
Y(Yes)입력후 엔터를 치셔도 되고, 그냥 엔터를 치셔도됩니다.(기본이 Yes)
12. 원격 루트계정 로그인을 허용하지 않으시겠습니까?
Y(Yes)입력후 엔터를 치셔도 되고, 그냥 엔터를 치셔도됩니다.(기본이 Yes)
13. 테스트 데이터베이스, 액세스 삭제
Y(Yes)입력후 엔터를 치셔도 되고, 그냥 엔터를 치셔도됩니다.(기본이 Yes)
14. 권한 테이블 다시 로드
Y(Yes)입력후 엔터를 치셔도 되고, 그냥 엔터를 치셔도됩니다.(기본이 Yes)
15. 기본적인 설정, 보안설정이 완료되었습니다.
이후 MariaDB 로그인시 설정하신 비밀번호로 로그인해주셔야 합니다.
16. 구동되고있는 httpd(Apache)에 브라우저로 접속하기 위해서 방화벽에 http(80포트)서비스를 예외처리 해주세요.
(방화벽을 끄는것은 집 현관문을 항상 열어두겠다는 의미입니다. 그러니 방화벽은 끄지말고 예외처리를 해주세요.
–permanent 는 영구적으로 적용하겠다는 말입니다. 예외처리를 삭제하기 전까지는 서버 재시작시에도 유지됩니다.)
firewall-cmd --permanent --zone=public --add-service=http
17. 방화벽에 예외처리를 하셨다면 적용된 룰을 다시 로딩해줘야 합니다.
firewall-cmd --reload
18. 인터넷 브라우저에 아이피(IP)입력후 접속해보시면 httpd(Apache) 테스트 페이지가 출력됩니다.
(만약 출력이 안되는경우 서비스 시작 여부, 방화벽 예외처리 여부, 네트워크 연결상태를 확인하세요)
19. 이번에는 설치한 PHP 5.6이 잘 동작하는지 확인해보도록 하겠습니다.
우선 httpd(Apache) 문서 경로에 index.php 문서를 새로 생성해주세요.
vi /var/www/html/index.php
(vim은 글자 하이라이트 기능등이 추가된 vi와 비슷한 편집기입니다. vi로 편집하셔도 상관없습니다.
CentOS 7 최소설치에는 기본적으로 설치되어 있지 않습니다. 설치를 원하신다면 아래 명령어를 입력해주세요)
yum -y install vim
20. 빈 편집기 창이 표시됩니다.
21. PHP에는 정보를 확인할수있는 기본함수가 내장되어 있습니다. 아래 코드를 입력해주세요
편집기 창에서 I(아이)를 누르시면 입력할수 있는 상태가 됩니다.
(붙여넣지 마시고 직접 작성하세요. 붙여넣으시면 문자가 잘릴수도 있습니다.)
<?php phpinfo(); ?>
22. 코드를 모두 입력하셨다면 ESC를 눌러 입력상태를 해제해주세요.
그리고 wq(Write Quit)를 입력하고 엔터(Enter)키를 눌러주세요.
wq
23. 인터넷 브라우저에 아이피(IP)입력후 접속해보시면 PHP 테스트 페이지가 출력됩니다.
24. 확인을 하셨다면 꼭 phpinfo(); 함수가 들어간 PHP문서는 삭제해주세요. 보안에 문제가 발생할수도 있습니다.
(rm 명령어를 사용하실때는 조심하셔야 합니다. 루트계정으로 로그인이 되있는상태에서 잘못입력하면 서버의 모든파일을 삭제할수도 있습니다.)
rm -f /var/www/html/index.php
25. 위에서 httpd(Apache), MariaDB 서비스는 시작했지만
서버 재시작시에도 자동으로 시작되도록 해주는 기능은 비활성화 되있는 상태입니다.
systemctl list-unit-files | egrep "^(httpd|mariadb)"
26. httpd(Apache)서비스가 서버 재시작시에도 자동으로 시작되도록 설정해주세요.
chkconfig httpd on
27. MariaDB 서비스가 서버 재시작시에도 자동으로 시작되도록 설정해주세요.
chkconfig mariadb on
28. httpd(Apache), MariaDB 서비스가 서버 재시작시에도 자동으로 시작되도록 설정되었습니다.
systemctl list-unit-files | egrep "^(httpd|mariadb)"
여기까지 따라하셨다면 LAMP 설치는 완료되었습니다.
앞으로는 httpd(Apache), MariaDB, PHP를 조금더 효율적, 빠르게, 안전하도록 설정하는법을 알려드리도록 하겠습니다.
질문이나 건의가 있으시면 피드백을 남겨주세요.