Debian 12 또는 11에 Nginx와 함께 WordPress를 설치하는 방법

WordPress는 사용자가 웹사이트를 쉽게 만들고 관리할 수 있게 해주는 강력하고 널리 사용되는 콘텐츠 관리 시스템(CMS)입니다. LEMP 스택(Linux, NGINX, MariaDB, PHP)과 결합하면 WordPress는 웹 개발을 위한 강력한 고성능 플랫폼이 됩니다. LEMP 스택은 효율성, 속도 및 확장성으로 잘 알려져 있어 WordPress 웹 사이트 호스팅에 이상적입니다. WordPress의 주요 기능에는 직관적인 인터페이스, 광범위한 플러그인 생태계, 사용자 정의 가능한 테마 및 강력한 커뮤니티 지원이 포함됩니다.

NGINX, MariaDB 및 PHP를 사용하여 Debian 12 또는 11에 WordPress를 설치하려면 다음 단계를 따르세요. 이 가이드에서는 LEMP 스택 설정, WordPress 설치 및 사이트를 원활하게 운영하기 위한 필수 구성을 다룹니다.

WordPress용 LEMP 설치

LEMP 스택을 설치하기 전에 Debian 업데이트

WordPress를 설치하기 전에 Debian 시스템을 업데이트하여 잠재적인 충돌을 방지하세요. 터미널을 열고 다음을 실행하세요.

sudo apt update && sudo apt upgrade

이 명령은 사용 가능한 패키지를 업데이트하고 시스템을 업그레이드합니다.

필요한 패키지 설치

WordPress에 대한 몇 가지 필수 패키지가 있더라도 누락된 항목이 없는지 다시 확인하세요. 다음 명령을 실행하십시오.

sudo apt install curl git wget unzip zip

이 명령은 WordPress에 필요한 패키지를 설치하거나 확인합니다.

Nginx 설치 - LEMP 설치 1부

LEMP 스택을 설정하려면 Nginx를 설치해야 합니다. 다음 명령을 실행하세요:

sudo apt install nginx

설치 후 Nginx가 실행 중인지 확인합니다.

systemctl status nginx

Nginx 서비스가 활성화되어 있지 않으면 다음 명령을 사용하여 작동하도록 설정할 수 있습니다.

sudo systemctl enable nginx --now

이 명령을 사용하면 서버를 재부팅할 때마다 Nginx가 시작됩니다. 이는 기능적인 LEMP 스택에 필수적입니다.

참고: WordPress 성능을 최적화하려면 최신 Nginx 메인라인 버전을 사용하는 것이 가장 좋습니다. 다음 가이드를 따라갈 수 있습니다. Debian Linux에 Nginx 메인라인 설치 최신 버전을 설치하려면 이 버전은 웹사이트의 속도와 전반적인 성능을 향상시키기 위한 추가 기능과 개선 사항을 제공합니다.

Nginx용 UFW 방화벽 설정

Nginx 서버로 UFW 방화벽을 구성하는 것은 보안과 표준 웹 포트에 대한 외부 액세스를 허용하는 데 중요합니다. 좋은 소식은 Nginx가 UFW 설정 프로세스를 단순화하는 프로필을 제공한다는 것입니다.

UFW 설치:

아직 데비안 시스템에 UFW를 설치하지 않았다면 아래 명령을 실행하세요:

sudo apt install ufw

UFW 활성화:

설치가 완료되면 UFW를 활성화할 차례입니다. 기본적으로 UFW는 들어오는 연결은 모두 차단하고 나가는 연결은 모두 허용합니다. 다음을 사용하여 방화벽을 활성화하십시오.

sudo ufw enable

Nginx 프로필 보기:

UFW에 사용 가능한 Nginx 프로필을 확인하려면 다음을 실행하세요.

sudo ufw app list

출력에서 다음을 확인할 수 있습니다.

  • Nginx는 포트 80(HTTP)에서 작동합니다.
  • Nginx Secure는 포트 443(HTTPS)에서 작동합니다.
  • Nginx Full은 두 포트를 모두 포함합니다.

Nginx용 UFW 구성:

HTTP 및 HTTPS 액세스를 모두 활성화하려면 Nginx 전체 프로필을 선택하세요.

sudo ufw allow 'Nginx Full'

