Category Archives: PHP

Netplan


title: “Netplan”
date: 2018-09-05T15:09:03
slug: netplan


/etc/netplan/01-netcfg.yaml:

network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses:
- 192.168.178.110/24
nameservers:
addresses: [192.168.178.1]
routes:
- to: default
via: 192.168.178.1
eth1:
dhcp4: no
dhcp6: no
addresses: [192.168.56.30/24]

sed


title: “sed”
date: 2015-04-06T14:18:58
slug: sed


Ersetzen einen Strings mit einem anderen (linux nach Linux). Das g nachdem Slash bedeutet das im ganzen String ersetzt wird und nicht nur nach dem ersten Vorkommen.

sed 's/linux/Linux/g' readme.txt > ReadMe.txt

Von stdin den String bis zum letzten / abschneiden:
Hier im Beispiel wird von der Ausgabe des Befehles find (beinhaltet Pfad & Dateiname)
/root/.cache/tracker/first-index.txt
der Pfad abgeschnitten so das die Ausgabe nur noch
first-index.txt ist

find / -type f | sed 's/.\*\///g'

Den String in () nach 1 schreiben und ausgeben

sed 's/^Pl: <<"\(.\*\).\*">>$/\1/g'

PHP mit Threads compilieren


title: “PHP mit Threads compilieren”
date: 2014-10-29T10:52:44
slug: php-mit-threads-compilieren


PHP Version 5.6.X downloaden und konfigurieren:

./configure --prefix=/usr/share/php56 --datadir=/usr/share/php56 --mandir=/usr/share/man --bindir=/usr/bin/php56 --with-libdir=lib/x86\_64-linux-gnu --includedir=/usr/include/php56 --sysconfdir=/etc/php56/apache2 --with-config-file-path=/etc/php56/apache2 --with-config-file-scan-dir=/etc/php56/conf.d --enable-libxml --enable-session --with-pcre-regex=/usr --enable-xml --enable-simplexml --enable-filter --disable-debug --enable-inline-optimization --disable-rpath --disable-static --enable-shared --with-pic --with-gnu-ld --with-mysql --with-gd --with-jpeg-dir --with-png-dir --with-xpm-dir --enable-exif --with-zlib --with-bz2 --with-curl --with-mysqli --with-freetype-dir --enable-soap --enable-sockets --enable-calendar --enable-ftp --enable-mbstring --enable-gd-native-ttf --enable-bcmath --enable-zip --with-pear --with-openssl --with-imap --with-imap-ssl --with-kerberos --enable-phar --enable-pdo --with-pdo-mysql --with-mysqli --enable-intl --with-mcrypt --with-tsrm-pthreads --enable-maintainer-zts

Dann compilieren und installieren:

make
make install

Neuste pthreads Source runterladen und entpacken:

w3m http://pecl.php.net/get/pthreads
tar -xvf pthreads-2.0.10.tgz

Dann ein:

cd pthreads-2.0.10
/usr/bin/php56/phpize

(Evtl. muss autoconf installiert werden: apt-get install autoconf)

pthreads configurieren:

./configure --with-php-config=/usr/bin/php56/php-config

pthreads compilieren und instllieren

make
make install

Jetzt müsste eine Datei namens pthreads.so im Verzeichnis /usr/share/php56/lib/php/extensions/no-debug-zts-20131226/ exitieren

Jetzt die php.ini aus den sourcen nach /etc/php56/cli kopieren

cp php.ini-development /etc/php56/conf.d/php.ini

Dann noch die extension in der php.ini Datei eintragen

extension=/usr/share/php56/lib/php/extensions/no-debug-zts-20131226/pthreads.so

Checken in php mit pthreads funktioniert:

/usr/bin/php56/php -m | grep pthreads

Ergebnis sollte sein:

pthreads

Moving a MySQL Database to a new Host via Master/Slave Replication


title: “Moving a MySQL Database to a new Host via Master/Slave Replication”
date: 2014-08-05T12:30:53
slug: moving-a-mysql-database-to-a-new-host-via-masterslave-replication


