Jump to content
Froxlor Forum
  • 0

403 nur im froxlorloginpanel sonst nicht


Go to solution Solved by d00p,

Question

Hallo liebe Leute,

ich weiß gar nicht wo ich Anfangen soll weil ich seit gestern Abend daran sitze und immer noch keine Lust habe das System neu zu machen.

Es war in den vielen Jahren als Admin keine Option und soll es auch jetzt nicht werden. Also fange ich mal an zu Erzählen:

 

Ich  bin wegen http2 mit allen Servern auf Debian Stretch gewechselt. Was auch überraschend gut funktioniert hat (Backups sind natürlich vorhanden).

Einige Anleitungen später und etwas eigenes Wissen habe ich Froxlor 0.9.39.5-1+jessie1 mit PHP-Version 7.0.30-0+deb9u1 und MySQL-Server-Version:5.5.5-10.1.26-MariaDB-0+deb9u1 laufen.

Das ganze mit libnss-extrausers, dem dazu passenden php-fpm und Apache 2.4. Achso letsencrypt für SSL natürlich nicht zu vergessen. Das alles läuft auch bei den Kunden.

Aber wenn ich nicht die directive ein all grand per Hand in die vhost vom froxlorpanel schmeiße bekomme ich einen 403 Fehler. d.h. sobald etwas im panel die configs neu schreibt komme ich wieder nicht

mehr in den adminbereich. Ich finde einfach das Problem nicht.

Die Fehlermeldung der Log ohne grand all ist:

Quote

[authz_core:error] [xxx] [client xxx] AH01630: client denied by server configuration: /var/www/froxlor/

Verwende PHP-FPM im Froxlor-Vhost ist aktiviert und froxlorlocal ist der Benutzer davon. Weitere Froxlor VirtualHost Einstellungen sind LetsEncrypt + SSL Weiterleitung und eben http2.

 

Der Inhalt der fpm pool conf ist wie folgt:

;PHP-FPM configuration for "sub.domain.de" created on 2018.09.22 20:16:52
[sub.domain.de]
listen = /var/lib/apache2/fastcgi/1-froxlor.panel-sub.domain.de-php-fpm.socket
listen.owner = froxlorlocal
listen.group = froxlorlocal
listen.mode = 0660
user = froxlorlocal
group = froxlorlocal
pm = dynamic
pm.max_children = 6
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 4
pm.max_requests = 50
;chroot = /var/www/froxlor/
security.limit_extensions = .php
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /var/customers/tmp/froxlor.panel/
env[TMPDIR] = /var/customers/tmp/froxlor.panel/
env[TEMP] = /var/customers/tmp/froxlor.panel/
php_admin_value[session.save_path] = /var/customers/tmp/froxlor.panel/
php_admin_value[upload_tmp_dir] = /var/customers/tmp/froxlor.panel/