그러나 요구 사항은 다를 수 있습니다.

HTTPS 전용 액세스의 경우 Nginx Secure 프로필을 선택합니다.

sudo ufw allow 'Nginx Secure'

HTTP 전용 액세스인 경우 Nginx HTTP 프로필을 사용하세요.

sudo ufw allow 'Nginx HTTP'

WordPress로 서버 및 LEMP 설정을 보호하기 위해 다른 UFW 규칙을 만들 수 있으며, 서버가 대중에게 노출되면 서버를 잠그는 데 시간을 투자해야 합니다.

MariaDB 설치 - LEMP 설치 2부

MySQL보다 향상된 성능으로 알려진 MariaDB는 LEMP 스택의 데이터베이스 구성 요소입니다. MariaDB.org의 공식 리포지토리에서 특정 버전의 MariaDB를 설치하려면 다음 가이드를 참조하세요. 데비안에 MariaDB 설치하기. 이를 통해 WordPress 성능을 더욱 최적화할 수 있습니다.

MariaDB를 설치하려면 다음을 실행하세요.

sudo apt install mariadb-server mariadb-client

설치 후 MariaDB의 상태를 확인하십시오.

systemctl status mariadb

이 명령은 MariaDB의 서비스 상태와 잠재적인 오류를 표시합니다.

MariaDB가 실행되고 있지 않으면 다음으로 시작하십시오.

sudo systemctl enable mariadb --now

이를 통해 시스템을 재부팅할 때마다 MariaDB가 시작됩니다. 이는 안정적인 LEMP 스택 및 WordPress 설정에 필수적입니다.

보안 스크립트로 MariaDB 보호

데이터 보호를 위해 MariaDB 설치를 보호해야 합니다. 새로 설치된 MariaDB는 보안 기본값이 느슨하여 위협에 노출될 수 있습니다. 그러나 mysql_secure_installation 스크립트는 데이터베이스의 방어를 강화할 수 있습니다.

보안 스크립트를 실행합니다.

sudo mysql_secure_installation

이 스크립트는 여러 보안 구성을 안내합니다.

  • 무단 액세스 방지를 위해 루트 비밀번호를 설정하거나 unix_socket을 선택합니다.
  • 익명 사용자 계정을 삭제하여 승인된 사용자로 데이터베이스 액세스를 제한합니다.
  • 루트 사용자 계정에 대한 원격 로그인을 제한합니다.
  • 무단 액세스 및 잠재적인 데이터 유출을 방지하기 위해 테스트 데이터베이스를 제거합니다.

각 메시지에 주의 깊게 응답하세요. 이러한 설정은 데이터베이스 보안에 큰 영향을 미칩니다. 단계를 완료한 후에는 MariaDB 설정이 안전하고 작동 가능해야 합니다.

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] Y <---- Type Y then press the ENTER KEY.
Enabled successfully!
Reloading privilege tables..
 ... Success!


You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] Y <---- Type Y then press the ENTER KEY.
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y <---- Type Y then press the ENTER KEY.
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

이러한 보안 조치는 MariaDB 설치가 안전하고 위협으로부터 보호되도록 보장합니다.

PHP, PHP-FPM 설치 - LEMP 설치 3부

완전한 LEMP 스택을 위해서는 PHP를 설치해야 합니다. PHP는 PHP-FPM과 WordPress용 기타 필수 모듈을 통해 Nginx와 MariaDB 사이의 브리지 역할을 합니다.

참고: 귀하의 필요에 맞는 특정 PHP 버전을 원할 경우 당사에 문의하십시오. 데비안에 PHP 설치 가이드. Linux를 처음 사용하는 사용자는 현재 사용자 정의 버전을 설치하기 전에 기본값을 사용해야 합니다.

다음 명령을 실행하여 PHP, PHP-FPM 및 필수 모듈을 설치하십시오.

sudo apt install php php-fpm php-mbstring php-bcmath php-xml php-mysql php-common php-gd php-cli php-curl php-zip php-imagick php-ldap php-intl

설치 후 MariaDB 및 Nginx에 대해 수행한 것과 유사한 PHP 서비스의 상태를 확인하십시오. 이 예에서는 PHP 7.4를 사용합니다.

systemctl status php7.4-fpm

출력은 다음과 같아야 합니다.

