Zend Framework auf Debian Server installieren

In meinem Beitrag „[post id=“1562″]SVN SSH post-commit checkout hook[/post]“ habe ich gezeigt, wie man ein Projekt mit SVN automatisch in einem Webverzeichnis auschecken kann. Das dient dazu, um den aktuellen Entwicklungsstand über einen Web-Server verfügbar zu machen.

Damit das auch geht, muss ein virtueller Host definiert werden. Wenn es sich um ein Web-Projekt handelt, dass mit dem Zend Framework erstellt wurde, dann muss man auch noch das Zend Framework auf dem Server installieren.

Wie das geht, zeige ich am Beispiel eines Debian Servers mit einem Apache-Webserver.

Virtuellen-Host anlegen

Struktur:
Das Zend-Webprojekt liegt in: /srv/www/st38
Das Projekt soll erreichbar sein über: www.st38.domain.de

Konfigurationsdatei für virtuellen Host:

/etc/apache2/sites-available/st38.domain.de

1
2
3
4
5
6
7
8
9
10
11
<VirtualHost *:80>
	ServerName st38.domain.de
	ServerAdmin webmaster@domain.de
	DocumentRoot "/srv/www/st38/public"
	<Directory "/srv/www/st38/public">
		Options Indexes FollowSymLinks Includes ExecCGI
		AllowOverride All
		Order allow,deny
		Allow from all
	</Directory>
</VirtualHost>

Einrichtung:

1
2
3
sudo touch /etc/apache2/sites-available/st38.domain.de
sudo a2ensite st38.domain.de
sudo /etc/init.d/apache2 reload
  1. Datei für Virtuellen Host anlegen (Quelltext, siehe oben)
  2. Virtuellen Host aktivieren
  3. Web-Server-Konfiguration neu laden (damit die Änderungen aktiv werden)

Zend Framework installieren

Ohne die Installation des Zend Frameworks wird es beim Aufruf der Webseite zu folgender Fehlerausgabe kommen:

Warning: require_once(Zend/Application.php) [function.require-once]: failed to open stream: No such file or directory in /srv/www/st38/public/index.php on line 18

Fatal error: require_once() [function.require]: Failed opening required ‚Zend/Application.php‘ (include_path=’/srv/www/st38/library:.:/usr/share/php:/usr/share/pear‘) in /srv/www/st38/public/index.php on line 18

Das Problem liegt daran, das Zend nicht erfolgreich geladen werden konnte bzw. nicht dem PHP-„Include Path“ bekannt ist.

Installation:

1
2
3
4
5
6
7
8
cd /opt
sudo mkdir ZendFramework
cd ./ZendFramework
sudo svn co http://framework.zend.com/svn/framework/standard/tags/release-1.10.7/
sudo ln -s /opt/ZendFramework/release-1.10.7/library /opt/ZendFramework/
vim /etc/php5/apache2/php.ini
sudo /etc/init.d/apache2 reload
sudo chown -R www-data:www-data /opt/ZendFramework
  1. In den Ordner „/opt“ wechseln
  2. Ordner „ZendFramework“ erstellen
  3. Neuste Framework-Version über SVN abrufen.
  4. Hinweis: „release-1.10.7“ kann durch neuere (older ältere) Versionen ersetzt werden

  5. Symbolischen Link für die „Library“ der installierten ZF-Version anlegen
  6. php.ini bearbeiten und folgende Zeile hinzufügen:
    include_path = ".:/opt/ZendFramework/library"
  7. Web-Server-Konfiguration neu laden
  8. Apache-Benutzer als neuen Besitzer eintragen

Der symbolische Link ist dafür da, dass bei Installation einer neuen Version nicht die „php.ini“ bearbeitet werden muss. Stattdessen muss nur der symbolische Link neu erstellt werden. Man kann auf den symbolischen Link und die Änderung der „php.ini“ auch komplett verzichten. Allerdings müssen dann folgende Zeilen in der „index.php“ des ZF-Projektes hinzugefügt werden:

/srv/www/st38/public/index.php

1
2
3
4
5
// Pfad zur ZF-Library:
$s_include_path = "/opt/ZendFramework/library";
 
// PHP-Include-Pfad erweitern:
set_include_path($s_include_path . PATH_SEPARATOR . get_include_path());

Ein Gedanke zu „Zend Framework auf Debian Server installieren“

  1. Statt:

    include_path = „.:/opt/ZendFramework/library“

    würde ich

    include_path = „/opt/ZendFramework/library“

    in die php.ini einfügen – die muss übrigens nicht unter /etc/php5/apache liegen, sondern kann je nach Einstellungen auch eine andere (bei mir /etc/php5/cgi/) sein.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.