I set up a Silex-project local using a XAMPP on Mac. Everything works fine. Now I uploaded the files to my Amazon ec2 server and tried to run it. I always get the php errormessage:
"Fatal error: Class 'Silex\Application' not found in /opt/bitnami/apps/..."
I'm using Composer to handle the dependencies. The first lines of my file look like this:
<?php
require_once __DIR__.'/../vendor/autoload.php';
$app = new Silex\Application();
$app['debug'] = true;
Anyone has a clue how to solve that? Where could there be a problem?
Thanks a lot! Cheers
As suspected, you are using some sort of git-based deployment process.
Currently there is no tagged stable release of silex (EDIT: as of now, there is). As a result, composer will install it from source, resulting in the silex github repository being cloned into vendor/silex/silex
. Since that folder is a git repo itself, those files cannot be added to your main repo. Which means that on your server the vendor/silex/silex
directory simply will not exist.
If you really want to, you can apply the fix of running composer install
with the --prefer-dist
flag, which will force to install silex from a zip archive, allowing the directory to be added to your git repo.
But I would say that you should not be committing your vendors into version control. This is also covered by this entry in the composer FAQ:
I suggest adding vendor
to your .gitignore
and running composer install
as part of your CI and deployment process.