>백엔드 개발 >PHP 튜토리얼 >서버 연결이 비정상적이어서 종료하려고 합니다. 다중 서버 세션 공유 및 NFS 공유를 구현하려면 게임을 다시 시작하십시오.

서버 연결이 비정상적이어서 종료하려고 합니다. 다중 서버 세션 공유 및 NFS 공유를 구현하려면 게임을 다시 시작하십시오.

WBOY
WBOY원래의
2016-07-29 08:36:36929검색

PHP는 다중 서버 세션 공유 및 NFS 공유를 실현합니다
머리말, Nio Heroes는 다중 서버 세션 공유 문제를 제기했습니다. 원문은 PHP가 SESSION 데이터의 다중 서버 공유를 실현함을 참조하십시오.
그 중 하나는 NFS를 사용하여 세션을 공유하는 것입니다. 세션 볼륨이 상대적으로 크고 모든 세션 파일이 동일한 하위 디렉터리에 있으면 심각한 로드 문제가 발생할 수 있으며 웹 사이트 사용이 실패할 수도 있습니다. 이 글은 이 계획에 대한 자세한 설명입니다.
먼저 php.ini의 session.save_path 옵션을 대략 다음과 같이 수정합니다.
session.save_path = "2;/tmp/php_sess"
세션을 "/tmp/"에 저장한다는 뜻입니다. php_sess" 디렉토리는 2개 수준의 하위 디렉터리로 나뉘며, 각 하위 디렉터리 수준에는 16개의 하위 디렉터리가 있습니다.
다음으로, php의 메인 디렉터리가 /usr/local/server/php/라고 가정하고, 다음과 같이 /usr/local/server/php/include/php/ext/session/mod_files.sh 파일을 새로 생성합니다. 내용 :
#! /bin/sh
# 이름
# mod_files.sh - php-source/ext/session/mod_files.sh 업데이트
#
# 개요
# mod_files.sh basedir 깊이 [numberofsubdirs]
#
# 설명
# 이 스크립트는 세션 파일을 저장하기 위해 PHP가 사용하는 디렉토리 트리를 생성합니다
# (php.ini - 'session.save_path 참조) ' 옵션)
#
# 예: PHP가 세션 파일을 디렉토리 트리
# 각 디렉토리에 32개의 디렉토리를 포함하는 3단계 깊이에 저장하도록 하려면
# 먼저 php.ini 파일에서 다음 설정:
#
# session.save_path = "3;/tmp/session"
#
# 이제 basedir 디렉토리를 만듭니다: 'mkdir /tmp/session'
#
# 그런 다음 다음 인수를 사용하여 이 스크립을 호출합니다.
#
# ./mod_files.sh ./mod_files.sh /tmp/session 3 32
if test "$2" = ""; then
echo "usage: $0 basedir 깊이 [numberofsubdirs]"
echo "numberofsubdirs: 설정되지 않은 경우 기본값은 16입니다. 32인 경우 하위 디렉터리 32개, 64인 경우 하위 디렉터리 64개
종료합니다. 1
fi
if test "$2" ="0"; then
0 종료
fi
hash_chars="0 1 2 3 4 5 6 7 8 9 a b c d e f"
if [ ! -z $3 ] ; if test "$3" -a "$3" -eq "32"; then
hash_chars="$hash_chars g h i j k l m n o p q r s t u v"
if test "$3" -eq " 64"; then
hash_chars="$hash_chars w x y z A B C D E F G H I J K L M N O P Q R S T U V W $newpath ||exit 1
sh $0 $newpath `expr $2 - 1` $3
done
이 실행 가능하도록 설정된 후 다음을 실행합니다. 다음 명령을 사용하여 해시 디렉터리를 만듭니다:
shell>#cd / usr/local/server/php/include/php/ext/session/
shell>#./mod_files.sh /tmp/php_sess 2 16
이제 NFS 공유 설정을 시작합니다. IP 주소가 192.168.0.1(호스트 이름 svr1), 192.168.0.2(호스트 이름 svr2) 및 192.168.0.3(호스트 이름 svr3)인 3개의 호스트가 있다고 가정합니다. 이제 192.168.0.1이 NFS 공유 서비스를 제공하도록 하고 / etc /exports에 다음 내용을 추가합니다:
/tmp/php_sess/ svr*(rw,no_root_squash)
그런 다음 nfs 서비스를 다시 시작하여 다른 두 호스트에 NFS 공유를 제공합니다.
svr2 및 svr3에서 다음 명령을 실행하여 NFS를 마운트합니다.
shell>#mkdir /tmp/php_sess
shell>#mount svr1:/tmp/php_sess /tmp/php_sess
마지막으로 Add에서 /위에서 언급한 내용을 두 호스트의 php.ini로 수정한 다음 Apache를 다시 시작합니다.

위 내용은 서버 연결 이상에 대한 내용입니다. 서버 연결 이상을 포함하여 다중 서버 세션 공유 및 NFS 공유를 구현하는 PHP 방식으로 게임을 다시 시작하시기 바랍니다. 튜토리얼에서 도움을 받을 수 있습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.