멍멍이네 블로그

1. sudo apt install phpmyadmin 

- phpmyadmin 설치 명령어.

 

2. sudo ln -s /usr/share/phpmyadmin /var/www/html

- phpmyadmin과 apache의 경로가 다르기 때문에, phpmyadmin 설치 후 연결해주어야 한다.(ln)

 

 

 

* 주의 *
phpmyadmin 설치 후 실행했는데

The mbstring extension is missing. Please check your PHP configuration.

접속 시 위와 같은 에러가 뜰 경우

 

sudo apt-get install phpmyadmin php-mbstring php-gettext

sudo service apache2 restart

명령어를 통해 설치 및 아파치 재시작을 해주면 해결된다.

APM을 사용해서 웹서버를 만드는 도중 SELECT 문을 2중으로 써야되는 경우가 있었습니다.

그래서 구글링으로 MySQL SELECT 안에 SELECT 로 검색해서 찾은 결과들을 참고해서 코딩을 했습니다.

 

상황)

TABLE A와 B가 있다.

A라는 테이블에는 A1, A2, A3라는 컬럼이 있고,

B라는 테이블에는 A1, B2, B3라는 컬럼이 있을 때,

TABLE A에 있는 A1, A2, A3라는 값을 가져와라. 단, B라는 테이블에 있는 A1컬럼과 A.A1컬럼이 같은 값을 지닌 COUNT 값을 덤으로 가져와라! 라는 상황이었습니다!(글로 적기 어렵네요 ㅜ)

 

원하는 SELECT 값

A.A1 / A.A2 / A.A3 / CNT(A.A1 = B.A1)

 

 

쓴 코드.

SELECT 검색1, 검색2, (SELECT COUNT(*) as CNT FROM TABLE1 as t1 WHERE 조건) FROM TABLE2 as t2 WHERE 조건

 

SELECT 안에 SELECT를 하나 더 넣음으로써 원하는 결과를 달성했습니다.

 

다만 CNT에서 값을 불러오지 못한 경우, 출력할 때 NULL값을 출력하네요 ㅜ.ㅜ 

1. C:\APM_Setup\Server\Apache\conf\extra 폴더의 httpd-alias.conf 파일을 열어서 수정한다.


    Alias /myadmin/ "C:/APM_Setup/Server/phpMyAdmin/"   <--- " " 사이에 자기가 잡은 경로를 넣어줘야됨
    <Directory "C:/APM_Setup/Server/phpMyAdmin"> # 마찬가지로 경로 적어줘야됨.
        Options MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all

    </Directory>

</IfModule>

 

2. 아파치 실행 후 오른쪽클릭 -> 서버 환경 설정 -> Apache 설정 탭에서 ServerName을 공유기 IP로 바꿔준다.

2번 참고 출처 : http://www.apmsetup.com/board.php?bid=513&mode=view&uid=23941

 

3. 제어판 -> 모든 제어판 항목 -> Windows 방화벽 -> 고급설정 -> 인바운드규칙 -> 새 규칙.. (창의 오른쪽)

에 들어가서 3306 포트를 개방한다(mysql 포트)

3번 참고 출처 : http://hyogeun.tistory.com/123


(추가)4. 

mysql 콘솔화면으로 실행하고 권한 설정

grant all privileges on 디비이름.* to 아이디@'%'​ identified by '비밀번호';

 4번 참고 출처 : https://blog.naver.com/PostView.nhn?blogId=igazoa2&logNo=220372994579&proxyReferer=https%3A%2F%2Fwww.google.com%2F



p.s. 아파치 설정을 바꾸었다면 아파치에서 MySQL과 아파치가 실행중인데, STOP했다가 START 해야지 적용됨


(2019.7.19)p.s. apm들이 버전업되면서 설정이 조금 바뀜.

업 된 버전을 받을 시 설정이 다름.  Require all granted 이 줄을 추가한다고함. 혹은 4번 참고


[APM] 설치

프로그래밍/php2015. 6. 18. 19:38

http://www.apmsetup.com/download.php

 

