Install PHP 7.4 ZTS with ext-parallel on Debian 10

apt-get install build-essential pkg-config autoconf bison re2c libxml2-dev libssl-dev libsqlite3-dev libcurl4-openssl-dev libpng-dev libjpeg-dev libonig-dev libfreetype6-dev libxslt1-dev libzip-dev libtidy-dev libmysqlclient-dev

cd /usr/local/src

VERSION=7.4.21
wget -qO- https://www.php.net/distributions/php-${VERSION}.tar.gz | tar -xz
cd php-${VERSION}/ext


git clone --depth 1 --branch v1.1.4 https://github.com/krakjoe/parallel.git

cd ..
./buildconf --force

./configure \
    --prefix=/etc/php/7.4z \
    --with-config-file-path=/etc/php/7.4z \
    --with-config-file-scan-dir=/etc/php/7.4z/conf.d \
    --disable-cgi \
    --with-zlib \
    --with-zip \
    --enable-soap \
    --enable-intl \
    --with-openssl \
    --with-curl \
    --enable-mysqlnd \
    --with-mysqli=mysqlnd \
    --with-pdo-mysql=mysqlnd \
    --enable-pcntl \
    --enable-gd \
    --enable-exif \
    --with-jpeg \
    --with-freetype \
    --with-xsl \
    --with-gettext \
    --enable-bcmath \
    --enable-mbstring \
    --enable-calendar \
    --with-tidy \
    --enable-maintainer-zts \
    --enable-parallel \
    --enable-ftp \
    --enable-sockets

make -j$(nproc)
make install

cp php.ini-production /etc/php/7.4z/php.ini
ln -s /etc/php/7.4z/bin/php /usr/bin/php74z

Additional config: OPCache needs to be turned on, otherwise may run to memory corruption error in parallel extension.

mkdir /etc/php/7.4z/conf.d
nano /etc/php/7.4z/conf.d/additional.ini

memory_limit=-1

[opcache]
zend_extension=opcache
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=512
opcache.interned_strings_buffer=128

extension=amqp.so

pdo_mysql.default_socket="/var/run/mysqld/mysqld.sock"

NO_PUBKEY B188E2B695BD4743

Sometimes you may see this error “The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY B188E2B695BD4743”

You can solve this issue by running the following commands.

apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys B188E2B695BD4743
# apt-get update

How to install and configure OpenVPN on Debian 10

OpenVPN is a free and open source VPN solution. VPN solution. As a result VPN allow to secure your data communications. It implements OSI layer 2 or 3 secure network extension using the SSL/TLS protocol. A VPN allows your yo connect securely to an insecure public network such as WiFi network at the airport or hotel. Almost companies also use VPN to access corporate or enterprise or home server resources. You can bypasss geo-blocked site and increase your privacy or safety online.

Continue reading “How to install and configure OpenVPN on Debian 10”

Proxmox upgrade from 3.x to 5.x (Debian wheezy to jessie)

Proxmox Virtual Environment (PVE) is an open source server virtualization management solution based on QEMU/KVM and LXC. You can manage virtual machines, containers, highly available clusters, storage and networks with an integrated, easy-to-use web interface or via CLI. Proxmox VE code is licensed under the GNU Affero General Public License, version 3. The project is developed and maintained by Proxmox Server Solutions GmbH.

Continue reading “Proxmox upgrade from 3.x to 5.x (Debian wheezy to jessie)”

How to install OpenLiteSpeed and PHP 7.3 / 7.2 / 7.1 / 7.0 from LiteSpeed repositories on Debian 9 (stretch) / 8 (jessie)

We are going to install OpenLiteSpeed on Debian 9 (stretch) / 8 (jessie) server from LiteSpeed repository. OpenLiteSpeed is the open source edition of LiteSpeed Web Server Enterprise. Both servers are actively developed and maintained by the same team, and are held to the same high-quality coding standard. OpenLiteSpeed contains all of the essential features found in LiteSpeed Enterprise, and represents our commitment to support the Open Source community. It is recommended to use CentOS 7 / 6 for OpenLiteSpeed for stability.

Continue reading “How to install OpenLiteSpeed and PHP 7.3 / 7.2 / 7.1 / 7.0 from LiteSpeed repositories on Debian 9 (stretch) / 8 (jessie)”

How to set up master slave replication in MySQL

MySQL replication is a process that enables data from one MySQL database server (the master) to be copied automatically to one or more MySQL database servers (the slaves). Replication is asynchronous by default. Slaves do not need to be connected permanently to receive updates from the master. Depending on the configuration, you can replicate all databases, selected databases, or even selected tables within a database.

Continue reading “How to set up master slave replication in MySQL”