cakephp在Ubuntu上不起作用

时间:2012-05-31 14:12:02

标签: apache cakephp mod-rewrite cakephp-2.1

所有。这次我尝试使用cakephp,但是我的“服务器上没有正确配置URL重写.1)帮我配置它2)我不能/不能使用URL重写”。我可以知道这是apache和.htaccess问题,例如/ etc / apache2 / sites-avaliable / default和每个目录.htaccess。

我的开发环境......

  • vmware fusion4上的Ubuntu12.04
  • apache2.2.22
  • mysql5.5
  • php5.3.10
  • cakephp2.1

遵循我的流程......

1)/etc/apache2/httpd.conf

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>

2)启用mod_rewrite

sudo a2enmod rewrite
sudo service apache2 reload

3)编辑/ etc / apache2 / sites-avaliable / default(AllOverride None to AllOverride All)

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>

prompt: sudo service apache2 reload

4)编辑或检查每个.htaccess文件 - &gt;蛋糕根目录

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

- &gt; app根目录

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

- &gt; webroot目录

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

这个问题解决了,谢谢。

3 个答案:

答案 0 :(得分:6)

我也有这个问题。原来 .htaccess 文件没有被复制到cakePHP源旁边。这是使用cp命令或在文件浏览器中没有隐藏文件时的常见问题,除非您复制顶级目录。

将文件直接复制到我的项目文件夹,为我修复了它,而不必弄乱我的apache设置。

cp ~/git/cakePHP/.htaccess ~/project/folder/

答案 1 :(得分:0)

可能的配置错误:

检查文件http://your_domain_name/css/cake.generic.css是否可以从浏览器中重新获取。如果没有,您将在Default-Homepage

中收到警告

如果您在根级别有 {HOME}/css 目录,则UrlRewriting不会将http://your_domain_name/css/cake.generic.css重定向到{HOME}/app/webroot/css/cake.generic.css

因此找不到css-File,导致没有正确配置URL重写的消息。 (查看文件app / View / Pages / home.cpt)

解决方案:在根级别完全删除{HOME}/css目录。将您的css-File放在{HOME}/app/webroot/css

答案 2 :(得分:-1)

这可能是文件权限问题。尝试以递归方式为webroot和tmp目录设置777的权限。 tmp目录可能需要sudo。

sudo chmod -R 777 /path/to/app/webroot/
sudo chmod -R 777 /path/to/app/tmp/