diff --git a/bin/installfog.sh b/bin/installfog.sh
index ea55cb858e..fa76956084 100755
--- a/bin/installfog.sh
+++ b/bin/installfog.sh
@@ -23,7 +23,10 @@ if [[ ! $EUID -eq 0 ]]; then
echo "FOG Installation must be run as root user"
exit 1 # Fail Sudo
fi
-which useradd >/dev/null 2>&1
+# Begin adjusting per @redvex2460 in PR 438
+# Use a more appropriate method for user add command lookup
+[[ -z $useraddcmd ]] && useraddcmd=$(command -v useradd) || true
+[[ -z $useraddcmd ]] && useraddcmd=$(command -v adduser) || true
if [[ $? -eq 1 || $(echo $PATH | grep -o "sbin" | wc -l) -lt 2 ]]; then
echo "Please switch to a proper root environment to run the installer!"
echo "Use 'sudo -i' or 'su -' (skip the ' and note the hyphen at the end"
@@ -320,7 +323,8 @@ while getopts "$optspec" o; do
done
[[ -z $version ]] && version="$(awk -F\' /"define\('FOG_VERSION'[,](.*)"/'{print $4}' ../packages/web/lib/fog/system.class.php | tr -d '[[:space:]]')"
[[ -z $OS ]] && OS=$(uname -s)
-if [[ $OS =~ ^[^Ll][^Ii][^Nn][^Uu][^Xx] ]]; then
+# Minor change to do our checks here.
+if [[ $OS =~ [^Ll][^Ii][^Nn][^Uu][^Xx] ]]; then
echo "We do not currently support Installation on non-Linux Operating Systems"
exit 2 # Fail OS Check
else
@@ -360,6 +364,8 @@ if [[ ! $exitcode -eq 0 ]]; then
*[Aa][Rr][Cc][Hh]*)
pacman -Sy --noconfirm lsb-release >>$workingdir/error_logs/fog_error_${version}.log 2>&1
;;
+ *[Aa][Ll][Pp][Ii][Nn][Ee]*)
+ ;;
esac
fi
[[ -z $OSVersion ]] && OSVersion=$(lsb_release -r| awk -F'[^0-9]*' /^[Rr]elease\([^.]*\).*/'{print $2}')
diff --git a/lib/alpine/config.sh b/lib/alpine/config.sh
new file mode 100644
index 0000000000..981add33da
--- /dev/null
+++ b/lib/alpine/config.sh
@@ -0,0 +1,56 @@
+#!/bin/bash
+# lib/alpine/config.sh
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+#
+[[ -z $packages ]] && packages="openrc bc cdrkit curl gcc g++ git gzip lftp m4 make mariadb mariadb-client net-tools nfs-utils openssh openssl perl perl-crypt-passwdmd5 php7 php7-session php7-fpm php7-mbstring php7-mcrypt php7-soap php7-openssl php7-gmp php7-pdo_odbc php7-json php7-dom php7-pdo php7-zip php7-mysqli php7-sqlite3 php7-apcu php7-pdo_pgsql php7-bcmath php7-gd php7-odbc php7-pdo_mysql php7-pdo_sqlite php7-gettext php7-xmlreader php7-xmlrpc php7-bz2 php7-iconv php7-pdo_dblib php7-curl php7-sockets php7-mysqli php7-ctype syslinux tar tftp-hpa vsftpd wget xz"
+[[ -z $packageinstaller ]] && packageinstaller="apk add"
+[[ -z $packagelist ]] && packagelist="apk info"
+[[ -z $packageupdater ]] && packageupdater="apk update && apk upgrade"
+[[ -z $packmanUpdate ]] && packmanUpdate="$packageinstaller"
+[[ -z $packageQuery ]] && packageQuery="apk info -e \$x "
+[[ -z $langPackages ]] && langPackages="iso-codes"
+[[ -z $dhcpname ]] && dhcpname=""
+if [[ -z $webdirdest ]]; then
+ if [[ -z $docroot ]]; then
+ docroot="/var/www/"
+ webdirdest="${docroot}fog/"
+ elif [[ "$docroot" != *'fog'* ]]; then
+ webdirdest="${docroot}fog/"
+ else
+ webdirdest="${docroot}/"
+ fi
+fi
+[[ -z $webredirect ]] && webredirect="${webdirdest}/index.php"
+[[ -z $apacheuser ]] && apacheuser="nginx"
+[[ -z $apachelogdir ]] && apachelogdir="/var/log/nginx"
+[[ -z $apacheerrlog ]] && apacheerrlog="$apachelogdir/error.log"
+[[ -z $apacheacclog ]] && apacheacclog="$apachelogdir/access.log"
+[[ -z $httpdconf ]] && httpdconf="/etc/nginx/nginx.conf"
+[[ -z $etcconf ]] && etcconf="/etc/nginx/http.d/default.conf"
+[[ -z $phpini ]] && phpini="/etc/php7/php.ini"
+[[ -z $storageLocation ]] && storageLocation="/images"
+[[ -z $storageLocationCapture ]] && storageLocationCapture="${storageLocation}/dev"
+[[ -z $dhcpconfig ]] && dhcpconfig="/etc/dhcpd.conf"
+[[ -z $dhcpconfigother ]] && dhcpconfigother="/etc/dhcp/dhcpd.conf"
+[[ -z $tftpdirdst ]] && tftpdirdst="/var/tftpboot"
+[[ -z $tftpconfig ]] && tftpconfig="/etc/xinetd.d/tftpd"
+[[ -z $ftpxinetd ]] && ftpxinetd="/etc/xinetd.d/vsftpd"
+[[ -z $ftpconfig ]] && ftpconfig="/etc/vsftpd.conf"
+[[ -z $dhcpd ]] && dhcpd="dhcpd4"
+[[ -z $snapindir ]] && snapindir="/opt/fog/snapins"
+[[ -z $php_ver ]] && php_ver="7"
+[[ -z $phpfpm ]] && phpfpm="php-fpm${php_ver}"
+[[ -z $webserver ]] && webserver="nginx"
+packages="${packages} ${webserver}"
diff --git a/lib/arch/config.sh b/lib/arch/config.sh
index e4ba25200c..1bf154d408 100644
--- a/lib/arch/config.sh
+++ b/lib/arch/config.sh
@@ -13,7 +13,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
#
-[[ -z $packages ]] && packages="apache bc cdrtools curl dhcp gcc git gzip lftp m4 make mariadb mod_fastcgi net-tools nfs-utils openssh openssl perl perl-crypt-passwdmd5 php php-apache php-fpm php-gd syslinux tar tftp-hpa vsftpd wget xinetd xz"
+[[ -z $packages ]] && packages="bc cdrtools curl dhcp gcc git gzip lftp m4 make mariadb mod_fastcgi net-tools nfs-utils openssh openssl perl perl-crypt-passwdmd5 php php-apache php-fpm php-gd syslinux tar tftp-hpa vsftpd wget xinetd xz"
[[ -z $packageinstaller ]] && packageinstaller="pacman -Sy --noconfirm"
[[ -z $packagelist ]] && packagelist="pacman -Si"
[[ -z $packageupdater ]] && packageupdater="pacman -Syu --noconfirm"
@@ -31,13 +31,21 @@ if [[ -z $webdirdest ]]; then
webdirdest="${docroot}/"
fi
fi
+[[ -z $webserver ]] && webserver="apache"
[[ -z $webredirect ]] && webredirect="${webdirdest}/index.php"
[[ -z $apacheuser ]] && apacheuser="http"
-[[ -z $apachelogdir ]] && apachelogdir="/var/log/httpd"
+if [[ $webserver == "apache" ]]; then
+ [[ -z $apachelogdir ]] && apachelogdir="/var/log/httpd"
+ [[ -z $httpdconf ]] && httpdconf="/etc/httpd/conf/httpd.conf"
+ [[ -z $etcconf ]] && etcconf="/etc/httpd/conf/extra/fog.conf"
+else
+ # This is all just a guess, will most likely need a ton of refinement
+ [[ -z $apachelogdir ]] && apachelogdir="/var/log/$webserver"
+ [[ -z $httpdconf ]] && httpdconf="/etc/$webserver/conf/httpd.conf"
+ [[ -z $etcconf ]] && etcconf="/etc/$webserver/conf/extra/fog.conf"
+fi
[[ -z $apacheerrlog ]] && apacheerrlog="$apachelogdir/error_log"
[[ -z $apacheacclog ]] && apacheacclog="$apachelogdir/access_log"
-[[ -z $httpdconf ]] && httpdconf="/etc/httpd/conf/httpd.conf"
-[[ -z $etcconf ]] && etcconf="/etc/httpd/conf/extra/fog.conf"
[[ -z $phpini ]] && phpini="/etc/php/php.ini"
[[ -z $storageLocation ]] && storageLocation="/images"
[[ -z $storageLocationCapture ]] && storageLocationCapture="${storageLocation}/dev"
@@ -49,3 +57,4 @@ fi
[[ -z $ftpconfig ]] && ftpconfig="/etc/vsftpd.conf"
[[ -z $dhcpd ]] && dhcpd="dhcpd4"
[[ -z $snapindir ]] && snapindir="/opt/fog/snapins"
+packages="${packages} ${webserver}"
diff --git a/lib/common/functions.sh b/lib/common/functions.sh
index 78a1ba20d7..f647ef165f 100755
--- a/lib/common/functions.sh
+++ b/lib/common/functions.sh
@@ -38,12 +38,12 @@ checkDatabaseConnection() {
registerStorageNode() {
[[ -z $webroot ]] && webroot="/"
dots "Checking if this node is registered"
- storageNodeExists=$(wget --no-check-certificate -qO - ${httpproto}://$ipaddress/${webroot}/maintenance/check_node_exists.php --post-data="ip=${ipaddress}")
+ storageNodeExists=$(wget --no-check-certificate -qO - ${httpproto}://${ipaddress}${webroot}/maintenance/check_node_exists.php --post-data="ip=${ipaddress}")
echo "Done"
if [[ $storageNodeExists != exists ]]; then
[[ -z $maxClients ]] && maxClients=10
dots "Node being registered"
- curl -s -k -X POST -d "newNode" -d "name=$(echo -n $ipaddress|base64)" -d "path=$(echo -n $storageLocation|base64)" -d "ftppath=$(echo -n $storageLocation|base64)" -d "snapinpath=$(echo -n $snapindir|base64)" -d "sslpath=$(echo -n $sslpath|base64)" -d "ip=$(echo -n $ipaddress|base64)" -d "maxClients=$(echo -n $maxClients|base64)" -d "user=$(echo -n $username|base64)" --data-urlencode "pass=$(echo -n $password|base64)" -d "interface=$(echo -n $interface|base64)" -d "bandwidth=1" -d "webroot=$(echo -n $webroot|base64)" -d "fogverified" $httpproto://$ipaddress/${webroot}/maintenance/create_update_node.php
+ curl -s -k -X POST -d "newNode" -d "name=$(echo -n $ipaddress|base64)" -d "path=$(echo -n $storageLocation|base64)" -d "ftppath=$(echo -n $storageLocation|base64)" -d "snapinpath=$(echo -n $snapindir|base64)" -d "sslpath=$(echo -n $sslpath|base64)" -d "ip=$(echo -n $ipaddress|base64)" -d "maxClients=$(echo -n $maxClients|base64)" -d "user=$(echo -n $username|base64)" --data-urlencode "pass=$(echo -n $password|base64)" -d "interface=$(echo -n $interface|base64)" -d "bandwidth=1" -d "webroot=$(echo -n $webroot|base64)" -d "fogverified" $httpproto://$ipaddress${webroot}/maintenance/create_update_node.php
echo "Done"
else
echo " * Node is registered"
@@ -59,7 +59,7 @@ backupDB() {
dots "Backing up database"
if [[ -d $backupPath/fog_web_${version}.BACKUP ]]; then
[[ ! -d $backupPath/fogDBbackups ]] && mkdir -p $backupPath/fogDBbackups >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- curl -skf "${httpproto}://$ipaddress/$webroot/maintenance/backup_db.php" | jq -r '. | ._content' > $backupPath/fogDBbackups/fog_sql_${version}_$(date +"%Y%m%d_%I%M%S").sql
+ curl -skf "${httpproto}://$ipaddress$webroot/maintenance/backup_db.php" | jq -r '. | ._content' > $backupPath/fogDBbackups/fog_sql_${version}_$(date +"%Y%m%d_%I%M%S").sql
fi
if [[ $? -ne 0 ]]; then
echo "Failed"
@@ -80,7 +80,9 @@ updateDB() {
local replace='s/[]"\/$&*.^|[]/\\&/g'
local escstorageLocation=$(echo $storageLocation | sed -e $replace)
sed -i -e "s/'\/images\/'/'$escstorageLocation'/g" $webdirdest/commons/schema.php
- wget --no-check-certificate -qO - --post-data="confirm&fogverified" --no-proxy ${httpproto}://${ipaddress}/${webroot}management/index.php?node=schema >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ #echo "wget --no-check-certificate -qO - --post-data=\"confirm&fogverified\" --no-proxy ${httpproto}://${ipaddress}${webroot}management/index.php?node=schema >>$workingdir/error_logs/fog_error_${version}.log 2>&1"
+ wget --no-check-certificate -qO - --post-data="confirm&fogverified" --no-proxy ${httpproto}://${ipaddress}${webroot}management/index.php?node=schema >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+
errorStat $?
;;
*)
@@ -498,6 +500,9 @@ installFOGServices() {
errorStat $?
}
configureUDPCast() {
+ # If alpine return
+ # similar to @redvex2460 but with better pass in.
+ [[ $osid -eq 4 ]] && return
dots "Setting up UDPCast"
cp -Rf "$udpcastsrc" "$udpcasttmp"
cur=$(pwd)
@@ -596,7 +601,8 @@ configureTFTPandPXE() {
if [[ -f $tftpconfig ]]; then
cp -Rf $tftpconfig ${tftpconfig}.fogbackup >>$workingdir/error_logs/fog_error_${version}.log 2>&1
fi
- if [[ $noTftpBuild != "true" ]]; then
+ # thanks @redvex2460
+ if [[ $noTftpBuild != "true" && $osid -ne 4 ]]; then
echo -e "# default: off\n# description: The tftp server serves files using the trivial file transfer \n# protocol. The tftp protocol is often used to boot diskless \n# workstations, download configuration files to network-aware printers, \n# and to start the installation process for some operating systems.\nservice tftp\n{\n socket_type = dgram\n protocol = udp\n wait = yes\n user = root\n server = /usr/sbin/in.tftpd\n server_args = -s ${tftpdirdst}\n disable = no\n per_source = 11\n cps = 100 2\n flags = IPv4\n}" > "$tftpconfig"
fi
dots 'Setting up and starting TFTP Server'
@@ -629,6 +635,9 @@ configureTFTPandPXE() {
sysv-rc-conf xinetd on >>$workingdir/error_logs/fog_error_${version}.log 2>&1
$initdpath/xinetd stop >>$workingdir/error_logs/fog_error_${version}.log 2>&1
$initdpath/xinetd start >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ elif [[ $osid -eq 4 ]]; then
+ $initdpath/in.tftpd stop >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ $initdpath/in.tftpd start >>$workingdir/error_logs/fog_error_${version}.log 2>&1
else
chkconfig xinetd on >>$workingdir/error_logs/fog_error_${version}.log 2>&1
service xinetd stop >>$workingdir/error_logs/fog_error_${version}.log 2>&1
@@ -677,12 +686,13 @@ addOndrejRepo() {
ntpdate pool.ntp.org >>$workingdir/error_logs/fog_error_${version}.log 2>&1
locale-gen 'en_US.UTF-8' >>$workingdir/error_logs/fog_error_${version}.log 2>&1
LANG='en_US.UTF-8' LC_ALL='en_US.UTF-8' add-apt-repository -y ppa:ondrej/${repo} >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- LANG='en_US.UTF-8' LC_ALL='en_US.UTF-8' add-apt-repository -y ppa:ondrej/apache2 >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ [[ $webserver == "apache2" ]] && LANG='en_US.UTF-8' LC_ALL='en_US.UTF-8' add-apt-repository -y ppa:ondrej/apache2 >>$workingdir/error_logs/fog_error_${version}.log 2>&1
}
installPackages() {
[[ $installlang -eq 1 ]] && packages="$packages gettext"
packages="$packages jq"
packages="$packages unzip"
+ packages="${packages} ${webserver}"
dots "Adjusting repository (can take a long time for cleanup)"
case $osid in
1)
@@ -731,8 +741,10 @@ installPackages() {
esac
;;
2)
- packages="${packages// libapache2-mod-fastcgi/}"
- packages="${packages// libapache2-mod-evasive/}"
+ if [[ $webserver == "apache2" ]]; then
+ packages="${packages// libapache2-mod-fastcgi/}"
+ packages="${packages// libapache2-mod-evasive/}"
+ fi
packages="${packages// php${php_ver}-mcrypt/}"
packages="${packages} php${php_ver}-bcmath bc"
packages="${packages/php-gettext/$phpgettext}"
@@ -757,7 +769,7 @@ installPackages() {
addOndrejRepo
# use ppa-purge to not just remove the repo but also downgrade packages to Ubuntu original versions
DEBIAN_FRONTEND=noninteractive apt-get install -yq ppa-purge >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- ppa-purge -y ppa:ondrej/apache2 >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ [[ $webserver == "apache2" ]] && ppa-purge -y ppa:ondrej/apache2 >>$workingdir/error_logs/fog_error_${version}.log 2>&1
# for php we want to purge all packages first as we don't want ppa-purge to try downgrading those
DEBIAN_FRONTEND=noninteractive apt-get purge -yq 'php5*' 'php7*' 'libapache*' >>$workingdir/error_logs/fog_error_${version}.log 2>&1
ppa-purge -y ppa:ondrej/php >>$workingdir/error_logs/fog_error_${version}.log 2>&1
@@ -856,6 +868,14 @@ installPackages() {
break
fi
done
+ # Only add myslqi package for osid 4 for better integration
+ if [[ $osid -eq 4 ]]; then
+ eval $packagelist php${php_ver}-mysqli >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ if [[ $? -eq 0 ]]; then
+ x="php${php_ver}-mysqli"
+ break
+ fi
+ fi
;;
esac
[[ $osid == 2 && -z $dhcpd && $x == +(*'dhcp'*) ]] && dhcpd=$x
@@ -1049,6 +1069,12 @@ doOSSpecificIncludes() {
. ../lib/arch/config.sh
systemctl="yes"
;;
+ 4)
+ echo -e "\n\n Starting Alpine Installation\n\n"
+ osname="Alpine"
+ . ../lib/alpine/config.sh
+ systemctl="no"
+ ;;
*)
echo -e " Sorry, answer not recognized\n\n"
sleep 2
@@ -1173,6 +1199,8 @@ configureMySql() {
stopInitScript
dots "Setting up and starting MySQL"
dbservice=$(systemctl list-units | grep -o -e "mariadb\.service" -e "mysqld\.service" -e "mysql\.service" | tr -d '@')
+ # Switchout dbservice for alpine
+ [[ $osid -eq 4 ]] && dbservice=$(rc-service -l | grep mariadb)
[[ -z $dbservice ]] && dbservice=$(systemctl list-unit-files | grep -v bad | grep -o -e "mariadb\.service" -e "mysqld\.service" -e "mysql\.service" | tr -d '@')
for mysqlconf in $(grep -rl '.*skip-networking' /etc | grep -v init.d); do
sed -i '/.*skip-networking/ s/^#*/#/' -i $mysqlconf >>$workingdir/error_logs/fog_error_${version}.log 2>&1
@@ -1472,7 +1500,14 @@ configureUsers() {
fi
echo "Skipped"
else
- useradd -s "/bin/bash" -d "/home/${username}" -m ${username} >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ if [[ $osid -eq 4 ]]; then
+ addgroup -S ${username} >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ $useraddcmd -s "/bin/bash" -h "/home/${username}" -S ${username} >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ touch "/home/${username}/.bashrc"
+ chown $username:$username "/home/${username}/.bashrc" >/dev/null 2>&1
+ else
+ $useraddcmd -s "/bin/bash" -d "/home/${username}" -m ${username} >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ fi
errorStat $?
fi
if [[ ! -d /home/$username ]]; then
@@ -1481,13 +1516,13 @@ configureUsers() {
echo "# This may cause issues with capturing images and snapin uploads. #"
echo "# If you this move/delete was unintentional you can run: #"
echo " userdel $username"
- echo " useradd -s \"/bin/bash\" -d \"/home/$username\" -m \"$username\""
+ echo " $useraddcmd -s \"/bin/bash\" -d \"/home/$username\" -m \"$username\""
#userdel $username
#useradd -s "/bin/bash" -d "/home/${username}" -m ${username} >>$workingdir/error_logs/fog_error_${version}.log 2>&1
#errorStat $?
fi
dots "Locking $username as a system account"
- chsh -s /bin/bash $username >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ [[ $osid -ne 4 ]] && chsh -s /bin/bash $username >>$workingdir/error_logs/fog_error_${version}.log 2>&1
textmessage="You seem to be using the '$username' system account to logon and work \non your FOG Server system.\n\nIt's NOT recommended to use this account! Please create a new\naccount for administrative tasks.\n\nIf you re-run the installer it would reset the '$username' account\npassword and therefore lock you out of the system!\n\nTake care,\nyour FOGProject team"
grep -q "exit 1" /home/$username/.bashrc >/dev/null 2>&1 || cat >>/home/$username/.bashrc <>$workingdir/error_logs/fog_error_${version}.log 2>&1
errorStat $?
fi
- local element='httpd'
- [[ $osid -eq 2 ]] && element='apache2'
+ local element=$webserver
chmod -R 755 /var/log/$element >>$workingdir/error_logs/fog_error_${version}.log 2>&1
for i in $(find /var/log/ -type d -name 'php*fpm*' 2>>$workingdir/error_logs/fog_error_${version}.log); do
chmod -R 755 $i >>$workingdir/error_logs/fog_error_${version}.log 2>&1
@@ -1639,6 +1673,7 @@ writeUpdateFile() {
escphp_ver=$(echo $php_ver | sed -e $replace)
escphp_verAdds=$(echo $php_verAdds | sed -e $replace)
escsslprivkey=$(echo $sslprivkey | sed -e $replace)
+ escwebserver=$(echo $webserver | sed -e $replace)
[[ -z $copybackold || $copybackold -lt 1 ]] && copybackold=0
if [[ -f $fogprogramdir/.fogsettings ]]; then
grep -q "^## Start of FOG Settings" $fogprogramdir/.fogsettings || grep -q "^## Version:.*" $fogprogramdir/.fogsettings
@@ -1772,6 +1807,9 @@ writeUpdateFile() {
grep -q "sendreports=" $fogprogramdir/.fogsettings && \
sed -i "s/sendreports=.*/sendreports='$sendreports'/g" $fogprogramdir/.fogsettings || \
echo "sendreports='$sendreports'" >> $fogprogramdir/.fogsettings
+ grep -q "webserver=" $fogprogramdir/.fogsettings && \
+ sed -i "s/webserver=.*/webserver='$escwebserver'/g" $fogprogramdir/.fogsettings || \
+ echo "webserver='$webserver'" >> $fogprogramdir/.fogsettings
else
echo "## Start of FOG Settings" > "$fogprogramdir/.fogsettings"
echo "## Created by the FOG Installer" >> "$fogprogramdir/.fogsettings"
@@ -1819,6 +1857,7 @@ writeUpdateFile() {
echo "php_verAdds='$php_verAdds'" >> "$fogprogramdir/.fogsettings"
echo "sslprivkey='$sslprivkey'" >> $fogprogramdir/.fogsettings
echo "sendreports='$sendreports'" >> $fogprogramdir/.fogsettings
+ echo "webserver='$webserver'" >> $fogprogramdir/.fogsettings
echo "## End of FOG Settings" >> "$fogprogramdir/.fogsettings"
fi
else
@@ -1868,6 +1907,7 @@ writeUpdateFile() {
echo "php_verAdds='$php_verAdds'" >> "$fogprogramdir/.fogsettings"
echo "sslprivkey='$sslprivkey'" >> $fogprogramdir/.fogsettings
echo "sendreports='$sendreports'" >> $fogprogramdir/.fogsettings
+ echo "webserver='$webserver'" >> $fogprogramdir/.fogsettings
echo "## End of FOG Settings" >> "$fogprogramdir/.fogsettings"
fi
}
@@ -1965,149 +2005,259 @@ EOF
chown -R $apacheuser:$apacheuser $webdirdest/management/other >>$workingdir/error_logs/fog_error_${version}.log 2>&1
errorStat $?
[[ $httpproto == https ]] && sslenabled=" (SSL)" || sslenabled=" (no SSL)"
- dots "Setting up Apache virtual host${sslenabled}"
- case $novhost in
- [Yy]|[Yy][Ee][Ss])
- echo "Skipped"
- ;;
- *)
- if [[ $osid -eq 2 ]]; then
- a2dissite 001-fog >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- a2ensite 000-default >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- fi
- mv -fv "${etcconf}" "${etcconf}.${timestamp}" >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- echo "" > "$etcconf"
- echo " " >> "$etcconf"
- if [[ $osid -eq 1 && $OSVersion -lt 7 ]]; then
- echo " SetHandler application/x-httpd-php" >> "$etcconf"
- else
- echo " SetHandler \"proxy:fcgi://127.0.0.1:9000/\"" >> "$etcconf"
- fi
- echo " " >> "$etcconf"
- echo " KeepAlive Off" >> "$etcconf"
- echo " ServerName $ipaddress" >> "$etcconf"
- echo " ServerAlias $hostname" >> "$etcconf"
- echo " DocumentRoot $docroot" >> "$etcconf"
- if [[ $httpproto == https ]]; then
- echo " RewriteEngine On" >> "$etcconf"
- echo " RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)" >> "$etcconf"
- echo " RewriteRule .* - [F]" >> "$etcconf"
- echo " RewriteRule /management/other/ca.cert.der$ - [L]" >> "$etcconf"
- echo " RewriteCond %{HTTPS} off" >> "$etcconf"
- echo " RewriteRule (.*) https://%{HTTP_HOST}/\$1 [R,L]" >> "$etcconf"
- echo "" >> "$etcconf"
- echo "" >> "$etcconf"
- echo " KeepAlive Off" >> "$etcconf"
- echo " " >> "$etcconf"
- if [[ $osid -eq 1 && $OSVersion -lt 7 ]]; then
- echo " SetHandler application/x-httpd-php" >> "$etcconf"
- else
- echo " SetHandler \"proxy:fcgi://127.0.0.1:9000/\"" >> "$etcconf"
- fi
- echo " " >> "$etcconf"
- echo " ServerName $ipaddress" >> "$etcconf"
- echo " ServerAlias $hostname" >> "$etcconf"
- echo " DocumentRoot $docroot" >> "$etcconf"
- echo " SSLEngine On" >> "$etcconf"
- echo " SSLProtocol all -SSLv3 -SSLv2" >> "$etcconf"
- echo " SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA" >> "$etcconf"
- echo " SSLHonorCipherOrder On" >> "$etcconf"
- echo " SSLCertificateFile $webdirdest/management/other/ssl/srvpublic.crt" >> "$etcconf"
- echo " SSLCertificateKeyFile $sslprivkey" >> "$etcconf"
- echo " SSLCACertificateFile $webdirdest/management/other/ca.cert.pem" >> "$etcconf"
- echo " " >> "$etcconf"
- echo " DirectoryIndex index.php index.html index.htm" >> "$etcconf"
- echo " " >> "$etcconf"
- echo " RewriteEngine On" >> "$etcconf"
- echo " RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)" >> "$etcconf"
- echo " RewriteRule .* - [F]" >> "$etcconf"
- echo " RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f" >> "$etcconf"
- echo " RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-d" >> "$etcconf"
- echo " RewriteRule ^/fog/(.*)$ /fog/api/index.php [QSA,L]" >> "$etcconf"
- echo "" >> "$etcconf"
- else
- echo " " >> "$etcconf"
- echo " DirectoryIndex index.php index.html index.htm" >> "$etcconf"
- echo " " >> "$etcconf"
- echo " RewriteEngine On" >> "$etcconf"
- echo " RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)" >> "$etcconf"
- echo " RewriteRule .* - [F]" >> "$etcconf"
- echo " RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f" >> "$etcconf"
- echo " RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-d" >> "$etcconf"
- echo " RewriteRule ^/fog/(.*)$ /fog/api/index.php [QSA,L]" >> "$etcconf"
- echo "" >> "$etcconf"
- fi
- diffconfig "${etcconf}"
- errorStat $?
- ln -s $webdirdest $webdirdest/ >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- case $osid in
- 1)
- phpfpmconf='/etc/php-fpm.d/www.conf';
+ case $webserver in
+ nginx)
+ case $novhost in
+ [Yy]|[Yy][Ee][Ss])
+ echo "Skipped"
;;
- 2)
- if [[ $php_ver == 5 ]]; then
- phpfpmconf="/etc/php$php_ver/fpm/pool.d/www.conf"
+ *)
+ dots "Setting up Nginx virtualhost${sslenabled}"
+ [[ -z $phploc ]] && phploc="/opt/fog/php.loc"
+ echo 'location ~ \.php$ {' > "$phploc"
+ echo " set \$phproot ${docroot};" >> "$phploc"
+ echo " root $docroot;" >> "$phploc"
+ echo " fastcgi_pass 127.0.0.1:9000;" >> "$phploc"
+ echo " fastcgi_index index.php;" >> "$phploc"
+ echo " include fastcgi.conf;" >> "$phploc"
+ echo " fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;" >> "$phploc"
+ echo "}" >> "$phploc"
+ echo "server {" > "$etcconf"
+ echo " listen 80;" >> "$etcconf"
+ echo " server_name $ipaddress $hostname;" >> "$etcconf"
+ if [[ $httpproto != https ]]; then
+ echo " root ${docroot};" >> "$etcconf"
+ echo " index index.html index.htm index.php;" >> "$etcconf"
+ echo " client_max_body_size 32m;" >> "$etcconf"
+ echo " error_page 500 502 503 504 /50x.html;" >> "$etcconf"
+ echo " include ${phploc};" >> "$etcconf"
+ echo " location = /50x.html {" >> "$etcconf"
+ echo " root /var/lib/nginx/html;" >> "$etcconf"
+ echo " }" >> "$etcconf"
+ echo " location ~ ^/fog/(.*)$ {" >> "$etcconf"
+ echo " try_files $uri $uri/ /fog/api/index.php?$args;" >> "$etcconf"
+ echo " }" >> "$etcconf"
+ echo " location ${docroot} {" >> "$etcconf"
+ echo " rewrite ^/fog/(.*)$ /fog/api/index.php?\$1 last;" >> "$etcconf"
+ echo " }" >> "$etcconf"
+ echo "}" >> "$etcconf"
else
- phpfpmconf="/etc/php/$php_ver/fpm/pool.d/www.conf"
+ echo " return 308 https://\$host\$request_uri;" >> "$etcconf"
+ echo "}" >> "$etcconf"
+ # Creates the diffie helman param file.
+ if [[ ! -x "/opt/fog/snapins/ssl/dhparam.pem" ]]; then
+ echo "Still in progress"
+ dots "Creating DHParam file"
+ openssl dhparam -dsaparam -out /etc/ssl/fog/dhparam.pem 4096 >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ echo "Done"
+ fi
+ dots "Setting up Nginx virtualhost${sslenabled}"
+ # In Apache we have SSLCertificateFile, SSLCertificateKeyFile, and SSLCACertificateFile.
+ # SSLCertificateFile is the public certificate created by the CA
+ # SSLCACertificateFile is the public certificate of the CA
+ # SSLCertificateKeyFile is the private key that generated the public certificate.
+ # In NGINX we have ssl_certificate and ssl_certificate_key
+ # The ssl_certificate is the concatenated form of the CA Certificate and the public certificate generated.
+ # The ssl_certificate_key is the private key.
+ # This generates the concatenated version of the CA and Public certificate.
+ if [[ ! -x $webdirdest/management/other/ssl/srvchained.crt ]]; then
+ cat $webdirdest/management/other/{ca.cert.pem,ssl/srvpublic.crt} >> $webdirdest/management/other/ssl/srvchained.crt
+ fi
+ echo $webdirdest;
+ echo "server {" > "$etcconf"
+ echo " listen 443 ssl;" >> "$etcconf"
+ echo " server_name $ipaddress $hostname;" >> "$etcconf"
+ echo " root ${docroot};" >> "$etcconf"
+ echo " index index.html index.htm index.php;" >> "$etcconf"
+ echo " ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;" >> "$etcconf"
+ echo " ssl_prefer_server_ciphers on;" >> "$etcconf"
+ echo " ssl_dhparam /opt/fog/snapins/ssl/dhparam.pem"
+ echo " ssl_cipher 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA';" >> "$etcconf"
+ echo " ssl_certificate $webdirdest/management/other/ssl/srvchained.crt" >> "$etcconf"
+ echo " ssl_certificate_key $sslprivkey" >> "$etcconf"
+ echo " ssl_session_timeout 1d;" >> "$etcconf"
+ echo " ssl_session_cache shared:SSL:50m;" >> "$etcconf"
+ echo " add_header Strict-Transport-Security max-age=15768000;" >> "$etcconf"
+ echo " include ${phploc};" >> "$etcconf"
+ echo " location ~ ^/fog/(.*)$ {" >> "$etcconf"
+ echo " try_files $uri $uri/ /fog/api/index.php?$args;" >> "$etcconf"
+ echo " }" >> "$etcconf"
+ echo "}" >> "$etcconf"
+ # Going to add display errors but only if debugmode is configured
+ # also going to loop through all php*.ini files in /etc/ and change accordingly
+ if [[ ${DEBUGMODE} == true ]];then
+ phpinifiles=$(find /etc/ -type f -name php*.ini)
+ for i in $phpinifiles; do
+ sed -i "s/display_errors = Off/display_errors = On/g" $i >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ done
+ fi
fi
+ echo "Done"
+ dots "Testing nginx configuration"
+ nginx -t >> $workingdir/error_logs/fog_error_${version}.log 2>&1
+ diffconfig "${etcconf}"
+ errorStat $?
+ ln -s $webdirdest $webdirdest/ >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ ;;
+ esac
+ ;;
+ httpd|apache*)
+ dots "Setting up Apache virtual host${sslenabled}"
+ case $novhost in
+ [Yy]|[Yy][Ee][Ss])
+ echo "Skipped"
;;
- 3)
- phpfpmconf='/etc/php/php-fpm.d/www.conf'
+ *)
+ if [[ $osid -eq 2 ]]; then
+ a2dissite 001-fog >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ a2ensite 000-default >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ fi
+ mv -fv "${etcconf}" "${etcconf}.${timestamp}" >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ echo "" > "$etcconf"
+ echo " " >> "$etcconf"
+ if [[ $osid -eq 1 && $OSVersion -lt 7 ]]; then
+ echo " SetHandler application/x-httpd-php" >> "$etcconf"
+ else
+ echo " SetHandler \"proxy:fcgi://127.0.0.1:9000/\"" >> "$etcconf"
+ fi
+ echo " " >> "$etcconf"
+ echo " KeepAlive Off" >> "$etcconf"
+ echo " ServerName $ipaddress" >> "$etcconf"
+ echo " ServerAlias $hostname" >> "$etcconf"
+ echo " DocumentRoot $docroot" >> "$etcconf"
+ if [[ $httpproto == https ]]; then
+ echo " RewriteEngine On" >> "$etcconf"
+ echo " RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)" >> "$etcconf"
+ echo " RewriteRule .* - [F]" >> "$etcconf"
+ echo " RewriteRule /management/other/ca.cert.der$ - [L]" >> "$etcconf"
+ echo " RewriteCond %{HTTPS} off" >> "$etcconf"
+ echo " RewriteRule (.*) https://%{HTTP_HOST}/\$1 [R,L]" >> "$etcconf"
+ echo "" >> "$etcconf"
+ echo "" >> "$etcconf"
+ echo " KeepAlive Off" >> "$etcconf"
+ echo " " >> "$etcconf"
+ if [[ $osid -eq 1 && $OSVersion -lt 7 ]]; then
+ echo " SetHandler application/x-httpd-php" >> "$etcconf"
+ else
+ echo " SetHandler \"proxy:fcgi://127.0.0.1:9000/\"" >> "$etcconf"
+ fi
+ echo " " >> "$etcconf"
+ echo " ServerName $ipaddress" >> "$etcconf"
+ echo " ServerAlias $hostname" >> "$etcconf"
+ echo " DocumentRoot $docroot" >> "$etcconf"
+ echo " SSLEngine On" >> "$etcconf"
+ echo " SSLProtocol all -SSLv3 -SSLv2" >> "$etcconf"
+ echo " SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA" >> "$etcconf"
+ echo " SSLHonorCipherOrder On" >> "$etcconf"
+ echo " SSLCertificateFile $webdirdest/management/other/ssl/srvpublic.crt" >> "$etcconf"
+ echo " SSLCertificateKeyFile $sslprivkey" >> "$etcconf"
+ echo " SSLCACertificateFile $webdirdest/management/other/ca.cert.pem" >> "$etcconf"
+ echo " " >> "$etcconf"
+ echo " DirectoryIndex index.php index.html index.htm" >> "$etcconf"
+ echo " " >> "$etcconf"
+ echo " RewriteEngine On" >> "$etcconf"
+ echo " RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)" >> "$etcconf"
+ echo " RewriteRule .* - [F]" >> "$etcconf"
+ echo " RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f" >> "$etcconf"
+ echo " RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-d" >> "$etcconf"
+ echo " RewriteRule ^/fog/(.*)$ /fog/api/index.php [QSA,L]" >> "$etcconf"
+ echo "" >> "$etcconf"
+ else
+ echo " " >> "$etcconf"
+ echo " DirectoryIndex index.php index.html index.htm" >> "$etcconf"
+ echo " " >> "$etcconf"
+ echo " RewriteEngine On" >> "$etcconf"
+ echo " RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)" >> "$etcconf"
+ echo " RewriteRule .* - [F]" >> "$etcconf"
+ echo " RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f" >> "$etcconf"
+ echo " RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-d" >> "$etcconf"
+ echo " RewriteRule ^/fog/(.*)$ /fog/api/index.php [QSA,L]" >> "$etcconf"
+ echo "" >> "$etcconf"
+ fi
+ diffconfig "${etcconf}"
+ errorStat $?
+ ln -s $webdirdest $webdirdest/ >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ if [[ $osid -eq 2 ]]; then
+ a2enmod $phpcmd >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ a2enmod proxy_fcgi setenvif >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ a2enmod rewrite >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ a2enmod ssl >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ a2ensite "001-fog" >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ a2dissite "000-default" >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ fi
;;
esac
- if [[ -n $phpfpmconf ]]; then
- sed -i 's/listen = .*/listen = 127.0.0.1:9000/g' $phpfpmconf >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- sed -i 's/^[;]pm\.max_requests = .*/pm.max_requests = 2000/g' $phpfpmconf >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- sed -i 's/^[;]php_admin_value\[memory_limit\] = .*/php_admin_value[memory_limit] = 256M/g' $phpfpmconf >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- sed -i 's/pm\.max_children = .*/pm.max_children = 50/g' $phpfpmconf >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- sed -i 's/pm\.min_spare_servers = .*/pm.min_spare_servers = 5/g' $phpfpmconf >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- sed -i 's/pm\.max_spare_servers = .*/pm.max_spare_servers = 10/g' $phpfpmconf >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- sed -i 's/pm\.start_servers = .*/pm.start_servers = 5/g' $phpfpmconf >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- fi
- if [[ $osid -eq 2 ]]; then
- a2enmod $phpcmd >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- a2enmod proxy_fcgi setenvif >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- a2enmod rewrite >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- a2enmod ssl >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- a2ensite "001-fog" >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- a2dissite "000-default" >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ ;;
+ *) ;;
+ esac
+ dots "Configuring PHP FPM"
+ case $osid in
+ 1)
+ phpfpmconf='/etc/php-fpm.d/www.conf';
+ ;;
+ 2)
+ if [[ $php_ver == 5 ]]; then
+ phpfpmconf="/etc/php$php_ver/fpm/pool.d/www.conf"
+ else
+ phpfpmconf="/etc/php/$php_ver/fpm/pool.d/www.conf"
fi
;;
+ 3)
+ phpfpmconf='/etc/php/php-fpm.d/www.conf'
+ ;;
esac
+ if [[ -n $phpfpmconf ]]; then
+ sed -i 's/listen = .*/listen = 127.0.0.1:9000/g' $phpfpmconf >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ sed -i 's/^[;]pm\.max_requests = .*/pm.max_requests = 2000/g' $phpfpmconf >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ sed -i 's/^[;]php_admin_value\[memory_limit\] = .*/php_admin_value[memory_limit] = 256M/g' $phpfpmconf >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ sed -i 's/pm\.max_children = .*/pm.max_children = 50/g' $phpfpmconf >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ sed -i 's/pm\.min_spare_servers = .*/pm.min_spare_servers = 5/g' $phpfpmconf >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ sed -i 's/pm\.max_spare_servers = .*/pm.max_spare_servers = 10/g' $phpfpmconf >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ sed -i 's/pm\.start_servers = .*/pm.start_servers = 5/g' $phpfpmconf >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ fi
+ echo "Done"
dots "Starting and checking status of web services"
case $systemctl in
yes)
case $osid in
2)
- systemctl is-active --quiet apache2 $phpfpm && systemctl stop apache2 $phpfpm >>$workingdir/error_logs/fog_error_${version}.log 2>&1 || true
- systemctl is-active --quiet apache2 $phpfpm && true || systemctl start apache2 $phpfpm >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- systemctl status apache2 $phpfpm >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ systemctl is-active --quiet $webserver $phpfpm && systemctl stop $webserver $phpfpm >>$workingdir/error_logs/fog_error_${version}.log 2>&1 || true
+ systemctl is-active --quiet $webserver $phpfpm && true || systemctl start $webserver $phpfpm >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ systemctl status $webserver $phpfpm >>$workingdir/error_logs/fog_error_${version}.log 2>&1
;;
*)
- systemctl is-active --quiet httpd php-fpm && systemctl stop httpd php-fpm >>$workingdir/error_logs/fog_error_${version}.log 2>&1 || true
+ systemctl is-active --quiet $webserver php-fpm && systemctl stop $webserver php-fpm >>$workingdir/error_logs/fog_error_${version}.log 2>&1 || true
sleep 1
- systemctl is-active --quiet httpd php-fpm && true || systemctl start httpd php-fpm >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ systemctl is-active --quiet $webserver php-fpm && true || systemctl start $webserver php-fpm >>$workingdir/error_logs/fog_error_${version}.log 2>&1
sleep 1
- systemctl status httpd php-fpm >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ systemctl status $webserver php-fpm >>$workingdir/error_logs/fog_error_${version}.log 2>&1
;;
esac
;;
*)
case $osid in
2)
- service apache2 stop >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- service apache2 start >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ service $webserver stop >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ service $webserver start >>$workingdir/error_logs/fog_error_${version}.log 2>&1
service $phpfpm stop >>$workingdir/error_logs/fog_error_${version}.log 2>&1
service $phpfpm start >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- service apache2 status >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ service $webserver status >>$workingdir/error_logs/fog_error_${version}.log 2>&1
service $phpfpm status >>$workingdir/error_logs/fog_error_${version}.log 2>&1
;;
+ 4)
+ rc-service nginx stop >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ rc-service nginx start >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ rc-service $phpfpm stop >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ rc-service $phpfpm start >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ rc-service nginx status >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ rc-service $phpfpm status >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ ;;
*)
- service httpd stop >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- service httpd start >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ service $webserver stop >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ service $webserver start >>$workingdir/error_logs/fog_error_${version}.log 2>&1
service php-fpm stop >>$workingdir/error_logs/fog_error_${version}.log 2>&1
service php-fpm start >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- service httpd status >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ service $webserver status >>$workingdir/error_logs/fog_error_${version}.log 2>&1
service php-fpm status >>$workingdir/error_logs/fog_error_${version}.log 2>&1
;;
esac
@@ -2122,10 +2272,10 @@ configureHttpd() {
yes)
case $osid in
1|3)
- systemctl is-active --quiet httpd php-fpm && systemctl stop httpd php-fpm >>$workingdir/error_logs/fog_error_${version}.log 2>&1 || true
+ systemctl is-active --quiet $webserver php-fpm && systemctl stop $webserver php-fpm >>$workingdir/error_logs/fog_error_${version}.log 2>&1 || true
;;
2)
- systemctl is-active --quiet apache2 php${php_ver}-fpm && systemctl stop apache2 php${php_ver}-fpm >>$workingdir/error_logs/fog_error_${version}.log 2>&1 || true
+ systemctl is-active --quiet $webserver php${php_ver}-fpm && systemctl stop $webserver php${php_ver}-fpm >>$workingdir/error_logs/fog_error_${version}.log 2>&1 || true
;;
esac
errorStat $?
@@ -2133,15 +2283,20 @@ configureHttpd() {
*)
case $osid in
1)
- service httpd stop >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ service $webserver stop >>$workingdir/error_logs/fog_error_${version}.log 2>&1
service php-fpm stop >>$workingdir/error_logs/fog_error_${version}.log 2>&1
errorStat $?
;;
2)
- service apache2 stop >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ service $webserver stop >>$workingdir/error_logs/fog_error_${version}.log 2>&1
service php${php_ver}-fpm stop >>$workingdir/error_logs/fog_error_${version}.log 2>&1
errorStat $?
;;
+ 4)
+ rc-service nginx stop >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ errorStat $?
+ service php-fpm${php_ver} stop >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ ;;
esac
;;
esac
@@ -2157,7 +2312,21 @@ configureHttpd() {
echo " Could not find $phpini!"
exit 1
fi
- if [[ $osid -eq 3 ]]; then
+ if [[ $osid -eq 4 ]]; then
+ sed -i 's/;extension=bcmath/extension=bcmath/g' $phpini >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ sed -i 's/;extension=curl/extension=curl/g' $phpini >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ sed -i 's/;extension=ftp/extension=ftp/g' $phpini >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ sed -i 's/;extension=gd/extension=gd/g' $phpini >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ sed -i 's/;extension=gettext/extension=gettext/g' $phpini >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ sed -i 's/;extension=ldap/extension=ldap/g' $phpini >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ sed -i 's/;extension=mysqli/extension=mysqli/g' $phpini >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ sed -i 's/;extension=openssl/extension=openssl/g' $phpini >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ sed -i 's/;extension=pdo_mysql/extension=pdo_mysql/g' $phpini >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ sed -i 's/;extension=posix/extension=posix/g' $phpini >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ sed -i 's/;extension=sockets/extension=sockets/g' $phpini >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ sed -i 's/;extension=zip/extension=zip/g' $phpini >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ sed -i 's/$open_basedir\ =/;open_basedir\ =/g' $phpini >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ elif [[ $osid -eq 4 ]]; then
if [[ ! -f $httpdconf ]]; then
echo " Apache configs not found!"
exit 1
@@ -2392,20 +2561,23 @@ die();
fi
fi
fi
- dots "Enabling apache and fpm services on boot"
+ dots "Enabling $webserver and fpm services on boot"
if [[ $osid -eq 2 ]]; then
if [[ $systemctl == yes ]]; then
- systemctl is-enabled --quiet apache2 && true || systemctl enable apache2 >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ systemctl is-enabled --quiet $webserver && true || systemctl enable $webserver >>$workingdir/error_logs/fog_error_${version}.log 2>&1
systemctl is-enabled --quiet $phpfpm && true || systemctl enable $phpfpm >>$workingdir/error_logs/fog_error_${version}.log 2>&1
else
- sysv-rc-conf apache2 on >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ sysv-rc-conf $webserver on >>$workingdir/error_logs/fog_error_${version}.log 2>&1
sysv-rc-conf $phpfpm on >>$workingdir/error_logs/fog_error_${version}.log 2>&1
fi
elif [[ $systemctl == yes ]]; then
- systemctl is-enabled --quiet httpd php-fpm && true || systemctl enable httpd php-fpm >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ systemctl is-enabled --quiet $webserver php-fpm && true || systemctl enable $webserver php-fpm >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ elif [[ $osid -eq 4 ]]; then
+ rc-update add php-fpm${php_ver} >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ rc-update add $webserver >>$workingdir/error_logs/fog_error_${version}.log 2>&1
else
chkconfig php-fpm on >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- chkconfig httpd on >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ chkconfig $webserver on >>$workingdir/error_logs/fog_error_${version}.log 2>&1
fi
errorStat $?
createSSLCA
@@ -2453,7 +2625,11 @@ downloadfiles() {
curl --silent -kOL $hashurl >>$workingdir/error_logs/fog_error_${version}.log 2>&1
fi
while [[ $checksum -ne 0 && $cnt -lt 10 ]]; do
- [[ -f $hashfile ]] && sha256sum --check $hashfile >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ if [[ $osid -eq 4 ]]; then
+ [[ -f $hashfile ]] && sha256sum -c $hashfile >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ else
+ [[ -f $hashfile ]] && sha256sum --check $hashfile >>$workingdir/error_logs/fog_error_${version}.log 2>&1
+ fi
checksum=$?
if [[ $checksum -ne 0 ]]; then
curl --silent -kOL $url >>$workingdir/error_logs/fog_error_${version}.log
diff --git a/lib/common/input.sh b/lib/common/input.sh
index 758b2c8d22..30a62ed625 100755
--- a/lib/common/input.sh
+++ b/lib/common/input.sh
@@ -24,6 +24,9 @@ if [[ $guessdefaults == 1 ]]; then
*[Aa][Rr][Cc][Hh]*)
strSuggestedOS=3
;;
+ *[Aa][Ll][Pp][Ii][Nn][Ee]*)
+ strSuggestedOS=4
+ ;;
*)
strSuggestedOS=1
;;
diff --git a/lib/redhat/config.sh b/lib/redhat/config.sh
index 754ebfd520..27c045466a 100755
--- a/lib/redhat/config.sh
+++ b/lib/redhat/config.sh
@@ -19,6 +19,7 @@
[[ -z $packageQuery ]] && packageQuery="rpm -q \$x"
case $linuxReleaseName in
*[Mm][Aa][Gg][Ee][Ii][Aa]*)
+ webserver="apache"
[[ -z $packages ]] && packages="apache apache-mod_fcgid apache-mod_php apache-mod_ssl cdrkit-genisoimage curl dhcp-server gcc gcc-c++ git gzip htmldoc lftp m4 make mariadb mariadb-common mariadb-common-core mariadb-core net-tools nfs-utils perl perl-Crypt-PasswdMD5 php-cli php-curl php-fpm php-gd php-gettext php-ldap php-mbstring php-mysqlnd php-pcntl php-pdo php-pdo_mysql tar tftp-server vsftpd wget xinetd"
[[ -z $packageinstaller ]] && packageinstaller="urpmi --auto"
[[ -z $packagelist ]] && packagelist="urpmq"
@@ -30,13 +31,14 @@ case $linuxReleaseName in
[[ -z $etcconf ]] && etcconf="/etc/httpd/conf/conf.d/fog.conf"
;;
*)
- [[ -z $etcconf ]] && etcconf="/etc/httpd/conf.d/fog.conf"
+ [[ -z $webserver ]] && webserver="httpd"
+ [[ -z $etcconf ]] && etcconf="/etc/$webserver/conf.d/fog.conf"
[[ -z $packages ]] && {
if [[ $OSVersion -gt 7 ]]; then
- packages="curl dhcp-server gcc gcc-c++ genisoimage git gzip httpd lftp m4 make mod_fastcgi mod_ssl mtools mysql mysql-server net-tools nfs-utils openssl php php-cli php-common php-fpm php-gd php-json php-ldap php-mbstring php-mysqlnd php-process syslinux tar tftp-server vsftpd wget xinetd xz-devel"
- [[ -z $dhcpname ]] && dhcpname="dhcp-server"
+ packages="curl dhcp-server gcc gcc-c++ genisoimage git gzip lftp m4 make mod_fastcgi mod_ssl mtools mysql mysql-server net-tools nfs-utils openssl php php-cli php-common php-fpm php-gd php-json php-ldap php-mbstring php-mysqlnd php-process syslinux tar tftp-server vsftpd wget xinetd xz-devel"
+ [[ -z $dhcpname ]] && dhcpname="dhcp-server"
else
- packages="curl dhcp gcc gcc-c++ genisoimage git gzip httpd lftp m4 make mod_fastcgi mod_ssl mtools mysql mysql-server net-tools nfs-utils openssl php php-cli php-common php-fpm php-gd php-ldap php-mbstring php-mysqlnd php-process syslinux tar tftp-server vsftpd wget xinetd xz-devel"
+ packages="curl dhcp gcc gcc-c++ genisoimage git gzip lftp m4 make mod_fastcgi mod_ssl mtools mysql mysql-server net-tools nfs-utils openssl php php-cli php-common php-fpm php-gd php-ldap php-mbstring php-mysqlnd php-process syslinux tar tftp-server vsftpd wget xinetd xz-devel"
fi
}
pkginst=$(command -v dnf)
@@ -72,9 +74,17 @@ if [[ -z $webdirdest ]]; then
fi
[[ -z $webredirect ]] && webredirect="${webdirdest}/index.php"
[[ -z $apacheuser ]] && apacheuser="apache"
-[[ -z $apachelogdir ]] && apachelogdir="/var/log/httpd"
-[[ -z $apacheerrlog ]] && apacheerrlog="$apachelogdir/error_log"
-[[ -z $apacheacclog ]] && apacheacclog="$apachelogdir/access_log"
+[[ -z $apachelogdir ]] && apachelogdir="/var/log/$webserver"
+if [[ $webserver == httpd ]]; then
+ httperrlog="error_log"
+ httpacclog="access_log"
+elif [[ $websever == nginx ]]; then
+ httperrlog="error.log"
+ httpacclog="access.log"
+fi
+[[ $webserver == httpd ]]
+[[ -z $apacheerrlog ]] && apacheerrlog="$apachelogdir/$httperrlog"
+[[ -z $apacheacclog ]] && apacheacclog="$apachelogdir/$httpacclog"
[[ -z $phpini ]] && phpini="/etc/php.ini"
[[ -z $storageLocation ]] && storageLocation="/images"
[[ -z $storageLocationCapture ]] && storageLocationCapture="${storageLocation}/dev"
diff --git a/lib/ubuntu/config.sh b/lib/ubuntu/config.sh
index 31e81807c2..6b6606ef79 100755
--- a/lib/ubuntu/config.sh
+++ b/lib/ubuntu/config.sh
@@ -18,6 +18,7 @@
#
[[ -z $repo ]] && repo="php"
[[ -z $packageQuery ]] && packageQuery="dpkg -l \$x | grep '^ii'"
+[[ -z $webserver ]] && webserver="apache2"
if [[ $linuxReleaseName == +(*[Bb][Ii][Aa][Nn]*) ]]; then
sysvrcconf="sysv-rc-conf"
phpgettext="php-gettext"
@@ -63,7 +64,7 @@ elif [[ $linuxReleaseName == +(*[Uu][Bb][Uu][Nn][Tt][Uu]*|*[Mm][Ii][Nn][Tt]*) ]]
php_ver="7.1"
x="*php5* *php-5*"
eval $packageQuery >>$workingdir/error_logs/fog_error_${version}.log 2>&1
- if [[ $? -ne 0 ]]; then
+ if [[ $webserver == "apache2" && $? -ne 0 ]]; then
if [[ $autoaccept != yes ]]; then
echo " *** Detected a potential need to reinstall apache and php files."
echo " *** This will remove the /etc/php* and /etc/apache2* directories"
@@ -83,7 +84,7 @@ elif [[ $linuxReleaseName == +(*[Uu][Bb][Uu][Nn][Tt][Uu]*|*[Mm][Ii][Nn][Tt]*) ]]
echo "Done"
dots "Stopping web services"
if [[ $systemctl == yes ]]; then
- systemctl is-active --quiet apache2 && systemctl stop apache2 >/dev/null 2>&1 || true
+ systemctl is-active --quiet $webserver && systemctl stop $webserver >/dev/null 2>&1 || true
fi
[[ ! $? -eq 0 ]] && echo "Failed" || echo "Done"
dots "Removing the apache and php packages"
@@ -109,7 +110,10 @@ case $linuxReleaseName in
x="mysql-server"
eval $packageQuery >>$workingdir/error_logs/fog_error_${version}.log 2>&1
[[ $? -eq 0 ]] && db_packages="mysql-client mysql-server" || db_packages="mariadb-client mariadb-server"
- packages="apache2 build-essential cpp curl g++ gawk gcc genisoimage git gzip htmldoc isc-dhcp-server isolinux lftp libapache2-mod-fastcgi libapache2-mod-php${php_ver} libc6 libcurl3 liblzma-dev m4 ${db_packages} net-tools nfs-kernel-server openssh-server $phpfpm php-gettext php${php_ver} php${php_ver}-cli php${php_ver}-curl php${php_ver}-gd php${php_ver}-json $phpldap php${php_ver}-mysql php${php_ver}-mysqlnd ${sysvrcconf} tar tftpd-hpa tftp-hpa vsftpd wget xinetd zlib1g"
+ if [[ $webserver == "apache2" ]]; then
+ libapache="libapache2-mod-fastcgi libapache2-mod-php${php_ver}"
+ fi
+ packages="build-essential cpp curl g++ gawk gcc genisoimage git gzip htmldoc isc-dhcp-server isolinux lftp ${libapache} libc6 libcurl3 liblzma-dev m4 ${db_packages} net-tools nfs-kernel-server openssh-server $phpfpm php-gettext php${php_ver} php${php_ver}-cli php${php_ver}-curl php${php_ver}-gd php${php_ver}-json $phpldap php${php_ver}-mysql php${php_ver}-mysqlnd ${sysvrcconf} tar tftpd-hpa tftp-hpa vsftpd wget xinetd zlib1g"
else
# make sure we update all the php version numbers with those specified above
packages=${packages//php[0-9]\.[0-9]/php${php_ver}}
@@ -140,10 +144,11 @@ if [[ -z $webdirdest ]]; then
fi
[[ -z $webredirect ]] && webredirect="$docroot/index.php"
[[ -z $apacheuser ]] && apacheuser="www-data"
-[[ -z $apachelogdir ]] && apachelogdir="/var/log/apache2"
+[[ -z $apachelogdir ]] && apachelogdir="/var/log/$webserver"
[[ -z $apacheerrlog ]] && apacheerrlog="$apachelogdir/error.log"
[[ -z $apacheacclog ]] && apacheacclog="$apachelogdir/access.log"
-[[ -z $etcconf ]] && etcconf="/etc/apache2/sites-available/001-fog.conf"
+# This will likely need adjustment as apache2 is only known one for now
+[[ -z $etcconf ]] && etcconf="/etc/$webserver/sites-available/001-fog.conf"
[[ $php_ver != 5 ]] && phpini="/etc/$phpcmd/$php_ver/fpm/php.ini" || phpini="/etc/$phpcmd/fpm/php.ini"
[[ -z $storageLocation ]] && storageLocation="/images"
[[ -z $storageLocationCapture ]] && storageLocationCapture="${storageLocation}/dev"
diff --git a/packages/init.d/alpine/FOGImageReplicator b/packages/init.d/alpine/FOGImageReplicator
new file mode 100755
index 0000000000..dee3eb692b
--- /dev/null
+++ b/packages/init.d/alpine/FOGImageReplicator
@@ -0,0 +1,25 @@
+
+#!/bin/openrc-run
+### BEGIN INIT INFO
+# Provides: FOGImageReplicator
+# Required-Start: $local_fs $remote_fs $network $syslog $network $inetd $apache2 $mysql
+# Required-Stop: $local_fs $remote_fs $network $syslog $network $inetd
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# X-Interactive: true
+# Short-Description: Start/Stop FOGMulticastManager
+# Long-Description: Created by Chuck Syperski
+# Used to stop and start the FOGMulticastManager Service.
+# FOGMulticastManager is used to destribute images through
+# Multicast. Useful to image large amounts of systems simultaneously.
+# It serves this ability only if it's the master node.
+### END INIT INFO
+
+name=FOGImageReplicator
+command=/opt/fog/service/$name/$name
+pidfile=/var/run/fog/$name.pid
+command_background="yes"
+
+depend() {
+ need net
+}
diff --git a/packages/init.d/alpine/FOGImageSize b/packages/init.d/alpine/FOGImageSize
new file mode 100755
index 0000000000..4ab7dee7c0
--- /dev/null
+++ b/packages/init.d/alpine/FOGImageSize
@@ -0,0 +1,21 @@
+#!/bin/openrc-run
+### BEGIN INIT INFO
+# Provides: FOGImageSize
+# Required-Start: $local_fs $remote_fs $network $syslog $network $inetd $apache2 $mysql
+# Required-Stop: $local_fs $remote_fs $network $syslog $network $inetd
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# X-Interactive: true
+# Short-Description: Start/Stop FOGImageSize
+# Long-Description: Created by Chuck Syperski
+# Used to stop and start the FOGImageSize Service.
+### END INIT INFO
+
+name=FOGImageSize
+command=/opt/fog/service/$name/$name
+pidfile=/var/run/fog/$name.pid
+command_background="yes"
+
+depend() {
+ need net
+}
diff --git a/packages/init.d/alpine/FOGMulticastManager b/packages/init.d/alpine/FOGMulticastManager
new file mode 100755
index 0000000000..da5167f189
--- /dev/null
+++ b/packages/init.d/alpine/FOGMulticastManager
@@ -0,0 +1,23 @@
+#!/bin/openrc-run
+### BEGIN INIT INFO
+# Provides: FOGMulticastManager
+# Required-Start: $local_fs $remote_fs $network $syslog $network $inetd $apache2 $mysql
+# Required-Stop: $local_fs $remote_fs $network $syslog $network $inetd
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# X-Interactive: true
+# Short-Description: Start/Stop FOGMulticastManager
+# Long-Description: Created by Chuck Syperski
+# Used to stop and start the FOGMulticastManager Service.
+# FOGMulticastManager is used to destribute images through
+# Multicast. Useful to image large amounts of systems simultaneously.
+# It serves this ability only if it's the master node.
+### END INIT INFO
+name=FOGMulticastManager
+command=/opt/fog/service/$name/$name
+pidfile=/var/run/fog/$name.pid
+command_background="yes"
+
+depend() {
+ need net
+}
diff --git a/packages/init.d/alpine/FOGPingHosts b/packages/init.d/alpine/FOGPingHosts
new file mode 100755
index 0000000000..0b9d11d295
--- /dev/null
+++ b/packages/init.d/alpine/FOGPingHosts
@@ -0,0 +1,24 @@
+#!/bin/openrc-run
+### BEGIN INIT INFO
+# Provides: FOGPingHosts
+# Required-Start: $local_fs $remote_fs $network $syslog $network $inetd $apache2 $mysql
+# Required-Stop: $local_fs $remote_fs $network $syslog $network $inetd
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# X-Interactive: true
+# Short-Description: Start/Stop FOGPingHosts
+# Long-Description: Created by Chuck Syperski
+# Used to stop and start the FOGPingHosts Service.
+# FOGPingHosts is used to destribute images through
+# Multicast. Useful to image large amounts of systems simultaneously.
+# It serves this ability only if it's the master node.
+### END INIT INFO
+
+name=FOGPingHosts
+command=/opt/fog/service/$name/$name
+pidfile=/var/run/fog/$name.pid
+command_background="yes"
+
+depend() {
+ need net
+}
diff --git a/packages/init.d/alpine/FOGScheduler b/packages/init.d/alpine/FOGScheduler
new file mode 100755
index 0000000000..8290912b32
--- /dev/null
+++ b/packages/init.d/alpine/FOGScheduler
@@ -0,0 +1,24 @@
+#!/bin/openrc-run
+### BEGIN INIT INFO
+# Provides: FOGScheduler
+# Required-Start: $local_fs $remote_fs $network $syslog $network $inetd $apache2 $mysql
+# Required-Stop: $local_fs $remote_fs $network $syslog $network $inetd
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# X-Interactive: true
+# Short-Description: Start/Stop FOGScheduler
+# Long-Description: Created by Chuck Syperski
+# Used to stop and start the FOGScheduler Service.
+# FOGScheduler is used to destribute images through
+# Multicast. Useful to image large amounts of systems simultaneously.
+# It serves this ability only if it's the master node.
+### END INIT INFO
+
+name=FOGScheduler
+command=/opt/fog/service/$name/$name
+pidfile=/var/run/fog/$name.pid
+command_background="yes"
+
+depend() {
+ need net
+}
diff --git a/packages/init.d/alpine/FOGSnapinHash b/packages/init.d/alpine/FOGSnapinHash
new file mode 100755
index 0000000000..79a96363d1
--- /dev/null
+++ b/packages/init.d/alpine/FOGSnapinHash
@@ -0,0 +1,24 @@
+#!/bin/openrc-run
+### BEGIN INIT INFO
+# Provides: FOGSnapinHash
+# Required-Start: $local_fs $remote_fs $network $syslog $network $inetd $apache2 $mysql
+# Required-Stop: $local_fs $remote_fs $network $syslog $network $inetd
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# X-Interactive: true
+# Short-Description: Start/Stop FOGSnapinHash
+# Long-Description: Created by Chuck Syperski
+# Used to stop and start the FOGSnapinHash Service.
+# FOGSnapinHash is used to destribute images through
+# Multicast. Useful to image large amounts of systems simultaneously.
+# It serves this ability only if it's the master node.
+### END INIT INFO
+
+name=FOGSnapinHash
+command=/opt/fog/service/$name/$name
+pidfile=/var/run/fog/$name.pid
+command_background="yes"
+
+depend() {
+ need net
+}
diff --git a/packages/init.d/alpine/FOGSnapinReplicator b/packages/init.d/alpine/FOGSnapinReplicator
new file mode 100755
index 0000000000..4658bc6b51
--- /dev/null
+++ b/packages/init.d/alpine/FOGSnapinReplicator
@@ -0,0 +1,24 @@
+#!/bin/openrc-run
+### BEGIN INIT INFO
+# Provides: FOGSnapinReplicator
+# Required-Start: $local_fs $remote_fs $network $syslog $network $inetd $apache2 $mysql
+# Required-Stop: $local_fs $remote_fs $network $syslog $network $inetd
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# X-Interactive: true
+# Short-Description: Start/Stop FOGSnapinReplicator
+# Long-Description: Created by Chuck Syperski
+# Used to stop and start the FOGSnapinReplicator Service.
+# FOGSnapinReplicator is used to destribute images through
+# Multicast. Useful to image large amounts of systems simultaneously.
+# It serves this ability only if it's the master node.
+### END INIT INFO
+
+name=FOGSnapinReplicator
+command=/opt/fog/service/$name/$name
+pidfile=/var/run/fog/$name.pid
+command_background="yes"
+
+depend() {
+ need net
+}
diff --git a/packages/web/lib/fog/fogpage.class.php b/packages/web/lib/fog/fogpage.class.php
index cca7f5aa57..4a138d214d 100644
--- a/packages/web/lib/fog/fogpage.class.php
+++ b/packages/web/lib/fog/fogpage.class.php
@@ -1718,12 +1718,12 @@ public function kernelfetch()
) {
if ($msg == 'dl') {
$destFilename = $_SESSION['dest-kernel-file'];
- if (preg_match('/\.php$/', $destFilename)) {
- throw new Exception(_('Filename not allowed!'));
+ if (preg_match('/\./', $destFilename)) {
+ throw new Exception(_('Dot in Filename not allowed!'));
}
$dlUrl = $_SESSION['dl-kernel-file'];
- if (false === stripos($dlUrl, 'https://fogproject.org/') &&
- false === stripos($dlUrl, 'https://github.com/FOGProject/')
+ if (!(0 === stripos($dlUrl, 'https://fogproject.org/') ||
+ 0 === stripos($dlUrl, 'https://github.com/FOGProject/'))
) {
throw new Exception(_('Specified download URL not allowed!'));
}
diff --git a/packages/web/lib/fog/system.class.php b/packages/web/lib/fog/system.class.php
index a08904cbc4..dd8515f4ee 100644
--- a/packages/web/lib/fog/system.class.php
+++ b/packages/web/lib/fog/system.class.php
@@ -59,7 +59,7 @@ private static function _versionCompare()
public function __construct()
{
self::_versionCompare();
- define('FOG_VERSION', '1.6.0-alpha.1116');
+ define('FOG_VERSION', '1.6.0-alpha.1118');
define('FOG_CHANNEL', 'Alpha');
define('FOG_SCHEMA', 282);
define('FOG_BCACHE_VER', 143);