posted by 검신흑태자 2025. 4. 7. 19:18

phpMyAdmin은 웹 환경에서 MySQL(Maria DB)를 관리할 수 있는 PHP로 만들어진 DB 관리 툴입니다. 물론 MySQL Workbench나 MariaDB 설치시 같이 설치되는 HeidiSQL 등 다른 프로그램을 이용하셔도 무방합니다. 다만 XAMPP로 활용을 하시는 분들도 많기도 하고 기본적으로 XAMPP가 제공하는 툴 중에 하나가 phpMyAdmin이기도 하고 웹 환경에서 localhost 접속이 제대로 되고 있는지 등의 서버 확인 여부와 관리의 편리성 때문에 저는 phpMyAdmin을 사용합니다. 그래서 이번에는 phpMyAdmin을 윈도우 11환경에서 설치하는 방법을 설명합니다.

 

 원래 XAMPP를 쓰시던 분들은 localhost에 locahost/phpmyadmin 을 입력하시면 접속이 잘 될겁니다. 그게 아니라 저처럼 다 따로 설치하시는 분들은 아래와 같이 하시면 됩니다. MySQL과 같이 설치하기 어렵지는 않습니다. 다만 제 기준으로 설치시에 처음에는 PHP 8.4(최신버전)으로 phpMyAdmin을 설치했었는데 오류가 너무 많고 제대로 phpMyAdmin 접속이 되지 않아 Github와 관련 부분들을 찾아봤지만 마땅히 시원스런 해결법이 없어서 저는 PHP 8.3으로 버전을 다운그레이드 시켜서 설치했습니다. 혹여나 설치를 하셨는데 안되시는 분들은 PHP 버전을 확인해보시고 낮춰서 한번 해보세요. 희안하게도 Linux 서버에서는 8.4가 시원스럽게 잘 지원됩니다..

 

아무튼 phpMyAdmin도 다른 프로그램들과 비슷한 방법으로 설치를 합니다.

 

1. phpMyAdmin 공식 사이트(https://www.phpmyadmin.net/)에서 다운로드를 클릭해서 다운로드 합니다.

2. 다운로드 받은 파일을 압축 해제 시킵니다.

3. Nginx가 지정하는 Document Root 경로에 phpmyadmin으로 폴더 이름 변경 후 이동(다른 폴더 이름도 되는지는 잘 모르겠습니다.)

4. 주소창에 localhost/phpmyadmin을 입력해 제대로 로그인 창 등이 뜨는지를 확인합니다.

5. root 접속 등은 MySQL 설치 시 설정했던 아이디와 비밀번호로 접속하면 됩니다.

 

PHP 버전에 관계가 있는걸 알지 못하고 저는 설치하는데 엄청 고생을 했는데 다른 분들은 그렇게 고생하지 않으셨으면 좋겠네요^^

 

posted by 검신흑태자 2025. 4. 5. 21:19

이전에 포스팅을 한 대로 PHP와 Nginx까지 설치를 다 하셨으면 이제는 PHP와 Nginx를 연동해 줘야 합니다. 그래야 본인이 작성하는 PHP 코드도 로컬 환경에서 테스트 가능하게 됩니다.

 

Nginx와 PHP 연동의 경우 윈도우 환경이든 리눅스 환경이든 설정하는 방법은 거의 비슷하다고 생각해 주셔도 괜찮습니다. 실행을 설정하고 하는 부분이 차이가 조금 있을 뿐이지 문서를 수정하거나 하는 부분은 거의 비슷합니다.

 

1. Nginx의 폴더에서 conf 폴더를 열어 nginx.conf 파일을 연다. 아마 이게 아파치에서는 .htaccess와 비슷할 겁니다.

 1) server 부분에 location 첫번째에 index.php 추가

 2) 아래쪽 location에 php FastCGI 부분에 주석 전부 해제

 3) fastcgi_param에 SCRIPT_FILENAME 뒷부분에 $document_root로 경로 수정

 4) fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 이렇게 수정되면 됩니다.

 5) cmd로 다시 nginx 폴더를 열고 서비스를 재시작합니다. -> nginx -s reload

 6) 예시는 아래와 같습니다.

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   F:/Documents/Development/Projects/example;
            #root html;
            index  index.php index.html index.htm index.php;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            root           F:/Documents/Development/Projects/example;
            #root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

 7) 기본 nginx.conf에서 변경한 부분으로 # 처리된 부분은 주석처리입니다.

 

