주기적으로 현재 IP 주소를 확인하고 이전 IP와 비교하여 변경이 감지….

Bash 스크립트를 작성한 예제입니다. 이 스크립트는 주기적으로 현재 IP 주소를 확인하고 이전 IP와 비교하여 변경이 감지되면 이메일로 알림을 보냅니다.

1. 스크립트 내용 (notify_ip_change.sh)

bash
#!/bin/bash

# 설정
LOG_FILE=”/var/log/ip_change.log”
IP_FILE=”/tmp/current_ip.txt”
CHECK_INTERVAL=300 # 체크 간격 (초 단위)
SMTP_SERVER=”smtp.example.com” # SMTP 서버 주소
SMTP_PORT=587 # SMTP 포트
EMAIL_FROM=”your_email@example.com” # 발신 이메일
EMAIL_TO=”target_email@example.com” # 수신 이메일
EMAIL_USER=”your_email@example.com” # 이메일 사용자명
EMAIL_PASS=”your_email_password” # 이메일 비밀번호

# IP 변경 시 이메일 보내기 함수
send_email() {
local new_ip=”$1″
echo -e “Subject: IP 변경 알림\n\n새로운 IP 주소: $new_ip” | \
curl –url “smtp://${SMTP_SERVER}:${SMTP_PORT}” \
–ssl \
–mail-from “$EMAIL_FROM” \
–mail-rcpt “$EMAIL_TO” \
–upload-file – \
–user “$EMAIL_USER:$EMAIL_PASS”
}

# 초기 IP 설정
if [[ ! -f “$IP_FILE” ]]; then
current_ip=$(curl -s ifconfig.me)
echo “$current_ip” > “$IP_FILE”
echo “$(date): 초기 IP 주소 설정 – $current_ip” >> “$LOG_FILE”
fi

# 백그라운드 실행 루프
while true; do
new_ip=$(curl -s ifconfig.me)
saved_ip=$(cat “$IP_FILE”)

if [[ “$new_ip” != “$saved_ip” ]]; then
echo “$new_ip” > “$IP_FILE”
echo “$(date): IP 주소 변경 감지 – $new_ip” >> “$LOG_FILE”
send_email “$new_ip”
fi

sleep “$CHECK_INTERVAL”
done



2. 사용 방법

  1. 스크립트 생성 및 권한 부여
    bash
    nano notify_ip_change.sh

    위 코드를 붙여넣고 저장합니다.

    bash
    chmod +x notify_ip_change.sh
  2. 필수 패키지 설치
    bash
    sudo apt update
    sudo apt install curl
  3. 백그라운드 실행
    bash
    nohup ./notify_ip_change.sh &
  4. 로그 확인
    bash
    tail -f /var/log/ip_change.log
  5. 스크립트 종료 프로세스를 종료하려면 다음을 실행합니다.
    bash
    pkill -f notify_ip_change.sh

3. 추가 참고

  • curl을 사용하여 SMTP 서버를 통해 이메일을 보냅니다. 외부 POP3/SMTP 정보를 올바르게 설정하세요.
  • 이메일 비밀번호는 보안 문제로 인해 암호화된 파일이나 환경 변수로 관리하는 것이 좋습니다. 필요 시 알려주세요.
  • IP 확인 API (ifconfig.me)를 변경할 수도 있습니다. 예: ipinfo.io/ip 또는 api64.ipify.org.

Ubuntu에서 IP 주소가 DHCP로 변경될 때 변경된 IP를 감지하고 이메일로 알림

Ubuntu에서 IP 주소가 DHCP로 변경될 때 변경된 IP를 감지하고 이메일로 알림을 보내는 Bash 스크립트를 만들기 위해 다음을 수행할 수 있습니다. 다음은 필요한 스크립트와 설정 단계입니다.

스크립트 작성

다음은 백그라운드에서 실행되며, IP가 변경될 때 알림을 보내는 Bash 스크립트입니다.

bash

#!/bin/bash

