Kategorien
Debugging Deployment Linux MySQL Server Shell

Search / Replace with SED without escaping slashes

As you might know, you can use any delimiter to use the search/replace feature of sed to avoid extreme escaping of slashes.

~/ sed -r -e 's@http://google.com/@http://example.com/@g' < input.file > output.file
Kategorien
Frameworks Kohana Linux Nginx Server Shell

Kohana 2.3 NGINX htaccess like URL rewrite

Um Kohana 2.3 auf NGINX mit sauberen URLs zu konfigurieren geht folgende NGINX server config:

server {
        server_name example.com www.example.com;
        listen   80;

        root /srv/www/example.com/pages/;
        access_log /srv/www/example.com/logs/access.log;
        error_log /srv/www/example.com/logs/error.log;

        index index.php index.html index.htm;

        try_files $uri $uri/ @rewrite;

        location @rewrite {
                rewrite ^/(.*)$ /index.php/$1;
        }

        location ~ \.php {
                fastcgi_index index.php;
                fastcgi_pass 127.0.0.1:9000;

                include fastcgi_params;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_param PATH_INFO $fastcgi_path_info;
                fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param ENV "production";
        }
}
Kategorien
Debugging Linux PHP Server Shell

wo ist das php log auf diesem Server

wer sich das ab und an fragt, kann mit

php -i | grep log

angezeigt bekommen, wo die aktuelle php installation ihre logs hinschreibt.

Kategorien
Linux Postfix Server Shell

postfix und domain mail forwarding

um mails an domains deines server zu echten mail adressen weiterzuleiten, geht mit postfix folgendes:


# öffne /etc/postfix/main.cf 
inet_interfaces = all

# am ende einfügen
virtual_alias_domains = hash:/etc/postfix/virtual_domains
virtual_alias_maps = hash:/etc/postfix/virtual

# in der  /etc/postfix/virtual_domains die domains eintragen
mydomain.com OK
myotherdomain.com OK

# in der  /etc/postfix/virtual die weiterleitungen eintragen (2ter eintrag ist ein catchall)
mail@mydomain.com myrealaddress@gmail.com, myotherrealaddress@gmail.com
@myotherdomain.com myrealaddress@gmail.com

# adde neues mapping zur postmap (wenn noch nicht vorhanden)
$ postmap /etc/postfix/virtual_domains
$ postmap /etc/postfix/virtual

# reload / restart postfix config
$ service postfix reload

beachte das beim testen dieser mails bspw. bei gmail eine loop detection zum einsatz kommt, die verhindert das du mails weitergeleitet bekommst die du mit dem selben gmail account absendest. gmail alias addressen als absender hingegen funktionieren.

Kategorien
Linux Server Shell

linux (ubuntu) user add mit home und shell

um einen neuen user mit eigenem /home/user verzeichnis und shell zu erzeugen geht folgendes auf der console

~$ useradd -s /bin/bash -m mynewuser
Kategorien
Deployment Linux MySQL Shell

definer mit sed aus mysql dump entfernen

um aus bestehenden mysqldumps die user@host definer zu entfernen kann man folgendes tun

~ $ sed -r -e "s/\/\*[^\/]*DEFINER.*\*\///g" < mysqldump.sql > mysqldump-exdefiner.sql
Kategorien
Deployment Linux Server Shell

scp (secure copy) von server zu server

um schnell (ohne evtl. nfs mount flaschenhälse) dateien von server zu server zu kopieren, kann man scp benutzen.
auf dem ziel server einloggen und:

~ $ scp user@ip_or_domain:path/to/remote/file /path/to/local/dir/   
Kategorien
Deployment Linux Server Shell

crontab schnell erklärt

im ubuntu users wiki ist eine schöne knappe erklärung zu crontab:

wiki.ubuntuusers.de/Cron

Kategorien
Deployment Javascript Layout & Styles Linux Server Shell

howto purge url mit squidclient

um mit dem squidclient veraltete dateien aus dem cache zu entfernen, geht man wie folgt vor:

 
user@server:/www$ squidclient -m PURGE http://www.example.com/js/javascript.js
 
Kategorien
Deployment Linux Server Shell

howto setup ramfs und tmpfs

um schnelle dateizugriffe für caches zu realisieren, ist es angebracht diese dateistruktur im ram des rechners zu erzeugen. tmpfs und ramfs benutzen jeweils den ram des rechners und unterscheiden sich folgendermaßen:

tmpfs wächst nicht dynamisch, sondern hält immer die grösse mit der es angelegt wurde.
tmpfs benutzt den swap bereich bei überladung.

ramfs wächst dynamisch und kann sämtlichen speicher aufbrauchen.
ramfs benutzt keinen swap.

 
# mkdir -p /mnt/tmpcache
 
# mount -t tmpfs -o size=100m tmpfs /mnt/tmpcache

# mkdir -p /mnt/ramcache

# mount -t ramfs -o size=100m ramfs /mnt/ramcache
 

der befehl mount zeigt alle derzeit gemounteten dateisysteme.
die auslastung kann mittels df -k angezeigt werden

 
# df -k tmpcache/
Filesystem           1K-blocks      Used Available Use% Mounted on
tmpfs                   102400      1588    100812   2% /mnt/tmpcache

# mount
...
tmpfs on /mnt/tmpcache type tmpfs (rw,size=100m)
ramfs on /mnt/ramcache type ramfs (rw,size=100m)

um diese ordner permanent zu mounten (auch nach systemstart) muss ein eintrag in die /etc/fstab geschrieben werden.