참고: PHP-FPM 버전은 안정적인 데비안 릴리스마다 다릅니다. 버전이 확실하지 않은 경우 다음을 실행하세요. php -v 알아보기 위해.

LEMP가 포함된 WordPress의 사전 설치 구성

WordPress 디렉토리 구조 생성

Debian LEMP 스택에 WordPress를 설치하려면 다음 중 하나를 수행하세요. 다운로드 공식 WordPress.org 다운로드 페이지에서 최신 버전을 다운로드하거나 다음 명령을 사용하여 직접 다운로드하세요.

wget https://wordpress.org/latest.zip

다운로드가 완료되면 다음 명령을 사용하여 아카이브를 /var/www/html 디렉터리에 압축을 풉니다.

sudo unzip latest.zip -d /var/www/html/

다음으로 디렉터리 소유자 권한을 웹 서버 사용자로 설정하여 WordPress에 올바른 쓰기 권한이 있는지 확인하세요.

이 작업은 다음 명령을 사용하여 수행할 수 있습니다.

sudo chown -R www-data:www-data /var/www/html/wordpress/

디렉터리 소유자 권한을 설정한 후 다음 명령을 사용하여 WordPress 폴더 및 파일에 대한 올바른 권한을 설정해야 합니다.

폴더의 경우:

sudo find /var/www/html/wordpress -type d -exec chmod 755 {} \;

파일의 경우:

sudo find /var/www/html/wordpress -type f -exec chmod 644 {} \;

올바른 폴더 및 파일 권한을 설정하면 WordPress 설치가 안전하고 올바르게 작동할 수 있습니다.

WordPress용 데이터베이스 만들기

Debian LEMP 스택에서 WordPress를 실행하려면 MariaDB를 사용하여 데이터베이스를 생성해야 합니다. 다음 명령을 사용하여 루트로 MariaDB 셸에 액세스합니다.

sudo mariadb -u root

MariaDB 셸에서 다음 명령을 사용하여 새 데이터베이스를 만듭니다.

CREATE DATABASE WORDPRESSDB;

그런 다음, 다음 명령을 사용하여 WordPress용 새 사용자 계정을 만듭니다.

CREATE USER 'WPUSER'@localhost IDENTIFIED BY 'PASSWORD';

참고: "WPUSER" 및 "PASSWORD"를 원하는 사용자 이름과 비밀번호로 바꾸십시오.

마지막으로 다음 명령만 사용하여 새로 생성된 사용자 계정에 WordPress 웹 사이트 데이터베이스에 대한 액세스 권한을 할당합니다.

GRANT ALL PRIVILEGES ON WORDPRESSDB.* TO WPUSER@localhost IDENTIFIED BY 'PASSWORD';

사용자 계정을 생성한 후 다음 명령을 사용하여 권한을 플러시하여 새 변경 사항이 적용되도록 하세요.

FLUSH PRIVILEGES;

마지막으로 다음을 입력하여 MariaDB 셸을 종료합니다.

EXIT;

WordPress 구성 파일 설정

WordPress 구성 파일을 설정하는 것은 설치 프로세스의 필수 단계입니다. 여기에는 샘플 wp-config.php 파일의 이름을 바꾸고 필요한 구성 세부 정보를 입력하는 작업이 포함됩니다.

다음 명령을 사용하여 WordPress 디렉터리로 이동합니다.

cd /var/www/html/wordpress/

다음 명령을 사용하여 wp-config-sample.php를 wp-config.php에 복사합니다.

sudo cp wp-config-sample.php wp-config.php

텍스트 편집기를 사용하여 새로 복사된 wp-config.php 파일을 불러옵니다.

sudo nano wp-config.php

그런 다음 필요한 경우 데이터베이스 이름, 비밀번호가 있는 사용자 계정 및 호스트 IP 주소를 입력하십시오.

// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */ 

define( 'DB_NAME', 'WORDPRESSDB' );                 <--------------- change this

/* MySQL database username */ 

