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 присутствует, но это не решило проблему вопрос.

Приветствия,

Пит

Author: SHAZ, 2015-06-16

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'
    );

Вот как настроить Cakephp 3.x

Надеюсь, это поможет

 0
Author: Fury, 2015-06-19 10:11:10

Мне также нужно настроить базу данных MySQL перед просмотром основных страниц конфигурации Cake или она должна быть в состоянии показать мне что-то без какой-либо настроенной базы данных?

Нет, не знаешь. Даже без предварительной настройки бд будет загружена домашняя страница по умолчанию. Это просто выдаст вам окно сообщения о том, что бд не настроена.

Отсутствие расширения "intl" является вашей основной проблемой. Тебе нужно это исправить. У меня нет никакого опыта работы с plesk в Windows, поэтому я не могу помочь ты с этим. Хотя я бы посоветовал использовать сервер на базе Linux, чтобы облегчить вам жизнь.

 1
Author: ADmad, 2015-06-17 03:27:29

Расширение Php_intl по умолчанию отключено для всех обработчиков PHP Plesk:

Вы можете включить его в

C:\Program Files (x86)\Parallels\Plesk\Additional\PleskPHP54\php.ini

Просто найдите и раскомментируйте эту строку:

;extension=php_intl.dll
 0
Author: Oleg Neumyvakin, 2015-06-17 17:34:34

Спасибо всем, кто ответил на мой вопрос.

Я вернулся к CakePHP версии 2.6.7 вместо 3.x и, следуя инструкциям в сообщении Fury, я смог успешно добиться некоторого прогресса и загрузить базовую страницу CakePHP.

Надеюсь, кто-то с немного большими знаниями сможет придумать руководство для тех, кто хочет запустить его с v3.x в Windows Plesk, поскольку я заметил, что существует другая структура каталогов и т.д.

Приветствия,

Питер

 0
Author: Pete, 2015-06-18 06:21:13