APM이란 ? 웹서버를 사용하기 위한 프로그램들(아파치, php, mysql)의 약자.

APMSetup7을 설치하면 프로그램들을 기본 설정(?)으로 한꺼번에 설치해줌!

 

APMSetup7을 다운받아서 설치!

(p.s. 아파치는 포트 80번을 사용하기때문에 몇몇 프로그램(스카이프 등)과 충돌일어나므로 주의!)

 

다운받을 때 다음다음 누르면 됀다(굳이 설정을 바꾸려면 바꿔도 됌)

설치경로는 C드라이브의 APM_Setup 이라는 폴더가 생성돼며 설치됀다!

 

그리고 가장 기본적으로 외부접근을 허용하기 위해서는

(Window7, 설치파일의 경로를 안바꿨다는 기준)

C:\APM_Setup\Server\Apache\conf\extra 폴더에 httpd-alias.conf파일을 열어서 (저는 메모장으로 수정)

 

 

<IfModule alias_module>

#    Alias /myadmin/ "C:/APM_Setup/Server/phpMyAdmin/"
#    <Directory "C:/APM_Setup/Server/phpMyAdmin">
#        Options MultiViews
#        AllowOverride None
#        Order deny,allow
# deny from all
#        Allow from 127.0.0.1
#    </Directory>

# 외부 접속 가능하게 하려면 아래 설정처럼 변경하여 주시기 바랍니다.

    Alias /myadmin/ "C:/APM_Setup/Server/phpMyAdmin/"
    <Directory "C:/APM_Setup/Server/phpMyAdmin">
        Options MultiViews
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>

</IfModule>

이렇게 바꿔준다.

 

외부접근에 대해서는 다음 게시물에서 더 자세히 다루겠습니다.

parent.document.getElementById
누군가 이렇게 쓰라고 예시글을 올려놨었다..
ex -> exit('<script type="text/javascript">parent.document.getElementById("id").value=\'ok\'; alert(\'중복되는 아이디가 없습니다.\'); window.close();</script>');
아이디 중복체크할 때 사용하는 부분이였는데... 계속 안되길래 하나하나 찍어보면서 결국 찾았는데!

원인은
parent.document.getElementById("id").value=\'ok\';
이 문장이 적용이 안되던 것.

검색을 해보니
opener.document.getElementById("id").value=\'ok\';
이렇게 사용해야된다는 것!!!!!

출처(네이버지식인) : http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040202&docId=69490361&qb=cGFyZW50LmRvY3VtZW50LmdldEVsZW1lbnRCeUlk&enc=utf8&section=kin&rank=2&search_sort=0&spq=0&pid=S7uX8spySo0ssaVP0Losssssssl-072564&sid=VLCu3gpyVmAAAHiUWGs

Warning: implode() [function.implode]: Invalid arguments passed in xxx on line xx

implode 변수가 넘어갔다..

 

배열이 아닌걸 자를려고(?) 할때 뜨는거 같네요

 

implode로 자를 변수를 처음에 $array = array(); 해줍시다

 

혹은 안에 내용이 잘못들어갔을 경우!

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near xxxxxxxxxxxxxxxxxx

 

아 씡.. phpMyAdmin에서 쿼리를 쓰면 되는데 php에서 적어서 불러오면 안됨;;

 

INSERT INTO table_name() VALUES() table_name안에 들어갈 컬럼이름에 `` 해줬더니 됨;;

 

아무래도 지원 자료형중 하나랑 이름이 겹쳤나봄;; 아니면 컬럼네임을 바꿔줘도 된다.

 

해결방법 1. 컬럼 네임을 바꿔준다.

             2. 컬럼 네임에 ``붙인다

 

[수정] 많이들 보시네요.. 좀 더 자세히 설명하자면. 키보드에서 Esc키 밑에 ` 있죠? 컬럼을 지칭할땐 저걸 써주고, 변수를 써줄땐 어께점 ' 을 써주는겁니다.

 

ex) $i = 100; $col="id_number" /

mysql_query("SELECT * FROM user WHERE `$col`='$id'"); -> SELECT * FROM user WHERE id_number=100;