php_value[date.timezone] = "Europe/Berlin"
php_admin_value[date.timezone] = "Europe/Berlin"
php_admin_flag[allow_call_time_pass_reference] = Off
php_admin_flag[allow_url_fopen] = On
php_flag[asp_tags] = Off
php_admin_value[disable_classes] = 
php_admin_value[disable_functions] = curl_multi_exec,exec,parse_ini_file,passthru,popen,proc_close,proc_get_status,proc_nice,proc_open,proc_terminate,shell_exec,show_source,system
php_flag[display_errors] = Off
php_flag[display_startup_errors] = Off
php_admin_flag[enable_dl] = Off
php_value[error_reporting] = E_ALL & ~E_NOTICE
php_admin_flag[expose_php] = Off
php_admin_flag[file_uploads] = On
php_admin_flag[cgi.force_redirect] = 1
php_admin_value[gpc_order] = "GPC"
php_flag[html_errors] = Off
php_admin_flag[ignore_repeated_errors] = Off
php_admin_flag[ignore_repeated_source] = Off
php_value[include_path] = ".:/usr/share/php/:/usr/share/php5/"
php_flag[log_errors] = On
php_admin_flag[log_errors] = On
php_value[log_errors_max_len] = 1024
php_flag[magic_quotes_gpc] = Off
php_flag[magic_quotes_runtime] = Off
php_flag[magic_quotes_sybase] = Off
php_value[max_execution_time] = 60
php_admin_value[max_input_time] = 60
php_admin_value[memory_limit] = 128M
php_admin_value[post_max_size] = 16M
php_admin_value[precision] = 14
php_admin_flag[register_argc_argv] = Off
php_admin_flag[report_memleaks] = On
php_admin_value[sendmail_path] = "/usr/sbin/sendmail -t -i -f xxx@xxx.de"
php_value[session.auto_start] = 0
php_value[session.cookie_domain] = 
php_value[session.cookie_lifetime] = 0
php_value[session.cookie_path] = /
php_admin_value[session.gc_divisor] = 1000
php_admin_value[session.gc_probability] = 1
php_value[session.name] = PHPSESSID
php_value[session.serialize_handler] = php
php_flag[session.use_cookies] = 1
php_flag[short_open_tag] = On
php_flag[suhosin.simulation] = Off
php_flag[track_errors] = Off
php_value[upload_max_filesize] = 32M
php_admin_value[variables_order] = "GPCS"
php_admin_value[opcache.restrict_api] = "/var/www/froxlor/"

Ich hoffe einer von euch Froxlor Profis hat noch eine Idee. Auf einem anderen Server lief das alles durch ohne so ein Problem. Kann aber keine Unterschiede in der froxlor config finden. Da gab es dann nur Ärger mit PHP7 aber das ist eher ein Problem der Kunden :D

 

Grüße und ein schönes Wochenende,

BigWhoop

Link to post
Share on other sites

16 answers to this question

Recommended Posts

  • 0
  • Solution
20 hours ago, BigWhoop said:

<Directory "/var/www/">
    Require all granted
    AllowOverride All
  </Directory>

Das kannst du entweder global in der apache2.conf setzen, oder sogar in froxlor einfach in die "eigene vhost einstellungen". Die meisten machen es einfach gloal in der apache-config, da 2.4 da default auf AllowOverride None setzt

 

20 hours ago, BigWhoop said:

PS: Ich habe noch eine Grundsatzfrage...ist es richtig das bei dem setup die Ordner und Dateien alle ein "read" für groups brauchen? eigentlich sollte die doch vom eigenen nutzer aufgerufen werden?

read für Group ist richtig, denn der Webserver und je nach Setup auch der Froxlor user müssen lesen können 

Link to post
Share on other sites
  • 0

Hallo d00p. Eine schönen guten morgen wünsche ich.

Stimmt die vhosts wären noch interessant gewesen. sorry. Hier sind sie:

# 10_froxlor_ipandport_xxx.conf
# Created 22.09.2018 20:16
# Do NOT manually edit this file, all changes will be deleted after the next domain change at the panel.

<VirtualHost xxx:80>
DocumentRoot "/var/www/"
 ServerName sub.domain.de
  <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge
    RewriteRule ^/(.*) https://sub.domain.de/$1 [R=301;L,NE]
  </IfModule>
  <IfModule !mod_rewrite.c>
    Redirect 301 / https://sub.domain.de/
  </IfModule>
</VirtualHost>

 

sowie

 

# 10_froxlor_ipandport_xxx.conf
# Created 22.09.2018 20:16
# Do NOT manually edit this file, all changes will be deleted after the next domain change at the panel.

