요즘들어 개인 공부를 위해 Wiki를 만들고자 하는데 좋은 참고 글이 있어 직접 세팅을 해보고 싶어 글을 작성해봅니다.
이번 글은 해당 사이트를 참고해서 제작한 프로젝트이며 상업적 요소로 사용하지 않고
제작하는 방향으로 포스팅하겠습니다.
사전 준비 및 환경
해당 프로젝트는 php 기반으로 준비해두시면 됩니다.
- OS: Ubuntu 20.04
- Nginx 1.18.0
- PHP-FPM 7.4.3
- MariaDB 10.5.4
- Media Wiki 1.36.2
사전 준비를 위해 해당 사이트에서 LEMP 스택을 먼저 설치하도록 하겠습니다.
Linux(Ubuntu) LEMP 스택 설치하기
LEMP 스택은 워드프레스, Ryhmix, Nextcloud 등의 서비스를 사용하기 위해 필수적인 LEMP 스택을
하나씩 설치해보도록 하겠습니다.
여기서 LEMP를 요약하자면
- L : Linux - Ubuntu
- E : Nginx(WEB)
- M: MariaDB
- P: PHP
저는 우분투를 사용하는 환경에서 제작하는 시점이라 만약 윈도우 유저시라면
해당 글에서 Linux 가상환경을 세팅해주시기 바랍니다.
Nginx 설치하기
위 Ubuntu를 모두 설치했다고 가정하에 진행하도록 하겠습니다.
※ Nginx의 경우 레포지토리에 따라서 버전이 다른데 저는 Ubuntu 기본버전을 바탕으로 설치하겠습니다.
nginx를 설치하기 위해서는 관리자 권한을 이용해 설치해야 합니다.
sudo apt-get install nginx
nginx 설치후에는 nginx가 최종적으로 설치되었는지 확인하기 위해 아래 명령어로
nginx의 버전을 확인해주세요
nginx -v
버전확인 이후에 service nginx status 명령어를 사용해 서비스의 실행 여부를 확인할 수 있습니다.
그 후에는 웹브라우저(크롬, 엣지 등)을 통해서 웹서버의 ip를 통해서 접근하게 되면 아래처럼 창이 뜨는걸
확인 할 수 있습니다.
PHP 설치하기(PHP-FPM)
이제 php 컴파일을 위해 php 패키지를 설치해줄건데 여기서 nginx와 연동이 가능하고
속도도 빠른 php-fpm을 설치하도록 하겠습니다.
php의 경우 모듈도 많기 때문에 필요한 모듈도 함께 설치하도록 하겠습니다.
여기서 설치할 버전은 php7.4 버전입니다.
여기서 설치는 아래 명령어로 설치하시면 됩니다.
sudo apt install -y php7.4-fpm php7.4-gd php7.4-json php7.4-mysql
php7.4-curl php7.4-mbstring php7.4-intl php-imagick php7.4-xml php7.4-zip
설치후 아래 명령어로 php 재부팅후 동작 + 실행을 시켜줍니다.
systemctl enable php7.4-fpm
실행 도중에 인증이 필요하니 몇가지 인증을 해주세요
systemctl start php7.4-fpm
service php7.4-fpm status
php 동작 확인
php가 동작하는지 확인해보기 위해 php 파일 하나를 생성해주세요
web root 폴더도 따로 생성해보도록 하겠습니다.
mkdir -p /var/www/html
vi /var/www/html/index.php && sudo nano /var/www/html/index.php
그리고 아래 내용을 복사해서 넣어줍니다.
<?php
phpinfo();
?>
그후 nginx에서 php 파일을 읽을수 있도록 기본 서버세팅도 필요합니다.
기본적으로 존재하고 있는 nginx 파일은 지워주도록 합니다.
rm -rf /etc/nginx/sites-available/default
sudo nano /etc/nginx/sites-available/default
server {
listen 80 ;
listen [::]:80 ;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
access_log /var/log/nginx/web.access.log;
error_log /var/log/nginx/web.error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_cache off;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
include mime.types;
}
location ~ /\.ht {
deny all;
}
}
파일 생성후 아래 명령어로 nginx를 재시작 해주세요
그후 웹 브라우저로 이동하면 아래 화면을 볼 수 있습니다.
MariaDB 설치하기(MySQL)
LEMP 스택에서 M은 MySQL과 MariaDB 둘중 아무거나 설치해도 상관이 없지만
조금 더 친숙한 MariaDB로 설치해보도록 하겠습니다.
MySQL은 오픈소스 버전으로 관계형 데이터베이스를 사용합니다.
아래 레포 등록부터 설치까지 차근차근 해보겠습니다.
sudo apt-get install software-properties-common dirmngr apt-transport-https
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el]https://ftp.harukasan.org/mariadb/repo/10.5/ubuntu focal main'
sudo apt update
sudo apt install mariadb-server
위 사진 처럼 10.5 버전을 설치하면 됩니다. 설치후에는 mariadb가 바로 실행 되므로
service mariadb status
위 명령어로 정상실행 여부 확인 가능합니다.
MariaDB 레포지토리 변경
기본적인 Ubuntu 레포지터리에 최신버전의 OS에서도 패키지 업데이트가 느리기 때문에 직접 레포지토리를
변경하는 것을 추천합니다.
이전에는 GPG Key도 인증받고 어려 과정이 있었는데 스크립트 하나로 OS에 맟춰 설치할 수 있습니다.
다시 패키지 리스트를 확인해보면 최신 안정판인 10.7.3으로 변경된 것을 확인할 수 있습니다.
MariaDB 설치하기
sudo apt install mariadb-server
설치 완료후 아래 명령어로 설치 확인 가능합니다.
sudo service mariadb status
Mariadb의 기본 포트는 3306으로 이것 또한 netstat -lntp 명령어로 확인 가능하빈다.
설정 파일도 기존의 /etc/mysql 쪽에 있으니 참고 바랍니다.
mysql 명령어를 통해 콘솔창으로 접근되며
10.4 부터는 기본적으로 로컬 root 계정으로 접근 시 별도 인증없이 확인 가능합니다.
root 패스워드 설정은 아래와 같습니다.
use mysql;
set password=password('password');
이제는 기본 root가 아닌 다른 계정 접속시에는 pw를 요구하는 것을 볼 수 있습니다.
DB 생성하기
이제 Media Wiki 파일을 설치하기 전에 DB를 먼저 생성해줍니다.
서버 터미널에서 mysql 명령어로 DB 콘솔 접속 후에 아래와 같이 진행해주세요.
DB명과 계정은 편하신대로 바꿔주시면 됩니다.
// 미디어 위키를 위한 DB 생성
create database ds_wiki;
// 계정 생성
create user 'koras02'@'%' identified by 'password';
권한 부여 후 리로드하기
grant all privileges on ds_wiki.* to koras02@'%';
flush privileges;
이제 DB가 준비돼었으니 서버파일을 다운로드 진행하겠습니다.
미디어 위키 설치하기
서버 터미널 접근 후 웹 루트 폴터로 이동해 진행합니다.
cd /var/www
wget https://releases.wikimedia.org/mediawiki/1.36/mediawiki-1.36.2.tar.gz
압축해제 명령어는
tar xvzf mediawiki-*.tar.gz 입니다.
버전명으로 압축이 풀리기에 폴더 이름도 바꾸고 권한도 바꾸겠습니다.
chown -R www-data:www-data mediawiki
이제 Nginx 설정도 바꿔주세요
vi /etc/nginx/sites-available/default
or
sudo nano /etc/nginx/sites-available/default
이제 설정 파일에 들어가 웹 루트 폴더 경로를 바꿔주세요. 밑에 index.php도 추가
그후 service nginx reload 명령어로 다시 반영해주세요
후 됬습니다ㅋㅋㅋ. 만약 안될수도 있으니 위에서부터 차근차근 다시 세팅 해보시면 분명히 될것입니다.
이제 set up the wiki 버튼을 클릭해 넘어가줍니다.
언어는 당연히 한국어로 시작합니다.
DB연결 부분입니다. 다음
여기서는 위에서 설정한 데이터베이스와 비밀번호 사용자이름을 입력해주세요
여기서 위키의 이름과 관리자계정을 생성합니다.
원하는 방식으로 만들어줍니다.
스킨과 편집기 등등을 선택해줄 수 있습니다.
이제 마무리 단계입니다!!! 계속
이제 여기서 계속 버튼을 누름과 동시에 LocalSettings.php 파일이 받아지는데요
이것을 서버 웹루트 폴더로 옵겨줍니다.
옮긴 후 접속해보면 보이는 대문과 함께 설치가 완료된 것을 볼 수 있습니다.
확실히 복잡한 단계 이지만 한번 해보면 완전히 적응할 수 있으니 다시한번 시도해보는 것도 좋습니다.
참고자료
'백엔드 > PHP' 카테고리의 다른 글
[PHP] PHP 설치 (0) | 2022.02.26 |
---|---|
[PHP] PHP 정의 (0) | 2022.02.26 |