워드프레스 쇼핑몰, 웹사이트

사이트 이미지
쇼핑몰

남성의류 정기결제 쇼핑몰

우커머스의 정기결제(Subscription) 플러그인을 이용한 쇼핑몰.

사이트 이미지
웹사이트

회원관리 사이트

회원관리 프러그인을 이용한 학회 홈페이지.

사이트 이미지
쇼핑몰

면도기 정기결제 쇼핑몰

우커머스의 정기결제(Subscription) 플러그인을 이용한 쇼핑몰.

사이트 이미지
쇼핑몰

해외 쇼핑몰

해외 대상 쇼핑몰. 다양한 플러그인 사용됨.

사이트 이미지
쇼핑몰

강아지 용품 정기결제 쇼핑몰

우커머스의 정기결제(Subscription) 플러그인을 이용한 쇼핑몰.

포트폴리오 보기

블로그 인기글

커스텀 디자인

여러 종류의 플러그인을 이용해 페이지와 콘텐츠를 커스텀 디자인

Brizy Pro

페이지 빌더

다양한 콘텐츠를 만들 수 있는 프론트 엔드 페이지 빌더

Elementor Pro

페이지 빌더

다양한 콘텐츠를 만들 수 있는 프론트 엔드 페이지 빌더

Advanced Custom Field Pro

사용자 정의 필드

커스텀 콘텐츠 작업에 필요한 플러그인

Pods

사용자 정의 콘텐츠 타입

기본 콘텐츠 타입외에 다양한 형태의 콘텐츠 생성.

블로그

최근 워드프레스 4.2 버전과 MySQL 버전과의 호환성 문제로 여러 웹호스팅 회사를 문의해보고 실제로 두 곳의 호스팅을 이용해봤는데 그 중 아이비호스팅이라는 회사의 서비스가 가장 좋았습니다. 속도도 빠르고 일부 웹호스팅에서는 메모리가 부족해 사이트가 나타나지 않던 문제도 없었습니다. 다만 두 가지 문제점이 있는데 우선 성능을 알아보고 해결 방법을 알아보겠습니다. 향후 웹호스팅을 사용할 계획이라면 아이비호스팅을 적극 추천합니다. 다른 웹호스팅 회사도 본받아야 할 것으로 생각되기에 글을 통해 올리는 것이며 필자와 이 회사와는 전혀 관계가 없습니다.


http://www.ivyro.net/html/webht/web/



이 회사의 하드디스크는 SSD입니다. PC에서나 볼 수 있는 하드디스크입니다. 메모리처럼 속도가 빠릅니다. 용량에 비해 가격이 아주 저렴합니다. 가격이 저렴하다고 해서 서버 사양이 저질이라거나 설정이 모자라거나 하지 않고 오히려 그 반대입니다. 그러면 그 사양에 대해 알아보겠습니다.



PHP 5.6 버전까지, MySQL 5.6 버전까지 지원합니다. 워드프레스가 업그레이드 되면서 여러 가지 최신 기술이나 보안이 업데이트 되고 있는데 이러한 환경이 갖춰지지 않으면 그만큼 낮은 수준의 기술이나 보안이 사용될 수 밖에 없습니다. 따라서 고급 사양의 환경은 워드프레스의 업그레이드에 맞춰져야 합니다. 여기까지는 이전에 쓴 글의 내용과 별로 다른게 없습니다. 이번 글에서 이야기 하고자 하는 것은 PHP의 설정 수준입니다. 설정이 어떻게 돼있는지 알려면 phpinfo(); 라는 함수를 사용합니다.


워드프레스가 설치된 루트에 info.php 파일을 만들고 이 파일을 열어 <?php phpinfo(); ?>라는 코드를 추가한 다음 저장합니다.  이 파일이름이 공개되면 자신의 사이트가 보안에 노출될 염려가 있으므로 다른 이름으로 하거나 확인한 후 삭제하시기 바랍니다. 간단한 파일 수정은 파일질라에서도 작업할 수 있습니다. 



