open_basedir problems with APC and Symfony2
        Posted  
        
            by 
                Stephen Orr
            
        on Server Fault
        
        See other posts from Server Fault
        
            or by Stephen Orr
        
        
        
        Published on 2012-11-06T10:41:14Z
        Indexed on 
            2012/11/06
            11:05 UTC
        
        
        Read the original article
        Hit count: 402
        
I'm currently setting up a shared staging environment for one of our applications, written in PHP5.3 and using the Symfony2 framework.
If I only host a single instance of the application per server, everything works as it should.
However, if I then deploy additional instances of the application (which may or may not share the exact same code, dependent on client customisations), I get errors like this:
[Tue Nov 06 10:19:23 2012] [error] [client 127.0.0.1] PHP Warning:  require(/var/www/vhosts/application1/httpdocs/vendor/doctrine-common/lib/Doctrine/Common/Annotations/AnnotationRegistry.php): failed to open stream: Operation not permitted in /var/www/vhosts/application2/httpdocs/app/bootstrap.php.cache on line 1193
[Tue Nov 06 10:19:23 2012] [error] [client 127.0.0.1] PHP Fatal error:  require(): Failed opening required '/var/www/vhosts/application1/httpdocs/app/../vendor/doctrine-common/lib/Doctrine/Common/Annotations/AnnotationRegistry.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/vhosts/application2/httpdocs/app/bootstrap.php.cache on line 1193
Basically, the second site is trying to require the files from the first site, but due to open_basedir restrictions it can't do that. I'm not willing to disable open_basedir as that is only masking the problem instead of solving it, and creates a dependency between applications that should not be present.
I initially believed this was related to a Symfony2 error, but I've now tracked it down to an issue with APC; disabling APC also solves the error, but I'm concerned about the performance impact of doing so.
Does anyone have any suggestions on what I might be able to do?
© Server Fault or respective owner