ubuntu + nginx + php-fpm 으로 설치시, 오류생길 때... 정보
ubuntu + nginx + php-fpm 으로 설치시, 오류생길 때...본문
계속 Centos에 아파치만 쓰다가
속도문제로 서버를 교체해볼까 테스팅중에 발견한 사실입니다.
우분투의 nginx(php-fpm방식)에서 그누보드를 설치할 때 오류때문에 전합니다.
초기 DB정보를 넣고 설치를 진행할 때,
nginx (php-fpm방식) 에서는 $_SERVER['DOCUMENT_ROOT']가 [파일명]까지 보여주고
apache 에서는 $_SERVER['DOCUMENT_ROOT'] 가 [폴더명]까지만 보여주기에
설치진행시,
ajax.install.check.php 파일에서 23,24번째줄에
$ajax_token = md5($tmp_str.$_SERVER['REMOTE_ADDR'].$_SERVER['DOCUMENT_ROOT']);
$bool_ajax_token = ($ajax_token == $_POST['ajax_token']) ? true : false;
에서 항상 토큰이 틀려집니다.
(호출하는페이지에서 $_SERVER['DOCUMENT_ROOT']의 값과, 호출당하는 ajax페이지에서 $_SERVER['DOCUMENT_ROOT'] 이 달라지기 때문이죠)
그래서 항상 false 가 되어 설치불가가 이뤄집니다.
그래서 $ajax_token을 만들때 $_SERVER['DOCUMENT_ROOT']를 빼는 것을 추천합니다.
php-fpm 방식일 경우를 설치페이지에 옵션에 넣어서 만일 체크되도록 해도 될 듯...
와... 우분투 + nginx + php-fpm7.3 은 4000원짜리 1cpu / 1G램 가상서버도 무지 빠른 듯합니다...
기존 4기가 2cpu centos, apache, php 로 설치했을 때도 버벅임이 많았는데... @@
0
댓글 10개
우분투라서 그런가???
설치페이지 install_config.php 파일 22번째 줄에서 에코해서 $_SERVER['DOCUMENT_ROOT'] 값 확인 해보시고,
$ajax_token = md5($tmp_str.$_SERVER['REMOTE_ADDR'].$_SERVER['DOCUMENT_ROOT']);
ajax 로 입력값을 기반으로 true/false 반환해주는 파일인 ajax.install.check.php 파일에서 22~28째줄
$ajax_token = md5($tmp_str.$_SERVER['REMOTE_ADDR'].$_SERVER['DOCUMENT_ROOT']);
$bool_ajax_token = ($ajax_token == $_POST['ajax_token']) ? true : false;
if( !($mysql_host && $mysql_user && $mysql_pass && $mysql_db && $table_prefix && $bool_ajax_token) ){
die(install_json_msg('잘못된 요청입니다.'.$_SERVER['DOCUMENT_ROOT']));
}
에서 위처럼 얼럿에서 $_SERVER['DOCUMENT_ROOT'] 찍어보세요. 호출 파일명, 호출된 파일명 이렇게 달라지게 되므로 $ajax_token 값이 항상 달라져서 잘못된 요청입니다를 뿌리며 더이상 설치를 진행할 수가 없습니다. 토큰 비교를 위해 저 변수를 쓰는 것을 반대합니다. 저 변수를 안쓰면 문제가 없어지는데... ㅜㅜ;
제서버에서는 아무문제없이 설치가 잘 진행이 됩니다. 아마도 설정값이 달라서 그런것 아닐까요?