
각 폴더마다 여러 개의 가상 호스트가 있습니다. 단일 공유 폴더:
/home/website1
/home/website2
/home/website3
/home/shared_src
Symlink는 잘 작동합니다내부에각 폴더는 "codebase"라는 웹사이트별 폴더로 이동됩니다.
"codebase" 폴더를 /home/shared_src에 복사했으며 심볼릭 링크를 사용하여 다른 웹사이트 각각에서 /home/shared_src_codebase에 액세스하고 싶습니다. 하지만 이것을 수행하면 다음과 같은 결과를 얻게 됩니다.
PHP Fatal error: Cannot redeclare class [patch and class...]
웹 루트 외부의 shared_src 폴더에 대한 심볼릭 링크를 허용하려면 Apache 구성에 무엇을 추가해야 합니까?
아파치에 대해 이 작업을 수행해야 합니다.데비안 서버. 여기에 설명된 대로 별칭을 사용해 보았습니다. 그게 트릭이 아니거나 내가 잘못한 것입니다. 웹 루트 외부 디렉토리에 대한 심볼릭 링크 보안이 777로 설정되어 있습니까?
내가 한때 사용했던 다른 시스템(CentOS 기반)에서는 설정이 PHPBaseDir이라고 불렸습니다. 데비안에서는 잘 모르겠네요...
더 자세한 정보로 업데이트
주로 버그는 웹사이트 폴더 내의 실제 폴더와 동일한 이름의 폴더에 연결된 심볼릭 링크로 인해 발생했습니다.
/home/website1/typo3_src-6.2
/home/website/typo3_src -> /home/sharedsource/typo3_src-6.2 (symlink)
문제가 해결되었으며 이제 Apache 로그에서 다음을 얻습니다.
[Wed Jan 15 09:48:17 2014] [error] [client xx.xx.xx.xx] PHP Fatal error: require_once(): Failed opening required '/home/cstmr_opengate/band.opengate.dk/website/typo3_src-6.2.0beta3/typo3/sysext/core/Resources/PHP/TYPO3.Flow/Classes/TYPO3/Flow/Package/PackageManager.php' (include_path='/home/cstmr_opengate/band.opengate.dk/website/typo3/contrib/pear/:.:/usr/share/php:/usr/share/pear') in /home/x_src/typo3_src-6.2.0beta3/typo3/sysext/core/Classes/Core/ClassLoader.php on line 178
따라서 문제는 아마도 그 자체로 심볼릭 링크가 아닐 것입니다. 원인은 공유 폴더에 대한 심볼릭 링크를 따라가기 때문입니다. 심볼릭 링크를 사용한 후에 발생하는 오류입니다.
답변1
이를 수행하는 두 가지 Apache 방법이 있으며 다음 링크에서 찾을 수 있습니다. 아파치 문서
Option FollowSymlinks
기본적으로 섹션 의 를 사용
<directory>
하거나 디렉터리에 대한 별칭을 정의합니다.