제가 사용하는 호스팅은 PHP7을 사용하고 있습니다. PHP7하에서 Cache Plugin으로 W3 Total Cache를 적용 시 몇가지 문제가 있더군요.
정보 공유차원에서 간략히 정리해 공유합니다. 별다른 팁은 없는데 상황 이해 차원에서…
1. PHP 7과 W3 Total Cache 문제
제 사용 환경입니다.
- PHP 7.03
- Wordpress 4.6
PHP 7.03이 적용되어 있는 제 사이트에서 W3 Total Cache는 아래와 같은 문제가 있었습니다.
1.1. Automatic minify가 작동하지 않습니다.
W3 Total Cache를 설치하고나서부터 계속 자동 minify가 작동하지 않으니 manual로 바꿀거냐는 메세지를 출력해주었습니다. manual로 변경하면 더 이상 메세지는 나오지는 않습니다. manual로 minify는 방법을 공부하고 적용하기도 어려워 포기했구요.
실제로 테스트를 해보면 이는 작동하지 않고 있습니다. 그러다보니 성능 테스트해보면 score에서 불이익을 받긴 하더군요.
1.2. 파라메터 에러메세지 출력
어느 순간부터 사이트의 footer 아래에 아래와 같은 메세지를출력합니다.
"Warning: Parameter 1 to W3_Plugin_TotalCache::ob_callback() expected to be a reference, value given in…."
인터넷을 찾아보니How to fix W3 Total cache error on wordpress라는 글 등 많은 이런 증상에 대해서 논의가 되고 있었습니다.
-
주로 PHP 7에서 일부 플러그인과 충돌을 보이는 경우라는 답이 있었고 저의 경우 플러그인과 상관없이 지속적으로 나타났습니다.
-
memcache는 php 7을 지원하지 않는다고 합니다.
-
특히 PHP 7.09는 W3 Total Cache와 아직 호환이 안된다고 하네요. Please check if your php version is "PHP 7.0.9" .. if it is, w3total cache is incompatable with this version. In that case it is recommended to use some other caching service till they release a fixed version of W3TC.
-
에 메세지를 없애는 방안이 제시되어 있는데 저의 경우 데스크탑에서는 제대로 작동하지만 모바일에선 제대로 이미지 전송이 안되는 문제가 있어서 사용을 포기했습니다.
-
여기서 제안한 해결책은 "wp-content\plugins\w3-total-cache\lib\W3\Plugin\TotalCache.php"에서
function ob_callback(&$buffer) {
global $wpdb;
에서 '&"를 제거하는 것이라고 하네요. 왜 인지는 모르겠습니다.
function ob_callback($buffer) {
global $wpdb;
이 결과는 위에 적었듯이 데스크탑에서는 아무 문제가 없었지만 모바일에서는 이미지 출력이 않되는 문제가 있었습니다.
1.3. 대시보드에 모니터링 정보가 표시되지 않음
일반적으로 제대로 작동한다면 W3 Total Cache 대시 보드에 모니터링 상황이 표시되어야합니다.
그렇지만 일부가 작동하지 않으면서 전체 모니터링 상황이 모두 n/a값으로만 표시됩니다.
2. 마치며
위와 같은 문제가 있음에도 불구하고 지난 1개월여 W3 Total Cache를 사용해 왔습니다.
시중의 많은 Cache 플러그인중에서 W3 Total Cache과 WP Super Cache가 괜찮다고 보았는데 일부 기능이 작동하지 않음에도 불구하고 W3 Total Cache의 성능이 더 좋게 나왔기 때문에 계속 써왔습니다.
이무래도 W3 Total Cache가 PHP 성능을 최대한 더 끌어내고 중요한것은 Super Cache에 비해서 옵셥이 더 많기 때문으로 보여집니다.
PHP 7에서 W3 Total Cache가 계속 말썽을 피우므로 저의 경우 유로 플로그인인 WP Rocket을 구입해 적용해 보고 있습니다.
이 플로그인은 확실히 W3 Total Cache보다는 안정적이고 성능에서 더 나은 모습을 보여주고 있었습니다.
그런 의미에서 WP Rocket 적용에 만족하고 있습니다.