2. PHP를 설치한 곳으로 이동하여 cmd를 열고 명령어를 실행합니다.

 1) 명령어는 php-cgi.exe -b "127.0.0.1:9000" -c php.ini

 2) 작업관리자를 실행시켜 프로세스에 CGI / FastCGI가 활성화 되어있는지 확인합니다.

 3) nginx의 html 폴더로 이동하여 index.php를 작성해서(localthost/index.php로 작동시켜도 됩니다.) 연동을 확인합니다.

 4) 해당 폴더로 매번 이동하여 명령어 입력을 하는 부분이 번거로웠기 때문에 이전 포스팅 중 PHP 설치에 배치 파일로 만들어서 실행하는 방법을 올려 놓았으니 그걸 참고하셔도 됩니다.

 

3. nginx 기본 폴더 변경

 1) nginx를 설치하면 기본 폴더가 nginx 하위 폴더에 있는 html로 되어 있는데 이 기본 폴더를 변경해야 할 때 쓰는 설정입니다.

 2) nginx.conf를 열어서 location에 root 경로(50x.html 부분 제외)를 원하는 폴더가 있는 경로로 수정합니다. 하지만 경로를 그대로 복사해서 붙여넣으면 안 되고 역슬래시(\)를 슬래시(/)로 바꿔서 입력합니다.

 3) nginx 및 php-cgi 서비스를 재시작합니다.

 4) 위의 코드 형식으로 붙여 넣은 부분을 참고하시면 더 쉽게 바꾸실 수 있을 거라 생각되네요.

 

PHP와 Nginx 연동에 대해 윈도우에서도 간단하게 할 수 있으니 처음 설치를 하면서 힘드셨던 분들에게 도움이 되었으면 좋겠습니다.

  

posted by 검신흑태자 2025. 4. 4. 20:23

카테고리를 PHP로 할까 Linux & Server로 할까 고민하다가 Ubuntu에서 설치하는 것도 적어둔 게 있기 때문에 윈도우에서 PHP 연동까지를 PHP로 보고 - 지금 실제로 개발을 하고 있는 환경이라.. - 카테고리를 이쪽으로 정해서 작성합니다.

 

Nginx 서버의 경우 아파치가 원체 유명하고 많이 쓰기는 하지만 전 예전부터 Nginx를 사용하기도 했고 속도면에서 조금 더 빠르다고 느낄 때가 많기 때문에 Nginx를 기반으로 설치를 진행합니다. 아파치는 혹여 나중에 Java에 대해 포스팅하게 되면 올릴지도 모르겠네요.

 

Nignx 서버에 대한 윈도우 설치는 생각보다 간단합니다.

 

