일반적인 구성을 유지하려는 2 대의 Mac이 있습니다. 아파치와 PHP의 경우, 보관 용 파일 (httpd.conf와 php.ini)을 보관 상자 (~/Dropbox/config
)에 저장하고 symlink를 사용하여 공유 위치를 예상 위치에서 참조합니다.include_path를 공유 php.ini 파일에 설정
마찬가지로, 같은 방식으로 몇 가지 코드베이스를 공유합니다. 실제 파일은 ~/Dropbox/Development
에 있으며 ~/Development/
에 링크되어 있습니다. 이제는 유틸리티 클래스 라이브러리를 공유해야하며이를 수행하는 방법을 알 수 없습니다. 문제는 재생중인 모든 디렉토리가 홈 디렉토리에 있고 사용자 이름이 각 시스템마다 다르다는 것입니다. 하나는 ~/rwilkerson
이고 다른 하나는 ~/rob
입니다.
내 php.ini에서 어떻게 해결할 수 있습니까? 내 httpd.conf에서 환경 변수를 사용하여 그렇게했습니다. 예를 들어 가상 호스트 설정 파일에서 웹 루트를 /Users/${SUDO_USER}/path/to/webroot
으로 설정할 수 있습니다. sudo를 사용하여 아파치 (sudo apachectl restart
)를 다시 시작했기 때문에, 환경 변수는 현재 사용중인 머신의 적절한 사용자 이름으로 평가됩니다.
내가 알 수있는 한, 비슷한 방법으로 php.ini에서 변수를 사용할 수 없습니다. 나는 단순히 내 include_path
에 두 경로를 모두 포함한다면 PHP는 주어진 컴퓨터에 존재하지 않는 경로를 무시할 뿐이라고 생각하지는 않습니다. 내 공유 라이브러리는 올바른 경로가 앞에 표시되고 앞에 잘못된 경로가있는 경우에만 포함됩니다.
include_path
지시어가 어떻게 작동하는지 뉘앙스가있는 리소스를 찾을 수 없으므로이 명백한 제한을 피할 방법이 없습니다. 누구든지 아이디어가 있습니까?
답 : 나는 아래 StasM의 솔루션 # 1을 사용하여 종료
. 그 오버라이드에게 php.ini
의 값을하는
php_value include_path "/opt/local/lib/php:${HOME}/Dropbox/Development/lib/php/classes"
을 아름답게했다 : 내 httpd.conf 파일에서 (또한 공유), I 덧붙였다.
필자는 일종의'include_path'가 존재하지 않는 디렉토리도 무시한다고 생각하지만 그럴 것 같지 않습니다. 당신이 확인했기 때문에, 나는 그것에 대해 좀 더 테스트 할 것입니다. 어쩌면 방금 충분히 수표를 찍지 않았을 수도 있습니다. "httpd.conf"아이디어는 좋은 생각이다. 왜 내가 그렇게 생각하지 않았는지 모르지만,'php_value include_path' _append_ include 경로에 그것을 덮어 쓰는 대신에 가질 수있는 방법이 있습니까? –
그래, 그냥 작동하지 않는 것 같습니다. 내'include_path'에서'/ Users/rob/Dropbox/dev/lib/php/classes '앞에'/ Users/rwilkerson/Dropbox/dev/lib/php/classes'를 가지고 있다면 (홈 디렉토리가'/Users/rob' 클래스가로드되지 않습니다. 순서를 바꾸면 –
버그가있는 것 같습니다. 재생산 문제를 bugs.php.net에 제출하고 싶습니까? – StasM