파일질라에서 편집 - 설정 - 파일 편집을 클릭하면 자신의 컴퓨터에서 사용하는 편집기를 선택할 수 있습니다. 찾아보기 버튼을 클릭해 실행 파일을 클릭하면 위처럼 나타납니다. 확인을 클릭합니다.



리모트 서버 패널의 빈공간을 클릭해 마우스 우측 버튼을 클릭한 다음 "새 파일 만들기"를 선택하고 info.php 파일을 입력한 다음 저장합니다. 다시 마우스 우클릭해 새로고침을 선택하면 파일이 나타납니다. 이 파일을 다시 우클릭해 보기/편집을 선택하면 설정한 편집기에 열립니다. 이곳에 위에서 말한 코드를 추가하고 저장합니다. 파일질라에 돌아오면 저장할 것인지 묻는 팝업창이 나타납니다. 확인을 클릭합니다. 이것을 잊는 수가 많으니 주의하세요.



주소란에 도메인과 슬래시, 파일이름을 입력한 다음 엔터 키를 누르면 php와 아파치 설정이 모두 나옵니다. php 버전이 보다 상세하게 나옵니다. 아마 웹호스팅 서비스 중에서 가장 높은 버전이 아닐까 생각됩니다.



php 설정에서 중요한 부분입니다.  대부분의 웹호스팅에서는 max_input_vars 옵션이 없거나 최소한의 수준인 1000입니다. 이것은 최대 변수 허용 숫자인데 워드프레스에서 메뉴가 많아질 때 속도가 느려지거나 저장이 안되는 것은 이 숫자 때문입니다. 이 회사는 10,000이라는 숫자를 제공합니다. 이것이 많아야 관리자 화면의 반응 속도가 빨라집니다. 이 설정은 php 5.3.39 버전 이후에서만 지원하므로 그 이전 버전은 아예 없습니다. 


워드프레스의 작업 속도를 높이기 위해 최대 실행 시간(max_execution_time)과 최대 입력 시간(max_input_time)등이 있는데 이들의 최대 수치가 정해져 있습니다. 이것은 .htaccess 파일에서 변경할 수 있습니다. 이 파일은 고유주소를 사용하면 워드프레스 설치 폴더에 있습니다. 이 파일을 열고 하단에 다음을 추가하면 됩니다. 독립 서버의 경우 php.ini 에서 설정을 변경할 수 있습니다.


  
<IfModule mod_php5.c>
  
php_value upload_max_filesize 100M
  
php_value post_max_size 100M
  
php_value max_execution_time 300
  
php_value max_input_time 300
 
</IfModule>


저장하고 다시 phpinfo 화면을 새로고침 하면 아래와 같이 변경됩니다.



여기서 메모리 사이즈는 변경할 수 없습니다. 웹호스팅은 공유 서버이기 때문에 하나의 서버로 여러 사람이 공유하게 됩니다. 따라서 메모리는 128 메가로 제한되는 것은 당연합니다. 하지만 독립 서버(Dedicated)의 경우  해당 변수로 검색해 변경할 수 있습니다. 하단의 upload_max_filesize는 최대 업로드 파일 사이즈인데 이것은 데이터베이스 업로드 사이즈도 결정됩니다. phpMyAdmin에서 보이는 최대 업로드 용량이 됩니다.


메모리 크기는 php가 실행되는 메모리 크기이며 컴퓨터의 메모리와는 다릅니다. 웹호스팅의 서버는 공유 서버이므로 한대의 성능 좋은 서버를 사용하므로 낮은 사양의 독립 서버보다 더 빠를 수 있습니다. 독립 서버에서 메모리는 전체 컴퓨터가 사용하는 메모리이며 예를들어 낮은 사양의 독립 서버 메모리가 2기가라면 오히려 웹호스팅보다 느릴 수도 있습니다. 클라우드 서버의 경우 메모리를 증감 시켜 사용할 수 있는데 여기서의 메모리가 php에 할당된 메모리는 아닙니다. 실제로 클라우드 서버를 운용해봤는데 2기가를 사용했더니 엄청 느려서 담당 직원은 4기가로 늘려야 한다고 하더군요.


