Lemp + Wordpress 개인 블로그 빠른 구축

9661 단어
시작하기 전에 개인 블로그를 구축하는 서버와 도메인 이름을 준비하거나 가상 컴퓨터를 사용하여 구축하는 연습을 할 수 있다.서버는 1cpu 1g 메모리 1M 대역폭의 최소 설정을 선택하면 되며, 나중에 필요할 경우 다시 업그레이드할 수 있습니다.서버를 구매할 때 플랫폼에서 현재 진행 중인 이벤트를 보십시오. 보통 매우 저렴한 가격으로 구매할 수 있습니다.시스템 렌즈는 여기에서 ubuntu를 추천하는데 설치 소프트웨어는 상대적으로 간단하고centos는 일정한 문턱이 필요하다.또한 국내의 서버를 선택하여 사이트를 구축하는 것은 등록이 필요하다. 만약에 등록하지 않으려면 홍콩이나 해외의 서버를 선택할 수 있다.
내 블로그 주소: 푸른 달 단풍 Aitsuki
블로그를 통해 이 강좌 보기

MySql

sudo apt install mysql-server
sudo mysql
#  wordpress 、 、 。
create database wordpress;
create user username identified with 'password';
grant all privileges on wordpress.* to username;
flush privileges;
exit

위의username과password를 원하는 사용자 이름과 비밀번호로 바꾸십시오. 이 데이터베이스와 계정을 기억하고 wordpress 설정에 기록해야 합니다.

Nginx

sudo apt install nginx

이 때 브라우저를 사용하면 당신의 웹 사이트에서 Nginx의 기본 첫 페이지를 볼 수 있습니다.
Gzip 구성:https://kinsta.com/blog/enable-gzip-compression/
sudo vim /etc/nginx/nginx.conf

gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_min_length 256;
gzip_buffers 16 8k;
gzip_disable "msie6";
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

#   sudo service nginx reload
sudo nginx -s reload

PHP

sudo apt install php-fpm
#  , wordpress 。
sudo apt install php-mysql php-gd php-curl php-dom php-mbstring php-imagick php-zip php-gmp php-bcmath
# 7.4 , , 7.2 。
sudo vim /etc/php/7.4/fpm/php.ini

php 구성을 수정하려면 다음과 같이 하십시오.
# Nginx + PHP CGI ,https://www.laruence.com/2010/05/20/1495.html
cgi.fix_pathinfo = 0
#  ( , )
upload_max_filesize = 128M
post_max_size = 128M
#  fpm 
sudo service php7.4-fpm restart

phpMyAdmin


phpMyAdamin은 데이터베이스 관리 도구로 어떤 경우에는 매우 유용합니다.
#  phpMyAdamin
wget https://files.phpmyadmin.net/phpMyAdmin/4.9.7/phpMyAdmin-4.9.7-all-languages.tar.gz
#  
tar -xf phpMyAdmin-4.9.7-all-languages.tar.gz
#  
mv phpMyAdmin-4.9.7-all-languages phpMyAdmin
#  html 
sudo mv phpMyAdmin /var/www/html
#  
sudo chown -R www-data:www-data /var/www/html/phpMyAdmin/

phpMyAdmin 구성
cd /var/www/html/phpMyAdmin
sudo cp config.sample.inc.php config.inc.php
sudo vim config.inc.php
//  32 , cookie , 。 , 。
$cfg['blowfish_secret'] = ' 32 ';

phpMyAdmin의 Nginx 서비스 구성
#  sites-available 
cd /etc/nginx/sites-available/
#  phpMyAdmin Nginx 
sudo vim phpMyAdmin
server {
        #  
        listen 8100 default_server;
        listen [::]:8100 default_server;

        root /var/www/html/phpMyAdmin;

        index index.php;

        server_name _;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        }
}

구성 적용
# sites-available  , sites-enabled 。
#  sites-enabled 
sudo ln -s /etc/nginx/sites-available/phpMyAdmin /etc/nginx/sites-enabled/phpMyAdmin
#  ( )
sudo nginx -t
sudo nginx -s reload

현재 사이트에 로그인한 8100 포트(서버의 보안 그룹에서 대응하는 포트를 놓는 것을 기억하십시오)는 phpMyadmin의 로그인 인터페이스를 볼 수 있습니다. 로그인할 때의 계정 비밀번호는 바로 앞에 있는 MySql 명령으로 새로 만든 것입니다.

phpMyAdmin 고급 기능(옵션)


또한 phpMyAdmin의 첫 페이지 하단에'phpMyAdmin의 고급 기능이 아직 완전히 설정되지 않았고 일부 기능이 활성화되지 않았습니다'라는 메시지가 표시될 수 있습니다. 이른바 고급 기능이 도대체 무엇인지 모르겠습니다. 관심이 있다면 열어 보십시오.
sudo mysql
#  sql: phpmyadmin 
source /var/www/html/phpMyAdmin/sql/create_tabls.sql;
#  phpmyadmin , pma pmapass 
create user pma identified by 'pmapass';
grant all privileges on phpmyadmin.* to pma;
flush privileges;
exit

