본문 바로가기
코딩, 개발 꾸준히 하면 볕날선생만큼 한다.

엘이엠피 lemp 엘이앰피 sTACK 스텍 그누보드 나리야빌더 (wORDP 워프 설치에서 응용) Install 2022년 11월 5일 토요일 기준

by 볕날선생 2022. 11. 5.
728x90
반응형

Canonical-Ubuntu-22.04-Minimal-2022.08.16-0

php 8.1

기존 https://imflower.tistory.com/2904 글의 업데이트라고 보시면 됩니다.

더불어 지난 그누보드 설치 이후 오류는 https://imflower.tistory.com/2913 글을 참고하시면 됩니다.

그누보드 나리야빌더(아미나도 동일) 설치 방법 시작합니다.

LEMP 엘이엠피 스택 Stack 그누보드 나리야빌더 깔기 - 2022.11.05

스왑 파일 생성 - 메모리 부족 방지

sudo apt update && sudo apt upgrade

sudo fallocate -l 4G /swapfile                                    #4기가로 할거라면

sudo chmod 600 /swapfile

sudo mkswap /swapfile

sudo swapon /swapfile

 

그리고

나노편집기 아래처럼 열어서 | 없다면 sudo apt install nano 쳐서 나노편집기 설치

 

sudo nano /etc/fstab

 

셋째줄에 추가하고 컨트롤+x y 엔터(저장)

 

/swapfile swap swap defaults 0 0

 

방화벽 설정 아래처럼

sudo iptables -I INPUT 5 -i ens3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -I INPUT 5 -i ens3 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT

 

저장

sudo netfilter-persistent save

 

체크

sudo iptables --list

 

재부팅

sudo reboot


How to Install GNUBOARD with LEMP on Ubuntu 22.04 :: 엔진엑스 깔기 E

시간설정

sudo timedatectl set-timezone Asia/Seoul

 

체크 타임존 아시아/서울로 되어있는지

timedatectl

 

엔진엑스 Nginx 설치

sudo apt install nginx

 

설치 잘 되었나 체크

nginx -v

 

액티브 러닝 나오는지 체크

service nginx status

 

엔진엑스 재시작

sudo service nginx restart

 

혹시나 아파치2 우분투 20.04 버젼에서 실행되는거 멎게하기

sudo systemctl unmask nginx.service

 

엔진엑스 사랑해 재시작

sudo systemctl start nginx

sudo systemctl enable nginx

 

글고 엔진엑스 세팅

sudo nano /etc/nginx/nginx.conf

첫줄에 user www-data; 

로 나온다면 컨트롤 + x 누르고 나오면 되고

만약 user nginx; 

로 되어있다면 user www-data; 

로 바꿔주고 컨트롤 + x , y , 엔터 (저장)

 

진짜 마지막 재시작

sudo systemctl reload nginx

sudo apt update && sudo apt upgrade -y


PHP 8.1 - fpm 설치하기 ( 아파치는 기본 PHP 를 쓰지만, 엔진엑스는 PHP-FPM을 씁니다.)

현재 최신버젼 확인 https://www.php.net/downloads.php

2022년 11월 5일 기준 8.1 이네요.

 

PHP 8.1을 깝니다.

sudo apt install -y php8.1-fpm php8.1-cli php8.1-bcmath php8.1-bz2 php8.1-dev php8.1-common php8.1-opcache php8.1-readline php8.1-mbstring php8.1-curl php8.1-gd php8.1-mysql php8.1-gmp php8.1-imagick php8.1-zip php8.1-intl php8.1-xml php8.1-xmlrpc php8.1-dba php8.1-soap php8.1-redis php-pear php-fpm

 

다시 시작할거냐고 물어보면 none of above 18 선택 엔터.

 

설치 겁나 잘되네요. 설치 잘 되었나 액티브 러닝 상태 확인

service php8.1-fpm status

 