define( 'DB_USER', 'WPUSER );                               <--------------- change this

/* MySQL database password */

define( 'DB_PASSWORD', 'PASSWORD' );             <--------------- change this

/* MySQL hostname, change the IP here if external DB set up */ 

define( 'DB_HOST', 'localhost' );

/* Database Charset to use in creating database tables. */

define( 'DB_CHARSET', 'utf8' );

/* The Database Collate type. Don't change this if in doubt. */

define( 'DB_COLLATE', '' );

이러한 설정 외에도 wp-config.php 파일에 다음을 추가하여 WordPress 관리를 개선할 수도 있습니다.

/** ## Save files direct method ## */
define( 'FS_METHOD', 'direct' );

/** ## Increase memory limit, 256MB is recommended ## */
define('WP_MEMORY_LIMIT', '256M');

전용 서버 또는 VPS의 메모리 제한은 시스템 용량에 따라 달라질 수 있습니다. 256MB 메모리 제한을 128MB, 256MB, 512MB 등 작은 단위로 늘리거나 줄일 수 있습니다.

참고: 최적의 성능과 안정성을 위해서는 메모리 제한을 약간만 조정하는 것이 좋습니다.

WordPress 보안 솔트 키 구현

WordPress 설치의 보안을 강화하는 것이 가장 중요하며 이를 달성하는 효과적인 방법 중 하나는 WordPress 보안 솔트 키를 설정하는 것입니다. 이러한 키는 강화된 보안 방패 역할을 하여 잠재적인 위협으로부터 WordPress 사이트를 강화하고 사용자 인증 및 데이터 암호화를 강화합니다.

보안 솔트 키 생성

보안 솔트 키를 생성하려면 WordPress 비밀 키 API로 이동하세요. https://api.wordpress.org/secret-key/1.1/salt/. 이러한 키를 생성한 후에는 wp-config.php 파일의 자리 표시자 줄을 고유한 키로 바꾸는 것이 중요합니다. 이 단계는 사용자 인증 및 데이터 암호화를 강화합니다.

참고: 여기나 다른 곳에 제공된 예제 줄은 설명을 위한 것이므로 사용하지 마십시오. 사전 설정된 솔트 키를 사용하면 사이트가 취약성에 노출될 수 있습니다. 최적의 보안을 보장하려면 항상 모든 WordPress 설정에 대해 고유한 키를 생성하세요.

보안 솔트 키 통합

새로 생성된 보안 솔트 키를 wp-config.php 파일에 포함하려면 텍스트 편집기에서 파일을 엽니다.

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

이제 샘플 키에 해당하는 wp-config.php 파일의 행을 식별하십시오. 찾은 후에는 wp-config.php 파일의 각 샘플 키를 새로 생성된 키로 바꿉니다. 필요한 교체를 수행한 후 파일을 저장하고 닫았는지 확인하십시오.

nano 편집기를 사용하는 경우 "CTRL+X"를 누른 다음 "Y"를 눌러 저장합니다.

WordPress LEMP 설정을 위한 Nginx 서버 블록 구성

웹 UI를 통한 원활한 WordPress 설치를 위해서는 Nginx 서버 블록을 올바르게 설정하는 것이 중요합니다. "try_files $uri $uri/ /index.php?$args;"를 얻는 것이 중요합니다. 지시 맞음. "?$args"를 생략하면 WordPress의 REST API를 방해할 수 있습니다. 설치 중에 발생할 수 있는 문제를 방지하려면 다음 지침을 자세히 따르십시오.

Nginx에 WordPress 설치를 위한 새 서버 구성 파일을 만듭니다. 다음 명령에서 "example.com"을 실제 도메인 이름으로 바꿉니다.

sudo nano /etc/nginx/sites-available/example.com.conf

Nginx가 PHP와 함께 작동하려면 서버 블록 구성 파일에 "location ~ .php$"를 포함해야 합니다. 다음은 참조로 사용할 수 있는 샘플 구성입니다.

설정에 맞게 루트 경로와 도메인 이름을 조정했는지 확인하세요.

server {
  listen 80;
  listen [::]:80;
  server_name www.example.com example.com;
  root /var/www/html/wordpress;
  index index.php index.html index.htm index.nginx-debian.html;

  location / {
    try_files $uri $uri/ /index.php?$args;
  }

  location ~* /wp-sitemap.*\.xml {
    try_files $uri $uri/ /index.php$is_args$args;
  }

  client_max_body_size 100M;

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php7.4-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
    fastcgi_buffer_size 128k;
    fastcgi_buffers 4 128k;
    fastcgi_intercept_errors on;
  }

  gzip on;
  gzip_comp_level 6;
  gzip_min_length 1000;
  gzip_proxied any;
  gzip_disable "msie6";
  gzip_types application/atom+xml application/geo+json application/javascript application/x-javascript application/json application/ld+json application/manifest+json application/rdf+xml application/rss+xml application/xhtml+xml application/xml font/eot font/otf font/ttf image/svg+xml text/css text/javascript text/plain text/xml;

  location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ {
    expires 90d;
    access_log off;
  }

  location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff2?)$ {
    add_header Access-Control-Allow-Origin "*";
    expires 90d;
    access_log off;
  }

  location ~ /\.ht {
    access_log off;
    log_not_found off;
    deny all;
  }
}

