cakePHP Файл не найден при использовании http://www.example.com/controller - PullRequest
0 голосов
/ 27 ноября 2011

Я пытаюсь установить cakePHP на мой локальный хост. Я использую Linux Mint, Apache, MySQL

В / etc / apache2 есть папки «conf.d», «mods-available», «mods-enabled», «ports.conf», «sites-available» и «sites-enabled»

Так как мой DocumentRoot - / var / www, но я хочу сохранить cakePHP в / home / works /. Итак,

(1.) Я создаю имя файла "cakephp" внутри /etc/apache2/sites-enabled.

(2.) Затем напишите

<VirtualHost *:80>
  DocumentRoot /home/works/cakephp/app/webroot
  ServerName local.ttt.cakephp
</VirtualHost>

(3.) После этого я редактирую файл / etc / hosts

127.0.0.1       localhost
127.0.0.1   local.ttt.cakephp

(4.) URL-адрес попытки: http://local.ttt.cakephp

Результат: он работает и CSS тоже загружен

(5.) Я пытаюсь сделать простое имя контроллера «Тесты». Затем попробуйте URL: http://local.ttt.cakephp/Tests

Результат: показывает

Not Found
The requested URL /Tests was not found on this server.
Apache/2.2.17 (Ubuntu) Server at local.ttt.cakephp Port 80

Мое решение:
(1.) проверьте файл rewrite.load в apache2 / mods-available В нем есть LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so и нет комментариев #

(2.) Измените «AllowOverride None» на «AllowOverride All» в файле apache2 / sites-available / default
Это будет

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

Результат: он не работает, по-прежнему показывать страницу «Не найдено».

Кто-нибудь знает в чем моя ошибка? Большое вам спасибо.

Ответы [ 2 ]

0 голосов
/ 28 сентября 2013

1.) Переместите тэг Directory в тэг VirtualHost:

<VirtualHost *:80>

    DocumentRoot /home/works/cakephp/app/webroot
    ServerName local.ttt.cakephp

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

</VirtualHost>

2.) Измените путь вашего тега Directory на путь вашего DocumentRoot:

    <Directory /home/works/cakephp/app/webroot/>

3.) В конце у вас должно получиться что-то вроде этого:

<VirtualHost *:80>

    DocumentRoot /home/works/cakephp/app/webroot
    ServerName local.ttt.cakephp

    <Directory /home/works/cakephp/app/webroot/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

</VirtualHost>

4.) Все это предполагает, что mod_rewrite включен.

Я почти уверен, что Mint имеет команду a2enmod, поэтому вы можете использовать ее:

sudo a2enmod rewrite

5.) Обязательно перезапустите apache.

sudo service apache2 restart

или

sudo /etc/init.d/apache2 restart

Надеюсь, это работает для вас.

0 голосов
/ 28 ноября 2011

Если вы не измените путь к каталогу:

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

на

<Directory /home/works/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...