위 메모리로 타 웹호스팅에서는 워드프레스 플러그인을 제한적으로 사용했었는데 리소스를 많이 잡아먹는 플러그인을 사용해도 거뜬이 돌아간다는 것입니다.


이 웹호스팅의 문제점이 두 가지가 있습니다. 우선 관리자 화면에서 페이지 편집 화면에 들어가면 워드프레스가 사용하는 자바스크립트 파일을 로드하는 php가 있는데 이 파일이 정지됩니다. 어떤 이유인지는 모르겠으나 구글링 해보니 해결방법은 있었습니다.



테마에서 비주얼 컴포우저를 사용하는데 관련 버튼이 나타나지 않습니다. 요소 검사해서 콘솔탭을 열어보면 상단에 load-scripts.php 파일 실행이 안되므로 자바스크립트 로드가 안되면서 비주얼 컴포우저에서 사용하는 자바스크립트도 에러가 발생합니다. 다른 웹호스팅에서는 발견할 수 없는 증상입니다. 5회에 걸쳐 새로 설치하거나 제대로 작동하는 다른 사이트의 워드프레스를 설치해봐도 같은 증상입니다. 혹시나 해서 웹호스팅을 추가로 신청해 워드프레스를 설치해보니 같은 증상입니다. 다음의 코드를 추가하니 해결됐습니다.


 74 
define( 'CONCATENATE_SCRIPTS', false );
 75 
 
 76 
/* That's all, stop editing! Happy blogging. */


wp-config.php 파일에서 위 74번 줄의 코드를 추가해주면 됩니다. 이러한 문제는 이 호스팅 회사에서 운영하는 웹방화벽으로 인한 것으로 추정되는데 호스팅 관리자 화면에서 변경할 수 있습니다.



마이페이지 - 호스팅 관리 - 웹방화벽 설정 메뉴를 클릭하고 계정 아이디를 선택한 다음 웹방화벽 중지를 선택해 웹방화벽 설정 변경 버튼을 클릭하면 됩니다. 담당자의 말로는 웹방화벽을 사용하는 것이 좋으나 워드프레스 플러그인에 따라서 방화벽과 호환이 안되는 부분이 있다고 하니 이럴 경우 해제하고 사용합니다. 제 경우 처음에는 문제가 발생했는데 웹방화벽을 동작하는 것으로 설정해도 나중에 이전에 삽입한 코드를 제거해보니 제대로 작동됐습니다.



두 번째 문제는 고유주소에 index.php가 추가됩니다. 이 웹호스팅에서는 보안을 위해 표면상 다른 프로그램이 실행되는 것처럼 설정해놨는데 이로 인해 고유주소에 코드가 추가되는 것입니다. 이를 수정하기 위해 아래의 코드를 wp-config.php 파일에 추가했더니 페이지 없음 에러가 발생합니다. 참고->


 
$_SERVER['SERVER_SOFTWARE'] = 'Apache';


이 코드를 삽입할 경우 index.php는 제거되지만 사이트에서 웹페이지가 없다는 404 에러가 발생하는데 이때는 아래의 코드를 .htaccess 파일에 추가해주면 됩니다. 사이트를 새로고침해도 같은 증상이 나오면 다른 웹브라우저에서 테스트 해보세요. 쿠키로 인한 것이니 쿠키를 제거하면 됩니다.


 
<IfModule mod_url.c>
 
CheckURL On
 
ServerEncoding UTF-8
 
</IfModule>


전반적으로 문제의 발생 원인은 웹방화벽이나 보안 프로그램으로 인한 것으로 생각되며 해결이 가능한 것이었습니다. 이런 문제를 감안하더라도 가격대비 성능은 아주 훌륭한 편입니다.


데모 사이트 : http://martian36.ivyro.net/


이 사이트에서 사용하는 테마는 The7이라는 테마입니다. 기능도 많고 웹호스팅에서 사용하기에는 부담이 되는 테마지만 로딩 속도가 빠릅니다.



현재 사용 중인 플러그인입니다. 총 18개가 사용 중인데 보안 관련 플러그인인 WordFence Security가 돌아간다는 게 신기할 정도입니다. 리소스를 많이 사용하거든요.