다른 PHP 또는 PHP-FPM 버전을 설치했거나 Debian 버전이 다른 PHP 버전으로 기본 설정되어 있는 경우 그에 따라 Nginx 구성 파일을 조정하십시오.

예를 들어, PHP-FPM 8.2의 경우 fastcgi_pass unix:/run/php/php8.1-fpm.sock; 줄을 변경합니다. fastcgi_pass unix:/run/php/php8.2-fpm.sock;에. 원활한 기능을 위해서는 구성의 버전을 시스템의 버전과 일치시키는 것이 중요합니다.

WordPress Nginx 서버 블록 이해

Nginx 및 WordPress를 처음 설정하는 사람들을 위해 서버 블록 예를 자세히 설명합니다.

기본 서버 설정:

  • 이러한 설정은 IP 주소, Nginx가 수신 대기할 포트, 서버 이름 등 서버 블록의 기본 측면을 정의합니다.
  • root 지시문은 웹 사이트 파일이 포함된 기본 디렉터리를 가리킵니다.
  • index 지시어는 Nginx에게 사이트를 제공할 때 인덱스 파일을 식별하도록 지시합니다.

위치 설정:

  • 이러한 설정에는 Nginx가 다양한 URL에 대한 요청을 처리하는 방법을 지정하는 다양한 위치 블록이 포함됩니다.
  • 초기 위치 블록은 try_files 지시문을 활용하여 사이트의 루트 URL에 대한 요청을 관리합니다.
  • 후속 위치 블록은 특히 WordPress sitemap.xml 파일에 대한 요청을 처리합니다.

PHP 처리 설정:

  • 이러한 설정은 Nginx가 PHP 파일을 처리하는 방법을 결정합니다.
  • fastcgi_pass 지시어는 PHP-FPM 소켓 파일의 위치를 ​​가리킵니다.
  • fastcgi_param 지시문은 SCRIPT_FILENAME 매개변수의 값을 요청된 PHP 파일 위치에 할당합니다.
  • include 지시문은 FastCGI 모듈에 대한 추가 구성 파일을 가져옵니다.
  • fastcgi_buffer_size 및 fastcgi_buffers와 같은 지시문은 Nginx와 PHP-FPM 간의 데이터 전송을 위한 버퍼 크기를 지정합니다.
  • fastcgi_intercept_errors 지시어는 Nginx가 PHP 오류를 캡처하고 관리할 수 있도록 해줍니다.

Gzip 압축 설정:

  • 이러한 설정은 Gzip 압축을 구성하여 클라이언트에 전달되는 파일 크기를 줄입니다.
  • gzip 지시문은 Gzip 압축을 활성화합니다.
  • gzip_comp_level 및 gzip_min_length와 같은 지시어는 각각 압축 수준과 압축을 위한 최소 파일 크기를 결정합니다.
  • gzip_proxied 지시문은 어떤 요청 유형이 압축되는지 식별합니다.
  • gzip_types 지시문은 압축에 적합한 MIME 유형을 열거합니다.

파일 캐싱 설정:

  • 이러한 설정은 정적 파일의 캐싱을 최적화하여 웹 사이트 속도를 향상시킵니다.
  • 초기 위치 블록은 자산 및 미디어 파일의 만료 기간을 설정합니다.
  • 후속 위치 블록은 글꼴 및 SVG 파일의 만료를 설정합니다.
  • access_log 및 log_not_found와 같은 지시어는 요청 로깅을 관리합니다.
  • add_header 지시문은 Access-Control-Allow-Origin 헤더를 추가하여 외부 도메인에서 글꼴 및 SVG 로드를 허용합니다.