# 이전 IP를 저장할 파일 경로
PREVIOUS_IP_FILE=”/tmp/previous_ip.txt”
# 메일 설정
TO_EMAIL=”your_email@example.com”
SMTP_SERVER=”smtp.example.com”
SMTP_PORT=587
SMTP_USER=”your_email@example.com”
SMTP_PASS=”your_password”

# IP를 확인하는 함수
get_current_ip() {
hostname -I | awk ‘{print $1}’
}

# 이메일 보내기
send_email() {
local new_ip=$1
echo -e “Subject: IP Address Changed\n\nYour new IP address is: $new_ip” | \
curl –url “smtp://${SMTP_SERVER}:${SMTP_PORT}” \
–ssl \
–mail-from “$SMTP_USER” \
–mail-rcpt “$TO_EMAIL” \
–user “$SMTP_USER:$SMTP_PASS”
}

# 초기화: 이전 IP 불러오기
if [[ -f “$PREVIOUS_IP_FILE” ]]; then
previous_ip=$(cat “$PREVIOUS_IP_FILE”)
else
previous_ip=””
fi

# 무한 루프
while true; do
# 현재 IP 확인
current_ip=$(get_current_ip)

# IP 변경 여부 확인
if [[ “$current_ip” != “$previous_ip” ]]; then
echo “IP 변경됨: $current_ip”
echo “$current_ip” > “$PREVIOUS_IP_FILE”
send_email “$current_ip”
previous_ip=”$current_ip”
fi

# 5분 대기
sleep 300
done



스크립트 실행 설정

  1. 스크립트 저장 및 실행 권한 부여
    위 스크립트를 예를 들어 /home/youruser/ip_monitor.sh로 저장합니다.

    bash
    chmod +x /home/youruser/ip_monitor.sh
  2. 스크립트를 백그라운드에서 실행
    nohup 명령어를 사용하여 스크립트를 백그라운드에서 실행합니다.

    bash
    nohup /home/youruser/ip_monitor.sh &
  3. 시스템 재부팅 시 자동 실행 설정
    crontab에 추가합니다:

    bash
    crontab -e

    아래 줄 추가:

    bash
    @reboot /home/youruser/ip_monitor.sh &

필요한 패키지 설치

이메일을 보내기 위해 curl 명령어를 사용하므로 해당 패키지가 설치되어 있는지 확인하세요:

bash
sudo apt update
sudo apt install curl

SMTP 정보는 외부 POP3 메일 서버 (예: Gmail, Naver 등)에 맞게 설정해야 합니다. 예를 들어 Gmail을 사용하는 경우 SMTP 서버를 smtp.gmail.com으로 설정하세요. (추가 설정이 필요할 수 있습니다: 구글 앱 비밀번호)

이 스크립트는 네트워크 상태를 주기적으로 확인하며, 변경 사항이 발생할 경우 즉시 알림을 보냅니다.

우분투 워드프레스 서버 아이피가 변경되었을때 ip 설정하는 방법

우분투 워드프레스 서버 아이피가 변경되었을때 ip 설정하는 방법 => 이거 따라 하다가 ㅠㅠ 새로 설치 했음 ㅎㅎ

우분투에서 워드프레스 서버의 IP 주소가 변경되었을 때, 새로운 IP 주소를 설정하고 워드프레스와 관련된 설정을 업데이트하려면 다음 단계를 따라야 합니다:


1. 새로운 IP 확인

먼저 새로 할당된 IP 주소를 확인하세요:

bash
ip addr

또는

bash
ifconfig

2. 고정 IP 설정 (선택 사항)

IP 주소가 동적으로 변경되지 않도록 고정 IP를 설정하려면 다음 단계를 수행하세요:

  1. 네트워크 설정 파일 열기
    bash
    sudo nano /etc/netplan/01-netcfg.yaml

    또는 /etc/netplan/ 폴더 내의 YAML 파일을 확인하세요.

  2. 설정 파일 수정 예를 들어, 다음과 같이 고정 IP를 설정합니다:
    yaml
    network:
    version: 2
    renderer: networkd
    ethernets:
    eth0:
    dhcp4: no
    addresses:
    - 192.168.1.100/24
    gateway4: 192.168.1.1
    nameservers:
    addresses:
    - 8.8.8.8
    - 8.8.4.4
  3. 설정 적용
    bash
    sudo netplan apply

