XAMPP auf usb-stick bringen - unter linux - geht das denn?!

Irgendwelche Probleme mit XAMPP für Linux? Dann ist hier genau der richtige Ort um nachzufragen.

XAMPP auf usb-stick bringen - unter linux - geht das denn?!

Postby unleash » 03. December 2011 11:11

guten Morgen liebe Community

also - ich will XAMPP auf einen USB-Stick bringen. Und das ganze einfach unter einer Linux-Version. d.h. ich habe hier ein Linux am Laufen. Wie kann ich das am besten machen. Hab gehoert, dass das Linux halt ein System ist dass XAMPP dann in opt/ usw. usf .schreiben will.

Das will ich grade nicht. Wer kann hier weiterhelfen.

freu mich wenn hier jemand ist....

ul
unleash
 
Posts: 132
Joined: 03. December 2011 10:16
XAMPP Version: 5.6.3
Operating System: OpenSuse Linux 12.1

xampp als portet app - auf den Stick bringen - openSuse-Syst

Postby unleash » 03. December 2011 17:43

hallo - also ich will ja den xampp 177 auf einen stick bringen

Da das - für die Schliessliche Anwendung unter Linux nicht so leicht ist - dachte ich - versuchs doch mal mit Portet-Apps.

Also die Frage nach einem; xampp als portet app - hmm der lässt sich auch glaube ich auf den Stick bringen -

Und dann am Ende kann ich den auch auf openSuse-Systeme - via Stick einsetzen - ebenso wie auch auf Windows

Was meint ihre denn!?

Lg Ul
unleash
 
Posts: 132
Joined: 03. December 2011 10:16
XAMPP Version: 5.6.3
Operating System: OpenSuse Linux 12.1

Re: XAMPP auf usb-stick bringen - unter linux - geht das den

Postby cor2go » 08. October 2012 18:04

Hallo unleash,

ich habe vor einiger Zeit einige Versuche gestartet um genau wie Du das xampp auf einem schnellen USB Stick unterzubringen.

Das erste Problem ist das viele Konfigurationsdateien den Pfad /opt/lampp fest verdrahtet haben.
Um das zu lösen habe ich erstmal alle Vorkommen von /opt/lampp durch eine variable ersetzt (die per default auf /opt/lampp gesetzt ist)

Damit nicht genung, es treten weitere Probleme auf, wenn man das Verzeichnis /opt/lampp verschiebt, so entstand im Laufe der Monate eine Art Framework; ja das ganze hat einige Stunden gedauert und
war oder ist immer noch weit entfernt perfekt zu sein. Hab dabei nicht an ALLES gedacht, was bei so einem System durch verschieben so auftreten kann.

Z.z. bin ich schon soweit, dass ich mehrere Xampp Instanzen auf dem gleichen Rechner starten kann, jedoch gibt es auch hier einiges zu beachten wie die Service Ports (80,21,3326)
Und einfacher ist xampp dadurch nicht unbedingt geworden.

Mithilfe des Frameworks, damit meine ich die zusätzlichen Scripte, die ich im Laufe der Zeit entwickelt habe, ist bisher folgendes möglich:
* install.sh
Muss einmalig aufgerufen werden (ist garantiert unvollständig),aus Mangel an Zeit oder Lust noch nicht für den produktiven Einsatz gedacht.
Die Install.sh erstellt jeweils eine Kopie von den originalen xampp dateien, in denen entweder der Pfad /opt/lampp oder aber andere spezifische Einstellungen wie der mysql port 3326 hardcoded sind. Diese Kopien werden dann wie templates behandelt. (manuell ermittelt, sollte jedoch auch durch ein geschicktes grep -r oder find ersetzt werden.).
Das ist die Grundlage, damit die weiteren Scripte korrekt laufen und das system korrekt angepasst wird.
Nebenbei installiert der installer auf wunsch ein Icon und registriert eine GUI Application damit man lampp wie ein Programm via Icon starten kann.
Es werden ausserdem noch service bzw systemctl Dateien installiert, um xampp als service zu integrieren. Es kann dann wie andere Linux Dienste verwendet werden.
Die install.sh fragt dann noch ab, ob der Dienst lampp auch für einen normalen Linux Benutzer gestartet werden soll (sudoers einträge. Achtung, auch hier muss nach einem Pfadwechsel die sudoers angepasst werden.) Da die normalen Ports wie 21,80 und 443 priviligierte Ports sind, dürfte nur root den dienst starten. Mal abgesehen von Security, ist das ganze irgendwie nie so richtig fertig.
Nach dem Aufruf der install.sh gibt es eine neue Datei die alle vorhandenen template dateien als Liste enthält.