.htaccess 파일 차단:

  • 이 설정은 일반적으로 민감한 서버 구성 파일인 .ht로 시작하는 파일에 대한 액세스를 제한합니다.

심볼릭 링크를 사용하여 Nginx 서버 블록 설정

Nginx 서버 블록 구성을 마무리하려면 "sites-available" 디렉터리에서 구성 파일을 활성화해야 합니다. 이는 "sites-enabled" 디렉토리에 대한 심볼릭 링크를 생성함으로써 달성됩니다.

아래 명령을 실행하여 "example.com.conf"를 구성 파일 이름으로 바꾸십시오.

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/

이 명령은 디렉터리 사이에 심볼릭 링크를 설정하여 Nginx에 구성 파일에 대한 액세스 권한을 부여합니다. 이를 설정한 후 다음을 사용하여 구성을 검증합니다.

sudo nginx -t

테스트에서 오류가 반환되지 않으면 Nginx를 다시 시작하여 서버 블록 변경 사항을 적용합니다.

sudo systemctl restart nginx

이 단계가 완료되면 이제 Nginx를 통해 WordPress 사이트에 액세스할 수 있습니다.

최적의 WordPress 성능을 위한 PHP.ini 구성

WordPress에서 최고의 성능을 얻으려면 PHP 설정을 조정하는 것이 중요합니다. WordPress에서 미디어 파일을 효율적으로 처리하려면 최대 업로드 크기, 게시물 크기 및 메모리 제한을 늘리는 것이 좋습니다. 잠재적인 문제를 방지하기 위해 최대 실행 시간과 입력 변수를 조정해야 할 수도 있습니다.

php.ini 파일에 액세스하려면 터미널을 사용하세요. 파일 위치는 PHP 버전에 따라 다를 수 있습니다.

sudo nano /etc/php/8.0/fpm/php.ini
sudo nano /etc/php/8.1/fpm/php.ini
sudo nano /etc/php/8.2/fpm/php.ini
sudo nano /etc/php/8.3/fpm/php.ini

PHP 설정을 맞춤화하려면 php.ini 파일에서 다음 줄을 찾아서 조정하세요.

##increase this to the maximum file size you want to upload, recommended 50 to 100MB## 
 upload_max_filesize = 100M

##increase this to the maximum post size you want to allow, recommended 50 to 100MB##
 post_max_size = 100M

##increase this to the maximum execution time, recommended 150 to 300 seconds##
 max_execution_time = 300

##increase this to the maximum GET/POST/COOKIE input variables, recommended 5000 to 10000##
max_input_vars = 5000

##increase this to the maximum memory limit, recommended 256MB or 512MB. Note that you should ensure your system has enough RAM before raising this.##
memory_limit = 256M

PHP 설정을 수정한 후에는 PHP-FPM 서버를 다시 시작하는 것이 중요합니다. 이렇게 하면 새로운 구성이 활성화되어 WordPress 사이트가 최상의 상태로 작동할 수 있습니다.

Nginx 서버 클라이언트 최대 본문 크기 늘리기

WordPress 사이트에서 더 큰 파일 업로드를 수용하려면 Nginx 서버 블록을 조정해야 합니다. 이를 통해 Nginx는 대규모 파일 업로드를 처리할 때 필수적인 더 큰 HTTP 요청 본문을 처리할 수 있습니다.

Nginx 서버 블록 수정

서버 블록 구성 파일을 열고 다음 줄을 삽입하십시오.

##set to the maximum upload size you set in upload_max_filesize.##
client_max_body_size – <size>

client_max_body_size 값이 PHP 설정에서 구성한 upload_max_filesize와 일치하는지 확인하세요.

PHP-FPM 다시 시작

업로드 크기, 게시물 크기, 메모리 제한 등 최적의 WordPress 성능을 위해 PHP 설정을 조정한 후 변경 사항을 적용하려면 PHP-FPM 서버를 다시 시작하는 것이 중요합니다. 서버를 다시 시작하는 정확한 명령은 PHP 버전에 따라 다릅니다. PHP 버전이 확실하지 않으면 시스템 설명서를 참조하세요.

