diff --git a/config/apache/yms.conf b/config/apache/yms.conf index 668cb0f..b854538 100644 --- a/config/apache/yms.conf +++ b/config/apache/yms.conf @@ -1,6 +1,7 @@ Alias /yms /usr/share/yms/webgui + Options FollowSymLinks AllowOverride None Require all granted diff --git a/config/nginx/yms.conf b/config/nginx/yms.conf new file mode 100644 index 0000000..bad70fc --- /dev/null +++ b/config/nginx/yms.conf @@ -0,0 +1,15 @@ +location ^~ /yms/ { + alias /usr/share/yms/webgui/; + index index.php; +} + +location ~ ^/yms/.*\.inc$ { + deny all; +} + +location ~ ^/yms/(.+\.php)$ { + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME /usr/share/yms/webgui/$1; + fastcgi_param SCRIPT_NAME /yms/$1; + fastcgi_pass unix:@PHP_FPM_SOCKET@; +} diff --git a/debian/control b/debian/control index 7ac737e..a79453f 100644 --- a/debian/control +++ b/debian/control @@ -12,7 +12,6 @@ Package: yms Architecture: all Depends: mariadb-server, - httpd, python3, python3-gi, gir1.2-gtk-3.0, diff --git a/debian/install b/debian/install index f67e409..04e587f 100644 --- a/debian/install +++ b/debian/install @@ -17,6 +17,7 @@ webgui/js/* usr/share/yms/webgui/js/ webgui/img/* usr/share/yms/webgui/img/ webgui/locale/de_DE/LC_MESSAGES/yms.mo usr/share/yms/webgui/locale/de_DE/LC_MESSAGES/ webgui/sailboat.svg usr/share/yms/webgui/ +webgui/config.inc-sample usr/share/yms/ # Shared static data shapes/* usr/share/yms/shapes/ diff --git a/debian/postinst b/debian/postinst index a8c1368..e68ff75 100755 --- a/debian/postinst +++ b/debian/postinst @@ -3,6 +3,28 @@ set -e . /usr/share/debconf/confmodule +detect_webservers() +{ + WEB_SERVERS="" + + if dpkg-query -W -f='${Status}' apache2 2>/dev/null | + grep -q 'install ok installed'; then + WEB_SERVERS="$WEB_SERVERS apache2" + fi + + if dpkg-query -W -f='${Status}' nginx 2>/dev/null | + grep -q 'install ok installed'; then + WEB_SERVERS="$WEB_SERVERS nginx" + fi + + if dpkg-query -W -f='${Status}' lighttpd 2>/dev/null | + grep -q 'install ok installed'; then + WEB_SERVERS="$WEB_SERVERS lighttpd" + fi + + WEB_SERVERS="${WEB_SERVERS# }" +} + db_get yms/db-name DB_NAME="$RET" @@ -30,7 +52,42 @@ fi db_get yms/webgui if [ "$RET" = "true" ]; then - # use web gui, depends on available web server + + detect_webservers + case "$WEB_SERVERS" in + "") + echo "No supported webserver installed." + ;; + apache2) + echo "Apache detected." + a2enconf yms + invoke-rc.d apache2 reload + echo "Web GUI for apache2 enabled." + ;; + nginx) + echo "nginx detected." + ;; + lighttpd) + echo "lighttpd detected." + ;; + *) + echo "Multiple webservers detected: $WEB_SERVERS" + ;; + esac + + if [ ! -f /etc/yms/config.inc ]; then + # create initial configuration + sed \ + -e "s|@DB_USERNAME@|$DB_USER|g" \ + -e "s|@DB_PASSWORD@|$DB_PASSWORD|g" \ + -e "s|@DB_SCHEMA@|$DB_NAME|g" \ + /usr/share/yms/config.inc-sample \ + > /etc/yms/config.inc + chmod 0640 /etc/yms/config.inc + chown root:www-data /etc/yms/config.inc + ln -s /etc/yms/config.inc /usr/share/yms/webgui/config.inc + fi + fi exit 0 diff --git a/webgui/config.inc-sample b/webgui/config.inc-sample index 6372193..834b23b 100644 --- a/webgui/config.inc-sample +++ b/webgui/config.inc-sample @@ -17,9 +17,9 @@ define('APP_ILLUSTRATION', 'sailboat.svg'); // database connection $g_db_host = 'localhost'; -$g_db_username = 'ymsweb'; -$g_db_password = 'changeme!'; -$g_db_schema = 'yms'; +$g_db_username = '@DB_USERNAME@'; +$g_db_password = '@DB_PASSWORD@'; +$g_db_schema = '@DB_SCHEMA@'; // mail settings $g_mail_enable = FALSE;