알아서 자동실행 설정 Nginx 엔진엑스는 php**-fpm 만 사용하니까요.

sudo systemctl enable php8.1-fpm
sudo systemctl start php8.1-fpm

 

이정도하면 어차피 설치는 잘 되었을겁니다. 간소화로

cd /var/www/html

sudo rm index.nginx-debian.html

<?php phpinfo(); ?> 넣고 테스트하느라 info.php 맹글었다면 아래도 추가 

sudo rm info.php

 

그리고 엔진엑스 디폴트파일 삭제 

sudo rm -rf /etc/nginx/sites-available/default

 

근데 삭제 전에 파일내용이 뭔지 메모!

##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# In most cases, administrators will remove this file from sites-enabled/ and
# leave it as reference inside of sites-available where it will continue to be
# updated by the nginx packaging team.
#
# This file will automatically load configuration files provided by other
# applications, such as Drupal or Wordpress. These applications will be made
# available underneath a path with that package name, such as /drupal8.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##

# Default server configuration
#
server {
        listen 80 default_server;
        listen [::]:80 default_server;

        # SSL configuration
        #
        # listen 443 ssl default_server;
        # listen [::]:443 ssl default_server;
        #
        # Note: You should disable gzip for SSL traffic.
        # See: https://bugs.debian.org/773332
        #
        # Read up on ssl_ciphers to ensure a secure configuration.
        # See: https://bugs.debian.org/765782
        #
        # Self signed certs generated by the ssl-cert package
        # Don't use them in a production server!
        #
        # include snippets/snakeoil.conf;

        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ =404;
        }

        # pass PHP scripts to FastCGI server
        #
        #location ~ \.php$ {
        #       include snippets/fastcgi-php.conf;
        #
        #       # With php-fpm (or other unix sockets):
        #       fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        #       # With php-cgi (or other tcp sockets):
        #       fastcgi_pass 127.0.0.1:9000;
        #}

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #       deny all;
        #}
}


# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
#server {
#       listen 80;
#       listen [::]:80;
#
#       server_name example.com;
#
#       root /var/www/example.com;
#       index index.html;
#
#       location / {
#               try_files $uri $uri/ =404;
#       }
#}

지우고 나서

새롭게 디폴트 파일 맹글어 설정

sudo nano /etc/nginx/sites-available/default

 

아래 내용 복사 하고 열린 나노 편집기에 마우스 오른쪽 버튼(붙여넣기) 그다음 컨트롤 엑스 y 엔터 (저장)

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

root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
access_log /var/log/nginx/web.access.log;
error_log /var/log/nginx/web.error.log;

location / {
try_files $uri $uri/ /index.php?$args;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_cache off;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
include mime.types;
}
location ~ /\.ht {
deny all;
}
}

문법 잘 맞나 확인

sudo nginx -t

 

다시 불러오고 재시작

sudo systemctl reload nginx

sudo service nginx restart


마리아~ 아베마리아 마리아 디비 설치

최신버젼 확인

https://mariadb.org/download/?t=repo-config 

 

22.04 "재미" 

10.10[RC]

블렌드바이트 - 대만 타이뻬이 선택

 

sudo apt-get install apt-transport-https curl
sudo curl -o /etc/apt/trusted.gpg.d/mariadb_release_signing_key.asc 'https://mariadb.org/mariadb_release_signing_key.asc'
sudo sh -c "echo 'deb https://tw1.mirror.blendbyte.net/mariadb/repo/10.10/ubuntu jammy main' >>/etc/apt/sources.list"

 

그리고

sudo apt update && sudo apt upgrade

 

마리아 디비 설치

sudo apt install mariadb-server

 

잘 깔렸나(설치되었나) 확인하기 (액티브 러닝만 뜨면 됨)

service mysql status


SSL (HTTPS) 설정하기

도메인사(호스팅케이알)에 사둔 인터넷주소랑 + 현재 설치하는 호스팅사 아이피주소를 맞춰준다. 그리고 시작.

 

