我在请求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 应用程序缓存($内核); //使用HttpCache时,需要调用 前端控制器中的方法而不是依赖于 配置参数 //请求:: enableHttpMethodParameterOverride(); $ 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
。
事实是我对其他网站也有同样的问题。当我尝试使用env_mod
禁用/启用a2dismod env
时问题就出现了,因为在添加变量SetEnv
时(正如您在虚拟主机中看到的那样)我得到了
apache2.service的作业失败,因为控制进程已退出 错误代码。请参阅“systemctl status apache2.service”和“journalctl” -xe“了解详情。
重启apache时。
答案 0 :(得分:4)
我终于解决了我的问题安装php5和libapache2-mod-php5,如下所示:sudo apt-get install php5 libapache2-mod-php5
答案 1 :(得分:2)
我终于解决了我的安装php5和libapache2-mod-php5这样的问题:sudo apt-get install php5 libapache2-mod-php5 - @ziiweb
您收到的错误通常是由配置文件丢失或损坏引起的。
apache2.service的作业失败,因为控制进程退出并显示错误代码。请参阅&#34; systemctl status apache2.service&#34;和&#34; journalctl -xe&#34;详情。
journalctl
命令can be used以查看更多详情。
$ 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 &#34;以确保Apache不会死。&#34;
apachectl graceful
正常重启Apache
httpd
守护程序。如果守护程序未运行,则启动它。这与正常重启不同,因为当前打开的连接不会中止。副作用是旧的日志文件不会立即关闭。这意味着,如果在日志轮换脚本中使用,则可能需要大量延迟以确保在处理旧日志文件之前将其关闭。在启动重启之前,此命令会自动检查configtest
中的配置文件,以确保Apache不会死。这相当于apachectl -k graceful
重新安装软件可以正常工作,因为它可以修复任何丢失的配置文件。
$ apt-get install --resinstall libapache2-mod-php5 php5
另一个替代方法noted here是清除然后安装。 然而,知道purge
是破坏性命令非常重要,这意味着它将删除所有现有配置文件。这几乎相当于全新安装。
$ apt-get purge libapache2-mod-php5 php5
$ apt-get install libapache2-mod-php5 php5
答案 2 :(得分:1)
好吧,我使用Debian和apache作为服务器时遇到了同样的问题。尝试替换 web 目录中的 .htaccess 并清除缓存。
DirectoryIndex app.php
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
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>
答案 3 :(得分:1)
实际上,在我的配置中我使用.htaccess文件,我看到你已经注释掉了选项行。我想知道你是否有理由这样做?
如果没有,我会建议将其取消注释:
<Directory /var/www/sorial/web/>
Options Indexes FollowSymLinks MultiViews
看看是否有效。