部署CakePHP网站失败。 apache2配置问题?

时间:2016-03-07 15:09:58

标签: apache .htaccess cakephp

我是第一次部署CakePHP(1.3.2)网站。它托管在较旧的服务器上。我收到了一个zip文件项目。我设法将它安装在我的localhost上并进行了我需要的更改。

现在我必须将它部署到新服务器,但我遇到了问题。

路由似乎不起作用。我想这是一个.htaccess问题。

当我访问根文件夹时,它会将我重定向到/login但是我有一个404:

  

在此服务器上找不到请求的URL /登录信息。

我的3个主要.htaccess文件(//app/app/webroot)如下。 (CakePHP安装在我的虚拟主机的根目录下)

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

/应用

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

/应用/根目录

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

mod_rewrite似乎在我的服务器上被激活,因为当我尝试添加它时它会响应:

  

模块重写已启用

但是当我在我的根.htaccess之上尝试这样简单的事情时,它并没有做任何事情:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^.*$ test.php
</IfModule>

(我遵循了这个指南:https://docs.bolt.cm/howto/making-sure-htaccess-works

在很多事情中,我也尝试将其添加到我的所有.htaccess

  

选项索引

但它没有帮助。

这也是我的网站配置文件:

<VirtualHost xx.x.xx.xx:80>
ServerAdmin xxx@company.com
ServerName xxx.company.com
DocumentRoot /var/www/xxx.company.com

DirectoryIndex index.html index.php

php_value error_log "/var/log/apache2/xxx.company.com-phperror.log"
php_flag register_globals off

<Directory "/var/www/xxx.company.com">
   Options Indexes FollowSymLinks
   AllowOverride All
   Order allow,deny
   Allow from all
</Directory>

ErrorLog /var/log/apache2/xxx.company.com-error.log
CustomLog /var/log/apache2/xxx.company.com-access.log common

</VirtualHost>

(我添加了首先不在这里的目录部分)

经过大量的试验,我仍然没有找到任何可以解决我问题的方法。

由于我绝对不习惯在服务器端工作,因此您可能会立即发现这一点很简单。我希望如此。

由于

1 个答案:

答案 0 :(得分:0)

我终于开始工作了。以下是我犯的两个错误:

  • 我的文档root set cake的根文件夹而不是webroot文件夹。我在/app/webroot文件中DocumentRoot /var/www/xxx.company.com之后添加了.conf
  • 另外,我使用的是apache的重装功能,实际上没有正确重装。使用service apache2 restart代替工作。