그다음 엔진엑스 SSL CERTBOT 설치한다.

sudo apt install certbot python3-certbot-nginx

 

세팅 변경 server_name _; 변경하기

sudo nano /etc/nginx/sites-available/default

들어가서

server_name _; 행에 있는걸 server_name www.도메인주소.com 도메인주소.com;

으로 변경하고 저장 컨트롤 x y 엔터 (저장) 한다.

 

그다음 서버 재시작

sudo service nginx restart

 

인증서 발급

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

또는

sudo certbot --nginx -d 도메인주소.com

 

이메일주소 입력 엔터

어그리 A 입력 엔터

Y 입력 엔터

 

그리고 1 또는 2 골라라라 나오는데 간단히 설명해서

1은 http 로 들어온 사람 -> https 로 리다이렉트 리디렉트 안한다

2는 리디렉트 리다이렉트 한다 이거다.

혼용이나 혼용 아니냐 문제인데 그건 각자의 선택으로.

 

이제 주소 쳐보면 자동으로 자물쇠가 잠긴게 확인된다.

 

자동으로 갱신도 하게 맹글어야겠지

아래 명령어로 갱신테스트 해보고

sudo certbot renew --dry-run

 

실제 수동 갱신은 

sudo certbot renew 

명령어다 참고만 하시도록!

 

만료일자 먼저 체크하기

sudo certbot certificates

익스파이어 데이가 나온다. 그게 만료일자다.

 

크론탭 설치 (우분투 기준으로 적는다.)

크론탭은 스케쥴러로 자동으로 어떤 작업을 수행해주는 작업명령툴이다.

sudo apt-get update && sudo apt-get install cron

 

크론 설치가 완료되었다면 크론탭 설치를 하면 된다 쉽다.

그런데 우리는? certbot 을 설치했지? 그렇다는 말은 자동으로 갱신이 된다는 말이다.

sudo nano /etc/crontab 

치면 언제 갱신되는지 나옴.

 

!!!!!!!!!

중요

!!!!!!!!!

혹시나 리디렉션 리다이렉트 리디렉트를 원치 않았는데, 잘못 리디렉션을 했다 하면, certbot이나 cron crontab SSL 인증서 삭제하지 말고, 그냥 새로운 주소로 덮어 씌워라. 계속 리디렉션 되는거 풀려고 지웠다가 접속조차 못한 경우가 발생하니.(sudo nano /etc/nginx/sites-available/default 들어가서 server_name _; 으로 바꿔주면 초기 아이피주소 혹은 초기 도메인으로 접속은 가능할 수도 있다! 때에 따라 안되기도 함.)

 

첨부터 sudo nano /etc/nginx/sites-available/default 드가서 서버네임 오른쪽에 새로이 하려는 세팅할 주소 적고 리디렉션 할래 2 안할래 1 선택할때 1로 잘 선택해서 하면 된다.

 

애초에 주소 적고 리디렉션 안한다고 선택 하면 편할일~ 으이고

 

시간이 오래 지났다. 디비 설정하자.


디비설정 마리아디비

언어설정 먼저

sudo nano /etc/mysql/conf.d/mariadb.cnf

켜서 

 

아래 내용 복붙

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
collation-server = utf8mb4_unicode_ci
character-set-server = utf8mb4
collation_server = utf8mb4_unicode_ci
character_set_server = utf8mb4

 

컨트롤 엑스 와이 엔터(저장)

 

마리아 디비 재시작

sudo service mariadb restart

퍼티 껐다 키기

sudo shutdown now -r

 

sudo mysql_secure_installation

이라고 칩니다. 

그러면 순서대로