Diese Methode eignet sich sehr gut um sehr große Datenbanken umzuziehen.
Während des Dumps können auch noch neue Daten geschrieben werden die mit Transferiert werden.

  1. Auf der alten Datenbank die Transaction Logs einschalten und einen Replication User anlegen:

vi my.cnf

server-id = 1
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 2
log-bin= /var/log/mysql/mysql-bin.log

mysql -uroot -p

GRANT REPLICATION SLAVE ON \*.\* TO 'replication'@'%' IDENTIFIED BY 'PASSWORD';
FLUSH PRIVILEGES;
  1. Auf der neuen Datenbank den Master Server konfigurieren:
    mysql -uroot -p
CHANGE MASTER TO MASTER\_HOST='server1', MASTER\_USER='replication', MASTER\_PASSWORD='PASSWORD';
  1. Einen Datendump erzeugen der auch die Position des Log Files enthält:
mysqldump -uroot dbname --master-data > dbname.db

Der Dump enthält eine nachfolgende Zeile die dem Slave mitteilt ab welcher Stelle es bei den Transaction Logs weiter geht: CHANGE MASTER TO MASTER_LOG_FILE=’mysql-bin.001359′, MASTER_LOG_POS=76101;

  1. Auf dem Slave (neuer Server) den Datendump einlesen
    mysql -uroot -p
source dbname.db
  1. Den Slave starten, jetzt beginnt der Transfer der Daten aus den Transaction Logs vom alten Server
start slave;
  1. Der Transfer kann mit folgerndem Befehl überwacht werden:
show slave status\G

install Imagick extension for PHP 5.4


title: “install Imagick extension for PHP 5.4”
date: 2014-07-04T09:20:30
slug: install-imagick-extension-for-php-5-4


mkdir temp
wget http://mirror.checkdomain.de/imagemagick/ImageMagick-6.8.9-0.tar.gz
tar -xzvf ImageMagick-6.8.9-0.tar.gz
cd ImageMagick-6.8.9-0
./configure
make
make install

wget http://pecl.php.net/get/imagick-3.1.2.tgz
tar xzvf imagick-3.1.2.tgz
cd imagick-3.1.2
phpize54
./configure --with-php-config=/usr/local/bin/php54-config
make
cp modules/imagick.so /var/lib/php54
extension\_dir = /var/lib/php54
extension = imagick.so

Cookies von Iceweasel auslesen / in .txt Datei schreiben


title: “Cookies von Iceweasel auslesen / in .txt Datei schreiben”
date: 2014-03-12T09:41:03
slug: cookies-von-iceweasel-auslesen-in-txt-datei-schreiben


Da Iceweasel die Cookies in einer SQLlite Datenbank speichert, wird sqlite3 benötigt.
Das ist ein Command Line Tool um die Datei auszulesen.

Unter Debian wird diese mit folgendem Befehl installiert:

apt-get install sqlite3

Das nachfolgende Script liest die cookies aus und schreibt diese in die Datei cookies.txt

#!/bin/bash

PROFILE=`ls ~/.mozilla/firefox | grep default`
sqlite3 -separator ' ' $HOME/.mozilla/firefox/$PROFILE/cookies.sqlite 'select host, "TRUE", path, "FALSE", expiry, name, value from moz\_cookies' > cookies.txt

Fehler: mod_fcgid: HTTP request length 15730264 (so far) exceeds MaxRequestLen (15728640)


title: “Fehler: mod_fcgid: HTTP request length 15730264 (so far) exceeds MaxRequestLen (15728640)”
date: 2014-03-04T12:59:22
slug: fehler-mod_fcgid-http-request-length-15730264-so-far-exceeds-maxrequestlen-15728640


In der FCGI Config Datei muss die maximale Post Size erhöht werden.
Hier ein Beispiel in der fcgid.conf:

AddHandler fcgid-script .fcgi
FcgidConnectTimeout 180
FcgidIOTimeout 600
FcgidMaxRequestLen 134217728 // (=128MB)
MaxRequestLen 134217728 // (=128MB)
MaxRequestsPerProcess 1500