다른 PHP 버전의 경우 해당 명령을 사용하여 PHP-FPM을 다시 시작하세요.

sudo systemctl restart php8.0-fpm
sudo systemctl restart php8.1-fpm
sudo systemctl restart php8.2-fpm
sudo systemctl restart php8.3-fpm

WordPress 프런트엔드 설치

백엔드 설정 및 구성을 마무리한 후 도메인에서 WordPress 프런트 엔드를 시작할 시간입니다. 도메인으로 이동하여 "https://" 또는 "http://"로 접두사를 붙여 설치를 시작합니다. 또는 "https://www.yoursite.com/wp-admin/install.php"에 직접 액세스할 수 있습니다.

이 URL은 프런트 엔드 설치 마법사로 연결됩니다.

1단계: WordPress 언어 선택

원하는 언어를 선택하고 클릭하세요. "계속하다."

2단계: WordPress용 관리자 생성

다음으로 사이트 제목, 사용자 이름, 비밀번호, WordPress 사이트의 기본 관리자 이메일 주소를 입력하라는 페이지가 나타납니다.

보안상의 이유로 강력한 비밀번호를 선택하고 유효한 이메일 주소를 제공하세요. 나중에 WordPress 설정 패널 내에서 다른 설정을 수정할 수 있다는 점을 기억하세요.

사이트를 개발하고 Google이나 Bing과 같은 검색 엔진으로부터 사이트를 비공개로 유지하려는 경우 "검색 엔진의 색인 생성을 강력히 방지"하는 옵션이 있습니다.

3단계: 계속해서 WordPress 설치 버튼을 클릭하세요.

세부 사항과 선호사항을 입력한 후 다음을 누르세요. “워드프레스 설치” 단추. 성공적으로 설치되면 로그인 페이지로 리디렉션됩니다.

4단계: WordPress 관리 페이지에 로그인하세요.

로그인 정보를 입력하고 '로그인'을 누르세요. 이 작업을 수행하면 WordPress 대시보드로 이동하여 웹 사이트를 만들거나 가져올 수 있습니다.

5단계: WordPress Admin을 통해 WordPress 사이트 보기 및 조정

WordPress 대시보드는 명령 센터입니다. 여기에서 새 게시물의 초안을 작성하고, 페이지를 디자인하고, 테마와 플러그인을 처리하고, 사이트의 모양, 콘텐츠 및 운영을 맞춤 설정할 수 있습니다.

사용자 친화적인 인터페이스를 갖춘 대시보드를 사용하면 웹 사이트를 신속하게 구축할 수 있으므로 최소한의 노력으로 매력적이고 전문적인 사이트를 디자인할 수 있습니다.

Nginx를 사용하는 WordPress에 대한 추가 팁

Let's Encrypt SSL 인증서로 WordPress 및 Nginx 보호

웹 서버의 보안을 강화하는 것이 가장 중요하며 이를 달성하는 효과적인 방법 중 하나는 SSL 인증서를 사용하여 HTTPS에서 Nginx를 실행하는 것입니다. Let's Encrypt는 무료, 자동화된 개방형 인증 기관을 제공하여 Nginx 서버에 대한 SSL 인증서를 더 쉽게 설정할 수 있습니다.

Certbot 설치

다음 명령을 사용하여 certbot 패키지를 설치하여 시작하십시오.

sudo apt install python3-certbot-nginx

SSL 인증서 생성

certbot 패키지를 설치한 후 다음을 사용하여 SSL 인증서를 생성하세요.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

Certbot은 이 과정에서 이메일과 도메인 이름을 입력하라는 메시지를 표시합니다. EFF로부터 이메일을 받을 수도 있습니다. 귀하의 선호도에 따라 옵트인할지 여부를 결정하십시오.

인증서를 설치하면 웹사이트의 URL이 HTTP에서 HTTPS로 전환됩니다. 이전 HTTP URL에 액세스하는 방문자는 자동으로 새 HTTPS URL로 리디렉션됩니다. 이 구성은 HTTPS 301 리디렉션, Strict-Transport-Security 헤더 및 최상위 보안을 위한 OCSP 스테이플링을 보장합니다.

자동 인증서 갱신 설정

