1. 환경

  - 세탁기 : LG세탁기 12KG  14KG였음

  - 건조기 : 삼성건조기 9KG

  - 당연한 얘기지만 건조기보다 세탁기가 커야 한다. 

 

2. 준비물

  - 삼성건조기용 스태킹 키트 ( SKK-TKW, 11번가 구매, 가격 3만원~ 4만원 ) / 건조기 모델별로 다름

  - 드릴, 드라이버, 철판을 자를수 있는 도구(쇠톱 또는 그라인더)

 

3. 설치하게된 계기

  - 이사하면서 세탁실이 좁아 세탁기와 건조기를 나란히 놓고 사용하기가 너무 불편해서 관련내용 찾아봄

  - 회사가 다르면 스태킹키트가 맞지 않아, 직렬설치용 앵글을 구매하라고 하지만 좌우공간 확보가 되지 않고, 모양도 보기좋지 않음, 더군다나 가격도 10만원내외로 만만치 않음

  - 우연히 유튜브를 보게되면서 세탁기위에 건조기를 고정만 시키면 된다는 정보를 얻게됨.

 

4. 설치과정

  - 건조기 모델에 맞는 스태킹 키트를 구입한다. ( 세탁기 모델이 아님

    이유는 안전을 위해 건조기 다리를 고정시켜야 하는데, 이게 모델마다 다리의 좌우, 앞뒤폭이 다름. 특히 좌우폭에 맞게 홈이 파져있어 규격에 맞지 않으면 건조기가 고정이 되지 않음.

 - 아래는 주문한스태킹 키트사진

 

 

제품 구성은 위와 같다. 설명서가 없어 당황스러움

주문하고 1주일만에 받은것 같다. 

쇼핑몰 배송이 아닌 삼성전자 직배송제품이다. 아마도 자가설치가 아닌 설치기사가 설치가 수반되는 경우가 많아서 그런것으로 보임. 

박스에 비해 구성품에 별거 없다. 다만, 설명서가 없어 좀 당황스럽다. 어느 글을 보니 위험한 과정이라 전문설치기사가 설치하는 조건으로 판매한다는 얘기 있는데, 이제 품은 그런거 없이 배송되었다. 

상단과 하단에 2개씩 있는 'ㄱ'자 모양의 철판으로 세탁기와 키트를 연결한다.

세탁기의 용량 및 모델에 따라 선택해서 설치하면 되는데, 같은 삼성제품끼리 맞도록 철판길이와 나사구멍이 뚫어져 있어 이를 가공해야만 한다. 

       

짧은 B 모델로는 어떻게 할수가 없어 우측의 A모델로 설치하기로 하고 재단을 했다.

세탁기 뒷면을 보면 구멍이 여러개 있는데, 플라스틱으로 막아놓은 움푹들어간 구멍에만 맞도록 재단하면 된다.

( 아래 스티커 위치 ^^)

양쪽의 구멍을 모두 맞출 필요가 없다. 이거 맞추려고 무지 힘들게 고생했는데...

실제 동봉된 나사의 갯수를 확인하고서야 알았다. 두꺼운 나사가 4개가 아닌 2개만 들어있다. ㅎㅎㅎ

 

 

 

 

 

 

연결 철판을 키트 좌우 잘 맞춰서 연결하고, 세탁기 위에 올린다.  2개만 연결하면 약할까 싶지만 꽤 짱짱하다.

게다가 앞쪽은 양면스티커로 고정되도록 되어있어 웬만한 힘으로는 움직이지 않게 되어 있다.

나사로 조이기 전에 양면스티커를 살짝만 벗겨놓고 아래처럼 접어놓으면 작업이 수월하다. 다 떼버리면 양면테이프가 세탁기에 붙어버려서 위치 조정하기가 쉽지 않기 때문이다.

나사로 조인 후에 접힌부분 잡아당기면 됨.

 

이제 힘쓸일만 남았다. 생각보다 무겁지 않다. 9kg이라서 그런가? 

남자 2명이면 거뜬히 들어올릴수 있고, 건조기 뒷다리부분만 스태킹키트 홈에 맞추고 뒤로 조심스럽게 밀면 된다. 

앞쪽은 마감재로 마무리하고 작은 나사로 마무리하면 된다.

아래는 완성된 모습이다. 공간도 절약하고 깔끔하게 작업되어 뿌듯함. ( 와이프한테 칭찬받음 ㅎㅎㅎ )

 



간단한 홈페이지를 구축할 상황이 발생했다. (웹디자이너가 있다면 비교적 간단하게 처리할수 있겠지만, 그렇지 못한 상황이다. )

네이버에 "홈페이지 제작" 검색해보면 호스팅비용 포함해서 100~200만원의 비용으로 홈페이지를 구축해주는 회사들이 많다. 연락해서 문의해본 결과 대부분의 저비용 홈페이지 구축은

 - 온라인으로만 진행하는데, 웹사이트를 통해서 맘에드는 템플릿 선택한 후

 - 그에 맞는 컨텐츠(내용과 관련 이미지)는 메일등으로 전달하면

 - 내용에 맞게 구성해 준다. 이미지가 없다면 라이선스 없는 적당한 이미지는 알아서 해줌.

 - 나중에 서비스가 종료되어도 결과물 백업은 안됨

 

저렴한건 알겠는데, 왠지 제작과정에서 커뮤니케이션이 원할하지 않으면 원하는 모양으로 단기간에 홈페이지를 구축하는게 가능할까? 싶어 고민하는 중에 지인의 소개로 알게된 SW제품이 

"워드프레스와  부트스트랩" 이다.

IT업계에 있다보니 처음듣는 이름은 아니었으나 사용해볼 일이 없어 관심을 두지 않았던 제품이다.

 

검색을 통해 둘의 장단점을 간단히 비교하고 워드프레스로 테스트해보기로 결정.

 

기존에 Moodle 테스트하려고 Azure에 만들어두었던 가상서버 활용해서 바로 설치해봄. ( Moodle 환경도 LAMP 였음).

이틀정도 만져본 테스트 결과물로 내부 OK 승인. 이후 AWS환경으로 운영환경 구축 진행.

(현재는 Azure보다는 AWS가 금액적으로 저렴함.)

 

1. AWS는 Azure보다 어렵구나. ( 아니 복잡하구나. 아니 linux와 windows 의 차이랄까? ) 

기존 프로젝트하면서 만들었던 AWS 개발환경 초기화하면서 요금발생 없애려고 Default VPC까지 전부 삭제해놓은 상황이라, Custom VPC부터 시작하다보니 조금은 어렵다고 느껴졌을수도. 

순서는 대략 다음과 같다.

a. VPC 생성

b. subnet 생성

c. internet gateway 생성
( subnet을 Public, Private으로 나누지 않고 하나만 생성하다보니 외부와 연결할 외부용 Internet Gateway가 필수)

d. 이후 EC2 생성

e. Elastic IP 생성하여 연결 

 

2. LAMP 환경 구성

OS는 Amazon Linux.

CentOS가 익숙했지만 더이상 업데이트되지 않는듯 하고, 또 AWS에서는 CentOS기반으로 Amazon Linux를 제공하기 때문에 굳이 CentOS를 사용하지 않아도 된다고 한다.

 

2.1 Apache2.x설치 및 SSL 구성

 

2.2 Amazon Linux에 PHP7.x 설치하기

 

2.3 MariaDB설치하기

 

 

3. WordPress 설치 & 세팅

  >> wordpress 간단 사용법 : https://www.youtube.com/watch?v=DbQTHmc15KQ 

 

테마설치시 ftp정보 물어보는 경우 대처 :  https://shary1012.tistory.com/256

테마설치시 directory 생성오류가 나오는 경우 :  chown -R apache.apache wp/ 

 

테마선택 : astra,

Astra 옵션 > 가져오기 plugin 설치, 설치완료 후 PageBuilder 선택( Elementor 선택 )

데모사이트 템플릿에서 : digital agency 선택 & 설치

 

 

 

 

4. WordPress 보안강화 (wp-admin 분리 및 접근통제)

 

 

 

5. 멀티사이트를 통한 영문홈페이지 추가 구축

 - gmail smtp api 플러그인 적용

 - multi site 구조변경 이후 gmail api 먹통 이후 재 설정

 - 영문, 국문 gmail api 사용하려면 각각 프로젝트를 만들서 진행해야 한다.

 - wordpress에서 키를 삭제하고 다시 진행해야 한다.

 

Delete Access Key 이후 설정을 다시 세팅, 이후 Grant Permission 버튼이 활성화 됨.

 

 

(To be continue...)



오픈소스 LMS (Moodle)설치(MS Azure)

Posted 2022. 1. 10. 16:43

moodle이라는 오픈소스 LMS를 MS Azure Cloud에 설치합니다.

docker-compose를 통해서 간단히 설치하는 방법도 있었지만 직접 APM형태로 설치&세팅하였습니다.

참고 설치 매뉴얼(한글)
https://techexpert.tips/ko/moodle-ko/%EC%9A%B0%EB%B6%84%ED%88%AC-%EB%A6%AC%EB%88%85%EC%8A%A4%EC%97%90-%EB%AC%B4%EB%93%A4-%EC%84%A4%EC%B9%98/

 

I. MS Azure 인프라 설치

 

1. Azure 리소스그룹 생성
 > 그룹명 : lms-vnet-rg
 > : 10.2.0.0/22

2. 가상네트워크(lms-vnet), subnet (subnet1, subnet2) 생성( DB, Web분리예정)
 > lms-vnet : 10.2.0.0/22
 > subnet1 : 10.2.1.0/24 (Web Server)
 > subnet2 : 10.2.2.0/24 (DB 영역)

3. 가상머신 생성
 > OS : CentOS7.8-free
 > WEB : 2vcpu, 4GiB 메모리 / DB : 4vcpu, 16GiB 메모리
 > 위치 : 한국 중부

II. moodle 소스 설치를 위한 APM 설치

 

1. Database 설치(MariaDB)

//MariaDB용 yum repository를 업데이트한다.
sudo vi /etc/yum.repos.d/MariaDB.repo

[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos7-amd64/
gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck = 1

//mariadb, mariadb-server를 설치
sudo yum install mariadb mariadb-server -y 

//설치된 mariadb를 실행
sudo systemctl start mariadb

//Character-set 설정 (MariaDB 10.3기준)
sudo vi /etc/my.cnf.d/mysql-clients.cnf 

[mysql]
default-character-set=utf8mb4
..
[mysqldump]
default-character-set=utf8mb4
..


sudo vi /etc/my.cnf.d/server.cnf

[server]
init-connect='SET NAMES utf8mb4'
lower_case_table_name=1
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

# this is only for the mysqld standalone daemon
[mysqld]
default_storage_engine=innodb

//moodle용 Database와 사용자를 추가한다.(권한포함)
CREATE DATABASE moodle DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

//Create a user/password combination with appropriate permissions for the database. For example (MySQL again):
MariaDB [(none)]> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO 'moodleuser'@'localhost' IDENTIFIED BY 'moodleuser123!';
Query OK, 0 rows affected (0.003 sec)

//web-server접속용 권한
MariaDB [(none)]> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,CREATE TEMPORARY TABLES,DROP,INDEX,ALTER ON moodle.* TO 'moodleuser'@'10.2.1.0/255.255.255.0' IDENTIFIED BY 'moodleuser123!';
Query OK, 0 rows affected (0.005 sec)

 

2. ==== LMS Moodle 설치를 위한 Apache, PHP설치 ====

1). yum update ( 옵션 ) 
  sudo yum update -y

2). Apache 설치 

 sudo yum install httpd -y

 2.1) openssl, mod_ssl 설치 ( rpm -qa|grep OOO 으로 확인해서 설치되었다면 pass )

 sudo yum install mod_ssl -y 

 /etc/httpd/modules 아래에 mod_ssl.so 생성확인 

 2.2) ssl.conf 수정 및 인증서 복사 
  2.2.1 인증서 파일 복사하여 위치시킴.
  2.2.2 httpd.conf 를 수정하여 Rewrite 설정 (http -> https ) 

