PHP 7.x für ispconfig3

Hier eine kleine schnelle Roadmap für die Installation weiterer PHP Versionen unter ispConfig3

apt -y install build-essential nano net-tools autoconf
apt install libfcgi-dev libfcgi0ldbl libmcrypt-dev libssl-dev libc-client2007e libc-client2007e-dev libxml2-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libfreetype6-dev libkrb5-dev libpq-dev libxml2-dev libxslt1-dev libzip-dev libsqlite3-dev libonig-dev
ln -s /usr/lib/libc-client.a /usr/lib/x86_64-linux-gnu/libc-client.a
cd /usr/include
ln -s x86_64-linux-gnu/curl
cd /tmp
wget https://www.php.net/distributions/php-7.4.0.tar.gz
tar xfz php-7.4.0.tar.gz
cd php-7.4.0
./configure --prefix=/opt/php-7.4 --with-pdo-pgsql --with-zlib-dir --with-freetype --enable-mbstring --enable-soap --enable-calendar --with-curl --with-zlib --enable-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --with-zip --with-pdo-mysql --with-mysqli --with-mysql-sock=/var/run/mysqld/mysqld.sock --with-jpeg --with-openssl --with-fpm-user=www-data --with-fpm-group=www-data --with-libdir=/lib/x86_64-linux-gnu --enable-ftp --with-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-intl --with-pear --enable-fpm
make
make install
cp php.ini-production /opt/php-7.4/lib/php.ini
cp /opt/php-7.4/etc/php-fpm.conf.default /opt/php-7.4/etc/php-fpm.conf
cp /opt/php-7.4/etc/php-fpm.d/www.conf.default /opt/php-7.4/etc/php-fpm.d/www.conf
sed -i 's/;pid = run\/php-fpm.pid/pid = run\/php-fpm.pid/g' /opt/php-7.4/etc/php-fpm.conf
nano /lib/systemd/system/php-7.4-fpm.service

Und folgendes eintragen

[Unit]
	Description=The PHP 7.4 FastCGI Process Manager
	After=network.target

	[Service]
	Type=simple
	PIDFile=/opt/php-7.4/var/run/php-fpm.pid
	ExecStart=/opt/php-7.4/sbin/php-fpm --nodaemonize --fpm-config /opt/php-7.4/etc/php-fpm.conf
	ExecReload=/bin/kill -USR2 $MAINPID

	[Install]
	WantedBy=multi-user.target

Danach geht es wieder klassisch in der Shell weiter.

systemctl enable php-7.4-fpm.service
systemctl daemon-reload
systemctl start php-7.4-fpm.service
echo zend_extension=opcache.so >> /opt/php-7.4/lib/php.ini
cd /opt/php-7.4/etc
../bin/pecl -C ./pear.conf update-channels
../bin/pecl -C ./pear.conf install memcached
echo extension=memcached.so >> /opt/php-7.4/lib/php.ini
cd /opt/php-7.4/etc
../bin/pecl -C ./pear.conf update-channels
../bin/pecl -C ./pear.conf install apcu
echo extension=apcu.so >> /opt/php-7.4/lib/php.ini
service apache2 restart
systemctl start php-7.4-fpm.service

In iscConfig3 geht es dann unter „System“ -> „Additional PHP Versions“ weiter. Dort auf „Add…“ klicken und einen sinnvollen Namen, z.B. PHP 7.4, eingeben.

Im Registertab „FastCGI Settings“ kommt folgendes in die beiden Zeilen:

/opt/php-7.4/bin/php-cgi
/opt/php-7.4/lib

In die Registerkarte „PHP FPM Setting“ kommt dann:

php-7.4-fpm
/opt/php-7.4/lib
/opt/php-7.4/etc/php-fpm.d

Anschliessend kann man die PHP Version in der Site-Konfiguration des Kunden anpassen.

Projektstunden berechnen, runden im viertel Stunden Takt

Ich berechne meinen Kunden pro angefangene viertel Stunde meine Dienstleistungen. Um keine Fehler in der Abrechnung zu haben verwende ich dafür folgende Excel Berechnung. Diese ermöglicht es mir zum einen korrekt die Zeitdifferenz zu ermitteln und gleichzeitig auf die nächste viertel Stunde zu runden.

=OBERGRENZE(C3-B3;1/96)

Wobei C3 die gehen Zeit und B3 die kommen Zeit ist. Auf dem folgenden Bild ist dies noch mal in andere Art veranschaulicht.

OSX: Unsichtbare Dateien im Finder anzeigen/verstecken

Als Standard sind im Finder Dateien unsichtbar sofern diese mit einem . beginnen. Mit folgendem kleinen Kniff werden diese sichtbar:

defaults write com.apple.finder AppleShowAllFiles -bool YES && killall Finder 

Tascht man das -bool YES durch -bool NO wird die Änderung wieder rückgängig gemacht.
Mit zwei Alias Befehlen ist das natürlich noch komfortabler sofern man dies öfters benötigt:

alias hidden-finder-on='defaults write com.apple.finder AppleShowAllFiles -bool YES && killall Finder '
alias hidden-finder-off='defaults write com.apple.finder AppleShowAllFiles -bool NO && killall Finder '