Installeer PECL pakketten op Cyberpanel met LSPHP

door mei 3, 2024Uncategorized

Als je CyberPanel gebruikt ben je er misschien achter gekomen dat pecl niet heel lekker werkt. Als je bijvoorbeeld de amqp pecl extensie wilt installeren voor RabbitMQ dan gaat dit niet makkelijk.

Gelukkig hebben wij een handig script voor jou gemaakt.

Handleiding Cyberpanel PECL LSPHP script

  1. Login met je SSH console en navigeer naar de plek waar je het script wilt plaatsen. Wij gebruiken hiervoor de directory /home/scripts
    • bijvoorbeeld: mkdir -p /home/scripts && cd /home/scripts
  2. Geef het script een herkenbare naam en zorgt dat het eindigt met .sh .
    • Bijvoorbeeld; lsphp-pecl-install.sh
  3. Geef het script uitvoeringsrechten.
    • bijvoorbeeld; chmod +x lsphp-pecl-install.sh
  4. Voer het script uit. Als je niet als root bent ingelogt, gebruik dan sudo.
    • Bijvoorbeeld; sudo ./home/scripts/lsphp-pecl-install.sh
  5. Kies jouw php versie, pecl extensie naam en versie.
    • Bijvoorbeeld; 81 – amqp – 2.1.2
    • Op de site van PECL vind je alle extensies en versies
  6. Herstart LiteSpeed webserver om PHP te herstarten
    • Bijvoorbeeld; service lsws restart
  7. Test of alles werkt.

PECL LSPHP script

#!/bin/bash

read -p "Enter the lsphp version (e.g., 82 for lsphp82): " lsphp_version
read -p "Enter the PECL package name (e.g., amqp): " PECL_name
read -p "Enter the PECL package version (e.g., 2.1.2): " PECL_version

PHP_DIR="/usr/local/lsws/lsphp${lsphp_version}"
PECL_TAR="${PECL_name}-${PECL_version}.tgz"
PECL_DIR="${PECL_name}-${PECL_version}"

cd /tmp || exit
if ! wget "https://pecl.php.net/get/${PECL_TAR}"; then
    echo "Failed to download ${PECL_TAR}"
    exit 1
fi
if ! tar -zxvf "${PECL_TAR}"; then
    echo "Failed to extract ${PECL_TAR}"
    exit 1
fi

cd "${PECL_DIR}" || exit
sudo "${PHP_DIR}/bin/phpize"
if ! ./configure --with-${PECL_name}="${PHP_DIR}" --with-php-config="${PHP_DIR}/bin/php-config"; then
    echo "Configure failed"
    exit 1
fi
if ! make; then
    echo "Make failed"
    exit 1
fi
sudo make install

PECL_INI_PATH="${PHP_DIR}/etc/php/$(echo $lsphp_version | cut -c 1).$(echo $lsphp_version | cut -c 2)/mods-available/${PECL_name}.ini"
sudo touch "${PECL_INI_PATH}"
echo "extension=${PECL_name}.so" | sudo tee -a "${PECL_INI_PATH}" > /dev/null

cd /tmp || exit
rm -rf "${PECL_DIR}" "${PECL_TAR}"

echo "Installation of ${PECL_name} version ${PECL_version} for lsphp${lsphp_version} completed."