3. DNS 서버에서 A 레코드 업데이트

  • 사용 중인 DNS 관리 콘솔(예: ‘soon7shop.kr’의 DNS 관리자)에서 새 IP 주소로 A 레코드를 업데이트하세요.
  • 예:
    css
    www A 203.0.113.50

DNS 변경이 적용되기까지는 최대 24시간이 소요될 수 있습니다.


4. 워드프레스 설정 변경

  1. 워드프레스 주소(URL) 업데이트 새로운 IP 주소로 워드프레스 URL을 변경해야 합니다.
    • 방법 1: 워드프레스 관리자 페이지
      • 관리자 페이지에 접속: http://새로운IP/wp-admin
      • “설정 > 일반”에서 아래 두 항목 업데이트:
        • WordPress 주소 (URL): http://새로운IP
        • 사이트 주소 (URL): http://새로운IP
    • 방법 2: 데이터베이스에서 직접 변경 MySQL에 접속하여 URL을 업데이트합니다:
      bash
      sudo mysql -u root -p

      데이터베이스 선택:

      sql
      USE wordpress_db;

      URL 업데이트:

      sql
      UPDATE wp_options SET option_value = 'http://새로운IP' WHERE option_name IN ('siteurl', 'home');
  2. Apache 설정 파일 업데이트 Apache가 새 IP 주소를 사용하도록 VirtualHost 파일을 수정합니다:
    bash
    sudo nano /etc/apache2/sites-available/000-default.conf

    또는 워드프레스와 관련된 VirtualHost 파일을 열어 ServerNameServerAlias를 업데이트:

    apache
    <VirtualHost *:80>
    ServerName 새IP
    DocumentRoot /var/www/html
    </VirtualHost>

    변경 후 Apache 재시작:

    bash
    sudo systemctl restart apache2

5. 캐시 및 브라우저 확인

  • 브라우저 캐시를 지우고 새 IP로 접속을 확인합니다.
  • DNS 전파 완료 여부를 확인하려면 아래 명령을 사용:
    bash
    nslookup soon7shop.kr

sudo nano /var/www/html/wordpress/wp-config.php

/var/www/html/wordpress/wp-config.php 파일은 워드프레스의 핵심 설정 파일로, 데이터베이스 연결 정보와 기타 중요한 설정을 포함합니다. 파일을 열고 필요한 설정을 수정하려면 다음 단계를 따라 진행하세요.


1. 파일 열기

bash
sudo nano /var/www/html/wordpress/wp-config.php

2. 중요 설정 항목

(1) 데이터베이스 연결 정보

다음 항목을 확인하거나 수정합니다:

php
define(‘AUTH_KEY’, ‘your_generated_key’);
define(‘SECURE_AUTH_KEY’, ‘your_generated_key’);
define(‘LOGGED_IN_KEY’, ‘your_generated_key’);
define(‘NONCE_KEY’, ‘your_generated_key’);
define(‘AUTH_SALT’, ‘your_generated_key’);
define(‘SECURE_AUTH_SALT’, ‘your_generated_key’);
define(‘LOGGED_IN_SALT’, ‘your_generated_key’);
define(‘NONCE_SALT’, ‘your_generated_key’);
  • DB_NAME: 워드프레스가 사용할 데이터베이스 이름.
  • DB_USER: 데이터베이스 사용자 이름.
  • DB_PASSWORD: 해당 사용자의 비밀번호.
  • DB_HOST: 일반적으로 localhost. 외부 DB 서버를 사용한다면 서버 IP 또는 도메인.

(2) 보안 키(SALT 키)

