Как установить Zend Framework в Windows - PullRequest
24 голосов
/ 07 декабря 2009

"установить Zend Framework так просто !!!!" да, верно ...

Хорошо, я работаю с книгой для начинающих, и ОДНА вещь, которая не слишком детализирована, является самой важной частью: установка проклятой вещи. Пролистав руководство по быстрому запуску в течение нескольких часов, все, что он сказал, было:

"загрузите Zend [...], добавьте каталог include (бла-бла) и ВЫ СДЕЛАНЫ!"

верно, я использую Zend.

Хорошо, не совсем, пока нет. Я прошу вас, люди, я хочу пойти спать, пожалуйста, расскажите мне, как (в простых деталях 6-го класса) установить каркас. У меня есть распакованная папка в моей директории htdocs, и я поместил zf.bat + zf.php в корень htdocs.

Что дальше?

Большое спасибо.

Ответы [ 8 ]

19 голосов
/ 07 декабря 2009

Похоже, у вас проблемы с PATH в командной оболочке Windows. Это не зависит от Zend Framework. Понимание концепции PATH в среде оболочки является препятствием, которое приходится преодолевать многим программистам, но как только вы его получите, вы можете использовать его для повышения производительности.

Вы всегда можете запустить программу из командной оболочки, используя абсолютный путь этой программы . Например:

C:\> c:\wamp\bin\php\php.exe

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

C:\> cd c:\wamp
C:\> bin\php\php.exe

Но если вы запускаете команду в командной оболочке без с указанием полного пути к исполняемому файлу, оболочка пытается найти исполняемый файл программы в одном из каталогов, перечисленных в переменной среды PATH. То есть путь представляет собой строку с именами каталогов, разделенными точками с запятой. Чтобы запустить исполняемый файл, оболочка пробует каждый каталог в этом списке по порядку, как если бы вы имели

C:\> type %PATH%
C:\WINDOWS\;C:\WINDOWS\SYSTEM32
C:\> php.exe
...error that it cannot find php.exe...

Особый случай: запуск php.exe также работает, если текущим рабочим каталогом является местоположение исполняемого файла этой программы. Но это всего лишь пример использования относительного пути, использования пути с нулевыми уровнями каталога.

Вторая проблема в том, что вы запускаете zf.bat, который в свою очередь вызывает php.exe без указания пути. Предполагается, что вы добавили местоположение php.exe в переменную окружения PATH.

C:\> SET PATH=%PATH%;C:\wamp\bin\php
C:\> php.exe -v
PHP 5.3.1 (cli) (built: Nov 29 2009 13:59:20) 
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies

Также необходимо найти сам скрипт zf.bat. Вы можете сделать это, добавив каталог, в котором он находится, к вашему PATH. Предполагая, что вы установили Zend Framework в C:\zf, например:

C:\> type %PATH%
C:\WINDOWS\;C:\WINDOWS\SYSTEM32;C:\wamp\bin\php
C:\> zf.bat
...error that it cannot find zf.bat...
C:\> SET PATH=%PATH%;C:\zf\bin
C:\> zf.bat show version
Zend Framework Version: 1.10.0dev

Я бы также рекомендовал установить Zend Framework вне вашего htdocs каталога. Под htdocs вам нужен только один файл PHP: это единственный файл начальной загрузки, который Zend Framework использует для создания экземпляра Front Controller и отправки запроса.

Когда вы используете zf.bat для создания скелетного приложения, оно создает каталог public с PHP-скриптом index.php внутри этого каталога. Этот файл index.php должен быть в вашем каталоге htdocs. Вам также нужны ресурсы, такие как CSS, Javascript и изображения, чтобы быть под htdocs. Остальной код вашего приложения и весь Zend Framework должны быть вне вашего htdocs. Особенно любые файлы конфигурации, где вы храните конфиденциальные данные, такие как пароль вашей базы данных и т. Д.

Вы можете редактировать файл index.php. Он может определять PHP-константу APPLICATION_PATH, которая является местоположением остальной части кода вашего приложения.

<?php

defined("APPLICATION_PATH")
    || define("APPLICATION_PATH", realpath(dirname(__FILE__) . "/../application"
));

Это определение по умолчанию для APPLICATION_PATH предполагает, что ваш htdocs является дочерним каталогом для остальной части кода вашего приложения, сгенерированного инструментом zf.bat. Конечно, вы можете поместить код своего приложения в любое другое место, но вам нужно изменить приведенный выше код, чтобы скрипт index.php нашел его.

Также сценарий index.php может добавить местоположение библиотечного кода в PHP INCLUDE_PATH. Это полезно, если вам нужно сделать библиотеку Zend Framework доступной для поиска или если в вашем приложении используется другой сторонний PHP-код. Предполагая, что вы установили Zend Framework в C:\zf, вы должны добавить его подкаталог library в ваш PHP INCLUDE_PATH.

// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    "C:/zf/library",
    realpath(APPLICATION_PATH . "/../library"),
    get_include_path()
)));

Шаблоны кода, сгенерированные сценарием zf.bat, пытаются сделать разумные предположения по умолчанию о том, где находится ваш код, но ваша среда принадлежит вам, и эти сценарии легко редактировать, чтобы указать истинное место, где вы установили свой код и библиотеки.

2 голосов
/ 07 декабря 2009
  1. Zend! = Zend Framework
  2. Zend Framework устанавливать не нужно. Это просто библиотека, ее просто нужно где-то поместить.
  3. Как говорит Йоханнес, вам нужно указать php, где искать библиотеку, чтобы вы добавили папку, в которой находится библиотека Zend Framework, к вашему пути включения php.

