Instalacja i konfiguracja projektu w Zend Framework na serwerach home.pl

W celu utworzenia nowego projektu w Zend Framework, należy po rozpakowaniu i wgraniu na serwer pobranego ze strony producenta archiwum wykonać opisane poniżej czynności. Zakładamy, że katalog z rozpakowaną zawartością archiwum ma nazwę ‘zf’ i jest umieszczony w katalogu głównym serwera, czyli ścieżka bezwzględna do tego katalogu to /zf.

1. Przechodzimy do katalogu /zf/bin i edytujemy plik zf.sh, powinien otrzymać postać:

#!/bin/sh
 PHP_BIN=php5-cli
 if test "@php_dir@" != '@'php_dir'@'; then
 PHP_DIR="@php_dir@"
 else
 SELF_LINK="$0"
 SELF_LINK_TMP="$(readlink "$SELF_LINK")"
 while test -n "$SELF_LINK_TMP"; do
 SELF_LINK="$SELF_LINK_TMP"
 SELF_LINK_TMP="$(readlink "$SELF_LINK")"
 done
 PHP_DIR="$(dirname "$SELF_LINK")"
 fi
 "$PHP_BIN" -d safe_mode=Off -f "$PHP_DIR/zf.php" -- "$@"

2. Przechdzimy do katalogu /zf i tworzymy w nim plik project.php (nazwa nie ma znaczenia) o treści:

<?php
system('bin/zf.sh create project projekt1');
?>

Gdzie projekt1 to nazwa naszego nowego projektu. Plik wywołujemy w przeglądarce:

http://serwer.home.pl/zf/project.php (zamiast frazy serwer podajemy nazwę naszego serwera)

Po chwili na ekranie ukaże się komunikat:

Creating project at /zf/projekt1 (…)

Informujący nas o poprawnym utworzeniu plików nowego projektu.

3. Przechodzimy do katalogu /zf/projekt1/library. Należy tu utworzyć dowiązanie symboliczne do zasobu /zf/library/Zend. Należy w tym celu utworzyć plik dowiazanie.php (tu nazwa także nie ma znaczenia) o składni:

<?php
system('ln -s ../../library/Zend/ .');
?>

Plik uruchamiamy w przeglądarce wywołując adres: http://serwer.home.pl/zf/projekt1/library/dowiazanie.php

Od tego momentu pod adresem http://serwer.home.pl/zf/projekt1/public/ powinna być widoczna strona powitalna Zend Framework.

4. Skierowanie na nowy projekt własnej domeny.

Jako że przekierowanie domeny na podkatalog w panelu administracyjnym nie zezwoli na dostęp aplikacji do katalogów położonych wyżej, domenę należy skierować na katalog główny, a w nim umieścić plik .htaccess wykonujący przekierowanie na podkatalog. Zawartość pliku .htaccess powinna być wzorowana na poniższym przykładzie. Zakładamy tu, że na katalog główny serwera kieruje domena domena.pl


RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domena\.pl$ [NC]
RewriteCond %{REQUEST_FILENAME} !/zf/projekt1/public/
RewriteRule ^(.*)$ /zf/projekt1/public/$1 [L]

Ostatnia linia pliku .htaccess powinna postać pusta. Po poprawnym skierowaniu domeny na katalog główny serwera, pod jej adresem ukaże się ekran powitalny projektu.

5. Modyfikacja biblioteki odpowiedzialnej za przekierowania.

Aby próba skorzystania z przekierowania przy pomocy zawartego w aplikacji helpera nie spowodowała błędu 500, należy wykonać jedną z poniższych modyfikacji:

– w pliku /zf/library/Zend/Controller/Action/Helper/Redirector.php należy zamienić linię

protected $_useAbsoluteUri = false;

na

protected $_useAbsoluteUri = true;

– w każdym z kontrolerów w funkcji init() należy umieścić zapis:

$this->_helper->redirector->setUseAbsoluteUri(true);

Niezależnie od wybranego rozwiązania po jego wprowadzeniu możliwe będzie prawidłowe wykonywanie przekierowań za pomocą funkcji:

$this->_redirect('/model/kontroler/akcja');

6. Aby w ramach frameworka korzystać z sesji należy upewnić się, że w katalogu głównym serwera został utworzony katalog /tmp.

Leave a Reply

Your email address will not be published. Required fields are marked *