2016-03-07 94 views
0

我第一次部署CakePHP(1.3.2)网站。它托管在较旧的服务器上。我以zip文件的形式收到了该项目。我设法将它安装在我的本地主机上,并进行了我所需的更改。部署CakePHP网站失败。 apache2配置问题?

现在我必须将它部署到新的服务器,但是我面临一个问题。

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

当我访问根文件夹,它重定向我/login但后来我有一个404:

所请求的网址/登录此服务器上找到。

我的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

期权指数

但它并没有帮助。

这里是我的网站的conf文件过:

<VirtualHost xx.x.xx.xx:80> 
ServerAdmin [email protected] 
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> 

(我添加了目录部分,这是不是在这里摆在首位)


大量试验后,我还是避风港没有发现任何似乎解决我的问题的东西。

因为我绝对不习惯在服务器端工作,所以您可能会马上发现一件简单的事情。但愿如此。

谢谢

+0

打开'app/config/core.php'中的调试模式,以便获取实际的错误信息,而不是找不到URL。 – ADmad

+0

嘿ADmad。谢谢您的回答。但是我已经将调试模式设置为2:'Configure :: write('debug',2);' –

+0

然后调试模式必须在代码的其他地方重置。有了调试,你会得到一个具体的例外与细节,而不是“URL未找到” – ADmad

回答

0

我终于得到它的工作。这是我犯的两个错误:

  • 我有我的文档根设置蛋糕的根文件夹,而不是webroot文件夹。我在.conf文件中的DocumentRoot /var/www/xxx.company.com之后加了/app/webroot
  • 此外,我使用的是Apache的重载功能,实际上没有正确重装。用service apache2 restart代替这个工作。