Symfony 2 installieren

5. März 2013 / Symfony

×Info: This post is older than 2 years! Displayed information may be outdated!

Eine fünf 15 Minuten Symfony-Setup-Guide. Mit Git. Hier gibt’s übrigens ein nettes Symfony2-Cheatsheet.

Symfony installieren

Zuerst auf http://symfony.com/download gehen. Version 2.3 ist das erste Release mit Long Term Support (LTS) und wird drei Jahre mit Updates versorgt.

# ins gewünschte dir cd'en, dann wget
wget -O Symfony_Standard_Vendors_2.3.1.tgz http://symfony.com/download?v=Symfony_Standard_Vendors_2.3.1.tgz

# ggf. curl installieren (apache neustarten)
sudo apt-get install curl php5-curl

# composer install
curl -s https://getcomposer.org/installer | php

# symfony install
php composer.phar create-project symfony/framework-standard-edition project/ 2.3.1

# composer.phar create-project erwartet ein leeres Install-Dir. Ist kein "project"-Subdir erwünscht, muss nach composer-Install alles via "mv" verschoben werden.

# während der composer-Installation können schon diverse Einträge für die parameters.yml gesetzt werden; geht aber auch noch später über "config.php"

# readme lesen (!)
cat README.md

# php check
php app/check.php

# ggf. fehlende Einstellungen vornehmen php.ini, z.B:
date.timezone = Europe/Berlin
short_open_tag = off

# oder fehlende Module nachinstallieren, z.B.
sudo apt-get install php5-intl

Rechte und Besitzer checken

# Rechte
sudo chmod 777 app/cache app/logs

# Besitzer
sudo chown -R username:www-data .

Config

im Browser aufrufen: http://localhost/path/to/symfony/web/config.php

Datenbank-Zugangsdaten eingeben, Schritte durchgehen. Fertig.

Basic vhost

<VirtualHost *:80>
  ServerName www.symfony.local
  ServerAlias symfony
  ServerAdmin webmaster@localhost
  DocumentRoot /var/www/symfony/web/
  DirectoryIndex app.php app_dev.php
  <Directory /var/www/symfony/web/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
  </Directory>

  ErrorLog ${APACHE_LOG_DIR}/error.log
  # Possible values include: debug, info, notice, warn, error, crit
  # alert, emerg.
  # LogLevel debug
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Git

# .gitignore
/web/bundles/
/app/bootstrap.php.cache
/app/cache/*
/app/config/parameters.yml
/app/logs/*
/build/
/vendor/
/bin/
/composer.phar

Die parameters.yml kopieren und als parameters.yml.dist ohne Passwörter mitcommitten als Vorlage.

Create Database / Create Schema

Wenn in über die „config.php“ (oder direkt in der parameters.yml) Datenbankzugangsdaten angelegt wurden, kann die DB wie folgt erstellt werden:

# create db
php app/console doctrine:database:create

# falls schon ein Schema existiert
php app/console doctrine:schema:create

# ein Schema updaten (wichtig: --force)
php app/console doctrine:schema:update --force