Jump to content
Froxlor Forum
  • 0

nginx vhost override


dalu

Question

Ich habe ein symfony projekt das eine spezielle nginx config braucht

z.B. einen speziellen docroot usw.

Ich weis nicht ob ich mich recht erinnere, konnte man nicht bei froxlor eine lock Datei erstellen?

Wenn sie vorhanden war wurde der vhost nicht mehr generiert (oder war das confixx)

 

Wenn ich das bei "own vhost settings" reinmache dann ist das keine gültige conf

der packt das alles in `location /` rein

 

In einem anderen Thread meintest du man sollte das als email only domain machen

aber dann wird das ja nicht beim letsencrypt cron berücksichtigt, oder doch?

 

Auf jeden fall wird keine php-fpm config erzeugt

Link to comment
Share on other sites

9 answers to this question

Recommended Posts

warum so kompliziert wenn du einfach im kunden-docroot nen symlink von app.php auf index.php machen könntest...

 

Das was du machen willst, wird "von haus aus" nicht funktionieren mit froxlor. Das können wir nicht zusammenführen.

Link to comment
Share on other sites

Ich muss das Thema noch einmal aufgreifen.

Wäre es in dem Fall nicht schön, wenn man die Index-Datei per Froxlor konfigurieren kann?
Ich stehe jetzt auch vor dem Problem und ja, normalerweise könnte ich ein Symlink machen, allerdings hab ich das in Kombination mit einem automatischen Deployment welches quasi immer das gesamte Git Repository runter lädt.
Sprich ich muss quasi jetzt wirklich die app.php in index.php umbenennen.

Klar, man kann sich auch anstellen. Aber vielleicht für solche Fälle wäre es cool eine Indexdatei manuell angeben zu können?
Nur so als Idee. Ich mein Froxlor ist cool und wird immer cooler B) Da finde ich sollte so etwas nicht fehlen!

Link to comment
Share on other sites

Ich bin dalu. Jetzt über Google+ eingeloggt.

Ich finde bevor irgendwas gepatcht wird, sollte man sich überlegen was die beste Art und  Weise wäre wie man das umsetzt.

Ich denke, folgender Vorschlag:

Um es nicht zu verkomplizieren,

eine checkbox 

[x] override vhost setting

eine textarea mit Inhalt der eigenen einstellungen.

Wenn die checkbox angekreuzt ist wird der gesamte inhalt der textarea in die domain.conf geschrieben.
Es wäre hilfreich die aktuelle conf dort stehen zu haben.

Ich bin dabei mein eigenes ding zu schreiben und mache nichts mehr mit PHP daher wirds von mir aus keinen PR geben.

Link to comment
Share on other sites

vor 5 Minuten schrieb Darko Luketic:

Ich denke, folgender Vorschlag:

Um es nicht zu verkomplizieren,

eine checkbox 

[x] override vhost setting

eine textarea mit Inhalt der eigenen einstellungen.

Wenn die checkbox angekreuzt ist wird der gesamte inhalt der textarea in die domain.conf geschrieben.
Es wäre hilfreich die aktuelle conf dort stehen zu haben.


In dem Fall ist man natürlich absolut flexibel. Weil dadurch könnte man dann echt alles selbst einstellen.
Sprich Froxlor darf sich in dem Fall nur noch um die SSL Einstellungen und Basics wie DocumentRoot kümmern ^^
Oder man merged das ebenfalls irgendwie.

Wenns bei mir zeitlich passt setz ich mich gern ran an einen PR. In dem Sinne ist es dann zwischenzeitlich schneller einfach ein Symlink auf index.php zu machen :lol:

Link to comment
Share on other sites

Also bei nginx ist es so, dass die Angaben in den "own vhost settings" eigentlich mit dem "standard" inhalt "gemerged" werden, d.h. zusammengeführt. Der packt das nicht alles in den "location /" - Block sondern in den "server { }" kontext. Nutzt du denn die aktuellste Version von Froxlor (0.9.36)? Wie sieht denn der Inhalt aus, den du da einfügen willst?

 

Und ob eine php-fpm config erstellt wird oder nicht hat nichts mit dem nginx vhost zu tun - da musst du nach deinen php-fpm Einstellungen gucken, ist es aktiviert, hat die domain php aktiviert, stimmen die Pfade? etc.etc.etc.

Link to comment
Share on other sites

Also bei nginx ist es so, dass die Angaben in den "own vhost settings" eigentlich mit dem "standard" inhalt "gemerged" werden, d.h. zusammengeführt. Der packt das nicht alles in den "location /" - Block sondern in den "server { }" kontext. Nutzt du denn die aktuellste Version von Froxlor (0.9.36)? Wie sieht denn der Inhalt aus, den du da einfügen willst?

 

Und ob eine php-fpm config erstellt wird oder nicht hat nichts mit dem nginx vhost zu tun - da musst du nach deinen php-fpm Einstellungen gucken, ist es aktiviert, hat die domain php aktiviert, stimmen die Pfade? etc.etc.etc.

        location / {
                # try to serve file directly, fallback to rewrite
                try_files $uri @rewriteapp;
        }
        
        location @rewriteapp {
                # rewrite all to app.php
                rewrite ^(.*)$ /app.php/$1 last;
        }

        location ~ ^/(app|app_dev|config)\.php(/|$) {
                include /etc/nginx/fastcgi_params;
                fastcgi_pass unix:/var/run/dluketic-c64g.com-php-fpm.socket;
                fastcgi_split_path_info ^(.+\.php)(/.*)$;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param HTTPS off;
        }

