Vorbereitung
- http://www.ubuntu.com/getubuntu/download-server
- http://www.virtualbox.org/wiki/Downloads
- Virtualbox installieren
Virtualbox anlegen
- Virtualbox starten
- Virtual Maschine anlegen
- Neu
- Name: Entwicklung
- Betriebssystem: Linux
- Version: Ubuntu / Ubuntu (64 bit)
- Größe Hauptspeicher: 512MB
- Boot Festplatte
- Festplatte erzeugen
- Datenspeichertyp: dynamisch wachsendes Medium
- Ort: Drive:\Path\Entwicklung.vdi
- Größe: 24,00 GB (ich nehme 24GB weil auch auf einem 32GB USB-Stick noch Platz für andere Dateien bleibt.)
- CD/DVD-Rom anklicken
- CD/DVD-Laufwerk einbinden anhaken
- ISO-Abbild auswählen
- auf das Ordnersymbol klicken
- Hinzufügen klicken
- ubuntu-9.04-server-amd64.iso oder ubuntu-9.04-server-i386.iso auswählen
- ISO auswählen
Anmerkung zum Netzwerk: Auch wenn es nachher eine Änderung der Einstellung gibt und deshalb die Netzwerkkonfiguration in Ubuntu angepasst werden muss, bleiben sie auf "NAT". Würden wir bereits jetzt auf "Netzwerkbrücke" umstellen, bekommen wir bei der automatischen Installation einige Probleme.
Ausserdem üben wir uns so ein wenig im Anpassen der Interface Einstellungen. ;)
Installation des Grundsystems
- VM starten und Ubuntu booten lassen
- F2 Deutsch auswählen
- F3 Germany auswählen
- Ubuntu Server installieren
- Deutschland
- Rechnername: Entwicklung
- Geführt - verwende vollständige Festplatte
- Änderungen auf die Festplatte schreiben? Ja
- Voller Name des neuen Benutzer: Vor- und Nachname
- Benutzer für Ihr Konto: naja muss ich das erklären?
- Wählen Sie ein Passwort für den neuen Benutzer: na was wohl? 2mal bitte
- Ihren persönlichen Ordner verschlüsseln? nein
- HTTP-Proxy-Daten: so fern nötig
- Keine automatische Aktualisierungen
- Softwareauswahl
- LAMP server
- Mail server
- OpenSSH server
- Samba file server
- Neues Passwort für den MySQL >>root<<-Benutzer: ja auch gerne
- Postfix Configurations. Auch wenn man nix sieht mit der den Pfeiltasten nach ganz unten scrollen
- System-E-Mail-Name: Entwicklung
- vor dem Durchstarten am Fenster der virtuellen Maschine unten rechts auf das CD Symbol rechtsklicken "CD/DVD-ROM trennen" auswählen
- Installation beenden und neustarten
- Nach dem Neustart runterfahren:
sudo shutdown -h now
Anmerkungen:
sudo ist ein Befehl mit dem man als User administrative Aufgaben erledigen kann. Da man in der Ubuntu Installatin zu keiner Zeit mit dem root Benutzer arbeiten soll kann man mit sudo für einzelne Aufgabe die Rechte anheben.
Für den folgenden Schritt muss der Rechner runter gefahren werden. Dies hätte man auch direkt nach Ende der Installation machen können, da ich aber nicht weiss ob der Neustart nötig ist gewähren das wir Ubuntu vorher.
Netzwerk Einstellungen
- Netzwerk anklicken
- Intel PRO/1000 T Server
- Netzwerkbrücke auswählen
- Netzwerkkarte mit Verbindung zum Internet auswählen
- sudo nano /etc/network/interfaces
# The primary network interface
auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.0.20
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.253
# The secondary network interface
auto eth1
#iface eth1 inet dhcp
iface eth1 inet static
address 192.168.0.20
network 192.168.0.0
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.253 - sudo nano /etc/hosts
127.0.0.1 entwicklung.example.local entwicklung - sudo /etc/init.d/networking restart
- sudo nano /etc/resolv.conf
nameserver 192.168.0.20
nameserver 192.168.0.1
nameserver 192.168.0.253 - sudo rm /etc/udev/rules.d/70-persistent-net.rules
- sudo /etc/init.d/networking restart
Anmerkungen:
- der Eintrag für eth1 ist nur dann von Bedeutung, wenn man die virtuellen Maschine auf zwei Rechner (Workstation/Laptop) verwendet. Für alle die nur auf einem Rechner arbeiten ist dies überflüssig.
- die Anpassungen an /etc/hosts wird gebraucht, damit der Apache2 Webserver beim Start keine Fehlermeldung mehr ausgibt.
- die Änderung an resolv.conf wird gebraucht, damit die Entwicklungsumgebung den noch zu installierenden DNS findet.
Netzwerkfreigabe mit Samba
Ab hier können wir uns mit Putty mit der Entwicklungsumgebung über IP 192.168.0.20 verbinden.
- sudo nano /etc/samba/smb.conf
[global]
workgroup = Entwicklung
[webroot]
comment = Apache Webroot
writable = yes
path = /var/www
public = no - sudo smbpasswd -a IHR_NAME
- sudo chown -R garbast:root /var/www
- sudo /etc/init.d/samba restart
DNS Server Bind9
- sudo apt-get install bind9
- sudo nano /etc/bind/db.example.local
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA ns1.example.local. root.example.local. (
2009062102 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1
@ IN A 192.168.0.20
@ IN AAAA ::1
* IN A 192.168.0.20
* IN AAAA ::1 - sudo nano /etc/bind/db.192.168.0
;
; BIND reverse data file for 192.168.0
;
$TTL 604800
@ IN SOA ns1.example.local. root.example.local. (
2009062202 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS ns1
20 IN PTR development.example.local. - sudo nano /etc/bind/named.conf.local
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
// include "/etc/bind/zones.rfc1918";
zone "example.local" {
type master;
file "/etc/bind/db.example.local";
};
zone "0.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192.168.0";
}; - sudo /etc/init.d/bind9 restart
Anmerkung:
- bitte bei allen "privaten" Entwicklungsumgebungen .local verwenden. Dies signalisiert "in-addr.arpa", dass es um eine nicht öffentliche Installation handelt und weitere Namesauflösungen werden nicht vorgenommen.
Apache2 anpassen
- sudo apt-get install php5-gd
- sudo apt-get install graphicsmagick
- mkdir /var/www/entwicklung
- mkdir /var/www/entwicklung/htdocs
- mkdir /var/www/entwicklung/logs
- cd /etc/apache2/sites-available
- sudo cp default entwicklung
- sudo nano /etc/apache2/sites-available/entwicklung
[...]
ServerName entwicklung.example.local
DocumentRoot /var/www/entwicklung/htdocs
[...]
<Directory /var/www/entwicklung>
[...]
ErrorLog /var/www/entwicklung/logs/error.log
CustomLog /var/www/entwicklung/logs/access.log combined
[...] - sudo a2ensite entwicklung
- sudo /etc/init.d/apache2 restart
- sudo /etc/init.d/apache2 reload
Anmerkung:
- restart wird benötigt um die gd-Lib und Imagemagick Anpassungen zu aktiveren
- reload wird jedesmal gebraucht sobald eine neue Site eingerichtet wird
MySQL einrichten
- sudo mysql -u root -p
- interaktiv Passwort eingeben
CREATE USER 'entwicklung'@'%' IDENTIFIED BY '***';
GRANT USAGE ON * . * TO 'entwicklung'@'%' IDENTIFIED BY '***' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
CREATE DATABASE IF NOT EXISTS 'entwicklung';
GRANT ALL PRIVILEGES ON 'entwicklung'.* TO 'entwicklung'@'%';
FLUSH privileges;
TYPO3 Paket bereitstellen
- wget http://ovh.dl.sourceforge.net/sourceforge/typo3/dummy-4.2.6.tar.gz
- tar xzf dummy-###.tar.gz
- wget http://ovh.dl.sourceforge.net/sourceforge/typo3/typo3_src-4.2.6.tar.gz
- tar xzf typo3_src-###.tar.gz
- ln -s typo3_src/t3lib t3lib
- ln -s typo3_src/typo3 typo3
- ln -s ../../typo3_src/typo3_src-4.2.0/ typo3_src
Debugging
Alle die Debugging brauchen können noch xdebug zusätzlich installieren:
- sudo apt-get install php5-xdebug
- sudo nano /etc/php5/apache2/conf.d/xdebug.ini
[...]
zend_extension=/usr/lib/php5/20060613+lfs/xdebug.so
[debug]
; Remote settings
xdebug.remote_enable=1
xdebug.remote_handler="dbgp"
xdebug.remote_host="192.168.0.50"
xdebug.remote_port=9000
xdebug.remote_mode=req
xdebug.idekey=ECLIPSE_DBGP
xdebug.remote_log=/var/log/apache2/xdebug.log
Anmerkungen:
wichtig ist es den remote_host auf die Workstation von der aus gearbeitet wird zu setzen.
Sollte Eclipse als Debugger eingesetzt werden, muss in Preferences > PHP > Debug > Installed Debuggers die Einstellungen von XDebug mit Doppelklick geöffnet werden und Accept remote session (JIT) auf any gestellt werden.
Sollte Eclipse Breakpoints ignorieren hilft es manchmal wenn man xdebug_break(); an die gewünschte Stelle schreibt.
Allgemeine Tips
sudo mysql -u root -p Datenbankname < /filename
tar cfvz archive.tar.gz ./verzeichnis/
Meine Mission
Ziel meiner Veröffentlichungen ist es, meine Begeisterung für die Programmierung und das über die Jahre gewonnene Wissen mit anderen Entwicklern zu teilen. Dabei ist es mir wichtig, Lösungen zu thematisieren für die ich in Suchmaschinen keine Antworten finden konnte. Außerdem versuche ich die von mir veröffentlichten Extensions an Beispielen zu erläutern.
Entwicklung
Service
Neueste Blogeinträge
-
CLI remote Debugging kurz konfiguriert
22. Juli 2016
-
jQuery.toggle() ab Version 1.9 entfernt
17. Jan. 2013
-
CodeSniffer in Eclipse nutzen
13. März 2011