1. 개발 환경 구성
(1) 디렉토리 생성
D 드라이브에 WAMPDev 디렉토리를 생성하고 하위 디렉토리로 PHPDev, Platform 디렉토리를 생성한다.
2. 개발툴 다운받기
- Apache 서버 : Apache 2.4.26
- MySQL : MySQL Community 5.7.18.0
- PHP : PHP 7.1(7.1.6)
- phpMyAdmin : phpMyAdmin 4.7.1
(1) Apache 서버 다운받기
- 경로 : http://apachelounge.com/download/
- 자신의 플랫폼(OS)에 맞는 버전을 다운받는다.
(3) PHP 다운받기
- 경로 : http://windows.php.net/download/
- 자신의 플랫폼(OS)에 맞는 버전을 다운받는다.
- Non-Thread Safe, Thread Safe 방식으로 나누어져 있는데, 웹서버가 IIS이면 Non-Thread Safe(NTS) 버전, Apache이면 Thread Safe(TS) 버전을 다운 받는다.(자세한 설명은 'CGI, ISAPI, FastCGI, PHP' 포스트를 참조)
(4) phpMyAdmin 다운받기
- 경로 : https://www.phpmyadmin.net/downloads/
- 지원하는 MySQL, PHP 버전에 맞게 다운받는다.
3. 환경 구성하기
(1) 다운받은 파일 설치
① 다운받은 파일이 위치한 Platform 디렉토리로 이동
② 다운받은 파일 중에서 httpd-2.4.26-Win64-VC15.zip, php-7.1.6-Win32-VC14-x64.zip 압축 해제후 아래와 같이 디렉토리 구성
- 파일 'httpd-2.4.26-Win64-VC15.zip' 압축 해제하면 httpd-2.4.26-Win64-VC15 하위 폴더에 Apache24 폴더와 -- Win64 VC15 --, ReadMe.txt 파일이 생성되는데 Apache24 폴더만 위 그림처럼 복사하고, httpd-2.4.26-Win64-VC15 폴더는 삭제
- 파일 'php-7.1.6-Win32-VC14-x64.zip' 압축 해제하면 php-7.1.6-Win32-VC14-x64 폴더가 생성되는데 해당 폴더명을 php7.1.6으로 변경
4. Apache 서버 설치
(1) D:/WAMPDev/Platform/Apache24/conf 폴더로 이동하여 httpd.conf 파일 수정
① ServerRoot 경로 변경
Ctrl+F로 ServerRoot "c:/Apache24" 를 찾습니다.
그리고 따옴표 안의 부분을 아파치 압축 푼 경로와 일치하게 적어줍니다.
ServerRoot "c:/Apache24" -> ServerRoot "D:/WAMPDev/Platform/Apache24"
이때 디렉토리 기호인 ₩는 가급적 / 로 변경해 주세요(이건 앞으로 경로 적는 부분 모두 공통입니다. PHP 설치할 때도 마찬가지.)
② 포트 변경 (옵션)
Ctrl+F로 Listen 80 를 찾습니다.
원하는 포트로 변경하면 되는데, 보통 웹브라우저에서 도메인 입력하면 80포트로 접속됨으로 웬만하면 바꾸지 않습니다.
③ 웹문서 저장위치 변경
Ctrl+F로 DocumentRoot "c:/Apache24/htdocs" 를 찾습니다.
DocumentRoot "c:/Apache24/htdocs" 를 찾아서 따옴표 안의 위치를 원하는 경로로 수정합니다.
DocumentRoot "c:/Apache24/htdocs" -> DocumentRoot "D:/WAMPDev/PHPDev"
앞으로 홈페이지 데이터나 워드프레스 등의 블로그데이터는 모두 이 위치에 넣어야 합니다.
아래에 있는 <Directory "c:/Apache24/htdocs"> 의 경로도 DocumentRoot 경로와 일치시켜 줍니다.
D:/WAMPDev/Platform/Apache24/htdocs 폴더에 존재하는 Index.html 파일을 D:/WAMPDev/PHPDev 폴더에 복사합니다.
④ ServerName 변경
Ctrl+F로 ServerName www.example.com:80 를 찾습니다.
#을 제거하고 ServerName localhost:80 또는 ServerName 127.0.0.1:80라고 바꿔줍니다. 이러면 외부 인터넷망 미연결 시에도 브라우저에서 http://localhost/ 를 입력해서 홈페이지 데이터를 불러올 수 있습니다.
뒤의 80포트는 ②에서 Listen 포트를 변경했다면 반드시 일치시켜 주어야 합니다.
(2) Apache 서비스 등록
① Win키+R을 누르고 control 을 입력합니다. 그리고 시스템→고급 시스템 설정→고급 탭의 “환경 변수(N)” 단추를 누릅니다.
② 시스템 변수(S)에서 Path를 찾아 더블 클릭하면 환경 변수 편집 창이 나타나는데, “새로 만들기(N)” 버튼을 누르고 위 스크린 샷처럼 Apache를 설치한 경로에서 bin폴더까지의 값을 입력한 후 빠져나옵니다.
③ Win키+X 버튼을 누르고 명령프롬프트를 관리자 권한으로 실행합니다.
④ 명령프롬프트 창에 httpd -k install 이라고 입력해서 아파치 서비스를 설치합니다.
만약 설치시 오류가 발생한다면 아래 '아파치 서비스 설치시 오류 발생할 경우 해결 방법'을 참조하세요.
⑤ 방화벽 해제 관련 메세지가 뜨는데, 액세스 허용(A) 버튼을 눌러 계속 진행합니다.
⑥ httpd -k start 라고 입력하여 아파치 서비스를 시작합니다.
⑦ 이제 명령프롬프트 창을 닫고 웹브라우저를 띄워서 주소창에 http://localhost 또는 http://127.0.0.1 이라고 입력하여 아파치 서버가 제대로 설치되었는지 확인합니다.(만약 ②에서 포트를 변경했었다면(예:8888) http://localhost:8888 같은 형태로 입력해야 합니다.)
(3) Apache 서비스 명령어
① 아파치 서비스를 설치 : httpd -k install
② 아파치 서비스 시작 : httpd -k start
③ 아파치 서비스 종료(중지) : httpd -k stop
④ 아파치 서비스 재시작 : httpd.exe -k restart
⑤ 아파치 서비스 제거 : httpd.exe -k uninstall 혹은 httpd.exe -k uninstall -n [서비스 이름]
2. 아파치 서비스 설치시 오류 발생할 경우 해결 방법
(1) 아래 그림처럼 VCRUNTIME140.dll 오류 발생시
오류가 발생하는 원인은 Microsoft Visual C++ 2015 재배포 가능 패키지가 설치되지 않았기 때문입니다.
① https://www.microsoft.com/ko-kr/download/details.aspx?id=53840에 접속하여 자신의 플랫폼(OS)에 맞는 버전을 다운받는다.
② 다운로드 받은 'vc_redist.x64.exe' 파일을 실행
③ 라이센스 동의하고 설치(Install) 버튼을 클릭하여 설치 시작
④ 설치 완료
⑤ 다시 아파치 서비스 설치
(2) 아래 그림처럼 '액세스 권한에 의해 숨겨진 소켓에 액세스를 시도했습니다'라는 오류가 발생시
오류가 발생하는 원인은 동일한 80포트를 IIS가 사용하고 있기 때문입니다.
① 서비스 들어가서, world wide web publishing service를 중지 합니다.
1. PHP 설치
(1) D:/WAMPDev/Platform/php7.1.6 폴더로 이동하여 php.ini-production 파일 수정
① extension_dir 경로 변경
Ctrl+F로 ; extension_dir = "./" 를 찾습니다.
그리고 주석(; - 세미콜론)을 제거하고 따옴표 안의 경로를 “php 설치 디렉토리/ext” 의 형태로 수정합니다.
; extension_dir = "./" -> extension_dir = "D:/WAMPDev/Platform/php7.1.6/ext"
이때 디렉토리 기호인 \는 될 수 있으면 /로 변경하도록 합니다.
② php.ini-production 파일 이름을 php.ini로 변경합니다.
(2) D:/WAMPDev/Platform/Apache24/conf 폴더로 이동하여 httpd.conf 파일 수정
① IfModule dir_module 수정
Ctrl+F로 <IfModule dir_module> 를 찾습니다.
DirectoryIndex에 index.php을 index.html 앞에 넣습니다.
② 맨 밑에 아래의 구문을 추가합니다.
PHPIniDir "php.ini 파일이 있는 경로" LoadModule php7_module "php 설치경로/php7apache2_4.dll" AddType application/x-httpd-php .html .php AddHandler application/x-httpd-php .php |
③ 아파치 서버 재시작(Win+X → 명령 프롬프트(관리자)(A) → httpd -k restart 입력)
(3) PHP 설치 확인
① 아파치 웹문서 저장공간(저는 D:/WAMPDev/PHPDev 입니다.)에 메모장으로 아래처럼 입력하고 phpinfo.php 라는 파일이름으로 저장합니다.
<?php phpinfo(); ?> |
② 웹브라우저 주소창에 http://localhost/phpinfo.php 라고 입력해 봅니다.
1. MySQL 다운로드
(1) 다운로드
① https://dev.mysql.com/downloads/ 사이트에 접속하면 아래와 같은 화면이 나오고, 다운로드 버튼을 클릭하여 다운로드 페이지로 이동한다.
② 페이지를 이동하면 화면 중앙부에 OS 버전에 맞는 다운로드 버튼이 제공되고, 이 버튼을 클릭하여 설치 패키지 파일을 다운로드 받는 페이지로 이동한다.
③ 전체 설치 패키지 파일 다운로드을 클릭한다.(MySQL 설치 프로그램은 32 비트이지만 32 비트와 64 비트 바이너리를 모두 설치)
④ MySQL 사이트에 로그인하라는 인증 화면이 나타나는데, 스크롤을 더 내려보면 인증창 아래 로그인 없이 다운로드만 받겠다는 텍스트 링크가 있고 이 링크를 통하여 MySQL을 가입이나 로그인 절차 없이 바로 다운로드 가능하다.
⑤ 다운로드가 완료되면, 다운로드 확인.
2. MySQL 설치
① 다운로드 받은 설치 패키지 파일을 실행하면 Windows Installer가 실행되면서 MySQL의 설치를 시작한다. 라이센스 동의 화면이 뜨면 라이센스에 동의하고, Next 버튼을 클릭한다.
② 설치 화면이 뜨면 자신에게 맞는 설치 타입을 선택하고 Next 버튼을 클릭한다.
- Developer : MySQL로 응용 프로그램을 개발하는 데 필요한 모든 제품을 설치. 이것이 기본 옵션.
- Server only : MySQL 서버만 설치
- Client only : MySQL Workbench와 같은 MySQL 클라이언트 제품만 설치. 여기에는 MySQL 서버가 포함되지 않음.
- Full : 사용 가능한 모든 MySQL 제품 설치.
- Custom : 설치할 MySQL 제품을 수동으로 선택하고 선택적으로 사용자 정의 MySQL 데이터 및 설치 경로를 구성.
③ 설치하려는 제품 중에 몇가지 필요한 것들이 있는데 설치를 하려면 선택하고 아니면, 그냥 Next 버튼을 클릭한다.
④ 미 설치에 대한 알림창이 뜨는데 그냥 무시하고, 설치를 진행한다.
⑤ 설치될 MySQL 구성요소들을 보여주는데, Execute 버튼을 클릭하고 설치를 진행한다.
⑥ 각 구성 요소들의 설치가 진행된다.
⑦ 설치가 완료되면, Next 버튼을 클릭한다.
① 기본 환경설정을 진행하겠다는 화면인데 Next 버튼 클릭하고 진행한다.
② 고 가용성 솔루션 선택 화면인데, 기본값을 선택하고 Next 버튼을 클릭한다.
- Standalone MySQL Server / Classic MySQL Replication (default) : 독립형 MySQL 서버의 초기 구성
- InnoDB Cluster Sandbox Test Setup (for testing only) : 테스트를 위해 InnoDB Cluster Sandbox 인스턴스를 로컬로 생성하고 구성
③ MySQL을 어떤 환경에서 구동할 것인지를 물어보는데, 개발 환경을 설정할 것이므로 해당 기본 설정을 그대로 두고 Next 버튼을 클릭한다.(TCP/IP 기본 포트 번호가 3306으로 지정)
④ root의 초기 비밀번호를 지정해 준 후에 Next 버튼을 클릭한다. 개발 버전이라 암호를 간단히 설정해서 암호 보안이 취약(Weak)으로 보여진다.
⑤ 백그라운드에서 항상 실행할 수 있도록 Windows Service에 등록하도록 설정하는 창인데 해당 기본 설정을 그대로 두고 Next 버튼을 클릭한다.
⑥ 플러그인 및 확장 설정하는 창인데 해당 기본 설정을 그대로 두고 Next 버튼을 클릭한다.
⑦ Execute 버튼을 클릭하여 서버 설정을 진행한다.
⑧ Finish 버튼을 클릭하여 서버 설정을 진행한다.
⑨ 라우터 설정, 샘플과 예제들을 설치할지 결정하는 화면인데 기본 설정을 그대로 두고 Next 버튼을 클릭한다.
⑩ 아래 화면에서 Check 버튼을 클릭하여 서버 접속이 제대로 되는지 확인한 후 Next 버튼을 클릭한다.
⑪ Execute 버튼을 클릭하여 서버 설정을 진행한다.
⑫ 설정이 완료된 것을 확인하고, Finish 버튼을 클릭한다.
⑬ 기본 환경설정이 완료된 것을 확인하고 Next 버튼을 클릭한다.
⑭ 설치 완료 확인하고 Finish 버튼을 클릭한다.
3. 환경 변수 설정
① Win키+R을 누르고 control 을 입력합니다. 그리고 시스템→고급 시스템 설정→고급 탭의 “환경 변수(N)” 단추를 누릅니다.
② 시스템 변수(S)에서 Path를 찾아 더블 클릭하면 환경 변수 편집 창이 나타나는데, “새로 만들기(N)” 버튼을 누르고 위 스크린 샷처럼 MySQL 실행 경로(C:\Program Files\MySQL\MySQL Server 5.7\bin) 값을 입력한 후 빠져나옵니다.
1. phpMyAdmin 설치
(1) 폴더 복사
① 다운받은 파일이 위치한 Platform 디렉토리로 이동
② 다운받은 파일 중에서 phpMyAdmin-4.7.1-all-languages.zip을 Apache의 웹문서 저장 위치에 phpMyAdmin 폴더를 만들고 이 위치에 압축 해제
(2) config.sample.inc.php 파일 수정
① config.sample.inc.php 파일을 워드패드로 연 후에 아래와 같이 수정
[수정 전]
$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ /* Authentication type */ $cfg['Servers'][$i]['auth_type'] = 'cookie'; /* Server parameters */ $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['AllowNoPassword'] = false; |
[수정 후]
$cfg['blowfish_secret'] = '1234567890'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ /* Authentication type */ $cfg['Servers'][$i]['auth_type'] = 'http'; /* Server parameters */ $cfg['Servers'][$i]['host'] = 'localhost'; $cfg['Servers'][$i]['compress'] = false; $cfg['Servers'][$i]['AllowNoPassword'] = true; |
② config.sample.inc.php 파일 명을 config.inc.php로 변경
(3) PHP 7.1.6 설치경로에서 php.ini 파일 수정
① Ctrl+F로 ;extension=php_mbstring.dll 를 찾아서 주석을 풀어주고(; 삭제)
② Ctrl+F로 ;extension=php_mysqli.dll 를 찾아서 주석을 풀어주고(; 삭제)
(4) 아파치 서비스 재시작
① 아파치 서버 재시작(Win+X → 명령 프롬프트(관리자)(A) → httpd -k restart 입력)
(5) phpMyAdmin 설치 확인
① 웹브라우저에서 http://localhost/phpmyadmin을 요청합니다.
② MySQL 설치시 등록한 계정을 입력하고, 실행 버튼을 클릭합니다.
③ 아래와 같이 MySQL 정보 화면이 뜨면 제대로 설치된 것입니다.
(6) 'phpMyAdmin 설정 스토리지가 완전히 설정되지 않아, 일부 확장 기능들이 비활성화 된 상태입니다.' 해결 방법
① phpMyAdmin 설정 공간을 위한 데이터베이스를 생성합니다. root 계정으로 접속하여 create_tables.sql 파일을 가져오기하면 phpmyadmin 데이터베이스가 생성됩니다.
② phpMyAdmin이 DB를 사용하기위한 계정을 생성하고, phpmyadmin 데이터베이스에 대한 권한도 추가한다.
③ phpMyAdmin 설정 파일인 config.inc.php 파일을 워드패드로 연 후에 아래와 같이 수정
[수정 전]
/** * phpMyAdmin configuration storage settings. */ /* User used to manipulate with storage */ // $cfg['Servers'][$i]['controlhost'] = ''; // $cfg['Servers'][$i]['controlport'] = ''; // $cfg['Servers'][$i]['controluser'] = 'pma'; // $cfg['Servers'][$i]['controlpass'] = 'pmapass'; /* Storage database and tables */ // $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; // $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark'; // $cfg['Servers'][$i]['relation'] = 'pma__relation'; // $cfg['Servers'][$i]['table_info'] = 'pma__table_info'; // $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords'; // $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages'; // $cfg['Servers'][$i]['column_info'] = 'pma__column_info'; // $cfg['Servers'][$i]['history'] = 'pma__history'; // $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs'; // $cfg['Servers'][$i]['tracking'] = 'pma__tracking'; // $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig'; // $cfg['Servers'][$i]['recent'] = 'pma__recent'; // $cfg['Servers'][$i]['favorite'] = 'pma__favorite'; // $cfg['Servers'][$i]['users'] = 'pma__users'; // $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups'; // $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding'; // $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches'; // $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns'; // $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings'; // $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates'; |
[수정 후]
/** * phpMyAdmin configuration storage settings. */ /* User used to manipulate with storage */ $cfg['Servers'][$i]['controlhost'] = 'localhost'; $cfg['Servers'][$i]['controlport'] = '3306'; $cfg['Servers'][$i]['controluser'] = 'phpmyadmin'; $cfg['Servers'][$i]['controlpass'] = 'developer'; /* Storage database and tables */ $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin'; $cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark'; $cfg['Servers'][$i]['relation'] = 'pma__relation'; $cfg['Servers'][$i]['table_info'] = 'pma__table_info'; $cfg['Servers'][$i]['table_coords'] = 'pma__table_coords'; $cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages'; $cfg['Servers'][$i]['column_info'] = 'pma__column_info'; $cfg['Servers'][$i]['history'] = 'pma__history'; $cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs'; $cfg['Servers'][$i]['tracking'] = 'pma__tracking'; $cfg['Servers'][$i]['userconfig'] = 'pma__userconfig'; $cfg['Servers'][$i]['recent'] = 'pma__recent'; $cfg['Servers'][$i]['favorite'] = 'pma__favorite'; $cfg['Servers'][$i]['users'] = 'pma__users'; $cfg['Servers'][$i]['usergroups'] = 'pma__usergroups'; $cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding'; $cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches'; $cfg['Servers'][$i]['central_columns'] = 'pma__central_columns'; $cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings'; $cfg['Servers'][$i]['export_templates'] = 'pma__export_templates'; |
④ 웹브라우저에서 http://localhost/phpmyadmin을 요청하고, 해당 계정으로 인증 후 아래와 같이 MySQL 정보 화면이 뜨면 제대로 설정된 것입니다.
'D.E.V > etc..' 카테고리의 다른 글
AWS - CI/CD (0) | 2024.01.17 |
---|---|
윈도우10 정품인증 (1) | 2023.11.28 |
CI/CD (0) | 2023.10.25 |