Symfony 3.1:请求app_dev.php或app.php时出错

林要求sorial/app_dev.php时得到这个:

 Not Found The requested URL /app_dev.php/ was not found on this server. 

当请求sorial/app.php

注销(); $ apcLoader->寄存器(真); * / $ kernel = new AppKernel('prod',false); $内核级> loadClassCache(); // $ kernel = new AppCache($ kernel); //使用HttpCache时,需要在前端控制器中调用方法,而不是依赖于configuration参数// Request :: enableHttpMethodParameterOverride(); $ request = Request :: createFromGlobals(); $ response = $ kernel-> handle($ request); $响应 – >发送(); $ kernel-> terminate($ request,$ response);

我在Ubuntu 14.04和Apache 2.4上

编辑:这是我的虚拟主机:

 <VirtualHost *:80> ServerName sorial #ServerAlias sorial.es DocumentRoot /var/www/sorial/web DirectoryIndex app.php #SetEnv SYMFONY__DATABASE__PASSWORD jander <Directory /var/www/sorial/web/> # Options Indexes FollowSymLinks MultiViews AllowOverride All #Order allow,deny #allow from all Require all granted FallbackResource /index.php # BEGIN EXPIRES <IfModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 10 days" ExpiresByType text/css "access plus 1 week" ExpiresByType text/plain "access plus 1 month" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType application/x-javascript "access plus 1 month" ExpiresByType application/javascript "access plus 1 week" ExpiresByType application/x-icon "access plus 1 year" </IfModule> # END EXPIRES </Directory> </VirtualHost> 

而我的文档根目录是/var/www/sorial/web

事实是我对我的其他网站有同样的问题。 当我尝试使用a2dismod env禁用/启用env_mod时,问题就开始了,因为当添加variablesa2dismod env时(正如你可以在我的虚拟主机中看到的那样),我得到

作业apache2.service失败,因为控制进程退出错误代码。 有关详细信息,请参阅“systemctl status apache2.service”和“journalctl -xe”。

当重新启动Apache。

我终于解决了我的问题安装php5和libapache2-mod-php5是这样的: sudo apt-get install php5 libapache2-mod-php5

我终于解决了我的问题安装php5和libapache2-mod-php5是这样的:sudo apt-get install php5 libapache2-mod-php5 – @ziiweb

您收到的错误通常是由于丢失或损坏的配置文件造成的。

作业apache2.service失败,因为控制进程退出错误代码。 有关详细信息,请参阅“systemctl status apache2.service”和“journalctl -xe”。

journalctl命令可用于查看更多详细信息。

 $ journalctl | tail AH00526: Syntax error on line 5 of /etc/apache2/sites-enabled/mydomain-wsf.lan.conf 

你也可以做一个Apache配置测试。

 $ apachectl configtest Syntax OK $ sed -i 's/SetEnv/SetEnvFoobar/' /etc/apache2/sites-enabled/test.conf $ apachectl configtest AH00526: Syntax error on line 12 of /etc/apache2/sites-enabled/test.conf: Invalid command 'SetEnvFoobar', perhaps misspelled or defined by a module not included in the server configuration Action 'configtest' failed. The Apache error log may have more information. 

apachectl graceful命令也是非常有用的。 它重新启动Apache, 但首先运行一个configtest “启动重新启动之前确保Apache不会死。

apachectl graceful

正常地重新启动Apache httpd守护进程。 如果守护进程没有运行,则启动它。 这与正常重启的不同之处在于当前打开的连接不会中止。 副作用是旧的日志文件不会立即关闭。 这意味着如果在日志轮转脚本中使用,则可能需要大量的延迟才能确保在处理旧日志文件之前关闭旧日志文件。 这个命令在启动重启之前自动检查configtest的配置文件,以确保Apache不会死亡。 这相当于apachectl -k graceful

– Apache文档

重新安装软件可以工作,因为它将修复任何缺少的配置文件。

 $ apt-get install --resinstall libapache2-mod-php5 php5 

另一种方法, 这里指出 ,是清除,然后安装。 但是, purge是一个破坏性的命令意味着它将删除所有现有的配置文件是非常重要的。 这几乎相当于全新的安装。

 $ apt-get purge libapache2-mod-php5 php5 $ apt-get install libapache2-mod-php5 php5 

好吧,我有同样的问题使用Debian与Apache作为服务器。 尝试在Web目录中替换您的.htaccess并清除缓存。

 DirectoryIndex app.php <Ifmodulee mod_negotiation.c> Options -MultiViews </Ifmodulee> RewriteEngine On RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$ RewriteRule ^(.*) - [E=BASE:%1] RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteRule ^app_dev.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L] RewriteCond %{REQUEST_FILENAME} -f RewriteRule .? - [L] RewriteRule .? %{ENV:BASE}/app_dev.php [L] 

这应该是你的虚拟主机

 <VirtualHost *:80> serverName sorial DocumentRoot /var/www/sorial/web <Directory /var/www/sorial/web> AllowOverride All Order Allow,Deny Allow from All </Directory> ErrorLog /var/log/apache2/project_error.log CustomLog /var/log/apache2/project_access.log combined </VirtualHost> 

其实,在我的配置我使用.htaccess文件,我看到你已经注释掉了选项行。 我想知道你有没有这个理由?

如果没有,我会建议像这样取消注释:

 <Directory /var/www/sorial/web/> Options Indexes FollowSymLinks MultiViews 

看看是否有效。