워드프레스의 인증 키 및 보안 키는 사용자 세션 보안을 강화합니다. 아래 사이트에서 새 키를 생성하여 추가합니다:
WordPress Salt Keys Generator

예:

php
define('AUTH_KEY', 'your_generated_key');
define('SECURE_AUTH_KEY', 'your_generated_key');
define('LOGGED_IN_KEY', 'your_generated_key');
define('NONCE_KEY', 'your_generated_key');
define('AUTH_SALT', 'your_generated_key');
define('SECURE_AUTH_SALT', 'your_generated_key');
define('LOGGED_IN_SALT', 'your_generated_key');
define('NONCE_SALT', 'your_generated_key');

(3) 디버그 모드

개발 또는 문제 해결 시 디버그 모드를 활성화할 수 있습니다:

php
define('WP_DEBUG', true);

운영 환경에서는 반드시 false로 설정:

php
define('WP_DEBUG', false);

(4) 파일 권한 수정 문제 해결

서버에서 파일 및 디렉터리 권한 문제를 해결하려면 다음을 추가:

php
define('FS_METHOD', 'direct');

(5) 사이트 URL 설정

특정 상황에서 워드프레스 URL을 강제로 설정할 수 있습니다:

php
define(‘WP_HOME’, ‘http://yourdomain.com’);
define(‘WP_SITEURL’, ‘http://yourdomain.com’);


3. 파일 저장 및 종료

파일을 수정한 후 저장합니다:

  1. Ctrl + O: 저장.
  2. Enter: 파일 이름 확인.
  3. Ctrl + X: 종료.

4. 파일 권한 확인

워드프레스가 파일에 올바르게 접근할 수 있도록 권한을 확인합니다:

bash
sudo chown www-data:www-data /var/www/html/wordpress/wp-config.php
sudo chmod 640 /var/www/html/wordpress/wp-config.php

5. 웹 브라우저에서 확인

설정 완료 후 웹 브라우저에서 사이트를 열어 데이터베이스 연결 및 사이트 작동 여부를 확인합니다:

arduino
http://yourdomain.com

sudo nano /etc/apache2/sites-available/wordpress.conf

/etc/apache2/sites-available/wordpress.conf는 워드프레스용 Apache 가상 호스트 파일입니다. 이 파일은 워드프레스 사이트의 도메인, 루트 디렉토리, 로그 경로 등과 같은 설정을 정의합니다. 아래는 워드프레스를 위한 기본 구성 예제입니다.


1. 파일 열기

다음 명령어로 파일을 엽니다:

bash
sudo nano /etc/apache2/sites-available/wordpress.conf

2. 가상 호스트 구성 추가

아래 내용을 wordpress.conf에 추가합니다. 도메인 이름과 디렉토리를 환경에 맞게 수정하세요.

기본 설정 예제:

apache

<VirtualHost *:80>
ServerAdmin admin@yourdomain.com
ServerName yourdomain.com
ServerAlias www.yourdomain.com

DocumentRoot /var/www/html/wordpress

<Directory /var/www/html/wordpress>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

ErrorLog ${APACHE_LOG_DIR}/wordpress_error.log
CustomLog ${APACHE_LOG_DIR}/wordpress_access.log combined
</VirtualHost>


3. 설정 내용 설명

  • ServerAdmin: 관리자의 이메일 주소. (에러 메시지에서 표시됨)
  • ServerName: 사이트의 주 도메인 (예: yourdomain.com).
  • ServerAlias: 추가 도메인 또는 서브도메인 (예: www.yourdomain.com).
  • DocumentRoot: 워드프레스 파일이 위치한 경로.
  • <Directory>: 디렉토리 옵션.
    • AllowOverride All: .htaccess 파일에서 Apache 설정을 허용.
    • Require all granted: 디렉토리에 대한 접근 허용.
  • ErrorLog: 에러 로그 파일 경로.
  • CustomLog: 접근 로그 파일 경로.

4. HTTPS(SSL) 추가 설정 (선택)

HTTPS를 사용하려면 아래와 같은 추가 구성을 작성해야 합니다.

HTTPS 예제:

<VirtualHost *:443>
ServerAdmin admin@yourdomain.com
ServerName yourdomain.com
ServerAlias www.yourdomain.com

DocumentRoot /var/www/html/wordpress

<Directory /var/www/html/wordpress>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

SSLEngine on
SSLCertificateFile /etc/ssl/certs/yourdomain.crt
SSLCertificateKeyFile /etc/ssl/private/yourdomain.key

ErrorLog ${APACHE_LOG_DIR}/wordpress_ssl_error.log
CustomLog ${APACHE_LOG_DIR}/wordpress_ssl_access.log combined
</VirtualHost>



5. 가상 호스트 활성화

새로운 설정을 활성화합니다:

bash
sudo a2ensite wordpress.conf

6. Apache 모듈 활성화 및 재시작

아래 명령어로 Apache의 필요 모듈을 활성화하고 서버를 재시작합니다:

bash
sudo a2enmod rewrite
sudo systemctl reload apache2

7. 파일 테스트

구성이 올바른지 확인:

bash
sudo apache2ctl configtest

문제가 없다면 출력은 다음과 같습니다:

mathematica
Syntax OK

워드프레스를 위한 방화벽 설정

워드프레스 사이트를 안전하게 보호하려면 방화벽 설정이 매우 중요합니다. 방화벽을 설정하여 악의적인 트래픽을 차단하고, 허용된 트래픽만 통과시키도록 구성할 수 있습니다. 아래는 우분투 환경에서 워드프레스를 위한 방화벽 설정 가이드입니다.


1. UFW(Uncomplicated Firewall) 활성화 및 기본 설정

(1) UFW 활성화

UFW가 비활성화된 경우 활성화합니다.

bash
sudo ufw enable

(2) 기본 정책 설정

기본적으로 모든 트래픽을 차단하고 필요한 트래픽만 허용하도록 설정합니다.

bash
sudo ufw default deny incoming
sudo ufw default allow outgoing

2. 필수 포트 허용

(1) HTTP 및 HTTPS 트래픽 허용

워드프레스가 웹사이트로 작동하려면 HTTP(80) 및 HTTPS(443) 트래픽을 허용해야 합니다.

bash
sudo ufw allow 80/tcp
sudo ufw allow 443

데이터베이스 리스트 보기

MySQL에서 현재 서버에 존재하는 데이터베이스 목록을 보려면 다음 명령어를 사용하세요:


데이터베이스 리스트 보기

MySQL에 접속한 후 아래 명령어를 입력합니다:

sql
SHOW DATABASES;

예시

  1. MySQL에 접속:
    bash
    sudo mysql -u root -p

    또는:

    bash
    mysql -u 사용자명 -p
  2. 데이터베이스 목록 확인:
    sql
    SHOW DATABASES;

출력 예시

diff
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| wordpress |
+--------------------+

주요 데이터베이스 설명

  • information_schema: 데이터베이스 스키마 관련 메타데이터 저장소.
  • mysql: 사용자, 권한, 플러그인 등 MySQL 자체 구성 정보 저장소.
  • performance_schema: MySQL 서버의 성능 관련 데이터 저장.
  • sys: MySQL 관리 작업에 도움을 주는 뷰와 기능 제공.

추가적으로 특정 데이터베이스를 탐색하거나 테이블 목록을 보고 싶다면, 아래 명령어를 사용할 수 있습니다:

특정 데이터베이스의 테이블 보기

sql
USE 데이터베이스명;
SHOW TABLES;

사용자 데이터베이스 권한 설정하기

1. 권한 부여 기본 명령어

사용자에게 데이터베이스에 대한 권한을 부여하려면 다음 명령어를 사용합니다:

sql
GRANT 권한_유형 ON 데이터베이스명.* TO '사용자명'@'호스트';

주요 항목:

  • 권한_유형: 사용자에게 부여할 권한 (예: SELECT, INSERT, UPDATE, DELETE, ALL PRIVILEGES 등).
  • 데이터베이스명: 권한을 부여할 데이터베이스 이름.
  • *는 해당 데이터베이스의 모든 테이블을 의미합니다.
  • ‘사용자명’@’호스트’: 권한을 설정할 사용자 계정과 접속 호스트. localhost는 해당 서버에서만 접속 가능하며, %는 모든 IP를 허용.

예시

(1) 특정 데이터베이스에 모든 권한 부여

sql
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
  • 데이터베이스 wordpress의 모든 테이블에 대해 사용자 wp_user에게 localhost에서 접속 가능한 모든 권한을 부여.

(2) 특정 권한만 부여

  • 읽기 권한만 부여:
sql
GRANT SELECT ON wordpress.* TO 'wp_user'@'localhost';
  • 읽기 및 쓰기 권한 부여:
sql
GRANT SELECT, INSERT, UPDATE ON wordpress.* TO 'wp_user'@'localhost';

(3) 특정 테이블에 권한 부여

sql
GRANT SELECT, INSERT ON wordpress.posts TO 'wp_user'@'localhost';
  • 데이터베이스 wordpressposts 테이블에 대해 특정 권한만 부여.

2. 권한 적용

권한 부여 후에는 변경 사항을 적용해야 합니다:

sql
FLUSH PRIVILEGES;

3. 사용자의 권한 확인

특정 사용자의 권한을 확인하려면 다음 명령어를 실행합니다:

sql
SHOW GRANTS FOR '사용자명'@'호스트';

예:

sql
SHOW GRANTS FOR 'wp_user'@'localhost';

4. 권한 회수

사용자로부터 특정 권한을 회수하려면 다음 명령어를 사용합니다:

sql
REVOKE 권한_유형 ON 데이터베이스명.* FROM '사용자명'@'호스트';

예:

  • 모든 권한 회수:
sql
REVOKE ALL PRIVILEGES ON wordpress.* FROM 'wp_user'@'localhost';
  • 특정 권한 회수:
sql
REVOKE INSERT, UPDATE ON wordpress.* FROM 'wp_user'@'localhost';

5. 특정 데이터베이스 접근 금지

데이터베이스에 대한 모든 접근을 금지하려면 사용자 권한을 삭제합니다:

sql
DROP USER '사용자명'@'호스트';

참고

  • 권한 설정은 보안과 관련이 있으므로 필요한 권한만 부여하세요.
  • GRANTREVOKE 명령을 통해 세부적인 데이터베이스 접근 정책을 구현할 수 있습니다.

 

mysql에서 사용자, 비번 설정하기 또는 사용자 리스트 보기, 그리고 사용자 비번 변경하기

1. MySQL 사용자 계정 생성 및 비밀번호 설정

MySQL에 접속합니다:

bash
sudo mysql -u root -p

새로운 사용자 계정 생성 및 비밀번호 설정:

sql
CREATE USER '사용자명'@'호스트' IDENTIFIED BY '비밀번호';
  • 사용자명: 생성할 사용자 이름.
  • 호스트: 사용자가 접근할 호스트. 일반적으로 localhost를 사용. 외부 접속을 허용하려면 %로 설정.
  • 비밀번호: 사용자 비밀번호.

예:

sql
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'secure_password';

사용자에게 권한 부여:

sql
GRANT ALL PRIVILEGES ON 데이터베이스명.* TO '사용자명'@'호스트';
FLUSH PRIVILEGES;

예:

sql
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;

2. MySQL 사용자 목록 확인

MySQL 사용자 목록을 확인하려면 다음 명령어를 실행:

sql
SELECT User, Host FROM mysql.user;

이 명령어는 모든 사용자 계정과 해당 호스트를 표시합니다.


3. MySQL 사용자 비밀번호 변경

(1) 비밀번호 변경하기

MySQL 5.7 이상 버전에서는 다음 명령어를 사용하여 비밀번호를 변경합니다:

sql
ALTER USER '사용자명'@'호스트' IDENTIFIED BY '새로운_비밀번호';

예:

sql
ALTER USER 'wp_user'@'localhost' IDENTIFIED BY 'new_secure_password';

변경 후 권한 적용:

sql
FLUSH PRIVILEGES;

4. MySQL 사용자 삭제

사용자를 삭제하려면 다음 명령어를 사용합니다:

sql
DROP USER '사용자명'@'호스트';

예:

sql
DROP USER 'wp_user'@'localhost';

5. MySQL 모든 사용자 비밀번호 재설정 (루트 계정 예외)

비밀번호를 전역적으로 재설정해야 한다면, 사용자별로 수동으로 ALTER USER 명령을 실행해야 합니다. MySQL은 보안 이유로 자동화된 대규모 비밀번호 변경을 지원하지 않습니다.


참고 사항

  • 사용자 생성 및 권한 부여 후에는 항상 FLUSH PRIVILEGES를 실행하여 변경 사항을 적용하세요.
  • 특정 사용자에 대해 읽기 전용 권한 등 제한된 권한을 부여하고 싶다면 다음처럼 설정할 수 있습니다:
    sql
    GRANT SELECT ON 데이터베이스명.* TO '사용자명'@'호스트';

워드프레스 초기화 하는법. 다시 설치하는 방법

워드프레스를 초기화하거나 다시 설치하려면, 기존 설치를 삭제하고 새롭게 설정해야 합니다. 아래 방법에 따라 진행하세요.


1. 기존 워드프레스 삭제

(1) 워드프레스 파일 삭제

워드프레스 파일이 저장된 디렉터리를 삭제합니다.

bash
sudo rm -rf /var/www/html/wordpress

(2) MySQL 데이터베이스 삭제

MySQL에 접속하여 기존 데이터베이스를 삭제합니다.

bash
sudo mysql -u root -p

다음 명령어를 실행:

sql
DROP DATABASE wordpress;
DROP USER 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

2. 새 워드프레스 설치 준비

(1) 새 데이터베이스 및 사용자 생성

MySQL에서 새롭게 워드프레스용 데이터베이스와 사용자를 생성합니다.

bash
sudo mysql -u root -p

다음 명령어 실행:

sql
CREATE DATABASE wordpress;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY '새_비밀번호';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

3. 워드프레스 파일 재설치

(1) 워드프레스 다운로드

새로운 워드프레스 파일을 다운로드합니다.

bash
wget https://wordpress.org/latest.tar.gz

(2) 압축 해제 및 이동

bash
tar -xvzf latest.tar.gz
sudo mv wordpress /var/www/html/

(3) 파일 권한 설정

bash
sudo chown -R www-data:www-data /var/www/html/wordpress
sudo chmod -R 755 /var/www/html/wordpress

4. Apache 설정 확인

이미 Apache 설정이 완료되어 있다면 이 단계는 생략 가능합니다.
워드프레스 가상 호스트 설정이 제대로 되어 있는지 확인하세요:

bash
sudo nano /etc/apache2/sites-available/wordpress.conf

필요한 경우 설정을 활성화:

bash
sudo a2ensite wordpress.conf
sudo systemctl reload apache2

5. 새 워드프레스 설치 진행

  1. 웹 브라우저에서 서버 IP 주소 또는 도메인으로 접속:
    arduino
    http://서버_IP
  2. 새 데이터베이스 정보 입력
    • 데이터베이스 이름: wordpress
    • 사용자 이름: wp_user
    • 비밀번호: 새로 설정한 비밀번호
    • 호스트 이름: localhost
  3. 관리자 계정 및 사이트 설정
    • 사이트 이름, 관리자 계정, 비밀번호 등을 새로 설정합니다.

6. (선택) 기존 데이터 초기화

기존 데이터베이스를 삭제하지 않고 초기화하려면, 워드프레스 초기화 플러그인을 사용할 수 있습니다.