2013-02-16 3 views
2

Mac에서 XAMPP를 사용하여 로컬 Silex 프로젝트를 설정했습니다. 모든 것이 잘 작동합니다. 이제 Amazon EC2 서버에 파일을 업로드하고 실행하려고했습니다. 나는 항상 PHP errormessage를 얻는다.php/silex를 사용하여 "클래스를 찾을 수 없음"

"Fatal error: Class 'Silex\Application' not found in /opt/bitnami/apps/..." 

나는 의존성을 처리하기 위해 Composer를 사용하고있다. 내 파일의 첫 번째 줄은 다음과 같습니다.

<?php 
require_once __DIR__.'/../vendor/autoload.php'; 

$app = new Silex\Application(); 
$app['debug'] = true; 

누구나 단서를 가지고 해결할 수 있습니까? 어디에서 문제가있을 수 있습니까?

고맙습니다. 건배

+0

이것은 오토로더에 문제가 있음을 의미합니다. 공급 업체 디렉토리를 삭제하고 작곡가를 통해 다시 설치하려고 했습니까? – Maerlyn

+0

git을 통해 배포하는 방법을 사용하고 있습니까? 공급 업체 디렉토리를 버전 관리에 맡기고 있습니까? – igorw

+0

@Maerlyn : 지금까지 autoload-file을 삭제하고 다시 생성했습니다. 아직 전체 디렉토리가 아닙니다. 나는 그것을 시험해 보았다. – user1879408

답변

7

일종의 git 기반 배포 프로세스를 사용하고 있습니다.

현재 silex의 태그가있는 안정적인 릴리스가 없습니다 (EDIT : 현재까지 존재). 결과적으로, 작곡가는 소스에서 그것을 설치할 것이고, 그 결과 silex github 저장소는 vendor/silex/silex으로 복제됩니다. 그 폴더가 git repo 그 자체이기 때문에, 그 파일들은 주 repo에 추가 될 수 없습니다. 즉, 서버에서 vendor/silex/silex 디렉토리가 존재하지 않는다는 의미입니다.

당신이 정말로, 당신은 우편 아카이브에서 SILEX 설치를 강제 할 --prefer-dist 플래그와 composer install를 실행하는 디렉토리가 자식의 repo에 추가 할 수 있도록의 수정을 적용 할 수 있습니다 할 합니다.

하지만 저는 버전 관리에 공급 업체를 투입해서는 안됩니다. 이것은 또한 작곡가 자주 묻는 질문에이 항목이 적용됩니다 : 당신의 .gitignorevendor를 추가하고 CI 및 배포 프로세스의 일부로 composer install를 실행하는 것이 좋습니다

.

+0

완벽한! 나는 그것을 시도 할 것인데, 해결책과 같게 들린다! 고마워요! – user1879408

+0

Rock'n'Roll ... 이제 모든 것이 잘 작동합니다! 감사! – user1879408

+0

위대한 답변, 감사합니다! – kendepelchin

관련 문제