<VirtualHost xxx:443>
DocumentRoot "/var/www/"
 ServerName sub.domain.de
  <FilesMatch \.(php)$>
  SetHandler proxy:unix:/var/lib/apache2/fastcgi/1-froxlor.panel-sub.domain.de-php-fpm.socket|fcgi://localhost
  </FilesMatch>
  <Directory "/var/www/">
    Require all granted
    AllowOverride All
  </Directory>
 SSLEngine On
 SSLProtocol -ALL +TLSv1 +TLSv1.2
 Protocols h2 http/1.1
 SSLCompression Off
 SSLHonorCipherOrder On
 SSLCipherSuite ECDH+AESGCM:ECDH+AES256:!aNULL:!MD5:!DSS:!DH:!AES128
 SSLVerifyDepth 10
 SSLCertificateFile /etc/ssl/froxlor-custom/sub.domain.de.crt
 SSLCertificateKeyFile /etc/ssl/froxlor-custom/sub.domain.de.key
 SSLCACertificateFile /etc/ssl/froxlor-custom/sub.domain.de_CA.pem
 SSLCertificateChainFile /etc/ssl/froxlor-custom/sub.domain.de_chain.pem
</VirtualHost>

wie gesagt ist das

  <Directory "/var/www/">
    Require all granted
    AllowOverride All
  </Directory>

 

von mir damit ich rein komme manuell.

Danke und schönen Sonntag,

BigWhoop

 

PS: Ich habe noch eine Grundsatzfrage...ist es richtig das bei dem setup die Ordner und Dateien alle ein "read" für groups brauchen? eigentlich sollte die doch vom eigenen nutzer aufgerufen werden?

Edited by BigWhoop
zusatztext
Link to post
Share on other sites
  • 0

Danke für die Antwort,

aber das schreibt froxlor bei den anderen vhosts auch mit rein oder nicht? warum nicht bei sich selbst?

und viel interessanter...warum geht das auf dem einen server und auf dem anderen nicht? Werde mir mal die apache config der beiden server anschauen.

Vielen Dank schonmal für die Hinweise.

 

Edit: Tatsächlich steht in der apache.conf

von dem funktionierenden Server das hier:

 

<Directory /var/www/froxlor/>
    Options FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

verrückt. Aber trotzdem die Frage warum froxlor das nicht selbst macht, wenn er es für die anderen doch auch tut.

Danke

Edited by BigWhoop
Zusatz Edit
Link to post
Share on other sites
  • 0
15 hours ago, BigWhoop said:

Aber trotzdem die Frage warum froxlor das nicht selbst macht, wenn er es für die anderen doch auch tut.

Froxlor tut das, aber nur wenn KEINE anderen CUSTOM Einträge vorhanden sind; Auszug:

                // check for custom values, see #1638
                $custom_opts = Settings::Get('system.apacheglobaldiropt');
                if (! empty($custom_opts)) {
                        $this->virtualhosts_data[$vhosts_filename] .= $custom_opts . "\n";
                } else {
                        // >=apache-2.4 enabled?
                        if (Settings::Get('system.apache24') == '1') {
                                $this->virtualhosts_data[$vhosts_filename] .= '    Require all granted' . "\n";
                                $this->virtualhosts_data[$vhosts_filename] .= '    AllowOverride All' . "\n";
                        } else {
                                $this->virtualhosts_data[$vhosts_filename] .= '    Order allow,deny' . "\n";
                                $this->virtualhosts_data[$vhosts_filename] .= '    allow from all' . "\n";
                        }
                }

 

Link to post
Share on other sites
  • 0

Hallo,

entschuldigung das ich mich einmische, aber eine ganz doofe Frage:

Hast du in den Einstellungen unter Webservereinstellungen auch den Haken für Apache 2.4 rein gemacht?
Wie dort ja schon steht, startet Apache nicht, wenn der Haken nicht gesetzt ist.

Gruss Cardman

Link to post
Share on other sites
  • 0

Hallo @cardman das würde dann aber alle vhosts betreffen.

 

Danke @d00p nochmals für die antwort. Es ist aber nichts unter Webserver-Einstellungen => Standard vHost-Einstellungen eingetragen.

und auch nicht in Kunden-Prefix Ordner-Optionen ist das mit dem automatischen nicht nur für die costumer? weil da klappt das ja auch.

Link to post
Share on other sites
  • 0

Das Resultat wäre doch aber auch wieder das es bei allen nicht eingetragen werden würde. Und er macht es ja bei allen vhosts bis auf den angelegten von froxlor selbst.