also im grunde

1.

sollte root auf /var/customers/webs/dluketic/c64g.com/web/ zeigen (was hier jetzt nicht drinsteht)

2.

sollte nicht index.php sondern app.php der "haupthandler" sein

 

siehe auch: http://symfony.com/doc/2.2/cookbook/configuration/web_server_configuration.html

 

Wegen php-fpm, du meintest in einem anderen Thread, wo der OP nach komplett eigenem vhost fragte, das man die Domain als email-only einstellen sollte.

Wenn man das aber macht, wird kein php-fpm socket, also für die domain kein pool generiert.

 

Ok wenn du dir das anschaust dann siehst du auch

                fastcgi_param HTTPS off;

Frag mich nicht, ich schätze symfony verwendet das um secure cookies zu setzen.

Weist worauf ich hinaus will? Getrennte "own vhost" für http und https.

Ich denke das kann man lösen indem man den ssl redirect ankreuzt. Aber wie das dann mit letsencrypt ist...

Die Domain ist im moment auch nicht live sondern ich habe bei /etc/hosts die IP eingetragen damit sie auf den neuen Server zeigt.

 

Das Ergebnis, wenn ich das so eintrage ist:

# 35_froxlor_normal_vhost_c64g.com.conf
# Created 21.06.2016 11:35
# Do NOT manually edit this file, all changes will be deleted after the next domain change at the panel.

server {
        listen 188.40.55.11:80;
        listen [2a01:4f8:100:3181::2]:80;
        server_name c64g.com;
        include /etc/nginx/acme.conf;
        access_log /var/customers/logs/dluketic-c64g.com-access.log combined;
        error_log /var/customers/logs/dluketic-c64g.com-error.log error;
        root /var/customers/webs/dluketic/c64g.com/;
        index index.php index.html index.htm;
        
        location / {
                try_files $uri $uri/ @rewrites;
                # try to serve file directly, fallback to rewrite
                try_files $uri @rewriteapp;
        }

        
        
        location @rewrites {
                rewrite ^ /index.php last;
        }

        
        location /awstats {
                alias /var/customers/webs/dluketic/awstats/c64g.com/;
                auth_basic "Restricted Area";
                auth_basic_user_file /etc/nginx/froxlor-htpasswd/2-0c041ef4c59f9bc699f7473fbff99f25.htpasswd;
        }

        
        location ~ ^/awstats-icon/(.*)$ {
                alias /usr/share/awstats/wwwroot/icon/$1;
        }

        
        location ~ ^(.+?\.php)(/.*)?$ {
                try_files /47bb36a5bffed092130c2a1511f40f0e.htm @php;
        }

        location @php {
                try_files $1 = 404;
                
                include /etc/nginx/fastcgi_params;
                fastcgi_split_path_info ^(.+\.php)(/.+)\$;
                fastcgi_param SCRIPT_FILENAME $document_root$1;
                fastcgi_param PATH_INFO $2;
                fastcgi_pass unix:/var/run/dluketic-c64g.com-php-fpm.socket;
                fastcgi_index index.php;
        }
 
        location @rewriteapp {
                # rewrite all to app.php
                rewrite ^(.*)$ /app.php/$1 last;
        }

        location ~ ^/(app|app_dev|config)\.php(/|$) {
                include /etc/nginx/fastcgi_params;
                fastcgi_pass unix:/var/run/dluketic-c64g.com-php-fpm.socket;
                fastcgi_split_path_info ^(.+\.php)(/.*)$;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_param HTTPS off;
        }

}

2 Dinge passieren

Einmal wird die index Seite gerendert, was eigentlich garnicht sein dürfte, weil ja immer noch

        root /var/customers/webs/dluketic/c64g.com/;

dransteht

 

Und 2. wenn man auf einen rewrite link klickt gibts ein status 500, der aber nirgends geloggt wird.

 

Ich denke mit apache2.4 hat man da weniger Probleme.

Ich werde sicher nicht der einzige sein der symfony Projekte hosten will.

 

update:

Wenn ich oben (bei own vhost) @rewriteapp durch @rewrites ersetze komm das bei raus:

 

 

        location / {
                try_files $uri $uri/ @rewrites;
                # try to serve file directly, fallback to rewrite
                try_files $uri @rewrites;
        }

        
        
        location @rewrites {
                rewrite ^ /index.php last;
                # rewrite all to app.php
                rewrite ^(.*)$ /app.php/$1 last;
        }

 

Wäre nützlich wenns irgendwie eine möglichkeit des "complete replace" geben würde.

Link to comment
Share on other sites

Ja du hast recht. (da siehst mal wie eingerostet ich schon geworden bin)

Nachdem ich jetzt von nginx auf apache2.4 umgestiegen bin... langer Rede kurzer Sinn.

Ein symlink reicht (und php einstellung mit open_basedir usw und docroot verschiebung).

Bin jetzt auch wieder auf nginx zurück, die performance ist augenscheinlich besser.

Aber Pluspunkt, sollte ich je wechseln wollen würden kann ich das in ein paar wenigen Zeilen, da beide konfiguriert sind ;P

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...