Вот и все , больше ничего нет!

Теперь кажется, что ваша настоящая проблема не имеет ничего общего с Zend Framework как таковым. Вы пытаетесь использовать Zend_Tool, но инструмент командной строки zf.bat не находится в системном пути, поэтому вы не можете использовать команду 'zf'. Zend Framework прекрасно работает без инструмента, если вы все равно хотите его использовать, запустите команду, находясь в папке, где находится zf.bat, или добавьте путь к zf.bat в системный путь.

Это означает неясным образом:

if (path-to-zf.bat isOn SYSTEM_PATH)
{
    you can call 'zf' from anywhere;
}
else
{
    you must be in the folder where zf.bat also is, if you want to call 'zf';
}
2 голосов
/ 07 декабря 2009

Фреймворк не обязательно должен находиться в папке htdocs, он может быть где угодно. Как только вы распаковали его где-то, вы сделали 50%.

Следующий шаг - найти файл php.ini (например, создайте файл <?php phpinfo();?> в папке htdocs, запустите его и найдите «Configuration (php.ini) filepath» (или аналогичный) в первом блоке. В этом файле добавьте путь к ZendFramework в директиву * 1004. * Сюда должна входить папка * 1005. * Ваша настройка может выглядеть следующим образом:

include_dir = .;c:\php\ZendFramework\library

Часто сюда также входит путь к PEAR.

Затем перезагрузите сервер.

Вы сделали.

1 голос
/ 09 августа 2010

Получено от http://normankosmal.com/wordpress/?p=47:

****> ****Process  of install zend framework in window 
> 1) Download zend framework
> 2)After installing xampp extract the
> Zend Framework files into a folder of
> your choice. Next step is to edit the
> php.ini. Usually this file can be
> found in the php folder in your xampp
> installation. Find the line that says
> include_path and edit the line like
> this:
>     Windows: “\path1;\path2″
>     include_path = “.;D:\Informatik\SERVER\xampp\php\pear\;D:\Informatik\SERVER\xampp\php\ZendFramework\library”
>     3) 
>      did you add your php interpreter to %PATH%?
>     In which file i have to add the PHP interpreter?
>     You mean i need to edit zf.bat file
>     SET ZF_SCRIPT=%PHP_DIR%\zf.php
>     Here in place of %PHP_DIR% i need to add the path of my PHP directory?
>     Can you plzz help me out.
>     4) D:\Informatik\SERVER\xampp\htdocs>D:\Informatik\SERVER\xampp\php\ZendFramework\b
>     in\zf.bat create project testproject********
0 голосов
/ 14 декабря 2009

Гал, я не понимаю, что ты хочешь делать.

Нет установки или конфигурации для фреймворка.Вам просто нужно

  1. Распаковать фреймворк куда угодно
  2. Создать проект под управлением zf create "myproject"
  3. Создать ярлык / ссылку в /library => root folder of the framework.Вы также можете просто распаковать весь фреймворк в эту папку (/ library), но если у вас много проектов, у вас будет много копий фреймворка, использующих дисковое пространство.
  4. изменить конфигурацию apache для открытия /myproject/public/index.php при перенаправлении веб-браузера на ваш сайт.

Я имею в виду, это не имеет ничего общего с zf, еслиВы создаете сайт на своем компьютере, вы должны указать Apache, где он находится.

Вы всегда можете запустить zf.bat, записав весь путь.Если zf.bat возвращает ошибку un, то, скорее всего, у вас проблемы с установкой php.

На всякий случай это полезно, это моя конфигурация apache (httpd.conf) для проекта с именем zf_cms

<VirtualHost *:80>
ServerAdmin alex@conexion-seo.com.mx
DocumentRoot "C:\Users\alex\Documents\My Web Sites\zf_cms/public"
ServerName zf_cms.conexion

<Directory "C:\Users\alex\Documents\My Web Sites\zf_cms/public">
    #DirectoryIndex index.php
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

Затем вы должны добавить эту строку в% windir% \ system32 \ drivers \ etc \ hosts

127.0.0.1     zf_cms.conexion
0 голосов
/ 07 декабря 2009

Вы не говорите, какой веб-стек используете, но я нашел самый простой способ работы с Zend в Windows - установить Zend Core . Это установит полный стек, предварительно настроенный с Zend Framework.

0 голосов
/ 07 декабря 2009

Легче читать, если я наберу его здесь.

Вот пошаговая инструкция:

  • открыть окно терминала
  • введите cd c: \
  • тип CD php
  • введите zf создать проект c: / APACHE / htdocs / PROJECTNAME

Подставьте ваш каталог и имена проектов, где я использовал все заглавные буквы.

Это должно сработать. Обратите внимание, что вам пришлось перейти к домашнему каталогу PHP, потому что это файл php.exe, а именно файлы zf.bat и zf.php Очевидно, что оба требуются при использовании Zend_Tool.

0 голосов
/ 07 декабря 2009

Гал - у меня была такая же проблема. Мы должны работать над одной книгой в эти выходные.

Я решил проблему создания проекта, когда выяснил, что в окне терминала необходимо сначала перейти к созданному вами домашнему каталогу PHP.

Другими словами, если вы находитесь в папке PHP5, введите «zf create project c: / Apache / htdocs / projectname»

У меня была такая же проблема: отсутствует файл php.exe, пока я не понял это.

-

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...