CakePHP и EasyPHP

Я новичок в PHP и столкнулся с некоторыми проблемами.

Я использую EasyPHP (DevServer 14.1 -> PHP 5.5.8 и Apache 2.4.7) и CakePHP (2.5.1).

Что ж, если я помещу файлы CakePHP в "C:\Program Files\EasyPHP\data\localweb\" (тогда это будет, например, "C:\Program Files\EasyPHP\data\localweb\cake

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>
0..."), работает нормально, как надо.

Проблема в том, что я хотел бы использовать псевдоним на EasyPHP, потому что я не хочу развиваться в "C:\Program Files...". Но когда я помещаю файлы CakePHP в корень моего приложения (например, C:\myapps\myproject..." с псевдонимом, установленным на EasyPHP), я получаю "Ошибка 404". Теперь я обнаружил, что если я удалю файл .htaccess из корня, он работает. Но я уверен, что этот файл по какой-то причине существует, поэтому я не считаю правильным просто удалить его - позже это может создать мне больше проблем.

Кто-нибудь знает что-нибудь об этом? Могу ли я использовать псевдоним на EasyPHP, если я хочу использовать CakePHP? Заранее спасибо.


Отредактировано

Это мой apache_alias.conf (C:\Program Files\EasyPHP-DevServer-14.1VC11\data\conf):

Alias "/cakeblogtutorial" "C:/Programacao/PHP/workspace/CakeBlogTutorial"
<Directory "C:/Programacao/PHP/workspace/CakeBlogTutorial">
Options FollowSymLinks Indexes
AllowOverride All
Order deny,allow
Allow from 127.0.0.1
Deny from all
Require all granted
</Directory>


Это мой .htaccess (C:\Programacao\PHP\workspace\CakeBlogTutorial):

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


В моем httpd.conf (C:\Program Files\EasyPHP-DevServer-14.1VC11\binaries\conf_files), относительно mod_rewrite (другими словами, без комментариев):

LoadModule rewrite_module modules/mod_rewrite.so


Последние строки в error.log (C:\Program Files\EasyPHP-DevServer-14.1VC11\binaries\apache\logs):

[Mon Jun 02 14:27:48.093057 2014] [:error] [pid 4284:tid 848] [client 127.0.0.1:62831] script 'C:/Program Files/EasyPHP-DevServer-14.1VC11/data/localweb/index.php' not found or unable to stat
[Mon Jun 02 14:34:59.319532 2014] [mpm_winnt:notice] [pid 1992:tid 312] AH00424: Parent: Received restart signal -- Restarting the server.
[Mon Jun 02 14:34:59.982390 2014] [mpm_winnt:notice] [pid 1992:tid 312] AH00455: Apache/2.4.7 (Win32) PHP/5.5.8 configured -- resuming normal operations
[Mon Jun 02 14:34:59.982390 2014] [mpm_winnt:notice] [pid 1992:tid 312] AH00456: Apache Lounge VC11 Server built: Nov 21 2013 20:13:01
[Mon Jun 02 14:34:59.982390 2014] [core:notice] [pid 1992:tid 312] AH00094: Command line: 'C:\\PROGRA~1\\EASYPH~1.1VC\\binaries\\apache\\bin\\eds-httpd.exe -d C:/Program Files/EasyPHP-DevServer-14.1VC11/binaries/apache'
[Mon Jun 02 14:34:59.988391 2014] [mpm_winnt:notice] [pid 1992:tid 312] AH00418: Parent: Created child process 6588
[Mon Jun 02 14:35:01.279844 2014] [mpm_winnt:notice] [pid 6588:tid 364] AH00354: Child: Starting 64 worker threads.
[Mon Jun 02 14:35:01.523147 2014] [mpm_winnt:notice] [pid 4284:tid 364] AH00364: Child: All worker threads have exited.


Последние строки в access.log (C:\Program Files\EasyPHP-DevServer-14.1VC11\binaries\apache\logs):

127.0.0.1 - - [02/Jun/2014:15:09:50 -0300] "GET /cakeblogtutorial HTTP/1.1" 301 242
127.0.0.1 - - [02/Jun/2014:15:09:50 -0300] "GET /cakeblogtutorial/ HTTP/1.1" 404 1156

person talihubner    schedule 30.05.2014    source источник
comment
Ваш 404 должен иметь описание в журнале apache, чтобы понять, что пошло не так. Вы также не показываете свой файл конфигурации псевдонима, не говорите, если вы включили mod_rewrite, если вы проверили разрешения, это может быть много вещей.   -  person user221931    schedule 01.06.2014
comment
@user221931 user221931 Я добавил дополнительную информацию, как вы и предложили. У вас есть хоть какая-то подсказка сейчас? Я действительно почти ничего не знаю о конфигурации...   -  person talihubner    schedule 02.06.2014
comment
Это помогает, но не похоже на ошибку неправильной настройки apache. Пожалуйста, добавьте лог приложения (C:/Programacao/PHP/workspace/CakeBlogTutorial/tmp/log/error.log) в свое сообщение.   -  person user221931    schedule 02.06.2014
comment
@ user221931 Файл error.log (C:\Programacao\PHP\workspace\CakeBlogTutorial\app\tmp\logs) пуст. Я искал ответы, и я нашел предложение по аналогичной ошибке, чтобы поместить строку RewriteBase /cakeblogtutorial в файл .htaccess. Я пробовал, и это сработало. Но опять же, я не уверен, что это правильно. Я рад, что нашел способ, с помощью которого он работает, но не удовлетворен, потому что позже он может снова пойти не так.   -  person talihubner    schedule 02.06.2014
comment
Я не уверен, но я думаю, что правильный путь к каталогу Windows содержит обратную косую черту. ‹Каталог C:\Programacao\PHP\workspace\CakeBlogTutorial›   -  person Salines    schedule 02.06.2014
comment
Но это было автоматически сгенерировано, поэтому я полагаю, что это правильно...   -  person talihubner    schedule 03.06.2014


Ответы (1)


Думаю, я нашел ответ, и если да, то RewriteBase — правильный выбор. С веб-сайта CakePHP (http://book.cakephp.org/2.0/en/installation/url-rewriting.html):

Во многих службах хостинга (GoDaddy, 1 и 1) ваш веб-сервер фактически обслуживается из пользовательского каталога, который уже использует mod_rewrite. Если вы устанавливаете CakePHP в пользовательский каталог (http://example.com/~username/cakephp/) или любую другую структуру URL, которая уже использует mod_rewrite, вам потребуется добавить операторы RewriteBase в файлы .htaccess, которые использует CakePHP (/.htaccess, /app/.htaccess, /app/webroot/.htaccess).

person talihubner    schedule 04.06.2014