우분투에 워드프레스 설치하기
우분투20.04 LTS + Apache2 + MySQL + PHP7.4 + Wordpress
이틀을 꼬박 날렸다.
AWS 프리 티어는 얼마 쓰지 않은 것 같은데 벌써 무료 용량이 다 찼다고 알림이 왔다. 속 편하게 유료로 쓸까 하다가, 테스트 웹사이트를 굳이 유료로 쓸 건 없다 싶어 대안을 찾았다. 10년도 더 된 구닥다리 노트북을 밀고 우분투를 깔기로 했다. 리눅스 기반이니 간단한 웹서버는 구축할 수 있으리라 여겼다.
서버 관련 지식이 전무하기에, 웬만한 건 구글링으로 해결했다. 여러 블로그를 뒤져가며 하나씩 따라하다보니 사이트가 만들어졌다. 시행착오가 좀 있었지만 결국 개설했다.
순서는 이렇다.
- USB 부팅 디스크 + 우분투 ISO
- 노트북에 우분투 설치
- Apache2 + MySQL + PHP7.4(AMP) 설치
- 워드프레스 설치
중간에 설정할 것들도 많고 오류도 잡아줘야 한다. 다음에 다시 작업할 때를 대비해 대략 순서를 기록해 둔다.
-
우분투 부팅 USB + ISO 준비.
-
USB로 부팅해 우분투 설치
-
우분투에 APM 설치
-
-
우분투 패키지 업데이트
-
-
등록된 저장소 내 패키지 정보를 최신으로 업데이트
-
$ sudo apt update
-
시스템에 설치된 패키지 업그레이드
-
$ sudo apt upgrade
-
불필요한 패키지 자동 삭제
-
$ sudo apt autoremove
-
-
-
Apache2 설치
-
-
Apache2 설치
-
$ sudo apt install apache2
-
아파치 서버 시작
-
$ sudo service apache2 start
-
아파치 서버 중지
-
$ sudo service apache2 stop
-
아파치 서버 재시작
-
$ sudo service apache2 restart
-
부팅할 때마다 자동 실행
-
$ sudo update-rc.d apache2 defaults
-
-
-
MySQL 설치
-
-
MySQL 설치
-
$ sudo apt install mysql-server
-
보안 스크립트 실행
-
$ sudo mysql_secure_installation
-
재부팅 시 자동 실행 설정
-
$ sudo update-rc.d -f mysql defaults
-
-
-
PHP 7.4 설치 (Aphache와 MySQL 먼저 설치한 뒤 PHP 설치해야 함)
-
- PHP 7.4 설치. Apache2와 MySQL 모듈도 함께 설치
-
-
-
-
$ sudo apt install php libapache2-mod-php-mysql
-
PHP 익스텐션 목록 보기
-
$ apt list php-* php7.4-*
-
기본 익스텐션 설치
-
$ sudo apt install php-{bz2,imagick,imap,intl,gd,mbstring,pspell,curl,readline,xml,xmlrpc,zip}
-
-
-
-
워드프레스 필수 패키지 설치
-
$ sudo systemctl enable php7.4-fpm
-
재부팅시 자동 시작 설정
-
$ sudo systemctl start php7.4-fpm
-
설정 적용
-
$ sudo systemctl reload php7.4-fpm
-
php.ini 설정
-
$ sudo nano /etc/php/7.4/fpm/php.ini
-
아래 항목 찾아서 수정
-
short_open_tag = On memory_limit = 256M cgi.fix_pathinfo = 0 upload_max_filesize = 100M post_max_size = 101M max_execution_time = 360 date.timezone = Asia/Seoul
-
index.php 생성
-
-
‘/var/www/html’로 이동해 index.php 만들고 내용 입력
-
$ cd /var/www/html $ sudo nano index.php <?php phpinfo(); 저장
-
-
-
php-gd 라이브러리 설치
-
$sudo apt-get install php-gd
-
mod_rewrite 활성화
-
$ sudo a2enmod rewrite
-
-
-
-
MySQL 로그인
-
$ mysql -u root -p
-
wordpress 데이터베이스 생성
-
MySQL> CREATE DATABASE wordpress;
-
ID & PW 설정
-
MySQL> CREATE USER 'asadal'@'localhost' IDENTIFIED BY 'password_here';
-
asadal 에게 DB 권한 부여
-
MySQL> GRANT ALL ON wordpress.* TO 'asadal'@'localhost' WITH GRANT OPTION;
-
저장 후 빠져나오기
-
MySQL> FLUSH PRIVILEGES; MySQL> EXIT;
-
-
-
Wordpress 최신 한글 버전 설치
-
-
파일 다운로드
-
$ sudo wget https://ko.wordpress.org/latest-ko_KR.tar.gz
-
압축 해제
-
$ sudo tar -xvzf latest-ko_KR.tar.gz
-
압축 파일 삭제
-
$ sudo rm -rf /var/www/html/wordpress/latest-ko_KR.tar.gz
-
루트 폴더로 워드프레스 파일 이동
-
$ sudo mv /var/www/html/wordpress/* /var/www/html/
-
wordpress 폴더 삭제
-
$ sudo rm -rf /var/www/html/wordpress
-
루트 폴더로 이동
-
$ cd /var/www/html
-
권한 부여
-
sudo chown -R www-data:www-data /var/www/html/ sudo chmod -R 755 /var/www/html/
-
Apache2 재시작
-
$ sudo service apache2 restart
-
-
-
Wordpress 설정
-
-
http://127.0.0.1 접속해 워드프레스 설치 완료
-
도메인 연결
-
-
아래 파일로 접속
-
$ sudo nano /etc/apache2/sites-enabled/000-default.conf
-
-
-
도메인 연결 설정
-
; 도메인 연결(http://www.cloudflare.com 접속해 사전 설정) ServerName asadal.ga ServerAdmin asadal@hani.co.kr ServerAlias www.asadal.ga DocumentRoot /var/www/html
-
wp-config.php 파일 수정
-
$ sudo nano /var/www/html/wp-config.php
-
sFTP 연결 모드 우회 설정
-
define('FS_METHOD', 'direct');
-
참고 : 기본 wp-config.php 설정
-
- 랜덤키 발생 사이트 : https://api.wordpress.org/secret-key/1.1/salt/
-
-
-
-
define('DB_NAME', 'wordpress'); define('DB_USER', 'asadal'); define('DB_PASSWORD', 'password_here'); define('FS_METHOD', 'direct'); define('AUTH_KEY', '*+B12Um|BC@Jj4[rxz>7GmV$_Gydplm]e_DH=**{HmdBO&et~{60?-]buAH[|}0A'); define('SECURE_AUTH_KEY', '}@zH6`5ucI+D)J:-ttBXK~UAuEp8Zkv,exwJsN^yqExkbHW|=BP+0-K;m]a9moa4'); define('LOGGED_IN_KEY', 'RVk%SCn`vKteLoI+$@Ip9eO+Wzd<-gC M?+m3kUfpe}LyWETlN ENnmm)~x/}10['); define('NONCE_KEY', '3_iup<b|+xUW$K0<p<>[c^Bm1o*:kI]e3M`fS1p#FC |s=*5lSbo|b9I+H?wz+I}'); define('AUTH_SALT', '8-@O*c2WU-;83+dC>B[c60>GpWu`VWz^`+iZexB>f ZyTE[sN4{#X[W$uR9y77Wc'); define('SECURE_AUTH_SALT', 'CU(3ZT*x8nA5xiV)hV&iJ_N+8b%%cOxn&;TY8kpigfyHY7NeAE|Q~ep f+6Og7&B'); define('LOGGED_IN_SALT', 'Uzp!iS_^}kZY-Pw@-+v?D=%m4D1+xI.N1DpCP{v)x+ap:LIp&+EwMkH5@dvmKAr3'); define('NONCE_SALT', 'yDfpy+/:9F0@9i,>[JogZ+81{+-LiRz1a+a/.0zI+dTIWy|;m%T-.4fgu2-G|=PF');
- wp-config.php 기본 설정(추가)
/** Memory Limit */ define( 'WP_MEMORY_LIMIT', '256M' ); /** Multisite */ define( 'WP_ALLOW_MULTISITE', true );
-
- 참고 : 멀티사이트 추가하기 : https://avada.tistory.com/2138
- 참고 : 워드프레스 글 저장시 ‘응답이 유효한 JSON 응답이 아닙니다’ 오류가 날 때
-
- https://h-sk.net/forums/topic/144811/
-
참고 : 포트포워딩
-
- https://m.blog.naver.com/seoulworkshop/221265052717
- https://www.thewordcracker.com/basic/how-to-install-wordpress-in-local-computers/
- https://m.blog.naver.com/seoulworkshop/221265052717
-
-
참고 :
- https://yoshikixdrum.tistory.com/214
- https://blog.wsgvet.com/ubuntu-20-04-install-wordpress-php7-4/
- https://swiftcoding.org/wp-config-file