Benutzer-Werkzeuge

Webseiten-Werkzeuge


software:middleware:installation

Installation der Middleware

This installs the middleware and the frontend. You also need to install the logger (vzlogger).

Voraussetzungen

  • PHP 5.6 (als Modul oder [F]CGI auf Apache2/nginx)
  • Doctrine 2.5
  • mySQL, PostgreSQL oder SQLite + PDO Treiber
  • APC (optional, aber empfohlen)
  • jpGraph (optional, zum Plotten von PNG Grafiken)
  • Apache mod_rewrite (optional)

Es eigenen sich hier Debian Squeeze oder Ubuntu Lucid, sowie für den Raspberry Pi: Raspbian oder Raspbian Light.
Die Abhängigkeiten lassen sich schnell mit folgendem Befehl installieren:

sudo apt-get install git-core libapache2-mod-php5 php5-cli php5-mysql php-apc mysql-server mysql-client

bzw. für PostgreSQL

apt-get install git-core libapache2-mod-php5 php5-cli php5-pgsql php-apc postgresql-8.4

Für die manuelle Installation wird zudem „curl“ benötigt.

Vollautomatisiert mit Ansible und DebOps

Install-Skript (empfohlene Installationsmethode)

sudo wget https://raw.github.com/volkszaehler/volkszaehler.org/master/misc/tools/install.sh
sudo bash install.sh

Das sollte dann ablaufen:

volkszaehler.org installation script

checking prerequisites: php: /usr/bin/php
 mysql: /usr/bin/mysql
 awk: /usr/bin/awk
 sed: /bin/sed
 grep: /bin/grep
 wget: /usr/bin/wget
 mktemp: /bin/mktemp
 mkdir: /bin/mkdir
 git: /usr/bin/git

checking php version: 5.6.16 >= 5.6, ok

volkszaehler setup...
volkszaehler path? [/var/www/volkszaehler.org]
git clone volkszaehler.org into /var/www/volkszaehler.org
Cloning into '/var/www/volkszaehler.org'...
remote: Counting objects: 8879, done.
remote: Total 8879 (delta 0), reused 0 (delta 0), pack-reused 8879
Receiving objects: 100% (8879/8879), 6.07 MiB | 2.82 MiB/s, done.
Resolving deltas: 100% (4482/4482), done.

checking composer...
/var/www/volkszaehler.org /home/pi
composer not found, downloading...
#!/usr/bin/env php
All settings correct for using Composer
Downloading...

Composer successfully installed to: /var/www/volkszaehler.org/composer.phar
Use it: php composer.phar
/home/pi
composer: /var/www/volkszaehler.org/composer.phar

installing dependencies...
/var/www/volkszaehler.org /home/pi
Loading composer repositories with package information
Installing dependencies
  - Installing symfony/console (v2.6.6)
    Downloading: 100%

  - Installing doctrine/lexer (v1.0.1)
    Downloading: 100%

  - Installing doctrine/annotations (v1.2.4)
    Downloading: 100%

  - Installing doctrine/collections (v1.3.0)
    Downloading: 100%

  - Installing doctrine/cache (v1.4.1)
    Downloading: 100%

  - Installing doctrine/inflector (v1.0.1)
    Downloading: 100%

  - Installing doctrine/common (v2.5.0)
    Downloading: 100%

  - Installing doctrine/dbal (v2.5.1)
    Downloading: 100%

  - Installing andig/dbcopy (dev-master e9a1fac)
    Cloning e9a1facb89e51222292a4b056f79d192142f4bee

  - Installing doctrine/orm (v2.4.7)
    Downloading: 100%

  - Installing psr/log (1.0.0)
    Downloading: 100%

  - Installing symfony/debug (v2.6.6)
    Downloading: 100%

  - Installing symfony/http-foundation (v2.6.6)
    Downloading: 100%

  - Installing symfony/event-dispatcher (v2.6.6)
    Downloading: 100%

  - Installing symfony/http-kernel (v2.6.6)
    Downloading: 100%

Writing lock file
Generating autoload files

install server-side graph generation (jpgraph, not required for frontend)? [n]
/home/pi

volkszaehler.org is not configured yet. creating new config from sample config file.
mysql admin user? [root]
mysql admin password? [] raspberry
mysql database? [volkszaehler]
mysql user? [vz]
mysql password? [demo]

create volkszaehler.org database? [y]
creating database volkszaehler...
/var/www/volkszaehler.org /home/pi
ATTENTION: This operation should not be executed in a production environment.

Creating database schema...
Database schema created successfully!
Processing entity "Volkszaehler\Model\Data"
Processing entity "Volkszaehler\Model\Entity"
Processing entity "Volkszaehler\Model\Channel"
Processing entity "Volkszaehler\Model\Aggregator"
Processing entity "Volkszaehler\Model\Aggregate"
Processing entity "Volkszaehler\Model\Property"

Proxy classes generated to "/var/www/volkszaehler.org/lib/Volkszaehler/Model/Proxy"
/home/pi

create volkszaehler.org database user? [y]
creating db user vz with proper rights...

allow channel deletion? [n] y      #Hier mit 'y' antworten sonst können keine Kanäle gelöscht werden !
adding db user vz delete rights...

insert demo data in to database? [n]

Das Script fragt, was es wohin installieren soll.

Apache unter Debian "Wheezy" konfigurieren

  • mod_rewrite aktivieren:
sudo a2enmod rewrite
  • Default VirtualHost bearbeiten ( die Datei: „000-default“ bearbeiten):
sudo nano /etc/apache2/sites-enabled/000-default
  • In der Datei, neben: < DocumentRoot > :
 /var/www/volkszaehler.org/htdocs/

eintragen.

  • unter <Directory /var/www/>: (Achtung <Directory> taucht öfter auf.)

