Add applications/laravel-roadrunner/install.sh
This commit is contained in:
83
applications/laravel-roadrunner/install.sh
Normal file
83
applications/laravel-roadrunner/install.sh
Normal file
@@ -0,0 +1,83 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Function to ensure a setting is present, uncommented, and correctly set
|
||||
set_php_ini_value() {
|
||||
local ini_file=$1
|
||||
local key=$2
|
||||
local value=$3
|
||||
|
||||
if grep -qE "^\s*;?\s*${key}\s*=" "$ini_file"; then
|
||||
sed -i "s/^\s*;?\s*${key}\s*=.*/${key} = ${value}/" "$ini_file"
|
||||
else
|
||||
echo "${key} = ${value}" >> "$ini_file"
|
||||
fi
|
||||
}
|
||||
|
||||
# Step 1 - Components Installation
|
||||
echo "Installing required packages..."
|
||||
|
||||
apt-get install -y apt-transport-https curl debian-archive-keyring debian-keyring software-properties-common bzip2 gettext git gnupg2 net-tools pv redis unzip wget whois ca-certificates cron gnupg lsb-release nginx
|
||||
|
||||
curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
|
||||
|
||||
echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php.list
|
||||
|
||||
apt-get update -y
|
||||
|
||||
echo "Installing PHP and required extensions..."
|
||||
apt-get install -y php8.2 php8.2-mysql php8.2-cli php8.2-common php8.2-curl php8.2-ds php8.2-fpm php8.2-gd php8.2-gmp php8.2-gnupg php8.2-igbinary php8.2-imap php8.2-intl php8.2-mbstring php8.2-opcache php8.2-readline php8.2-redis php8.2-soap php8.2-swoole php8.2-uuid php8.2-xml
|
||||
|
||||
phpIniCli='/etc/php/8.2/cli/php.ini'
|
||||
phpIniFpm='/etc/php/8.2/fpm/php.ini'
|
||||
phpIniOpcache='/etc/php/8.2/mods-available/opcache.ini'
|
||||
|
||||
# Update php.ini files
|
||||
set_php_ini_value "$phpIniCli" "opcache.enable" "1"
|
||||
set_php_ini_value "$phpIniCli" "opcache.enable_cli" "1"
|
||||
set_php_ini_value "$phpIniCli" "opcache.jit_buffer_size" "100M"
|
||||
set_php_ini_value "$phpIniCli" "opcache.jit" "1255"
|
||||
set_php_ini_value "$phpIniCli" "session.cookie_secure" "1"
|
||||
set_php_ini_value "$phpIniCli" "session.cookie_httponly" "1"
|
||||
set_php_ini_value "$phpIniCli" "session.cookie_samesite" "\"Strict\""
|
||||
set_php_ini_value "$phpIniCli" "memory_limit" "2G"
|
||||
|
||||
# Repeat the same settings for php-fpm
|
||||
set_php_ini_value "$phpIniFpm" "opcache.enable" "1"
|
||||
set_php_ini_value "$phpIniFpm" "opcache.enable_cli" "1"
|
||||
set_php_ini_value "$phpIniFpm" "opcache.jit_buffer_size" "100M"
|
||||
set_php_ini_value "$phpIniFpm" "opcache.jit" "1255"
|
||||
set_php_ini_value "$phpIniFpm" "session.cookie_secure" "1"
|
||||
set_php_ini_value "$phpIniFpm" "session.cookie_httponly" "1"
|
||||
set_php_ini_value "$phpIniFpm" "session.cookie_samesite" "\"Strict\""
|
||||
set_php_ini_value "$phpIniFpm" "memory_limit" "2G"
|
||||
|
||||
# Update opcache.ini
|
||||
set_php_ini_value "$phpIniOpcache" "opcache.jit" "1255"
|
||||
set_php_ini_value "$phpIniOpcache" "opcache.jit_buffer_size" "100M"
|
||||
|
||||
echo "PHP configuration update complete!"
|
||||
|
||||
curl -sS https://getcomposer.org/installer -o composer-setup.php
|
||||
EXPECTED_SIGNATURE="$(wget -q -O - https://composer.github.io/installer.sig)"
|
||||
ACTUAL_SIGNATURE="$(php -r "echo hash_file('sha384', 'composer-setup.php');")"
|
||||
|
||||
if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]
|
||||
then
|
||||
>&2 echo 'ERROR: Invalid installer signature'
|
||||
rm composer-setup.php
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo 'Composer installer verified'
|
||||
php composer-setup.php --quiet
|
||||
rm composer-setup.php
|
||||
mv composer.phar /usr/local/bin/composer
|
||||
echo 'Composer installed'
|
||||
|
||||
echo 'Installing RoadRunner'
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/roadrunner-server/roadrunner/master/download-latest.sh | sh
|
||||
|
||||
systemctl daemon-reload
|
||||
systemctl enable nginx.service
|
||||
|
||||
echo 'Base Packages Installed!'
|
||||
Reference in New Issue
Block a user