CakePHP на общем сервере Windows Plesk
Мне интересно, можно ли заставить CakePHP работать на общем сервере Windows Plesk?
Я извлек файлы CakePHP в папку /httpdocs/ и создал файл web.config в соответствии с инструкциями в документах CakePHP, однако все, что я, похоже, получаю, это "Внутренняя ошибка сервера". Мне также нужно настроить базу данных MySQL перед просмотром основных страниц конфигурации Cake или она должна мне что-то показать без какой-либо настроенной базы данных?
Я настроил свой сайт для запуска PHP 5.4.32 (FastCGI).
Сообщается об ошибке:
Неустранимая ошибка PHP: Вы должны включить расширение intl для использования CakePHP. в C:\Inetpub\vhosts\example.com\httpdocs\config\bootstrap.php в строке 38
Однако мой хост сказал, что они пытались указать путь к каталогу, где php_intl.dll присутствует, но это не решило проблему вопрос.
Приветствия,
Пит
4 answers
Вот как это делается в Cakephp 2.x
После настройки вашего веб-пространства вам не нужно изменять или портить конфигурацию php (если php установлен по умолчанию для этого веб-пространства) и когда вы создаете web_space в Plesk, сервер Plesk обычно делает все за вас.
Но если вам нужно настроить приложение CakePHP на сервере Plesk, вам необходимо выполнить следующие действия:
- Корневой каталог
При создании нового DNS или web_space Plesk создаст для вас структуру каталогов, в которой вам нужно разместить свое приложение в созданном каталоге и настроить htaccess в этих папках следующим образом (просто добавьте "/" в пути):
CakePHP root directory (must be copied to your document; redirects everything to your CakePHP app and updated to):
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L] #to=> /app/webroot/
RewriteRule (.*) app/webroot/$1 [L] #to=> /app/webroot/$1
</IfModule>
CakePHP app directory (will be copied to the top directory of your application by bake):
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L] #to=> /webroot/
RewriteRule (.*) webroot/$1 [L] #to=> /webroot/$1
</IfModule>
CakePHP webroot directory (will be copied to your application’s web root by bake):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L] #to=> /index.php
</IfModule>
- База данных
Конечно, вам нужно будет настроить свою базу данных.
Для этого вам необходимо настроить новую базу данных для вашего приложения на сервере plesk, а затем получить:
- ip-адрес базы данных
- имя базы данных
- база данных имя пользователя
- пароль базы данных
И обновите свой app/Config/database.php с новыми данными базы данных. как вы, должно быть, знаете:
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'ip address here',
'login' => 'database username',
'password' => 'database password',
'database' => 'database name'
);
Надеюсь, это поможет
Мне также нужно настроить базу данных MySQL перед просмотром основных страниц конфигурации Cake или она должна быть в состоянии показать мне что-то без какой-либо настроенной базы данных?
Нет, не знаешь. Даже без предварительной настройки бд будет загружена домашняя страница по умолчанию. Это просто выдаст вам окно сообщения о том, что бд не настроена.
Отсутствие расширения "intl" является вашей основной проблемой. Тебе нужно это исправить. У меня нет никакого опыта работы с plesk в Windows, поэтому я не могу помочь ты с этим. Хотя я бы посоветовал использовать сервер на базе Linux, чтобы облегчить вам жизнь.
Расширение Php_intl по умолчанию отключено для всех обработчиков PHP Plesk:
Вы можете включить его в
C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP54\php.ini
Просто найдите и раскомментируйте эту строку:
;extension=php_intl.dll
Спасибо всем, кто ответил на мой вопрос.
Я вернулся к CakePHP версии 2.6.7 вместо 3.x и, следуя инструкциям в сообщении Fury, я смог успешно добиться некоторого прогресса и загрузить базовую страницу CakePHP.
Надеюсь, кто-то с немного большими знаниями сможет придумать руководство для тех, кто хочет запустить его с v3.x в Windows Plesk, поскольку я заметил, что существует другая структура каталогов и т.д.
Приветствия,
Питер