Contents
개인 서버에 Ubuntu LEMP WORDPRESS 설치하기 14
개인 서버에 Ubuntu sever LEMP(Linux-ubuntu+Nginx+MariaDB-Phpmyadmin+PHP8.3) WORDPRESS 설치하기
WordPress는 가장 널리 사용되는 콘텐츠 관리 시스템(CMS) 중 하나로, 사용자 친화적인 인터페이스와 확장성 덕분에 많은 웹사이트에서 선호됩니다.
설치과정은 워드프레스 파일을 개인 서버에 다운로드하고 그 다음 압축을 푼 다음 설치하는 방법입니다.
14-1. 개인 서버에 WordPress 설치하기
워드프레스 사이트에 접속하여 설치파일 다운로드 페이지에 접속합니다.
워드프레스 다운로드 사이트 URL : https://ko.wordpress.org/download/
ko.wordpress.org/latest-ko_KR.zip 해당 파일은 이런 형태로 되어있습니다.
14-2. 개인 서버에 다운로드 합니다.
Putty 명령창에 wget -O ~/wordpress.zip https://ko.wordpress.org/latest-ko_KR.zip 를 입력합니다.
junewoo@cvilla:~$ wget -O ~/wordpress.zip https://ko.wordpress.org/latest-ko_KR.zip
--2024-03-15 00:33:27-- https://ko.wordpress.org/latest-ko_KR.zip
Resolving ko.wordpress.org (ko.wordpress.org)... 198.143.164.252
Connecting to ko.wordpress.org (ko.wordpress.org)|198.143.164.252|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 26823656 (26M) [application/zip]
Saving to: ‘/home/junewoo/wordpress.zip’
/home/junewoo/wordp 100%[===================>] 25.58M 3.99MB/s in 7.0s
2024-03-15 00:33:35 (3.64 MB/s) - ‘/home/junewoo/wordpress.zip’ saved [26823656/26823656]
junewoo@cvilla:~$
그러면 wordpress.zip이 /home/junewoo/ 폴더에 저장되었다고 합니다.
14-3. 저장한 워드프레스 압축파일을 풀어보겠습니다.
명령창에 unzip /home/junewoo/wordpress.zip -d ~ 를 입력합니다.
~는 임시 디렉토리에 풀라는 의미입니다.
ubuntu@wordpress:~$ unzip /home/junewoo/wordpress.zip -d ~
Archive: /home/ubuntu/wordpress.zip
creating: /home/ubuntu/wordpress/
inflating: /home/ubuntu/wordpress/wp-login.php
inflating: /home/ubuntu/wordpress/wp-cron.php
inflating: /home/ubuntu/wordpress/xmlrpc.php
inflating: /home/ubuntu/wordpress/wp-load.php
creating: /home/ubuntu/wordpress/wp-admin/
inflating: /home/ubuntu/wordpress/wp-admin/credits.php
inflating: /home/ubuntu/wordpress/wp-admin/admin-functions.php
--- 중략 ---
inflating: /home/ubuntu/wordpress/wp-includes/nav-menu.php
inflating: /home/ubuntu/wordpress/wp-includes/class-wp-paused-extensions-storage.php
inflating: /home/ubuntu/wordpress/wp-includes/class.wp-dependencies.php
inflating: /home/ubuntu/wordpress/wp-signup.php
inflating: /home/ubuntu/wordpress/wp-links-opml.php
14-4. 압축이 풀렸는지 확인합니다.
명령창에 ls /home/junewoo 를 입력합니다.
junewoo@cvilla:~$ ls /home/junewoo
snap wordpress wordpress.zip
junewoo@cvilla:~$
14-5. 에러 없이 정상적으로 압축이 풀렸으면 서비스 폴더로 복사합니다.
명령창에 cp -a /home/junewoo/wordpress/. /var/www/html 를 입력합니다.
junewoo@cvilla:~$
cp -a /home/junewoo/wordpress/. /var/www/html
14-6. Editplus에서 정상적으로 복사가 되었는지 확인해 보겠습니다.
/var/www/html 아래 wordpress 내용이 잘 복사된 것을 확인할 수 있습니다.
14-7. 다음으로 wordpress 관련 필요 폴더들을 생성합니다.
WordPress 플러그인 적용 시 해당 폴더가 없거나 권한 문제로 오류가 나는 경우가 있습니다.
오류가 나기 전에 해당 폴더를 생성하시는 것을 추천합니다.
명령창에
mkdir /var/www/html/wp-content/uploads
mkdir /var/www/html/wp-content/upgrade
mkdir /var/www/html/wp-content/temp
와 같이 입력합니다.
junewoo@cvilla:~$
mkdir /var/www/html/wp-content/uploads junewoo@cvilla:~$ mkdir /var/www/html/wp-content/upgrade junewoo@cvilla:~$ mkdir /var/www/html/wp-content/temp
다음으로 폴더들이 정상적으로 생성되었는지 확인해 보겠습니다.
명령창에 ls -l ~ /var/www/html 를 입력합니다.
junewoo@cvilla:~$ ls -l ~ /var/www/html
/home/junewoo:
total 26204
drwx------ 3 junewoo junewoo 4096 Dec 23 14:33 snap
drwxr-xr-x 5 junewoo junewoo 4096 Dec 7 03:00 wordpress
-rw-rw-r-- 1 junewoo junewoo 26823656 Jan 31 07:05 wordpress.zip
/var/www/html:
total 252
drwxr-sr-x 2 www-data junewoo 4096 Dec 23 10:37 account_live_cvilla@hanmail.net
-rw-r--r-- 1 www-data junewoo 1241 Dec 23 10:37 DirectoryResponse
-rwxrwxr-x 1 www-data junewoo 614 Dec 22 18:28 index.nginx-debian.html
-rwxrwxr-x 1 www-data junewoo 405 Feb 6 2020 index.php
-rwxrwxr-x 1 www-data junewoo 19915 Jan 31 23:23 license.txt
-rw-rw-r-- 1 junewoo junewoo 67 Jan 5 09:44 naverdded6de77ad5c096673b3312b387a541.html
-rwxrwxr-x 1 www-data junewoo 7399 Jan 31 23:23 readme.html
-rw-rw-r-- 1 junewoo junewoo 23 Jan 5 09:58 robots.txt
lrwxrwxrwx 1 www-data junewoo 39 Dec 22 19:36 testpagedb -> /var/www/phpMyAdmin-5.2.1-all-languages
-rwxrwxr-x 1 www-data junewoo 7211 May 13 2023 wp-activate.php
drwxrwsr-x 9 www-data junewoo 4096 Dec 7 03:00 wp-admin
-rwxrwxr-x 1 www-data junewoo 351 Feb 6 2020 wp-blog-header.php
-rwxrwxr-x 1 www-data junewoo 2323 Jun 14 2023 wp-comments-post.php
-rw-rw-rw- 1 www-data junewoo 3787 Dec 23 21:14 wp-config.php
-rwxrwxr-x 1 www-data junewoo 3013 Nov 16 02:47 wp-config-sample.php
drwxrwsr-x 11 www-data junewoo 4096 Mar 5 23:44 wp-content
-rwxrwxr-x 1 www-data junewoo 5638 May 31 2023 wp-cron.php
drwxrwsr-x 27 www-data junewoo 12288 Dec 7 03:05 wp-includes
-rwxrwxr-x 1 www-data junewoo 2502 Nov 27 2022 wp-links-opml.php
-rwxrwxr-x 1 www-data junewoo 3927 Jul 16 2023 wp-load.php
-rwxrwxr-x 1 www-data junewoo 50927 Jan 31 23:23 wp-login.php
-rwxrwxr-x 1 www-data junewoo 8525 Sep 16 15:50 wp-mail.php
-rwxrwxr-x 1 www-data junewoo 26409 Oct 10 23:05 wp-settings.php
-rwxrwxr-x 1 www-data junewoo 34385 Jun 20 2023 wp-signup.php
-rwxrwxr-x 1 www-data junewoo 4885 Jun 22 2023 wp-trackback.php
-rwxrwxr-x 1 www-data junewoo 3154 Sep 30 16:39 xmlrpc.php
junewoo@cvilla:~$
여기서는 파일 권한들이 대부분 775로 되어 있습니다.
만일 755로 되어 있다면 테마 및 플러그인 추가 시 에러가 날 수 있습니다.
14-8. 워드프레스 폴더 소유자 권한 및 사용자 그룹을 변경합니다.
Putty 명령창에
sudo chown -R www-data:junewoo /var/www/html
sudo find /var/www/html -type d -exec chmod g+s {} \;
sudo chmod -R 775 /var/www/html
를 입력합니다.
junewoo@cvilla:~$ sudo chown -R www-data:junewoo /var/www/html
[sudo] password for junewoo:
junewoo@cvilla:~$ sudo find /var/www/html -type d -exec chmod g+s {} \;
junewoo@cvilla:~$ sudo chmod -R 775 /var/www/html
junewoo@cvilla:~$
그러면 하위 폴더가 모두 775 권한으로 변경되었습니다.
그러나 이러면 upload된 파일이 덮어씌워진다거나 삭제될 수 있습니다.
명령 창에서 ls -l /var/www/html 를 해 보시면 폴더 소유자 권한이 변경된 것을 확인할 수 있습니다.
junewoo@cvilla:~$ ls -l /var/www/html
total 252
drwxrwsr-x 2 www-data junewoo 4096 Dec 23 10:37 account_live_cvilla@hanmail.net
-rwxrwxr-x 1 www-data junewoo 1241 Dec 23 10:37 DirectoryResponse
-rwxrwxr-x 1 www-data junewoo 614 Dec 22 18:28 index.nginx-debian.html
-rwxrwxr-x 1 www-data junewoo 405 Feb 6 2020 index.php
-rwxrwxr-x 1 www-data junewoo 19915 Jan 31 23:23 license.txt
-rwxrwxr-x 1 www-data junewoo 67 Jan 5 09:44 naverdded6de77ad5c096673b3312b387a541.html
-rwxrwxr-x 1 www-data junewoo 7399 Jan 31 23:23 readme.html
-rwxrwxr-x 1 www-data junewoo 23 Jan 5 09:58 robots.txt
lrwxrwxrwx 1 www-data junewoo 39 Dec 22 19:36 testpagedb -> /var/www/phpMyAdmin-5.2.1-all-languages
-rwxrwxr-x 1 www-data junewoo 7211 May 13 2023 wp-activate.php
drwxrwsr-x 9 www-data junewoo 4096 Dec 7 03:00 wp-admin
-rwxrwxr-x 1 www-data junewoo 351 Feb 6 2020 wp-blog-header.php
-rwxrwxr-x 1 www-data junewoo 2323 Jun 14 2023 wp-comments-post.php
-rwxrwxr-x 1 www-data junewoo 3787 Dec 23 21:14 wp-config.php
-rwxrwxr-x 1 www-data junewoo 3013 Nov 16 02:47 wp-config-sample.php
drwxrwsr-x 11 www-data junewoo 4096 Mar 5 23:44 wp-content
-rwxrwxr-x 1 www-data junewoo 5638 May 31 2023 wp-cron.php
drwxrwsr-x 27 www-data junewoo 12288 Dec 7 03:05 wp-includes
-rwxrwxr-x 1 www-data junewoo 2502 Nov 27 2022 wp-links-opml.php
-rwxrwxr-x 1 www-data junewoo 3927 Jul 16 2023 wp-load.php
-rwxrwxr-x 1 www-data junewoo 50927 Jan 31 23:23 wp-login.php
-rwxrwxr-x 1 www-data junewoo 8525 Sep 16 15:50 wp-mail.php
-rwxrwxr-x 1 www-data junewoo 26409 Oct 10 23:05 wp-settings.php
-rwxrwxr-x 1 www-data junewoo 34385 Jun 20 2023 wp-signup.php
-rwxrwxr-x 1 www-data junewoo 4885 Jun 22 2023 wp-trackback.php
-rwxrwxr-x 1 www-data junewoo 3154 Sep 30 16:39 xmlrpc.php
junewoo@cvilla:~$
14-9. 이런 경우를 방지하기 위하여 upload 폴더에 한해서 폴더 하위 편집권한을 변경합니다.
Putty 명령창에
sudo chown -R www-data:www-data /var/www/html/wp-content/uploads
sudo chmod -R 755 /var/www/html/wp-content/uploads
를 입력합니다.
junewoo@cvilla:~$
sudo chown -R www-data:www-data /var/www/html/wp-content/uploads junewoo@cvilla:~$ sudo chmod -R 755 /var/www/html/wp-content/uploads
이제 uploads 폴더는 junewoo 사용자에게 권한이 없으며 www-data로 웹에서만 소유자가 쓰기 권한이 있게 됩니다.
명령창에 ls -l /var/www/html/wp-content/ 를 입력하면 uploads 폴더만 소유자 권한까지 변경된 것을 확인할 수 있습니다.
junewoo@cvilla:~$ ls -l /var/www/html/wp-content/
total 60
-rwxrwxr-x 1 www-data junewoo 1128 Dec 23 21:14 advanced-cache.php
drwxrwsr-x 4 www-data junewoo 4096 Mar 15 10:00 cache
-rwxrwxr-x 1 www-data junewoo 28 Jan 9 2012 index.php
drwxrwsr-x 4 www-data junewoo 4096 Dec 22 23:16 languages
drwxrwsr-x 19 www-data junewoo 4096 Mar 14 12:45 plugins
drwxrwsr-x 2 www-data junewoo 4096 Mar 14 12:45 temp
drwxrwsr-x 4 www-data junewoo 4096 Mar 13 17:36 themes
drwxrwsr-x 3 www-data junewoo 16384 Mar 5 11:52 updraft
drwxrwsr-x 2 www-data junewoo 4096 Mar 14 12:45 upgrade
drwxrwsr-x 3 www-data junewoo 4096 Mar 12 11:16 upgrade-temp-backup
drwxrwsr-x 12 www-data www-data 4096 Mar 13 17:41 uploads
junewoo@cvilla:~$
이상으로 WordPress 설치전 준비가 되었습니다.
14-10. 이제 본인의 사이트에 접속해 봅니다.
사이트에 접속하면 wp-config.php 파일을 생성한다고 합니다.
위에서 “Let’s go!” 버튼을 누릅니다.
14-11. 데이터베이스 이름, 사용자명, 암호, 데이터베이스 호스트, 테이블 접두어를 입력합니다.
- 데이터베이스 이름 junewoo ( DB 생성하기에서 생성한 데이터베이스)
- 사용자명 root
- 암호 password (8. MariaDB 설치하기에서 생성한 암호)
- 데이터베이스 호스트 localhost (기존 그대로)
- 테이블 접두어 wp_ (기존 그대로)
정상적으로 입력되셨으면 아래와 같이 설치 과정을 마쳤다고 나타납니다. 이제 “설치 실행하기”를 누릅니다.
14-12. 다음으로 계정 정보를 입력하고 워드프레스를 설치합니다.
- 사이트 제목
- 사용자명 (관리자 ID)
- 사용자 암호 (관리자 암호)
- 이메일 주소 (관리자 Email 주소)
- 검색 엔진 접근 여부 (사이트 설정이 완료 된 후에 검색엔진 차단하기를 푸시는 것을 추천합니다.)
위 정보를 모두 입력하셨으면 “워드프레스 설치하기” 버튼을 누릅니다.
설치하기 버튼을 누르시면 아래와 같이 성공!이라고 나타납니다.
14-13. 로그인 버튼을 누르면 로그인 화면이 나타납니다.
4-12. 에서 입력하였던 관리자 ID와 암호를 입력합니다.
14-14. 드디어 관리자 화면에 접속하셨습니다.
위 화면은 준우블로그 워드프레스 관리자 화면입니다.
처음으로 접속한 관리자 화면은 여러 메뉴가 빠져 있습니다.
여기까지 워드프레스 설치를 완료하셨습니다.
다음에는 워드프레스 환경설정을 해 보겠습니다.