Category: Wordpress

  • 스왕 메모리 할당하기

    http://www.prowebdev.us/2012/05/amazon-ec2-linux-micro-swap-space.html

    MySQL 과 관련된 문제는 아마도 t2.nano의 메모리 부족으로 발생하는 것 같다. 우선은 링크된 곳과 같은 방법으로 해결해보고자 함. 저 명령어의 의미는 정확히는 모르겠으나 스왑 메모리를 늘려서 이를 이용하는 것으로 생각됨. 링크가 깨질 때를 위해서 아래에 남겨둠.

    Amazon EC2 Linux Micro instances have only 613MB of memory and can cause MySQL to crash every now and then. There is no default SWAP space for micro instances, so you may need to setup a swap space for your micro instance.

    Steps below show how to make a swap space for your Micro instance:

    1. Run dd if=/dev/zero of=/swapfile bs=1M count=1024
    2. Run mkswap /swapfile
    3. Run swapon /swapfile
    4. Add this line /swapfile swap swap defaults 0 0 to /etc/fstab
    Step 4 is needed if you would like to automatically enable swap file after each reboot.
    Some useful command related to SWAP space:

    •  wp-config.php
      • FTP 인증 해제
        • define(‘FS_METHOD’, ‘direct’);
    • MySQL
      • 패스워드 초기화(변경)
        • UPDATE mysql.user SET authentication_string=PASSWORD(‘패스워드’) WHERE user=’root’;
          FLUSH PRIVILEGES;
          quit
      • sudo 없이 실행하기
    • Linux (Ubuntu) 설정 확인
      • NTP/Chrony로 시간 동기화
        • 서버 시간은 UTC+0 이 좋음.
        • AWS NTP Server: 169.254.169.123
    • WordPress
      • Time zone은 UTC+9
  • 백업 후 복원 테스트 중.

    복원 과정 중에서 느낀점.
    워드프레스를 설치하는 과정 중에서 꼭 필요한 것은 apache2, php (7.0이나 7.2), mysql-server (혹은 다른 DB).

    mysql을 이용한다면, 워드프레스가 이용할 테이블을 미리 생성해야 함.
    설치 과정에서 root 의 패스워드를 입력하였다면
    mysql -u root -p 명령어를 이용해 mysql 관리 화면으로 들어간 다음

    create database wordpress;

    테이블을 만들어 주어야 함. 마지막에 ;가 붙음.

    apache2가 잘 설치되었는지 확인해보고(기본 index.html 파일이 열리는지), php가 잘 설치되는지 확인해 본다. php 기본 정보를 보는 파일은 직접 만들면 되는데,

    <?php phpinfo(); ?>

    정확히 이 내용이 들어간 파일을 만들어서 결과가 보여지는지 확인하면 된다.

    그런데 워드프레스에서 설치 과정 중에서 FTP 계정을 물어보는 경우가 있는데 이게 해결하기 곤란한 경우가 많다. 인터넷 검색을 통하여 워드프레스 wp-config.php 에 다음의 구절을 추가하는 것으로 해결함.

    define('FS_METHOD', 'direct');
  • WordPress, SSL, AWS

    블로그를 AWS에서 wordpress를 사용하여 운영중이다. 그리고 최근 웹브라우져들은 SSL을 지원안하는 웹사이트의 경우 안전하지 않다는 내용을 보여주고 있다. 그래서 나도 블로그에 SSL을 지원해 보는 것을 시도해보기로 하였다.

    이 방법은 도메인을 Route 53을 통해서 관리할 때에 적용할 수 있다.

    기본적으로 검색이 되는 다음의 정보를 바탕으로 시작하였다.
    https://brunch.co.kr/@poin2lab/5

    AWS의 Certified manager에서 난 www.welovedoctor.com 을 대상으로 인증서를 발급받았다. 그리고 이메일을 통하여 인증을 받았다.

    EC2의 Dashboard 에서 LOAD BALANCING 메뉴의 Load Balancers에 들어간 다음 Classic Load Balancer를 이용한다. HTTP 뿐만 아니라 HTTPS도 지원할 수 있도록 추가 선택을 한다. SSH 접속을 위해서는 TCP 22 번에 대한 것도 추가한다. SSH를 사용하지 않는다면 ABL을 선택해도 되는 것 같다.

    Security groups 을 선택한다. Certificate type은 처음의 ACM을 통하여 하는 것으로 선택한다. Health check에서는 실제 존재하는 html 파일을 대상으로 적어준다. 워드프레스를 사용한다면 index.html 파일은 없을테니까, readme.html 을 대체시켰다. Instances를 선택한다. Tag도 선택한다. 그리고 생성(Create)를 누른다. 대략 5분 정도 후에 상태를 살펴보면 Service 중인 것을 알 수 있다. 그리고 여기에 보면 DNS name 을 알 수 있는데 이 부분은 복사해 둔다.

    Route 53으로 들어가서 www.welovedoctor.com 으로 되어 있는 부분을 수정해 준다. 나는 그 동안 CNAME으로 사용하고 있었는데, 이제부터는 type A 로 바꾸어 준다. 그리고 Alias 를 yes 로 한 후에 아까전에 확인한 DNS name 을 입력하면, 바로 아래에 Hosted Zone ID가 보이는 것을 알 수 있다.

    최소한 이렇게 해두면 http://10.10.10.82 으로도 접속이 잘 되는 것을 알 수 있다. 역시 http://10.10.10.82 으로도 접속이 잘 되는 것을 알 수 있다.

    로그인을 위해서는 wordpress 의 setting 에서 WordPress URL과 Site Address 에서 http를 https로 바꾸어 준다. 그런데 로그인을 하면 에러가 난다.
    “you are not allowed to access this page.”

    WordPress Codex에서(https://codex.wordpress.org/Administration_Over_SSL) Using a Reverse Proxy를 보면 Example 에 있는 코드 3줄 (주속 포함 6줄)을 추가해 주면 된다고 한다. 그런데 실제로 wp-config.php 파일 최하단에 넣어주니까 계속 안되었다. 인터넷을 조금 더 살펴보니 해당 구절은 최상단에 두어야 한다고 한다. 그래서 하니까 잘 된다.

    http://10.10.10.82으로 접속을 해도 http://10.10.10.82 으로 접속을 하는 방법은 Real simple SSL 이라는 plugin을 이용하면 할 수 있다. 굳이 premium을 하지 않아도 되는 것 같다.