문제

OpenBSD의 chrooted 기본 Apache에서 xinc가 올바르게 실행되도록 할 수 있는 사람이 있습니까?개발 서버를 프로덕션 서버처럼 완전히 루트된 상태로 유지하여 코드가 루트된 상태로 제대로 실행되도록 하고 싶습니다.

도움이 되었습니까?

해결책

Xinc에 문제를 게시하셨나요? 버그 추적기?Xinc 자체는 데몬과 웹 앱으로 모두 실행되므로 잘 실행되어야 합니다.언급했듯이 문제는 웹 인터페이스와 같이 chroot 환경에서 데몬이 실행되지 않아 어느 쪽이든 파일을 가져오지 못하는 것일 수 있습니다.

다른 팁

@dragonmantank

Xinc의 경우에는 PEAR를 사용하여 설치해 주시길 바랍니다.

pear list-files xinc/Xinc

이렇게 하면 Xinc 설치가 파일을 저장한 위치가 표시됩니다.따라서 Xinc는 하나의 큰 PHP 스크립트일 뿐이지만 여전히 rc 스크립트와 애플리케이션을 실행하는 데 필요한 기타 모든 항목으로 분산되어 있습니다.거기에 나열된 모든 경로를 추가할 필요는 없지만 아마도 실행하려면 일부 경로를 추가해야 할 것입니다.

Xinc 자체 외에도 실행하려면 phpUnit과 다른 PEAR 라이브러리도 필요하다고 생각합니다. 따라서 제가 제안하는 것은 다음과 같습니다.

pear config-get php_dir

그런 다음 해당 경로(Henrik이 제안한 것처럼)를 chroot 환경에 추가해야 합니다.

xinc를 직접 사용해 본 적이 없기 때문에 일반적으로 앱을 chrooting하는 방법에 대해서만 힌트를 드릴 수 있습니다.

첫 번째 단계는 앱을 실행하는 데 필요한 모든 정보를 수집하는 것입니다.나는 보통 다음을 실행하여 이 작업을 수행합니다. 시스테이스(1) 그리고 ldd(1) 소프트웨어를 실행하는 데 필요한 것이 무엇인지 알아보세요.

출력을 통해 이동

systrace -A -d. <app>
ldd <app>

그리고 앱이 다루고 필요로 하는 모든 것(상당히 많은 앱이 실제로 필요하지 않은 것들을 터치함)이 chroot 환경에서 사용 가능한지 확인하십시오.구성과 환경 변수를 약간 조정해야 할 수도 있습니다.또한 앱을 syslog에 기록하는 옵션이 있는 경우 일반적으로 그렇게 하고 syslog 소켓을 만듭니다(-a 옵션 참조). syslogd(8)) 앱에 쓰기 액세스가 필요한 위치를 줄이기 위해.

방금 설명한 것은 chroot 환경에서 거의 모든 프로그램을 실행하는 일반적인 방법입니다(그러나 사용자 영역의 절반과 일부 suid 명령을 가져와야 하는 경우 chroot를 수행하지 않는 것이 좋습니다 :).Apache에서 실행되는 앱의 경우(OpenBSD가 httpd(8) 약간 다름) 옵션이 있습니다(프로그램이 시작되면;동적 라이브러리는 여전히 감옥에 있어야 함) 파일에 액세스하기 위해 아파치를 사용하여 다음을 사용할 수 있습니다. httpd.conf 실제로 리소스를 복사하지 않고 chroot 환경에서 리소스를 가져옵니다.

또한 유용합니다(약간 오래된 경우). 이것 링크, OpenBSD에서 chroot된 PHP의 몇 가지 문제를 간략하게 설명합니다.

첫 번째 단계는 앱을 실행하는 데 필요한 모든 정보를 수집하는 것입니다.나는 보통 systrace(1)와 ldd(1)를 실행하여 소프트웨어를 실행하는 데 필요한 것이 무엇인지 알아냄으로써 이를 수행합니다.

나는 이것을 시도해 볼 것이다.xinc에서 발견한 가장 큰 문제는 PHP 애플리케이션인 동시에 애플리케이션 설치 경로를 알고 싶어하고(그래도 여전히 다른 폴더에 항목이 퍼져 있음) 일부 PHP 스크립트를 데몬 모드에서 실행한다는 것입니다(해당 스크립트는 실행하기 가장 어렵습니다). 달려라).예를 들어, /var/www/xinc에 설치하라고 지시한 다음 다음과 같은 심볼릭 링크를 만들었습니다.

/var/www/var/www/xinc -> /var/www/xinc

부분적으로 작동했습니다.GUI가 나타나서 내가 설정한 프로젝트를 인식하지 못했습니다.가장 큰 문제는 그 중 일부는 chroot를 실행하고 나머지 절반은 외부에서 실행된다는 것입니다.

다른 모든 방법이 실패하면 프로덕션이 chrooted되므로 chrooted 환경 내에서 프로그래밍하면서 무언가를 빌드해야 합니다.우리는 chroot 외부에서 코딩한 다음 chroot 내부에서 작동하도록 만드는 데 필요한 것을 찾기 위해 역추적해야 하는 문제에 직면했습니다.

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