refactor code
This commit is contained in:
91
dependencies.sh
Executable file
91
dependencies.sh
Executable file
@@ -0,0 +1,91 @@
|
||||
#!/bin/bash
|
||||
# Install required dependencies based on detected distro
|
||||
|
||||
install_dependencies() {
|
||||
echo "Installing dependencies for $DISTRO..."
|
||||
|
||||
case "$DISTRO" in
|
||||
arch)
|
||||
install_arch_dependencies
|
||||
;;
|
||||
debian|ubuntu)
|
||||
install_debian_dependencies
|
||||
;;
|
||||
redhat|fedora|centos)
|
||||
install_redhat_dependencies
|
||||
;;
|
||||
*)
|
||||
echo "Warning: Unsupported distribution detected. You may need to install dependencies manually."
|
||||
echo "Required packages: webserver (Apache/Nginx), PHP, Git, Build tools, curl, ethtool"
|
||||
read -p "Continue anyway? [y/N] " -n 1 -r
|
||||
echo
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
install_arch_dependencies() {
|
||||
# Check and install required packages
|
||||
PACKAGES=("apache" "php" "php-apache" "git" "base-devel" "curl" "ethtool")
|
||||
|
||||
for pkg in "${PACKAGES[@]}"; do
|
||||
if ! pacman -Q "$pkg" &>/dev/null; then
|
||||
echo "Installing $pkg..."
|
||||
sudo pacman -S --noconfirm "$pkg"
|
||||
fi
|
||||
done
|
||||
|
||||
# Configure PHP with Apache if not already done
|
||||
if ! grep -q "LoadModule php_module" /etc/httpd/conf/httpd.conf; then
|
||||
sudo bash -c 'echo "LoadModule php_module modules/libphp.so" >> /etc/httpd/conf/httpd.conf'
|
||||
sudo bash -c 'echo "AddHandler php-script .php" >> /etc/httpd/conf/httpd.conf'
|
||||
sudo bash -c 'echo "Include conf/extra/php_module.conf" >> /etc/httpd/conf/httpd.conf'
|
||||
fi
|
||||
|
||||
# Set correct MPM module
|
||||
if grep -q "#LoadModule mpm_prefork_module" /etc/httpd/conf/httpd.conf; then
|
||||
sudo sed -i 's/^\(LoadModule mpm_event_module modules\/mod_mpm_event\.so\)/#\1/' /etc/httpd/conf/httpd.conf
|
||||
sudo sed -i 's/^#\(LoadModule mpm_prefork_module modules\/mod_mpm_prefork\.so\)/\1/' /etc/httpd/conf/httpd.conf
|
||||
fi
|
||||
}
|
||||
|
||||
install_debian_dependencies() {
|
||||
# Update package lists
|
||||
sudo apt update -q
|
||||
|
||||
# Install required packages
|
||||
PACKAGES=("apache2" "php" "libapache2-mod-php" "git" "build-essential" "curl" "ethtool")
|
||||
|
||||
sudo DEBIAN_FRONTEND=noninteractive apt install -y "${PACKAGES[@]}"
|
||||
|
||||
# Enable PHP module
|
||||
sudo a2enmod php
|
||||
|
||||
# Enable Apache modules
|
||||
sudo a2enmod rewrite
|
||||
}
|
||||
|
||||
install_redhat_dependencies() {
|
||||
# Install required packages
|
||||
PACKAGES=("httpd" "php" "php-cli" "git" "make" "gcc" "gcc-c++" "curl" "ethtool")
|
||||
|
||||
# Use dnf if available, otherwise fallback to yum
|
||||
if command -v dnf &>/dev/null; then
|
||||
sudo dnf install -y "${PACKAGES[@]}"
|
||||
else
|
||||
sudo yum install -y "${PACKAGES[@]}"
|
||||
fi
|
||||
|
||||
# Enable and start Apache
|
||||
sudo systemctl enable httpd
|
||||
sudo systemctl start httpd
|
||||
|
||||
# Configure SELinux if present
|
||||
if command -v sestatus &>/dev/null; then
|
||||
if sestatus | grep -q "SELinux status: *enabled"; then
|
||||
sudo setsebool -P httpd_can_network_connect 1
|
||||
fi
|
||||
fi
|
||||
}
|
Reference in New Issue
Block a user