고급 기능 구성:
sudo vim /var/www/html/phpMyAdmin/config.inc.php
/* User used to manipulate with storage */
// $cfg['Servers'][$i]['controlhost'] = '';
// $cfg['Servers'][$i]['controlport'] = '';
#  
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'pmapass';

/* Storage database and tables */
#  
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';

phpmyadmin에 다시 로그인하면 됩니다.

Wordpress

#  wordpress 
wget https://cn.wordpress.org/latest-zh_CN.tar.gz
#  
tar -xf latest-zh_CN.tar.gz
#  html 
sudo mv wordpress /var/www/html/
#  wordpress owner group, nginx (www-data)
#  
sudo chown -R www-data:www-data /var/www/html/wordpress

wordpress의 Nginx 서비스 구성
cd /etc/nginx/sites-available/
sudo vim wordpress
# https://www.digitalocean.com/community/tutorials/how-to-implement-browser-caching-with-nginx-s-header-module-on-ubuntu-16-04
# Expires map
map $sent_http_content_type $expires {
        default off;
        text/html epoch;
        text/css max;
        application/javascript max;
        ~image/ max;
}

server {
        listen 80 default_server;
        listen [::]:80 default_server;

        #  
        client_max_body_size 128m;
        client_body_buffer_size 128m;

        #  
        expires $expires;

        root /var/www/html/wordpress;

        index index.php;

        #  
        server_name yourdomain.com www.yourdomain.com;

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

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        }
}
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/wordpress
sudo nginx -t
sudo nginx -s reload

현재 당신의 사이트에 로그인하기만 하면 워드프레스 마법사에 따라 후속 작업을 완성할 수 있습니다.

SSL 인증서 구성(옵션)


무료 인증서 도착https://freessl.cn/이 사이트에서 신청하면 최종적으로 당신은 xxx라는 이름을 얻을 수 있습니다.crt, xxx.키의 인증서 파일과 키입니다.
인증서와 키를 서버에 업로드하고 /etc/nginx/ssl 디렉터리에 놓으면 디렉터리 자체가 만들 필요가 없습니다./etc/ssl 디렉터리나 다른 디렉터리에 넣을 수도 있습니다. 규정이 없습니다.
ssl 설정
sudo vim /etc/nginx/sites-available/wordpress

다음 규칙을 추가합니다. (기존의 80포트를 443포트로 바꾼 다음 80포트의 서비스가 443포트로 바뀌었다는 것을 다시 설명합니다.)
server {
        listen 80 default_server;
        listen [::]:80 default_server;
        server_name yourdomain.com www.yourdomain.com;
        return 301 https://$server_name$request_uri;
}

server {
        listen 443 ssl http2;
        listen [::]:443 http2;

        ssl_certificate /etc/nginx/ssl/xxx.crt;
        ssl_certificate_key /etc/nginx/ssl/xxx.key;

        add_header Strict-Transport-Security "max-age=31536000";
        ssl_session_cache shared:SSL:20m;
        ssl_session_timeout 10m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_ciphers 'ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5';

        ...
}
sudo nginx -t
sudo nginx -s reload

현재 인증서가 설치되어 있습니다. 홈페이지에 접근하는 데 문제가 발생할 수 있습니다. 워드프레스 백엔드 - 에 워드프레스 주소와 사이트 주소의 접두사를 https로 설정해야 합니다.

파일 권한 고려 사항


wordpress는 Nginx를 배치하고 사용자 그룹은 www-data입니다.그래서 앞의 강좌에서wordpress 디렉터리 사용자 그룹을 변경하는 동작sudo chown -R www-data:www-data wordpress이 있습니다. 그렇지 않으면wordpress 백엔드에 많은 권한으로 인해 문제가 발생할 수 있습니다.
또 어떤 방법은 wordpress의 읽기와 쓰기 권한을 모든 사용자chmod 777에게 주는 것이다. 본질적으로 사용자 그룹을 수정하는 것과 다름없지만 전자가 더욱 안전하다.

추천 플러그인

  • WP Mail SMTP by WPForms, 메일 서비스.
  • UpdraftPlus, 백업.데이터베이스만 백업하고 디렉터리를 업로드하는 것을 추천합니다.
  • WP-Optimize – Clean, Compress, Cache.
  • WP Statistics, 통계 플러그인, Sakura 테마와 함께 사용할 수 있습니다.
  • WP Githuber MD,markdown 편집기.
  • Wordfence Security, 보안 플러그인.
  • Akismet Anti-Spam, 스팸 필터링.
  • AMP 페이지를 생성하여 Google 순위를 높일 수 있습니다.
  • Rank Math SEO, 검색 엔진 최적화.
  • 좋은 웹페이지 즐겨찾기