1. PHP와 마찬가지로 Nginx 공식 사이트(https://nginx.org/en/)에서 다운로드 페이지 이동 후 Stable 버전을 다운로드를 합니다.

2. 이전 PHP와 마찬가지로 원하는 폴더에 압축을 풀어줍니다.

3. 압축을 풀고 해당 폴더에서 cmd를 실행해서 nginx -v로 버전을 확인합니다.

4. Nginx 실행파일을 실행합니다.

5. localhost에 접속해서 nginx 기본 페이지가 뜨는지 확인합니다.

6. Nginx 압축 파일안에 Nginx 폴더가 하나 더 있으니 잘 확인합니다

7. 기본적인 실행 및 cmd의 간편함을 위해 PHP에서 했던 것처럼 환경변수 path에 nginx 폴더를 등록합니다.

 

딱히 사진으로 설명할 필요도 없을 정도로 간단하기 때문에 이대로 하셔서 Nginx 기본 페이지가 localhost에서 표시가 되는지 확인하시면 됩니다. PHP와의 연동은 다음 포스팅에서 다룰 수 있도록 하겠습니다.

posted by 검신흑태자 2025. 4. 3. 20:16

PHP로 개발을 공부하거나 프로젝트, 업무 등을 진행할 때 윈도우 환경에서 PHP 설치에 관하여 제가 직접 설치해보고 글을 작성합니다. 리눅스나 Mac의 경우 참 간단하고(명령어가 잘 되어있기도 하고요) 쉬운편인데 희안하게 윈도우만 넘어오면 쉽지가 않네요. 원래는 XAMPP를 썼었지만 MySQL(Maria DB)가 계속 오류를 일으켜서(제대로 켜지지 않고 shutdown error가 발생) 매번 백업 파일을 복원하거나 백업하는 것도 힘들어져서 PHP, MySQL(Maria DB), Nginx(아파치를 쓰려다가 그냥 Nginx로 가기로 했습니다) 를 다 따로 설치한 뒤에 올리는 글입니다. 일단은 먼저 PHP 설치부터 글을 시작합니다.

 

1. https://www.php.net/ 에서 윈도우 릴리스 버전을 다운로드 합니다. 다른 DB 툴을 쓰시는 분들은 괜찮지만 저는 phpMyAdmin을 쓸 예정이 있었기에 8.4 버전에서는 phpMyAdmin이 어떻게든 에러가 나서 버전을 낮춰서 8.3으로 설치했습니다. 그래서 php.net 에서도 8.3버전을 다운로드 하시는게 나을 겁니다.(phpMyAdmin을 사용하실 경우만요)

 

2. 설치 종류는 4가지인데 64, 32비트의 차이, Non-Thread-Safe와 Thread-Safe 버전으로 나뉘어 집니다. 보통은 Non-Thread-Safe는 IIS(윈도우즈 서버)에서 많이 사용되니 여기서는 Thread-Safe 버전으로 설치합니다.

 

현재(2025년 4월 3일 기준)으로는 8.4 버전에 대해 메인 페이지에 나와있지만 저는 Download로 들어가서 8.3 버전의 윈도우 다운로드쪽 징크를 선택하면 위와 같이 나옵니다. Thread Safe 버전으로 설치하기로 했기에 64비트의 Zip을 설치해서 다운 받습니다.

 

3. 받은 압축파일을 자신이 원하는 경로에 풀어줍니다. 저는 원활한 관리를 위해 Servers라는 폴더를 만들어서 거기에 php, nginx, mysql을 모두 넣어서 관리하고 있습니다.

 

4. 압축해제를 하면 기본적인 설치는 다 되지만 기본적으로 PHP 작동을 위한 윈도우 환경변수 설정을 해야합니다.

 

5. 윈도우 키를 눌러 환경 변수를 검색 -> 시스템 환경변수 클릭 -> 하단에 환경변수 클릭

 

6. 환경변수를 클릭하면 위와같은 화면이 나올텐데 시스템 변수쪽에 있는 Path를 선택하고 편집을 누릅니다.

7. 자신의 php가 설치되어있는 경로를 입력해 줍니다.

 

8. 윈도우 버튼을 누른 후 cmd를 입력하고 php -v로 버전 확인이 되는지 보면 됩니다.

 

9. php 8.4 버전도 composer를 쓰면 phpMyAdmin이 된다고는 하는데 윈도우에서 composer를 설정하기가 복잡한게 많아서 그냥 0.1 버전 다운그레이드(기본 문법이나 이런면에서 크게 변경점은 없습니다.)해서 설치했습니다.

 

10. 설치가 완료되면 cmd에서 php를 실행해야 하는데 자신이 설치한 경로에서 cmd 창을 열고 php-cgi.exe -b "127.0.0.1:포트번호" -c php.ini 로 실행을 해주면 잘 작동 할 겁니다.

 

11. 제 경우 PHP 실행 시 매번 cmd에서 입력하는 부분이 귀찮았기 때문에 bat(배치 파일) 파일을 만들었습니다.

@ECHO On 
ECHO PHP-CGI Start

php-cgi -b "127.0.0.1:포트번호" -c php.ini

popd

:loop
goto loop

 

12. bat 파일로 저장하면 실행 이후 CMD 창이 떠 있을 겁니다. loop 문의 경우 CMD 창이 닫혀버리면 실행 여부를 컴퓨터를 켜놓았을 때 작업 관리자로 확인을 해야해서 계속 띄워져 있을 수 있도록 하려고 넣었습니다. 그리고 실행되어 있는 CMD 창이 닫히면 php-cgi가 종료되서 php 코드 실행이 안되므로 실행이 안될 경우 확인해 보도록 하는게 좋겠네요

 

13. 마지막으로 배치 파일도 작업 표시줄에 등록을 하려고(이 귀차니즘 때문에..)해서 아래와 같이 하면 됩니다.

 - 배치 파일 우클릭 후 바로가기 생성

 - 생선된 바로가기 우클릭 후 속성에서 바로가기 탭으로 이동

 - 경로의 맨 앞에 cmd.exe /C를 추가합니다(경로와 한칸 공백이 있어야 합니다.)

 - 해당 파일이 cmd로 변경되면서 작업 표시줄에 추가가 됩니다.

 

저는 PHP + MySQL(MariaDB) + Nginx를 같이 쓰는데 XAMPP는 아파치를 기본으로 사용하기 때문에 제 설정과는 다를 수 있습니다. 다음에는 윈도우에서 Nignx 설정을 하는 방법을 업로드 할 수 있도록 하겠습니다. 혹여 저처럼 XAMPP에서 오류가 난다거나 개별적으로 PHP를 설치하고자 하시는 분들께 도움이 되길 바랍니다.