3). SELinux 해제 
    \> sudo vi /etc/selinux/config

    SELINUX=disabled 로 변경후 재부팅 
    임시로 적용 : sudo setenforce 0 

4). php 모듈 설치 

sudo yum install epel-release yum-utils
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm 

sudo yum-config-manager --enable remi-php73
sudo yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-mysqlnd php-xml php-pear php-pdo libapache2-mod-php php-mbstring php-xmlrpc php-zip php-bcmath php-ldap php-pspell php-curl php-intl php-soap -y 

5). 아파치 재시작 및 php 적용사항 확인 
  sudo systemctl restart httpd

  sudo vi /var/www/html/phpinfo.php

<?php
phpinfo()
?>

 

2. 소스 다운로드 및 설치 진행

최신버전 : https://download.moodle.org/releases/latest/

1). 소스 다운로드(최신버전은 별도 확인)
version3.8
 wget https://download.moodle.org/stable38/moodle-latest-38.tgz

version3.11
 wget https://download.moodle.org/download.php/stable311/moodle-3.11.4.tgz

2). 압축을 해제 
sudo tar -zxvf moodle-latest-38.tgz

해제된 소스를 Apache Document Root로 이동한다. 
cp /downloads/moodle /var/www/html/ -R

3. 접근권한 및 설정 변경

