Die Grundinstallation der VM wird anhand der Dokumentation von WebDevOps durchgeführt.
Diese Anleitung bezieht sich auf das Projekt "PhotoFancy". Die Vagrant Box wird hier in den Ordner photofancy-environment installiert.
ℹ️ Die CPU Virtualisierungstechnologie nicht vergeßen zu aktivieren.
git clone -b ubuntu-14.04 --recursive --config core.autocrlf=false https://github.com/webdevops/vagrant-development.git photofancy-environment
cd photofancy-environmentbindfs Plugin installieren
vagrant plugin install vagrant-bindfsWenn unter OSX der Parallels Provider benutzt wird, muss das Plugin installiert werden
vagrant plugin install vagrant-parallelsWenn unter Windows die VMWare Workstation benutzt wird, muss das Plugin installiert werden
vagrant plugin install vagrant-vmware-workstationCPU und Speicher der Box zuweisen, Beispiel anhand eines Quadcore Prozessors und min. 8GB RAM
cpu: '2'
memory: '6144' // composer braucht > 4096 ArbeitsspeicherDie SharedFolder müssen je nach Betriebssystem angepasst werden.
# OSX
sharedFolder:
- { type: 'nfs', src: '~/Workspace/Webentwicklung', target: '/var/www' } # Windows (Source je nach User anpassen)
sharedFolder:
- { type: 'default', src: 'C:/www', target: '/var/www'}Um den "Authentication failure" Warning zu vermeiden
useSshPasswordAuth: trueDie Port-Weiterleitungen auf Port 80 sollte angepasst werden (unter Windows wird Standardmäßig Port 80 gesetzt, keine Weiterleitung nötig).
portForwarding:
{ guest: 80, host: 80, hostIp: '192.168.56.2', protocol: 'tcp' }Das automatische Update der Parallels-Tools muss deaktiviert werden, da sonst die Box nicht startet (Tools können nicht installiert werden) - auf false setzen
v.update_guest_tools = falseDie NFS Rechte müssen auch angepasst werden (Nur für OSX).
:nfs => { :mount_options => [ "dmode=777", "fmode=777" ] }Unter OSX mit Parallels Provider müssen folgende Zeilen auskommentiert werden, da die Box nicht "headless" startet:
#v.customize ["set", :id, "--startup-view", "headless"]Weil ein Virtual Host durch Ansible auf Port 80 vorgegeben wird, die Weiterleitung innerhalb der VM von port 80 zu 8000 funktioniert nicht.
Um das zu ändern, änderen wir die Port des Virtual Hosts auf z.B. 8050 in der Datei photofancy-environment/provision/ansible/roles/docker-proxy/files/sites-available
<VirtualHost *:8050>
ServerName DEV-VM
ServerAdmin webmaster@localhost
DocumentRoot /var/www/empty
...
...
...
Offizielle PHP Docker Boilerplate Dokumentation.
Vagrant Box starten
vagrant upPer SSH in die Box einloggen
vagrant ssh
username/password: vagrantAuf dem Ubuntu-System dann in den Projekt-Order navigieren.
cd /var/www/photofancy-environmentℹ️ GitHub Benutzername/Kennwort erforderlich
git clone https://github.com/digitalprint/photofancy-docker-boilerplate.git photofancycd photofancycp docker-compose.development.yml docker-compose.ymlAls erstes werden die Docker-Container gestartet. Beim ersten Start werden die Container erst gebildet.
docker-compose up -dWenn man an der Konfiguration etwas ändert, reicht es in den meisten Fällen, die Container neu zu starten.
docker-compose stop
docker-compose up -d... ansonsten alten Container entfernen und neu bilden (Beispiel MySQL)
docker-compose rm mysqlZum Schluss die IP in der hosts Datei (in deine Host-Maschine) auf photofancy mappen.
192.168.56.2 local.photofancy.de local.photofancy.ro local.photofancy.pl local.photofancy.co.uk local.photofancy.es local.photofancy.fr local.photofancy.it local.photofancy.com
git clone https://github.com/digitalprint/photofancy2.git appDie vorhandene parameters.yml in den app/config Ordner kopieren und dann den MySQL- Host und Port anpassen...
database_host: mysql
database_port: 3306... sowie alle Ordnerpfade anpassen.
shared_dir_web: _filesystem
shared_dir_resources: _filesystem/resources
shared_dir_pfresources: _filesystem/resources
shared_dir_cache: _filesystem/photofancy/cache
shared_dir_orders: _filesystem/photofancy/output
shared_dir_effect_repository: _filesystem/photofancy/repo/private/effects/current
shared_dir_effect_src: _filesystem/photofancy/repo/private/effects/current/provider/pf/filter/src
shared_dir_uploads: _filesystem/uploads
shared_dir_assets: _filesystem/assets... und den Node Pfad auf /usr/bin setzen
node_module_path: /usr/binund wechseln anschließend in das PhotoFancy Projekt
cd /var/www/photofancy-environment/photofancy/appUm später die Befehle der php app/console auszuführen, muss man sich mit der Container-Instanz verbinden. Man landet direkt im Projektverzeichnis.
docker exec -t -i photofancy_app_1 /bin/bashPhotoFancy Setup via Composer
composer installAnschließend wechseln wir wieder zurück in den PhotoFancy Projekt Ordner
cd /var/www/photofancy-environment/photofancyDB Erzeugen
php app/console doctrine:schema:createSession Tabelle anlegen
php app/console doctrine:query:sql "CREATE TABLE sessions ( sess_id VARBINARY(128) NOT NULL PRIMARY KEY, sess_data BLOB NOT NULL, sess_time INTEGER UNSIGNED NOT NULL, sess_lifetime MEDIUMINT NOT NULL ) COLLATE utf8_bin, ENGINE = InnoDB;"Lokale DB -> Online DB Sync
php app/console pf:database:syncAdmin-Benutzer für die lokale Dev-umgebung anlegen (Username=pfadmin, Passwort=pfadmin)
php app/console fos:user:create pfadmin admin@dev.photofancy.de pfadmin
php app/console fos:user:promote ppadmin ROLE_ADMINACHTUNG: es gibt derzeit noch einen Fehler in der photofancy.sh. Nach einem Clone von Github werden die Line-Endings verändert. So lässt sich das Script nicht ausführen.
Öffne die Datei photofancy.sh aus dem Ordner photofancy-environment/photofancy/etc/installer/photofancy.sh auf deiner Festplatte in PHPStorm. Anschließend einmal die Line-Endings auf Unix/OSX (\n) stellen. Dann noch irgendwo ein Leerzeichen einfügen, so dass das Dokument geändert wird. Nun noch speichern. Weiter gehts!
Hier werden alle benötigten Tools wie Gmic, Potrace, OpenCV etc. installiert.
...wir befinden uns immer noch im Docker App-Container...
cd /opt/docker/etc/installer
./photofancy.shAnschließend müssen noch die Assets für das dev-Environment installiert werden.
cd /app
php app/console assets:install web --symlinkAls letztes muss noch das Effektmanager Repository geklont werden.
cd /app
git clone https://github.com/digitalprint/photofancy-effectmanager.git web/_filesystem/photofancy/repo/private/effects/currentGlückwunsch - PhotoFancy ist jetzt unter local.photofancy.de:8000/app_dev.php als Entwicklungsumgebung erreichbar!
- Vagrant starten
cd pfad_zum_ordner_photofancy-environment
vagrant up- In die Vagrant Box per SSH einwählen
vagrant ssh- Docker-Container starten
cd /var/www/photofancy-environment/photofancy
docker-compose up -d- Jetzt kannst du photofancy von dein Browser besuchen http://local.photofancy.de:8000 oder https://local.photofancy.de:8443
- Docker-Container stoppen (man muss sich in der Vagrant Box befinden)
docker-composer stop- Vagrant Box stoppen / neustarten
Falls man sich noch in der Vagrant Box befindet, diese mit exit verlassen, anschließend
- Stoppen
vagrant halt- Neustarten
vagrant reload- Neustarten und neu Provisionieren (nach Änderungen in der config.yml)
vagrant reload --provisiondocker exec -t -i photofancy_app_1 /bin/bashMySQL-Host: 127.0.0.1
Benutzer: root
Password: **********
Datenbank: photofancy
Port: 13306
SSH-Host: 192.168.56.2
SSH-Benutzer: vagrant
SSH-Password: **********
SSH-Port: 22