Zend Framework – instalacja w Ubuntu 12.04

Chcąc uruchamiać projekty korzystające z Zend’a na naszym serwerze www, bez konieczności kopiowania wszystkich plików framework’a do każdego projektu możemy zainstalować Zend’a na serwerze. W tym Celu z konsoli wpisujemy:

root@server:# apt-get install zend-framework libzend-framework-zendx-php

Po instalacji możemy sprawdzić czy wszystko przebiegło w porządku:

root@server:# zf show version

powinna wyświetlić się wersja Zenda jak poniżej:

Zend Framework Version: 1.11.11

Kolejnym krokiem jest edycja pliku konfiguracyjnego w dowolnym edytorze:

root@server:# vim /etc/php5/conf.d/zend-framework.ini

i dodanie linii ze ścieżkami dostępu, jak poniżej:

[Zend]
include_path=${include_path} ":/usr/share/php/libzend-framework-php:/usr/share/php:/usr/share/php/PHPunit:/usr/share/php/PEAR"

Na koniec ładujemy nową konfigurację do serwera www:

root@server:# service apache2 reload
i sprawdzamy czy instalacja przebiegła prawidłowo:
root@server:# php -v

powinniśmy otrzymać coś podobnego do poniższego:

PHP 5.3.10-1ubuntu3.4 with Suhosin-Patch (cli) (built: Sep 12 2012 18:59:41)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

Jeżeli po wykonaniu z konsoli polecenia tworzącego nowy projekt Zend’a:

root@server:/var/www/new_project# zf create project

otrzymujemy jeden z poniższych komunikatów:

Testing Note: PHPUnit was not found in your include_path, therefore no testing actions will be created.

PHP Warning:  require_once(PHP/CodeCoverage/Filter.php): failed to open stream: No such file or directory in /usr/share/php/PHPUnit/Autoload.php on line 46

Warning: require_once(PHP/CodeCoverage/Filter.php): failed to open stream: No such file or directory in /usr/share/php/PHPUnit/Autoload.php on line 46

PHP Fatal error:  require_once(): Failed opening required 'PHP/CodeCoverage/Filter.php' (include_path='/usr/share/php/libzend-framework-php:/usr/share/php') in /usr/share/php/PHPUnit/Autoload.php on line 46

Fatal error: require_once(): Failed opening required 'PHP/CodeCoverage/Filter.php' (include_path='/usr/share/php/libzend-framework-php:/usr/share/php') in /usr/share/php/PHPUnit/Autoload.php on line 46

PHP Fatal error:  Call to undefined method PHP_CodeCoverage_Filter::getInstance() in /usr/share/php/PHPUnit/Autoload.php on line 64

Fatal error: Call to undefined method PHP_CodeCoverage_Filter::getInstance() in /usr/share/php/PHPUnit/Autoload.php on line 64

może to oznaczać, że musimy wykonać poniższe polecenia:

root@server:# pear upgrade pear
root@server:# pear channel-discover pear.phpunit.de
root@server:# pear channel-discover components.ez.no
root@server:# pear channel-discover pear.symfony.com
root@server:# pear channel-discover pear.symfony-project.com
root@server:# pear update-channels
root@server:# pear upgrade-all
root@server:# pear install --alldeps phpunit/PHPUnit
root@server:# pear install phpunit/PHP_CodeCoverage
root@server:# apt-get install phpunit

Na zakończenie musimy jeszcze załadować nową konfigurację do serwera www:

root@server:# service apache2 reload