* lampp.env
# Initial values for LAMPP on a Stick
#**********************************************
# Ports for the network services,
# which will change the Ports and absolute
# pathes in all config files on the fly needed
#
# (see lampp.conf)
#**********************************************

# Default (standard ports) - they are mostly in use
# (on servers or test enviroments)
#
APORT=80 # default 80
APORTSSL=443 # 443
MPORT=3306 # 3306, 7188
FPORT=21 # 21

Hier wird mehr oder weniger die neue Umgebung konfiguriert wie ports, addons wie JRE oder tomcat etc, env vars etc, der aktuelle Pfad von lampp
der neue Pfad und die definierten Ports werden durch lampp.conf dann in allen Dateien, von denen es durch die install.sh ein template gibt, ersetzt.

* lampp.conf
Dieses Script wird beim start von xampp aufgerufen, es ersetzt den Pfad /opt/lampp durch den aktuellen Pfad , es ersetzt ausserdem die Ports der Services etc.
Es versucht zu ermitteln, ob sich seit dem letzten Start der Pfad geändert hat (was bei USB ja in der Regel der Fall ist. Auf rechner a hat der usb stick den Pfad /media/USB1, auf rechner b den Pfad /home/user/Desktop/xampp, oder xampp wurde einfach nur verschoben etc.). Wenn sich der Pfad geändert hat, müssen alle Dateien, von denen ja bereits bei der install.sh eine Liste erstellt wurde, angepasst werden - sonst funktioniert das ganze nicht.
* lampp
Auch das mitgelieferte lampp script wurde geändert. Alle Pfade sind via variable (lampp.env) gesetzt sowie die Ports, die das script abfragt um zu testen ob xampp bereits läuft etc.
Gleich am Anfang des scripts wird die lampp.env eingelesen (setzen der neuen Werte) und noch bevor xampp irgendwas ausführt, wird die lampp.conf ausgeführt.
Danach geht alles wie gehabt, xampp startet den oder die Dienste, alles wurde so modifiert, dass er nicht mehr auf den originalen Pfad versucht zuzugreifen.

# change into correct working dir before starting
_DIR="`dirname $0`"
cd ${_DIR}/

# set the new enviroment
source lampp.env

export LD_LIBRARY_PATH=${_DIR}/lib

source lampp.conf
...

* lamppWrapper.sh
# hack to use lampp aka xampp on a SSD/USB 3.0 Stick
ein einfacher Wrapper, er startet nicht nur xampp sondern noch ein paar weitere scripte (wie die firewall freigabe des neuen Webserver ports. )

Ausserdem muss man noch beachten, dass einige Linux System beim mounten von USB einen NOEXEC flag setzen (d.h. ausführen von scripts oder binaries ist nicht gestattet), dann muss man eh für den Stick andere mount optionen setzen. USB 2.0 oder langsame sticks eigenen sich auch kaum, es ist recht träge und macht kein Spass.

Möchte hier jetzt nicht alles posten, ist schon lang genug geworden.
Bin gerne bereit zu helfen, wenn dein Interesse noch da ist.

lg
c.
cor2go
 
Posts: 1
Joined: 20. September 2011 14:16


Return to XAMPP für Linux

Who is online

Users browsing this forum: No registered users and 3 guests