我第一次部署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>
(我添加了目录部分,这是不是在这里摆在首位)
大量试验后,我还是避风港没有发现任何似乎解决我的问题的东西。
因为我绝对不习惯在服务器端工作,所以您可能会马上发现一件简单的事情。但愿如此。
谢谢
打开'app/config/core.php'中的调试模式,以便获取实际的错误信息,而不是找不到URL。 – ADmad
嘿ADmad。谢谢您的回答。但是我已经将调试模式设置为2:'Configure :: write('debug',2);' –
然后调试模式必须在代码的其他地方重置。有了调试,你会得到一个具体的例外与细节,而不是“URL未找到” – ADmad