OS : ubuntu 18.04
NGINX, MariaDB 설치되었다고 가정.
방화벽(ufw) db 외부 접속 허용 등은 잘 몰라서 이 글에서는 pass
1. MariaDB Port 확인
아래 명령어로 편집기를 열어서
sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
port를 확인하고 원하는 port로 설정한다.
port = 33006
이후 mariadb 재시작
sudo systemctl restart mariadb
2. phpMyAdmin과 php, fpm 설치
sudo apt-get install phpmyadmin php-fpm
이후 nginx에서 fpm socket을 통해 phpMyAdmin과 연결을 해주는데, fpm 버전을 적어야하니 php 버전을 확인하고 기억한다.
php -v
3. phpMyAdmin&DB 연결
sudo vim /etc/phpmyadmin/config.inc.php
80 line 쯤 코드를 보면 dbserver가 없으면 localhost로 설정한다는 코드, dbport 설정하는 코드가 있는데,
![[NGINX] Ubuntu에서 MariaDB 와 NGINX 연결하여 phpMyAdmin페이지 구축 - undefined - 3. phpMyAdmin&DB 연결 [NGINX] Ubuntu에서 MariaDB 와 NGINX 연결하여 phpMyAdmin페이지 구축 - undefined - 3. phpMyAdmin&DB 연결](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
그냥 가장 위에 host와 port를 입력한다.
나랑 똑같이 하지말고 여러분의 db host, port를 입력한다.
![[NGINX] Ubuntu에서 MariaDB 와 NGINX 연결하여 phpMyAdmin페이지 구축 - undefined - 3. phpMyAdmin&DB 연결 [NGINX] Ubuntu에서 MariaDB 와 NGINX 연결하여 phpMyAdmin페이지 구축 - undefined - 3. phpMyAdmin&DB 연결](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
4. NGINX&phpMyAdmin 연결
아래 명령어 입력
sudo vim /etc/nginx/sites-available/[filename]
아래서 바꿀 것은 phpMyAdmin페이지를 보여줄 port 번호(listen)와 php-fpm 버전 2가지이다. 각자 버전에 맞게 입력
server {
listen 5003;
location /phpmyadmin {
root /usr/share/;
index index.php;
try_files $uri $uri/ =404;
location ~ ^/phpmyadmin/(.+\.php)$ {
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|map|woff|ttf|svg))$ {
root /usr/share/;
}
}
location / {
try_files $uri $uri/ =404;
}
}
심볼릭 링크 생성
sudo ln -s /etc/nginx/sites-available/[filename] /etc/nginx/sites-enabled/
nginx 재시작
sudo nginx -t // nginx 테스트
sudo systemctl restart nginx
본인의 ip와 phpMyAdmin의 port /phpmyadmin 입력시 해당 페이지 출력
![[NGINX] Ubuntu에서 MariaDB 와 NGINX 연결하여 phpMyAdmin페이지 구축 - undefined - 4. NGINX&phpMyAdmin 연결 [NGINX] Ubuntu에서 MariaDB 와 NGINX 연결하여 phpMyAdmin페이지 구축 - undefined - 4. NGINX&phpMyAdmin 연결](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
5. 설정중 발생하였던 오류
nginx: [emerg] bind() to 0.0.0.0:[port] failed (98: Address already in use)
-> phpMyAdmin은 DB를 연결해서 뿌려주는, DB와는 별개인 App이다. DB와 동일한 port로 설정하지 말자.
BadGateway 402
-> nginx에 설정한 경로가 문제일 확률이 크다.
/etc/nginx/sites-available/[filename]에서 입력한 "fastcgi_pass unix" 경로에 해당 /var/run/php/php7.2-fpm.sock이 존재하는지 부터 확인.
파일을 확인해도 되고 systemctl로 확인해도 된다.
sudo systemctl status php7.4-fpm
Failed to start php7.4-fpm.service: Unit php7.4-fpm.service not found.
위 오류가 발생한다면 php-fpm 설치 버전을 잘 확인해서 맞춰주자.
참고로 python으로 개발된 server도 위와 비슷한 방법으로 연결한다.
이외 나의 뇌피셜
phpMyAdmin과 DB가 같은 네트워크라면, DB의 외부접속허용 권한은 필요없다.
phpMyAdmin에서 명령어를 전달하기 때문.
대신 phpMyAdmin 의 접속 권한(ufw 등)은 필요하겠지.
'프로그래밍 > NGINX' 카테고리의 다른 글
[NGINX] port 접속이 안될 때(3000, 8080, 8090 등) (0) | 2024.02.07 |
---|
댓글