neben: <AllowOverride>

FileInfo Limit Options Indexes Authconfig

eintragen. Das „none“ wird überschrieben.

Die Datei sollte dann so aussehen:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/volkszaehler.org/htdocs/
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride FileInfo Limit Options Indexes AuthConfig
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                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 warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Apache unter Debian "Jessie" konfigurieren

  • mod_rewrite aktivieren:
sudo a2enmod rewrite
  • Default VirtualHost bearbeiten ( die Datei: „000-default.conf“ bearbeiten):
sudo nano /etc/apache2/sites-enabled/000-default.conf
  • In der Datei, neben: < DocumentRoot > :
 /var/www/volkszaehler.org/htdocs/

eintragen.

Nach dem editieren und abspeichern der Datei:

 sudo service apache2 restart

ausführen.

Sollte es zu einem PHP Fehler beim Anlegen der Datenbank kommen versucht mal Doctrine per Hand zu Installieren.

Manuelle Installation

Download der volkszaehler.org Skripte

Download der Skripte aus dem git Repository:

sudo git clone git://github.com/volkszaehler/volkszaehler.org.git /var/www/volkszaehler.org
sudo chown -R www-data /var/www/volkszaehler.org

Apache konfigurieren

  • mod_rewrite aktivieren:
sudo a2enmod rewrite
  • Default VirtualHost bearbeiten:
/etc/apache2/sites-enabled/000-default:
    DocumentRoot /var/www/volkszaehler.org/htdocs/
  • unter <Directory /var/www/>:
AllowOverride FileInfo Limit Options Indexes Authconfig

Alternativ: nginx konfigurieren

server {
        listen 80;
        listen [::]:80;
        server_name volkszaehler.langhaarschneider.rocks;

        root /var/www/volkszaehler.langhaarschneider.rocks/htdocs;

        index index.php index.html;

        location / {
                try_files $uri $uri/ =404;
        }
        location ~ \.php {
                include snippets/fastcgi-php.conf;
        #       # With php5-cgi alone:
        #       fastcgi_pass 127.0.0.1:9000;
                # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
        }
}

Wichtig ist dass in der config in der Zeile „location ~ \.php {“ kein $-Zeichen hinter dem PHP steht. Siehe Mail Archiv

Installation der benötigten Module

Zunächst PHP Paketmanager Composer von getcomposer.org installieren
cd /tmp
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
Ahängigkeiten laden und installieren (v.a. Doctrine)
cd /var/www/volkszaehler.org/ # Anmerkung: ansonsten wird die Datei "composer.json" nicht gefunden; Fehlermeldung: "Composer could not find a composer.json file..."
sudo composer install

Konfiguration der Middleware

cd /var/www/volkszaehler.org/etc/
cp volkszaehler.conf.template.php volkszaehler.conf.php
edit volkszaehler.conf.php:
    $config['db']['host']               = 'localhost';
    $config['db']['user']               = 'vz';
    $config['db']['password']           = '<shhh!>';
    $config['db']['dbname']             = 'volkszaehler';

Alternativ wird die Installation in der Doctrine Dokumentation beschrieben. Falls du also Probleme bei der Installation haben solltest, kannst du dir hier noch ein paar Informationen holen.

Datenbank konfigurieren

  • Datenbank-User anlegen:
phpmyadmin:
    Home -> "Rechte" -> "Neuen Benutzer hinzufügen"
        Benutzername: vz
        Host: localhost
        Passwort: <shhh!>
        keine globalen Rechte vergeben!
        -> ok
oder:
    CREATE USER 'vz'@'localhost' IDENTIFIED BY '<shhhh!>';
  • Datenbank anlegen:
phpmyadmin
    Home -> "Datenbank anlegen", Name: "volkszaehler" -> "Anlegen"
oder:
    CREATE DATABASE `volkszaehler`;
  • Tabellen anlegen:
# cd /var/www/volkszaehler.org/misc/sql/demo
# php misc/tools/doctrine orm:schema-tool:create
ATTENTION: This operation should not be executed in a production environment.

Creating database schema...
Database schema created successfully!
  • Demoinhalte importieren:
      Tabelle "entities" auswählen (unbedingt zuerst diese importieren!)
      "Importieren"; das Gleiche mit "properties" und "data"

oder:

      cd /var/www/volkszaehler.org/misc/sql
      cat entities.sql properties.sql data-demoset1.sql | mysql -uroot volkszaehler -p
  • Rechte setzen:
Datenbank "mysql", Tabelle "tables_priv":
    "Einfügen": 
        Host: "localhost"
        Db: "volkszaehler"
        User: "vz"
        Table_name: "data" (anschließend das Gleiche mit "entities", "entities_in_aggregator", "properties", "tokens"
        Table_priv: "select", "update" und "insert"
        
oder:
        GRANT select, update, insert ON volkszaehler.* TO vz@localhost;
  • Nun noch ein Passwort für den mysql-Administrator „root“ setzen und die Passwortdatenbank aktivieren:
mysqladmin password -u root "<neues, gutes passwort>"
mysqladmin reload -p

Aktualisierung der Middleware einschließlich des Frontends

Nachdem Volkszähler im Zuge der Installation eine Kopie des git Repositories erstellt, kann die Installation auch aus diesem Repository aktualisiert werden.

Eine Beschreibung findet sich im Kapitel zu git.

phpmyadmin installieren

1.

sudo apt-get install phpmyadmin

2. Unter Wheezy:

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf

Unter Jessie:

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/sites-enabled/phpmyadmin.conf

3.

sudo /etc/init.d/apache2 reload

User ist: root und das Passwort ist: raspberry

software/middleware/installation.txt · Zuletzt geändert: 2017/06/15 11:56 von nicertyp