3). 웹서버에게 moodle 디렉토리 소유권을 부여하고 접근권한을 변경한다.

 sudo chown apache.apache /var/www/html/moodle -R
 sudo chmod 0755 /var/www/html/moodle -R

4). Moodle 데이터 업로드 디렉토리를 생성 후 접근권한을 변경한다. 
  (SELinux가 해제되어 있지 않으면 설치시 오류가 발생한다.)

 sudo mkdir /var/www/moodledata
 sudo chown apache /var/www/moodledata -R

 sudo chmod 0777 /var/www/moodledata -R

5). http://domain.com/moodle/ 로 접속하면 설치가 진행된다.
   앞서 설치된 DB 접속정보를 입력하여 설치를 마무리 한다.
   설치후 변경은 config.php정보를 수정한다.

 

4. Google smtp 연동사용

회원가입, 수강신청등의 이유로 메일연동이 필요하다. smtp를 구글메일로 사용하기 위한 일반적인 설정.

설정시 AWS에 설치된 타시스템에서는 정상적으로 작동했는데, MS Azure에서는 미작동한다. 이유가?
PHP Mail 테스트로도 발송이 안되고 아래와 같이 오류가 발생함.
아래 오류를 획득하기 위해서 /etc/php.ini에서 error log 출력을 위한 설정을 변경해야한다. (별도구글링 )