Enter current password for root (enter for none): 라고 뜰텐데 그냥 엔터 를 치면 됩니다. Enter
Switch to unix_socket authentication [Y/n] N
Change the root password? [Y/n] Y
New password : 마리아 디비에서 사용할 비번 잘 생각해서 칩니다. 
Re-enter new password: 다시한번 위에서 설정한 비번을 칩니다.
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] N
Remove test database and access to it? [Y/n] Y
Reload Privilege tables now? [Y/n] Y

Thanks for using MariaDB! 

그리고 명령어 줄이 다시 뜹니다. 

아래 명령어를 쳐서 php-mysql 모듈이 잘 설치되었나 확인합니다.

sudo apt-cache policy php8.1-mysql

만약 위 명령어를 쳤는데 installed : (none) 이라고 나타나면 

sudo apt-get install php8.1-mysql

을 쳐서 설치해줌 됩니다.

 

mysql -u root -p

명령어를 치면 위에서 만든 마리아 디비 에서 사용할 비밀번호를 치라고 나옵니다. 비번을 쳐주면 

MariaDB [(none)]> 

이라고 마리아 디비 / mysql 에서 사용하는 명령어 줄이 나옵니다. 

디비 저장소를 이제 만들겁니다. 

 

MariaDB [(none)]> CREATE DATABASE 본인이 원하는 데이터베이스 저장소 이름;

 

그리고 나서 

 

MariaDB [(none)]> SHOW DATABASES;

 

라고 치면 

+--------------------+
| Database                |
+--------------------+
| information_schema |
| 데이터베이스이름    |  # 생성한 DB 데이터베이스 저장소
| mysql                    |
| performance_schema |
+--------------------+
4 rows in set (0.000 sec)

 

이렇게 나올겁니다. 

 

이제 마리아 디비 MariaDB 를 사용할 계정을 생성할 겁니다. 아까는 마리아 디비 접속 비번을 설정해주었던 거고, 이후에 마리에 디비 접속 이후 사용자에 대한 계정을 생성한다고 보면 됩니다.

 

MariaDB [(none)]> CREATE USER 사용할아아디@localhost;

 

라고 쳐서 아이디를 만들고 잘 기억해두셔야 합니다.

 

그리고 방금 만든 아이디의 비번을 만들어야겠죠. 

 

MariaDB [(none)]> SET PASSWORD FOR 방금만든아이디@localhost=PASSWORD("비밀번호");

 

마리아 DB 에 접속 한 이후에 그 안에서 이용할 계정의 아이디 랑 비밀번호 가 잘 만들어 졌습니다. 

이제 이 만들어진 계정의 생성한 DB 저장소 의 권한을 줘야겠죠. 

 

MariaDB [(none)]> GRANT ALL PRIVILEGES ON 위에서만든DB이름.* TO 방금만든아이디@localhost IDENTIFIED BY '방금설정한비번';

 

권한을 적용합니다.

 

MariaDB [(none)]> FLUSH PRIVILEGES;

 

잘 적용 되었으니 이제 마리아DB 에서 나갑니다.

 

MariaDB [mysql]> exit;

Bye ~!


그누보드 설치

먼저 최상위 폴더로 이동을 한다.

cd /var/www/html

 

그다음 data라는 폴더를 만들어 두고 707권한을 준다.

sudo mkdir data
sudo chmod 707 data

 

그누보드 https://sir.kr/g5_pds 에서 현재기준 최신 그누보드 파일을 다운로드 받는다.zip 형태로

이런식으로 되어 있는데 맨아래 패치는 기존에 사용자가 패치된 업데이트만 덮어쓰는거고 최신 5.8.2.3.zip을 다운로드 받았다.

압축을 푼 폴더에 있는 파일들은 최상위 폴더로 옮겨줘야한다. 파일질라를 통해서 옮겨준다.

혹은

가장 편한방법은

1. 그누보드 압축푼 파일에

