PHP 설치하기
sudo apt update
sudo apt install php-fpm php-mysql php-cli php-curl php-mbstring php-xml php-zip -y
PHP는 서버사이드 프로그래밍 언어로, 웹사이트 개발에 많이 사용됩니다. 과거에는 전 세계적으로 널리 쓰였지만, 우리나라에서는 Java가 압도적으로 많이 사용되는 편입니다. 그러나 규모가 작은 서비스를 만들 때는 PHP가 유용할 수 있습니다. (물론, 이는 개발 방식에 따라 다릅니다.)
PHP는 HTML과 쉽게 통합할 수 있으며, 객체지향을 지원합니다. 또한, 입문 접근성이 쉽고 배우기 간단한 언어입니다. 유명한 프레임워크로는 Laravel, CodeIgniter 등이 있으며, 이를 활용하면 빠른 웹사이트 구축이 가능합니다. 국내에서 많이 사용되는 CMS인 Rhymix(라이믹스), 그누보드도 PHP 기반으로 개발되었습니다.
PHP장점
- 쉽고 직관적인 문법으로 입문하기 쉽습니다
- 프론트와 연동이 굉장히 쉽습니다
- 방대한 개발 데이터로 문제해결이 쉽습니다
- 빠른 개발을 위한 프레임워크와 라이브러리가 굉장히 많습니다
PHP단점
- 보안에 취약합니다(신경을 많이 써야함)
- 코드 품질에 따라 성능 격차가 크다(최적화에 공을 들여야 합니다)
- 비동기 처리가 미흡합니다
NGINX 에서 PHP를 읽을 수 있도록 설정
//설정파일 열기
sudo nano /etc/nginx/sites-available/default
// 설정파일 설정 변경
server {
listen 80;
server_name 도메인명;
root /home/USER/public/home;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
# PHP 설정 추가
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # PHP 버전에 따라 변경!!!
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
// 설정 저장
sudo nginx -t # 설정 파일 테스트
sudo systemctl restart nginx
이렇게 Nginx 설정을 변경하면 PHP파일을 읽을 수 있게 됩니다
PHP를 제대로 읽어오는지 확인하고 싶다면 root 디렉터리에 index.php 파일을 만든 후 아래 내용을 입력하고
<?php phpinfo(); ?>
이제 로컬호스트에서 해당 파일을 열어봅시다!
이렇게 PHP의 정보가 화면에 뜬다면 정상적을 설치하고 서버설정이 완료됐습니다!
PHPMYADMIN 설치하고 연동하기
우선 설치부터 진행합니다
sudo apt update
sudo apt install phpmyadmin -y
이후 Ngnix에서 phpmyadmin 으로 접근할 수 있도록 설정을 해야 합니다
server {
listen 80;
server_name 도메인;
root /home/USER/public/home;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location /phpmyadmin {
root /home/server01/public/home;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock; # PHP 버전에 따라!!!
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
}
sudo nginx -t # 문법 이상유무 체크
sudo systemctl restart nginx # Nginx 재시작
이제 phpmyadmin 으로 접속은 가능합니다 하지만 phpmyadmin을 관리하는 관리자 계정을 생성해야 합니다
//mysql 로그인
sudo mysql -u root -p
// 사용자 생성 및 특정 db 권한주기
CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'your_password';
ALTER USER 'phpmyadmin'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;
이제 모든 설정이 완료되었습니다 접속해 봅시다!
이런 화면이 뜬다면 정상적으로 설치와 설정이 된 겁니다!
이전에 만들어 뒀던 관리자계정이나 다른 db 계정을 만들어 뒀다면 해당 계정으로 로그인할 수 있습니다
로그인을 하고 나면 사진처럼 DB, 테이블, 컬럼, 필드 모든 데이터를 조회할 수 있고 수정도 가능합니다
권한에 따라선 DB를 만들고 사용자도 만들 수 있지만 그런 계정은 root 계정과 동일한 권한을 갖기 때문에
만드시는 걸 권해드리지 않습니다 보안상 매우 해롭습니다!
phpmyadmin은 되도록 접속하기 어려운 url로 세팅을 하시거나 특정 아이피에서만 접속 가능하도록 조치를 취하세요
외부에서 접속 가능한 mysql 계정이 없더라도 phpmyadmin 으로 접속하면 로컬에서 접속한 것과 똑같은 상황이기 때문에 해킹을 당한다면 db정보가 변조되거나 유출될 수 있습니다
개발서버에서만 사용하고 라이브 서버에선 되도록! 아니 사용하지 마세요!
이번 글에서 서버이전이야기를 끝내려 했는데 생각보다 한 챕터 한 챕터가 길어
다음 글에서 네트워크 환경설정, 도메인 연결, SSL 적용에 대한 작업을 진행해 보겠습니다
이후 글에서 nodeJS 설치와 기존 서비스를 배포해 보고 서버 보안을 강화하는 설정작업을 해보겠습니다
'SERVER' 카테고리의 다른 글
와일드 SSL을 적용하다! (0) | 2025.06.01 |
---|---|
무중단 서버이전하기 Window to Ubuntu -2 (0) | 2025.03.04 |
무중단 서버이전하기 Window to Ubuntu -1 (0) | 2025.03.02 |