오류
2021-11-23 11:06:40     SERVER -> CLIENT: 534-5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbv
                                          534-5.7.14 5flh2VmuG9Rpp1NcnLIkbChbKw0FMwuzjkRkz76Ka-FP7xOgVcUXwDM6sJkX2MWXNeLeI
                                          534-5.7.14 i0CgTViB6ZJK5jAW0tSA1NpT5CZNSXumtvLT_qzu2YMrun2Cacr1yNcLDOQHImm7>
                                          534-5.7.14 Please log in via your web browser and then try again.
                                          534-5.7.14  Learn more at
                                          534 5.7.14  https://support.google.com/mail/answer/78754 t66sm11915990pfd.150 - gsmtp
2021-11-23 11:06:40     SMTP ERROR: Password command failed: 534-5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbv
                                          534-5.7.14 5flh2VmuG9Rpp1NcnLIkbChbKw0FMwuzjkRkz76Ka-FP7xOgVcUXwDM6sJkX2MWXNeLeI
                                          534-5.7.14 i0CgTViB6ZJK5jAW0tSA1NpT5CZNSXumtvLT_qzu2YMrun2Cacr1yNcLDOQHImm7>
                                          534-5.7.14 Please log in via your web browser and then try again.
                                          534-5.7.14  Learn more at
                                          534 5.7.14  https://support.google.com/mail/answer/78754 t66sm11915990pfd.150 - gsmtp
2021-11-23 11:06:40     SMTP Error: Could not authenticate.
2021-11-23 11:06:40     CLIENT -> SERVER: QUIT
2021-11-23 11:06:40     SERVER -> CLIENT: 221 2.0.0 closing connection t66sm11915990pfd.150 - gsmtp
2021-11-23 11:06:40     SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

 

해결방법은 아래와 같다.

 

사용하려고 하는 gmail계정의 보안/인증에서 2단계인증 후 앱 비밀번호 생성해서 해당정보를 설정해줘야한다.

요약

1. 앱 비밀번호 생성시 앱을 선택하고자 할때 기타(맞춤이름)를 선택한다.
2. Smtp Client 로 명시하고 생성을 클릭
3. 생성된 비밀번호를 복사하여 사용자 Password 에 넣는다.
   계정정보는 기존정보를 그대로 넣거나 넣지않아도 정상 작동된다.



« PREV : 1 : 2 : 3 : 4 : ··· : 128 : NEXT »