2. 나리야 빌더(혹은 아미나빌더. 나리야빌더는 https://amina.co.kr/nariya/ 에 가입해서 다운로드 가능하다.)를 다운로드 받아서 압축 푼 파일을 덮어씌우고

3. G55-BS4-Basic-Pack (일명 [필수] BS4 베이직 테마 & 스킨팩)을 다운로드 받아 덮어씌우고

4. 동일한 나리야 빌더 사이트 https://amina.co.kr/nariya/bs4_pds 에서 본인이 필요한 보드, 위젯, 애드온, 헤드 등을 다운로드 받아서 각 경로에 넣어두고 파일질라로 업로드 하는 방법이 있다. 나의 경우는 피드 수집 보드 : BS4-Feed 를 자주 사용한다.

 

파일질라로 업로드할때는 업로드 전에 아래 명령어를 써야 권한문제로 에러가 나지 않고 업로드 가능하다.
sudo chown -R ubuntu /var/www/html
sudo chgrp -R ubuntu /var/www/html

 

파일질라를 통해서 SFTP 이용자명 나의 경우는 ubuntu , ppk 파일 선택해서 로그인해서 편한방법으로 한번에 업로드를 했다.

 

참고로 업로드 이후에 그누보드 내에서 세팅을 하거나 작업을 하거나 반영을 할때는 아래 명령어를 쓰면 좋다.

기본 권한부여 세팅이다.

sudo chown -R www-data:www-data /var/www/html
sudo usermod -a -G www-data ubuntu

문제가 없다면 굳이 안써도 되지만, 나의 경우 왜인지 몰라도 그누보드 아미나빌더가 다 갖추어지고 화면에도 뜨는데, 글 작성이나, 로그인이 안되는 경우가 발생해서. 아래 명령어를 쓰니 잘 해결 되었다.

 

물론 다시 무언가 파일질라로 업로드 할때는 위에 언급한 명령어 두줄을 쓴다. 

 

워프설치

cd /var/www/html

 

워프 다운 html 폴더에 워프.zip 파일을 다운한다.

sudo wget https://ko.wordpress.org/latest-ko_KR.zip

 

압축 풀기 언집이 안깔려있다면 sudo apt install unzip 쳐서 설치하고 푼다.

sudo unzip latest-ko_KR.zip

 

압축풀고 wordpress 폴더에 있는 거 html 폴더로 다 옮긴다

sudo cp -a /var/www/html/wordpress/. /var/www/html

 

기존 zip파일과 wordpress 빈폴더를 지운다

sudo rm latest-ko_KR.zip

sudo rm -r -f wordpress

 

그리고 워드프레스 필수 폴더들을 만들어준다.

sudo mkdir /var/www/html/wp-content/upgrade && sudo mkdir /var/www/html/wp-content/uploads && sudo mkdir /var/www/html/wp-content/temp

 

 

이제 워드프레스 설정을 해준다.

sudo cp /var/www/html/wp-config-sample.php /var/www/html/wp-config.php

워드프레스 설정 파일은 wp-config.php 에 담겨져 있는데요. 이걸 나노 에디터 로 불러와서 수정해줄 겁니다.

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

열린 wp-config.php 파일을 살펴보면 아래와 같은 줄이 있을겁니다.


/** The name of the database for WordPress */
define( 'DB_NAME', '아까 생성한 마리아DB 데이터베이서 저장소 폴더 이름' );

/** MySQL database username */
define( 'DB_USER', 'MariaDB 계정 아이디' );

/** MySQL database password */
define( 'DB_PASSWORD', '마리이디비 계정 비번' );

그리고 아래에 


define( 'SECURE_AUTH_KEY', 'put your unique phrase here' );
define( 'LOGGED_IN_KEY', 'put your unique phrase here' );
define( 'NONCE_KEY', 'put your unique phrase here' );
define( 'AUTH_SALT', 'put your unique phrase here' );
define( 'SECURE_AUTH_SALT', 'put your unique phrase here' );
define( 'LOGGED_IN_SALT', 'put your unique phrase here' );
define( 'NONCE_SALT', 'put your unique phrase here' );

 

줄이 있는데 하나하나 커서를 위치시켜서 컨트롤 + 케이 ctrl+K 를 눌러서 지운다음에

 http://api.wordpress.org/secret-key/1.1/salt/ 

접속해서 생성된 난수를 그대로 복붙 합니다.

ctrl 컨트롤 + 엑스 X 를 누르고 (Save Modified Buffer ?) Y 를 누르고 엔터! 


이제 거의 끝나갑니다.

413 Request Entity Too Large 오류발생 예방

 

1. 엔진엑스 Nginx.conf 파일 위치를 찾는다

sudo find / -name nginx.conf

 

명령어를 입력하면 엔진엑스 파일의 위치가 나온다

sudo nano /etc/nginx/nginx.conf

나의 경우 위치가 /etc/nginx/ 폴더에 위치해 있었고 수정을 위해 나노 에디터를 실행했다.

 

여기에 추가할 게 

http { 

바로 아랫부분에 이렇게 써준다 

client_max_body_size 원하는용량M;

 

512M기준

---------------------------------------

http { 
client_max_body_size 512M;

##
#Basic Settings
##
보너스로 이 위치에 이것도 써주면 좋다 (502 Bad Gateway 오류 뜨는걸 막기 위해) 버퍼크기 및 응답시간 수정
fastcgi_buffers 8 64k;
fastcgi_buffer_size 64k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;

----------------------------------------

 

2. PHP업로드 용량도 수정해줘야 한다. 

sudo find / -name php.ini

 

을 쳐서 위치를 확인하고

나의 경우는 아래 위치에 있었다.

sudo nano /etc/php/8.1/fpm/php.ini

 

/etc/php/8.1/아래 fpm에 있는 파일을 나노 에디터로 열고 

컨트롤 + W 를 눌러서 문구를 찾는다.

upload_max_filesize = 128M
file_uploads = On
max_execution_time = 300
memory_limit = 512M
post_max_size = 128M
max_input_time = 180
max_input_vars = 1680

short_open_tag = On

cgi.fix_pathinfo = 0

date.timezone = Asia/Seoul

 

모두 했으면 모두다 Ctrl + X 누르고 Y 누르고 Enter 엔터 누르고 저장하고 (nginx.conf 파일과 fpm/php.ini 파일 2개를 수정하고 저장해야겠지.)

 

엔진엑스는 

sudo nginx -t 
쳐서 문법 맞나 확인하고 썩세스 오케이 뜨는거 확인 하면
sudo service nginx restart 

쳐서 엔진엑스 재시작 그리고 

PHP FPM도 

sudo service php8.1-fpm restart

 

쳐서 재시작 하고 그누보드 사이트 열어서 F5키 한번 누르고 

 

그누보드 nginx 413 Request Entity Too Large 오류 메세지로 인해 업로드 하지 못했던 플러그인.zip 파일을 업로드 하면 된다.


마지막으로

sudo apt update && sudo apt upgrade 

함더 하고

 

그누보드 설치하자 주소창 쓰면 된다 끝!


이후에는 그누보드 설치하면서 DB 정보 입력하고, 최고관리자 계정 만들고,

테마 관리가서 바꾸고 게시판들 BS4로 바꾸고 세팅 변경들 하고 그러면 된다.

위젯설정이라든지 화면설정이 안바뀐다면 

sudo chown -R www-data:www-data /var/www/html
sudo usermod -a -G www-data ubuntu

치고 하면 되고.


워드프레스 설치 및 그누보드 설치 방법은 언제나 : https://imflower.tistory.com/

 

볕날선생

Just look at this blog when you're lying in bed, sitting on the toilet, riding a bus or subway to work, having nothing to do, or feeling bored. Then you'll become addicted to the "볕날선생" blog without knowing the time is ticking.

imflower.tistory.com

 

728x90
반응형