Bonjour,
je ne sais pas si il y a des utilisateurs de Gogs parmi vous mais je tente ma chance je ne suis plus à ca pres.

J'ai un Raspberry Pi ou j'ai installé:

  • nginx version: nginx/1.10.3
  • PHP 7.0.16-3
  • go 1.8
  • Gogs 0.11.10.0517

j'ai un fichier conf pour nginx avec ca dedans :

server {
        listen 80;
        listen [::]:80;

        server_name NOMDOMAINE;
        root /var/www/user/www;
        index index.php index.html index.htm default.html;

        error_log /home/user/logs/error.log;
        access_log /home/user/logs/access.log;

        location / {
                try_files $uri $uri/ =404;
        }

        location /gogs/{
                proxy_pass http://localhost:3042/;
        }

        # pass the PHP scripts to FastCGI server
        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }

        error_page 404 500 501 /404.html;

        # optimize static file serving
        location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
                access_log off;
                log_not_found off;
                expires 30d;
        }

        location ~ /\.ht {
                deny all;
        }
}

et pour gogs custom/conf/app.ini :


APP_NAME = Raspberry Pi
RUN_USER = git
RUN_MODE = prod

[server]
PROTOCOL               = http
DOMAIN                 = localhost
ROOT_URL               = http://MONDOMAINE/gogs/
HTTP_ADDR              = 0.0.0.0
HTTP_PORT              = 3042
UNIX_SOCKET_PERMISSION = 666
LOCAL_ROOT_URL         = %(PROTOCOL)s://%(HTTP_ADDR)s:%(HTTP_PORT)s/
DISABLE_SSH            = false
START_SSH_SERVER       = false

J'ai bien acces au fichier php pas de soucis et j'ai aussi acces au gogs mais tous les assets ont un status 404.

Comment je peux résoudre ce petit probleme de 404 ?

Merci

3 réponses


SimonDevelop
Réponse acceptée

Gogs possède sont propre service web pour fonctionner comme tu la sans doute compris, donc côté nginx tu n'a besoin que de ceci:

server {
        listen 80;

        server_name NOMDOMAINE;
        location /gogs/{
                proxy_pass http://localhost:3042;
        }
}

Je pense que ton problème d'asset vien de ton :

location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
                access_log off;
                log_not_found off;
                expires 30d;
        }

En pour y accèder : http://NOMDOMAINE/gogs/
Gogs est codé en GO si je me trompe pas, et toute la partie php dans nginx que tu as l'habitude de mettre est gérer par le service web de gogs lui-même.

Dans la config de gogs custom/conf/app.ini je te propose ceci pour la partie server (repris du mien qui suffit):

[server]
LISTEN       = 127.0.0.1
DOMAIN       = MONDOMAINE/gogs/
HTTP_PORT    = 3042
PROTOCOL     = http
ROOT_URL     = http://MONDOMAINE/gogs/
DISABLE_SSH  = false
OFFLINE_MODE = false

Garde une copie des tiens avant de tester
En espérant avoir pu t'aider ;)

bonjour,

effectivement le probleme est bien lié à ce bout de code:

location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
                access_log off;
                log_not_found off;
                expires 30d;
        }

comment puis-je mettre le location sans affecter les url de gogs (si tu as une piste)?

j'ai essayer de faire de bloc server un avec les configuration pour php et l'autre pour gogs mais l'url gogs n'est plus accessible si je fais ca.

merci

Tu parle du location /gogs/ ?
J'ai du mal comprendre un truc, tu peux m'expliquer un peu plus ?