Ich meine...es funktioniert jetzt ja. Aber wäre doch schön wenn froxlor das selbst in den griff bekommt. Warum an ner server config noch extra rumschrauben.

ODER es muss mit in die copy&past configs. Dann macht man das für froxlor quasi bei der installation mit.

Link to post
Share on other sites
  • 0

Also, du solltest in /etc/apache2/sites-enabled/ eine config haben, die 05_froxlor_dirfix_nofcgid.conf heisst. Hier wird für den Kunden-Prefix (z.B. /var/customers/webs) das entsprechende "AllowOverride" gesetzt, sofern nicht etwas eigenes in den Einstellungen hinterlegt wurde.

Für den Froxlor-Vhost selbst wird das ebenso eingetragen (normal also für /var/www/froxlor) - ich weiss also nicht wo gerade euer Problem ist. Oder benutzt ihr ggfls mod_php? Bei mod_php wird es tatsächlich nicht mit eingefügt. Wieso weiss ich nicht mal genau, vermutlich kam das erst später hinzu und bei mod_php gibt es keinen <Directory>-Block für extra Anweisungen. Also, falls es mod_php ist, lasst es mich wissen. NUtzt ihr aber FCGID oder eben php-fpm sollten entsprechende Einträge vorhanden sein. Global in der 05_froxlor_dirfix_nofcgid.conf und in der 10_*.conf

Link to post
Share on other sites
  • 0

Genau dieses /var/www/froxlor ist ja eben nicht da gewesen wie man sehen konnte. In der 05_frox.... auch nicht. Da ist nur der cusomters/webs pfad drin.

Außerdem wundert mich gerade das du oben doch noch gesagt hast:

Quote

Das kannst du entweder global in der apache2.conf setzen, oder sogar in froxlor einfach in die "eigene vhost einstellungen". Die meisten machen es einfach gloal in der apache-config, da 2.4 da default auf AllowOverride None setzt

Wenn das froxlor toll alleine schaffen würde, wäre das doch nicht nötig? Was ich nutze stand ja auch oben.

Da Stretch rennt ist Verwende mod_proxy / mod_proxy_fcgi aktiviert. Damit wird php-fpm genutzt.

Link to post
Share on other sites
  • 0
2 hours ago, BigWhoop said:

Wenn das froxlor toll alleine schaffen würde, wäre das doch nicht nötig? Was ich nutze stand ja auch oben.

Für Default ist nichts nötig, manche wollen da aber Anpassungen vornehmen, daher gibt es das 

2 hours ago, BigWhoop said:

Da Stretch rennt ist Verwende mod_proxy / mod_proxy_fcgi aktiviert. Damit wird php-fpm genutzt.

Eh...nein. Damit wird eine bestimmte Variante zur Einbindung von php-fpm verwendet. Du musst schon auch noch in den php-fpm Einstellungen (und für froxlor selbst dann in den froxlor vhost Einstellungen) fpm explizit aktivieren (da es dafür andere Konfigurationsschritte gibt, also nicht vergessen nochmal durch die config templates zu gehen, vorallem Webserver und natürlich sonstiges -> php-fpm)

Link to post
Share on other sites
  • 0

Naja aber er macht ja per default diesen eintrag eben nicht. Darum geht es doch die ganze Zeit :)

Und die php-fpm sind wie oben beschrieben auch überall an.

Das mit "damit wird php-fpm genutzt" bezieht sich darauf das es durch die mod_proxy implementiert ist dann.

 

Laut froxlorpanel MUSS der haken bei stretch ja auch gesetzt werden.

Link to post
Share on other sites
  • 0
On 9/25/2018 at 4:22 PM, d00p said:

Ich kann dir nur sagen wie es laut Code ist. Sicher dass da auch kein Leerzeichen drin ist oder so?

Mehr kann ich dir ohne mir das anzugucken auch nicht sagen. Tut bei mir wunderbar.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...