SSL 인증서를 유효하게 유지하려면 자동 갱신을 위한 크론 작업을 설정하세요. Certbot은 이에 대한 스크립트를 제공합니다. 설정을 마무리하기 전에 연습 실행 테스트를 실행하세요.

sudo certbot renew --dry-run

crontab 구성에 액세스하고 다음을 입력하십시오.

sudo crontab -e

SSL 인증서를 자동으로 갱신하려면 다음 명령을 사용하여 cron 작업을 사용하여 예약하세요.

00 00 */1 * * /usr/sbin/certbot-auto renew

그러면 매일 자정에 인증서 갱신이 시도됩니다.

PHP 세션 오류 해결

특히 특정 플러그인을 사용할 때 세션 저장 문제가 발생합니까? 문제의 근본 원인은 /var/lib/php/sessions/ 디렉토리의 잘못된 사용자 권한일 수 있습니다. 하지만 걱정하지 마세요. 간단한 명령으로 이 문제를 해결할 수 있습니다.

디렉토리 권한 조정

올바른 권한을 설정하려면 아래 명령을 실행하세요.

sudo chown -R www-data:www-data /var/lib/php/sessions/

이 명령은 www-data 사용자 및 그룹을 세션 디렉터리의 소유자로 설정합니다. 결과적으로 WordPress는 아무런 문제 없이 세션 데이터를 쓸 수 있습니다. 이러한 조정은 주로 소셜 미디어 게시와 같은 자동화된 작업을 처리하는 플러그인을 사용하는 경우 WordPress 사이트의 원활한 작동에 필수적입니다.

PHP 세션 오류를 해결하는 것은 웹사이트 성능을 향상하고 사용자 경험을 향상시키는 데 중요합니다.

WordPress에서 HTTPS 리디렉션 루프 해결

HTTPS를 활성화한 후 WordPress 사이트가 리디렉션 루프에 갇힌 경우 WordPress가 보안 HTTPS 버전으로 계속 리디렉션을 시도하지만 루프가 완료되지 않기 때문일 가능성이 높습니다. 이 문제를 해결하려면 특정 코드 줄을 사용하여 wp-config.php 파일을 수정할 수 있습니다.

wp-config.php 파일 수정

wp-config.php에 다음 줄을 삽입하세요:

define('FORCE_SSL_ADMIN', true);

if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) {
    $_SERVER['HTTPS'] = 'on';
}

각 줄의 기능은 다음과 같습니다.

  • 첫 번째 줄은 FORCE_SSL_ADMIN 상수를 true로 설정하여 모든 관리 페이지가 HTTPS를 사용하도록 합니다.
  • 후속 코드는 HTTP_X_FORWARDED_PROTO 헤더에 "https"라는 용어가 포함되어 있는지 확인합니다. 일치하는 항목을 찾으면 HTTPS 서버 변수를 "on"으로 지정합니다. 이 작업은 연결이 안전하다는 것을 WordPress에 알립니다.

이 라인을 wp-config.php 파일에 통합하면 HTTPS 리디렉션 루프에서 벗어날 수 있고 WordPress 사이트가 새로운 보안 연결로 원활하게 작동하는지 확인할 수 있습니다.

도메인 이름 리디렉션 루프 수정

WordPress 사이트의 리디렉션 루프는 때때로 wp-config.php 파일에 지정된 도메인 이름과 웹 사이트의 도메인 이름 간의 불일치로 인해 발생할 수 있습니다. 이 문제를 해결하려면 구성에서 도메인 이름을 확인하고 조정해야 합니다.

wp-config.php 파일 확인

wp-config.php에서 다음 줄을 검사하세요.

define('WP_HOME','http://example.com');
define('WP_SITEURL','http://example.com');

도메인 이름이 웹사이트 도메인과 일치하지 않는 경우 적절하게 수정하세요.

결론

LEMP 스택을 사용하여 Debian 시스템에 WordPress를 성공적으로 설치하면 WordPress의 강력한 기능과 강력한 성능을 활용할 수 있습니다. 최적의 보안과 기능을 보장하려면 WordPress 설치 및 LEMP 스택 구성 요소를 정기적으로 업데이트하세요. 웹사이트 생성 및 관리를 위해 WordPress와 LEMP 스택이 제공하는 유연성과 광범위한 기능을 즐겨보세요.

Joshua James

코멘트를 남겨주세요