khanat-server-docker-NeL/server/debian/common/servercontainer_init_apache.sh
2019-10-24 19:02:40 +02:00

254 lines
7.6 KiB
Bash
Executable file
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
#
# Prepare/Configure Apache
# Copyright (C) 2017 AleaJactaEst
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) 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 Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
usage()
{
cat << EOF
usage:$0 [options]
prepare mysql (create directory, update configuration)
options:
-h, --help : Show this help
-d, --debug : Show debug message
EOF
}
#####################
# MAIN
#####################
source /opt/servercontainer_function.sh
msg_info "$(basename $0) => START"
while test $# -gt 0
do
case "$1" in
-h|--help)
usage
exit 1
;;
-d|--debug)
set_debug 1
shift
;;
*)
msg_error "options '$1' not recognize"
usage
exit 1
;;
esac
done
####################################
# Load Environment
####################################
msg_debug "Load environment"
if [[ ! -f /opt/khanat_config.sh ]]
then
echo "ERROR - missing /opt/khanat_config.sh"
exit 2
fi
source /opt/khanat_config.sh
####################################
# Configure apache log / Account use by apache
####################################
msg_debug "Configure apache log / Account use by apache"
sed -i -r 's/^export[[:space:]]+APACHE_RUN_USER=(.*)/export APACHE_RUN_USER=gameserver/g' /etc/apache2/envvars || exit 2
sed -i -r 's/^export[[:space:]]+APACHE_RUN_GROUP=(.*)/export APACHE_RUN_GROUP='$(id -g -n gameserver)'/g' /etc/apache2/envvars || exit 2
sed -i -r 's/^export[[:space:]]+APACHE_LOG_DIR=(.*)/export APACHE_LOG_DIR=\/home\/gameserver\/log\/apache2\$SUFFIX/g' /etc/apache2/envvars || exit 2
sed -i -r 's/^LogLevel[[:space:]]+warn/LogLevel debug/g' /etc/apache2/apache2.conf || exit 2
####################################
# configure phpmyadmin
####################################
msg_debug "configure phpmyadmin"
if [[ -f /etc/phpmyadmin/apache.conf ]]
then
ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf || exit 2
elif [[ -f /opt/phpmyadmin-apache.conf ]]
then
ln -s /opt/phpmyadmin-apache.conf /etc/apache2/conf-available/phpmyadmin.conf || exit 2
else
echo "Error - Missing configuration phpmyadmin for apache" >&2
exit 2
fi
a2enconf phpmyadmin.conf || exit 2
if [[ -f /etc/phpmyadmin/config.inc.php ]]
then
msg_debug "configure phpmyadmin /etc/phpmyadmin/config.inc.php"
cp /etc/phpmyadmin/config.inc.php /etc/phpmyadmin/config.inc.php.ref || exit 2
awk '{if($0 ~ /AllowNoPassword/){$1="";}; print $0;}' /etc/phpmyadmin/config.inc.php.ref > /etc/phpmyadmin/config.inc.php || exit 2
elif [[ -f /usr/share/phpmyadmin/config.inc.php ]]
then
msg_debug "configure phpmyadmin /usr/share/phpmyadmin/config.inc.php"
sed -i "s/.*\$cfg\['Servers'\]\[\$i\]\['AllowNoPassword'\] =.*;/\$cfg\['Servers'\]\[\$i\]\['AllowNoPassword'\] = true;/g" /usr/share/phpmyadmin/config.inc.php || exit 2
elif [[ -f /usr/share/phpmyadmin/setup/frames/config.inc.php ]]
then
msg_debug "configure phpmyadmin /usr/share/phpmyadmin/setup/frames/config.inc.php"
cp /usr/share/phpmyadmin/setup/frames/config.inc.php /etc/phpmyadmin/config.inc.php || exit 2
echo "\$cfg['Servers'][\$i]['AllowNoPassword'] = TRUE;" >> /etc/phpmyadmin/config.inc.php || exit 2
else
echo "Error - Impossible to configure AllowNoPassword for phpMyAdmin" >&2
exit 2
fi
####################################
# Configure 1st page
####################################
msg_debug "Configure 1st page"
create_dir_gameserver '/home/gameserver/rootweb'
cp /opt/rootweb/* /home/gameserver/rootweb/ || exit 2
####################################
# configure phpmyadmin
####################################
msg_debug "configure apache"
# configure apache
cat << EOF > /etc/apache2/sites-available/000-default.conf
# Default
<VirtualHost *:80>
<Directory "/home/gameserver/rootweb/">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
DirectoryIndex index.php
AddType text/html .php .phps
AddHandler application/x-httpd-php .php
AddHandler application/x-httpd-php-source .phps
AddHandler application/x-httpd-php .sh
</Directory>
ServerName lirria.khaganat.net
ServerAdmin webmaster@localhost
DocumentRoot /home/gameserver/rootweb/
ErrorLog \${APACHE_LOG_DIR}/error.log
CustomLog \${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
# Khanat Server Web
<VirtualHost *:40916>
<Directory "/home/gameserver/khanat/khanatweb/">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
ServerName lirria.khaganat.net
ServerAdmin admin@localhost
DocumentRoot /home/gameserver/khanat/khanatweb/public_php
ErrorLog \${APACHE_LOG_DIR}/error.log
CustomLog \${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
# Patch Server
<VirtualHost *:43435>
ServerName lirria.khaganat.net
DocumentRoot /home/gameserver/khanat/patch_service/patch_game/patch/
<Directory "/home/gameserver/khanat/patch_service/patch_game/patch">
Options -Indexes
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
EOF
# Open port use by apache
cat << EOF > /etc/apache2/ports.conf
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
Listen 80
Listen 40916
Listen 43435
<IfModule ssl_module>
Listen 443
</IfModule>
<IfModule mod_gnutls.c>
Listen 443
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
EOF
# Activate php - strange beacause we have only index.php (without php code !)
cat << EOF > /etc/apache2/conf-available/patch_service.conf
Alias /patch /home/gameserver/khanat/patch_service/patch_game/patch
<Directory /home/gameserver/khanat/patch_service/patch_game/patch>
Options FollowSymLinks
DirectoryIndex index.php
Require all granted
<IfModule mod_php5.c>
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
</IfModule>
</Directory>
EOF
# Configuration de la page client
cat << EOF > /etc/apache2/conf-available/client_service.conf
Alias /client /home/gameserver/khanat/client_service
<Directory /home/gameserver/khanat/client_service>
Options FollowSymLinks
DirectoryIndex index.html
Require all granted
<IfModule mod_php5.c>
<IfModule mod_mime.c>
AddType application/tar .tar.gz
</IfModule>
<FilesMatch ".+\.php$">
SetHandler application/tar
</FilesMatch>
</IfModule>
</Directory>
EOF
####################################
# Activate web site
####################################
msg_info "Activate patch service"
# Activate & deploy new configuration
a2enconf patch_service.conf
msg_info "Activate client service"
# Activate & deploy new configuration
a2enconf client_service.conf
####################################
# End
####################################
msg_info "$(basename $0) => END"