88 lines
2.3 KiB
Bash
Executable File
88 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# Blake3 PHP Extension Installation Script
|
|
# Für EspoCRM Docker Container
|
|
|
|
set -e # Beende bei Fehler
|
|
|
|
echo "========================================="
|
|
echo "Blake3 PHP Extension Installation"
|
|
echo "========================================="
|
|
|
|
# Schritt 1: Build-Tools installieren
|
|
echo ""
|
|
echo "Schritt 1: Installiere Build-Tools..."
|
|
apt-get update
|
|
apt-get install -y \
|
|
git \
|
|
build-essential \
|
|
autoconf \
|
|
automake \
|
|
libtool \
|
|
pkg-config \
|
|
curl \
|
|
libcurl4-openssl-dev
|
|
|
|
# PHP-Dev ist bereits im Image vorhanden
|
|
echo "PHP Development headers: $(php-config --version)"
|
|
|
|
# Schritt 2: Blake3 C-Bibliothek klonen
|
|
echo ""
|
|
echo "Schritt 2: Lade Blake3 C-Bibliothek..."
|
|
cd /tmp
|
|
rm -rf BLAKE3 php-blake3
|
|
git clone https://github.com/BLAKE3-team/BLAKE3.git
|
|
cd BLAKE3/c
|
|
gcc -shared -O3 -o libblake3.so blake3.c blake3_dispatch.c blake3_portable.c blake3_sse2_x86-64_unix.S blake3_sse41_x86-64_unix.S blake3_avx2_x86-64_unix.S blake3_avx512_x86-64_unix.S -fPIC
|
|
cp libblake3.so /usr/local/lib/
|
|
ldconfig
|
|
|
|
# Schritt 3: PHP Blake3 Extension klonen und kompilieren
|
|
echo ""
|
|
echo "Schritt 3: Kompiliere PHP Blake3 Extension..."
|
|
cd /tmp
|
|
git clone https://github.com/cypherbits/php-blake3.git
|
|
cd php-blake3
|
|
|
|
phpize
|
|
./configure
|
|
make
|
|
make install
|
|
|
|
# Schritt 4: Extension aktivieren
|
|
echo ""
|
|
echo "Schritt 4: Aktiviere Blake3 Extension..."
|
|
PHP_INI_DIR=$(php -i | grep "Scan this dir for additional .ini files" | cut -d'>' -f2 | xargs)
|
|
if [ -z "$PHP_INI_DIR" ]; then
|
|
PHP_INI_DIR="/usr/local/etc/php/conf.d"
|
|
fi
|
|
|
|
echo "extension=blake3.so" > ${PHP_INI_DIR}/99-blake3.ini
|
|
|
|
# Schritt 5: Verifizierung
|
|
echo ""
|
|
echo "Schritt 5: Verifiziere Installation..."
|
|
php -m | grep -i blake3
|
|
if [ $? -eq 0 ]; then
|
|
echo "✅ Blake3 Extension erfolgreich installiert!"
|
|
php -r "echo 'Test Hash: ' . hash('blake3', 'test') . PHP_EOL;"
|
|
else
|
|
echo "❌ Blake3 Extension nicht geladen!"
|
|
exit 1
|
|
fi
|
|
|
|
# Cleanup
|
|
echo ""
|
|
echo "Schritt 6: Aufräumen..."
|
|
cd /
|
|
rm -rf /tmp/BLAKE3 /tmp/php-blake3
|
|
|
|
echo ""
|
|
echo "========================================="
|
|
echo "✅ Installation abgeschlossen!"
|
|
echo "========================================="
|
|
echo ""
|
|
echo "Nächste Schritte:"
|
|
echo "1. Starte PHP-FPM neu: service php8.4-fpm restart || pkill -USR2 php-fpm"
|
|
echo "2. Überprüfe: php -m | grep blake3"
|
|
echo "3. Teste: php -r \"echo hash('blake3', 'test');\""
|