문제

이 있는 설정에 의해 얻을 수있는 몇 가지 스크립트를로드/자동으로 실행하면 PHP 시작을 몇 일정으로 세계 메모리입니다.

또한 있는 글로벌 메모리 액세스할 수 있는 사용자에 걸쳐?에 대한 또한 메모리가 기억하는 모든 사용자가 액세스할 수 있습니다?한 사람이 설정하는 다른 사람의 it 있거나 파일에 읽기 및 쓰기 모든 시간이 어떤 것에서 공유 또는 오히려 임시 데이터베이스 테이블.

놀라 PHP 이 없?

감사합니다.

도움이 되었습니까?

해결책

내가 올바르게 이해한다면, 당신은 php가 아파치를 시작할 때 일부 스크립트를 실행하고, 전 세계적으로 공유 된 값을 저장하기를 원합니다. 내가 틀렸다면 편집/댓글을 보내주십시오.

짧은 대답은 : 아니요, 당신은 그렇게 할 수 없습니다. PHP는 클라이언트 요청을 기다리는 실행을 유지하는 서버가 아닙니다. 각 HTTP 요청을 개별적으로 처리합니다.

긴 대답은 다음과 같습니다. 음 ... 각 요청마다 Auto_Prepend_file을 수행 할 수 있습니다. 간단한 bash 스크립트를 만들고이를 사용하여 Apache를 시작한 다음 PHP 스크립트를 호출 할 수 있지만 Apache에서 실행되지는 않습니다.

공유 메모리는 몇 가지 선택이 있습니다. 플랫 파일, 데이터베이스 또는 Memcached를 사용하는 것이 가장 휴대용 일 것입니다. 일부 설치에는 다음과 같습니다 공유 메모리 기능은 활성화되었지만 보장되지는 않습니다.

다른 팁

PHP는 스크립트에서 공유되는 글로벌 캐시를 제공하지 않습니다. 요구 사항에 따라 다양한 방식으로 작업 할 수 있습니다.

컴퓨팅 비용이 많이 들지 않는 전역 상수를 설정하려면 이러한 상수를 정의하는 스크립트를 작성한 다음 요청 된 파일 전에이 스크립트를 자동으로 실행할 수 있습니다. 이것은 그것을 사용하여 수행됩니다 auto_prepend_file 옵션 php.ini에서.

비싼 값을 계산하는 경우 사용할 수 있습니다. memcached 모든 PHP 스크립트에서 액세스 할 수있는 글로벌 캐시로 거기 있습니다 여러 클라이언트 API PHP를 사용하여 Memcached에 연결합니다.

물론, 당신은 또한 글로벌 가치를 사용자 세션 이러한 값이 사용자 당 인 경우. 또는 MySQL을 사용하십시오.

일종의 MVC 프레임 워크를 사용하는 경우 변수를 정의하고 매번 파일을로드 할 수 있습니다. $ globals [ 'var_name'] = $ value를 사용할 수 있습니다. 해당 요청 중에 다른 파일에서 액세스하십시오.

실행되는 각 PHP 스크립트 인스턴스에는 고유 한 글로벌 변수, 함수, 상수 등이 있습니다. 한 스크립트 인스턴스에서 다른 스크립트 인스턴스로 직접 변수를 복사 할 수있는 방법이 없습니다. 그러나 파일, 데이터베이스 또는 Memcached와 같은 간접적 인 방법이 있습니다.

당신이 사용하는 경우 몇 가지 하위 시스템을(APC 공유 메모리거나 심지어는 몇 가)실행할 수 있습 데이터 생성기 스크립트에 자동으로 아파치를 시작해서 편집 시작 시 스크립트(/etc/init.d/[apache2|httpd]).예를 들어로 추가할 수 있습니다 컬 또는 wget 요청해 발전기는 스크립트 후 바로 시작|재시작합니다.

작은 확률이지 초기화 상태에서 첫 번째'외부의 요구지만,나는'n 는지 확인할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top