Nov
30
2011
Wow. Mir ist aufgefallen, wohl erst recht spät, dass es Funktionen wie preg_match_all (PHP) / String.scan (Ruby) in Javascript (zumindest in dieser Form) gar nicht gibt.
Ja, es gibt String.match. Die Funktion ist aber leider wenn man mehrere Dinge “matchen” möchte via RegExp nur bedingt brauchbar.
Zugegeben: Bis jetzt habe ich so etwas einfach nie benötigt.
Wie auch immer. Folgende Funktion ist des Rätsels Lösung:
1 2 3 4 5 6 7 8 9 10 11
| function preg_match_all(regex, haystack) {
var globalRegex = new RegExp(regex, 'g');
var globalMatch = haystack.match(globalRegex);
matchArray = new Array();
for (var i in globalMatch) {
nonGlobalRegex = new RegExp(regex);
nonGlobalMatch = globalMatch[i].match(nonGlobalRegex);
matchArray.push(nonGlobalMatch[1]);
}
return matchArray;
} |
no comments | posted in Coding, Javascript
Sep
30
2010
Ich habe auf meinen MacBook Pro neulich XAMPP für Mac OS X installieren wollen. Soweit so gut.
Ich hatte herausgefunden, dass man in den Systemeinstellungen unter Sharing das Websharing ausmachen muss – da sonst der interne oder vorinstallierte Apache gestartet wird. Da ich ewig suchen musste, wie man nun auch den integrierten MySQL Server ausschalten kann schreib ich das nun hier nieder.
- Shell starten/einloggen und mit “su” erstmal auf Root-Ebene gehen.
- Um den MySQL Server erstmal zu stoppen hilft folgender Befehl: /Library/StartupItems/MySQLCOM/MySQLCOM stop
- Um den Service nun permanent auszuschalten – aber die Möglichkeit offen lassen ihn doch nochmals irgendwann zu starten hilft:
nano /etc/hostconfig
- Dort den Eintrag “MYSQLCOM=-YES-” auf “MYSQLCOM=-NO-” umändern. Nur noch Speichern und fertig.
Ich habe mir dazu noch ein Startup Script für Xampp gemacht und dieses in den Autostart gepackt.
[Update]
Ich schreib einfach mal die Anleitung für den Autostart mit dazu, da dass ja auch nicht so offensichtlich ist.
Hierbei muss man wie folgt vorgehen:
- Unter Programme -> AppleScript -> Skripteditor starten
- folgenden Inhalt einfügen:
1 2 3
| do shell script "/Applications/xampp/xamppfiles/mampp startapache" password "deinAdminPasswort" with administrator privileges
do shell script "/Applications/xampp/xamppfiles/mampp startmysql" password "deinAdminPasswort" with administrator privileges
do shell script "ln -s /Applications/xampp/xamppfiles/var/mysql/mysql.sock /tmp/mysql.sock" |
- Ablage -> Speichern als -> “Programm” auswählen und die Datei irgendwo ablegen.
- Nun unter Systemeinstellungen -> Benutzer -> Benutzer auswählen
- Den Tab “Startobjekte” auswählen
- Mit + das eben erstellte Programm hinzufügen und das Häckchen bei Ausblenden setzen.
[/Update]
Das unter OS X manches so unnötig kompliziert ist :-/
37 comments | tags: apple, osx, xampp | posted in OS, OS X
Sep
30
2010
Diesen Artikel hatte ich vor ein paar Jahren verfasst – dennoch finde ich, dass er nach wie vor sehr nützlich ist.
Um einen bequemen Login-Vorgang auf eine Shell einzurichten – per private Key-File (ppk) – sind folgende Schritte notwendig.
- Auf die Shell connecten
- Prüfen ob im Homeverzeichnis der Ordner .ssh vorhanden ist.
Ist dies der Fall weiter mit Schritt 4.
- Auf der Shell den Befehl ssh localhost ausführen und die Abfrage mit yes bestätigen.
Weiter mit Schritt 2)
- Nun prüfen ob die Datei authorized_keys im .ssh-Ordner vorhanden ist. [cd .ssh/ && ls -l]
Ist dies der Fall weiter mit Schritt 7)
- Die Datei authorized_keys mit den Befehl touch authorized_keys anlegen.
- Die Rechte der Datei authorized_keys auf 600 festlegen. chmod 600 authorized_keys
- PuttyGEN runterladen –> http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe
- PuttyGEN starten und auf den Button Generate klicken und die Maus wild umherschleudern
- ALLES im Fenster Key – Public key for pasting into OpenSSH authorized_keys file: markieren + kopieren
- Den Button Save private key drücken und die Datei irgendwo abspeichern wo sie sicher ist.
Alternativ natürlich auf den USB-Stick.
- Wechseln zur Shell/Putty. Die Datei authorized_keys öffnen und schreibmodus aktivieren (Einfg-Taste)
- Für gewöhnlich steht in der authorized_keys Datei nur eine Zeile drin, da man für einen Login in der Shell auch nur eine Keydatei hat. Ist allerdings eine zweite Keyfile erwünscht trennt man mit einem Enter und und geht in Zeile 2. Fügt nun das Kopierte von eben ein (Shift+Einfg-Tasten)
- Speichert und verlasst die Datei nun. (ESC, danach :wq schreiben und mit Enter bestätigen
- Öffnet nun Putty und ladet eure(n) Session/Server
- Geht in den Abschnitt: Connection -> SSH -> Auth
- Bei Authentication parameters – Private key file for authentication: klickt ihr auf Browse und selektiert eure ppk Datei von Schritt 10)
Anmerkung: Habt ihr diese nur auf euren USB Stick funktioniert das ganze dann natürlich auch nur wenn der USB Stick angeschlossen ist, da ein kompletter Pfad gespeichert wird.
- Nun könnt ihr (optional) den Login-Vorgang noch beschleunigen indem ihr in den Abschnitt Connection -> Data wechselt.
Tragt nun bei Login details – Auto-login username euren Benutzernamen ein mit dem ihr euch standardmäßig einloggen wollt.
FERTIG!
Das ganze könnt ihr jetzt natürlich noch ein wenig erweitern. Wenn es sich um euren Root-Server handelt und ihr ihn sicherer machen wollt empfehle ich noch folgende Schritte (dies bezieht sich auf einen Debian 5.0 Server):
Prüft als aller erstes, ob ihr euch ohne Probleme und ohne Passworteingabe in Putty einloggen könnt.
(Mit der Anleitung von oben)
Sollte dies NICHT funktionieren rate ich von den unten stehenden Schritten ab, da die Möglichkeit besteht, dass ihr euch selbst aussperrt!
Ich übernehme keinerlei Verantwortung für irgendwelche Dinge, die ihr auf euren Server macht.
Legt erst ein Backup der Datei an:
Als root: cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup oder als Nutzer eben mit sudo davor.
Nun bearbeiten wir die Datei: vi /etc/ssh/sshd_config – danach die Einfg-Taste.
Folgende Parameter (um)setzen bzw. verändern:
1 2 3 4 5 6 7
| PermitRootLogin no
PermitEmptyPasswords no
PasswordAuthentication no
;ACHTUNG: ab jetzt geht nur noch ein Login per *.ppk-Datei
UsePAM no
AllowUsers username
;ACHTUNG: dies MUSS geändert werden in den Nutzer, mit dem ihr euch einloggt. Sind mehrere Benutzer erlaubt trennt man diese mit einem Leerzeichen |
Nun die Datei verlassen (ESC, danach :wq und mit Enter bestätigen)
Nun startet ihr eure SSH neu mit den Befehl /etc/init.d/ssh restart als root oder eben mit sudo davor.
Ich empfehle euch jetzt, Putty erneut zu starten (die alte Verbindung nicht schließen!) und versuchen auf den Server einzuloggen. Funktioniert dies noch tadellos habt ihr nichts falsch gemacht und euer Server ist auf jedenfall ein Stück sicherer. Geht ein Login nicht mehr, solltet ihr die Backup-Datei mit der aktuellen ersetzen und den SSH Dienst nochmals neustarten.
21 comments | tags: server, shell, ssh | posted in Server