IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Ajax nginx tracer les erreurs


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Septembre 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Septembre 2020
    Messages : 10
    Points : 13
    Points
    13
    Par défaut Ajax nginx tracer les erreurs
    Hello à toutes et à tous.

    Je suis sur un problème depuis plusieurs jours et j'en deviens fou ^^
    J'ai fait une interface web pour ma Raspberry, pour mon métier.
    Dans un premier temps, l'OS utilisé était Raspbian.

    Mais j'ai voulu me lancer dans la fabrication de mon propre OS avec Buildroot.

    Sous Rapsbian, tout fonctionnait bien.
    Sous mon OS perso, une bonne partie fonctionne, mais quand je fais appel a Ajax, gros problème.

    sous Raspbian mon serveur web était composé de Apache2 et php7.
    Sous mon OS perso, je suis passé à nginx et php-fpm ( toujours version 7).

    La conf de nginx :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    #user  nobody;
    worker_processes  1;
     
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
     
    #pid        logs/nginx.pid;
     
     
    events {
        worker_connections  1024;
    }
     
     
    http {
        include       mime.types;
        default_type  application/octet-stream;
     
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
     
        #access_log  logs/access.log  main;
     
        sendfile        on;
        #tcp_nopush     on;
     
        #keepalive_timeout  0;
        keepalive_timeout  65;
     
        #gzip  on;
     
        server {
            listen       80;
            server_name  localhost;
     
            #charset koi8-r;
     
            #access_log  logs/host.access.log  main;
     
            location / {
                root   /diagbox/web;
                index  intro.html;
            }
     
            error_page  550              /550.html;
     
            # redirect server error pages to the static page /50x.html
            #
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
     
     
     
     
            # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
            #
            location ~ \.php$ {
    		fastcgi_pass unix:/run/php-fpm.sock;
    		fastcgi_param SCRIPT_FILENAME /diagbox/web/$fastcgi_script_name;
    		include fastcgi_params;
            }
     
            # deny access to .htaccess files, if Apache's document root
            # concurs with nginx's one
            #
            #location ~ /\.ht {
            #    deny  all;
            #}
        }
     
     
        # another virtual host using mix of IP-, name-, and port-based configuration
        #
        #server {
        #    listen       8000;
        #    listen       somename:8080;
        #    server_name  somename  alias  another.alias;
     
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
     
     
        # HTTPS server
        #
        #server {
        #    listen       443 ssl;
        #    server_name  localhost;
     
        #    ssl_certificate      cert.pem;
        #    ssl_certificate_key  cert.key;
     
        #    ssl_session_cache    shared:SSL:1m;
        #    ssl_session_timeout  5m;
     
        #    ssl_ciphers  HIGH:!aNULL:!MD5;
        #    ssl_prefer_server_ciphers  on;
     
        #    location / {
        #        root   html;
        #        index  index.html index.htm;
        #    }
        #}
     
    }
    Le script javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    //Constantes fonction reboot
    const scripts_reboot = '../scripts/reset_reboot/reboot.php'
    const mess_reboot = "La DiagBox redémarrera après avoir cliquer sur 'ok'. Tu pourras te reconnecter sur l'interface web d'ici 30 secondes environ :)"
    const err_reboot = "Une erreur a empeché le redémarrage de la carte."
     
    function reboot(param1, param2) // param1 = smartphone ou tablette . param2 = oui ou non
    {
    	if (param1 === 'tablette')
    	{
    		switch (param2)
    		{
    			case 'oui':
    				alert(mess_reboot);
    					$.ajax({
    						url: scripts_reboot,
    					});
    				break;
     
    			default:
    				choix_menu('accueil', 'tablette'); // Fonction accessible grace a la page html
    				break;		
    		}
    	}
     
    	else if (param1 === 'smartphone')
    	{
    		switch (param2)
    			{
    				case 'oui':
    					alert(mess_reboot);
    						$.ajax({
    							url: scripts_reboot,
    						});
    					break;
     
    				default:
    					choix_menu('accueil', 'smartphone'); // Fonction accessible grace a la page html
    					break;		
    			}
    	}
     
    	else
    	{
    		alert(err_reboot);
    	}
     
    } //fin script reboot
    La partie du code html, le bouton faisant appel à ajax
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <div id="reboot">
    				<h2 class="h2_reboot"> confirmer le redémarrage de la Diagbox ? </h2>
    				<input id="reboot_yes_tablette" type="button" value="Oui" class="tablette_bouton" onclick="reboot('tablette', 'oui');" /> <!-- Bouton pour oui -->
    				<input id="reboot_no_tablette" type="button" value="Non" class="tablette_bouton" onclick="reboot('tablette', 'non');" /> <!-- Bouton pour non -->
    			</div>

    Je n'ai aucunes erreur qui remontent dans les logs.
    J'ai utilisé success, error et complete pour remonter les infos post ajax.
    Et ce sont les fonctions de success et complete qui apparaissent.

    J'ai du faire une méga boulette mais tellement immense que je ne la vois pas ^^.

    J'ai testé le script php directement en ligne de commande et il fonctionne.
    J'ai aussi introduit du code php dans la page html et il s'exécute.
    J'ai un autre script en javascript qui modifie l'apparence de la page et il fonctionne.

    Donc je vois pas mon erreur.

    Help me please

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    Une hypothèse: Ajax nécessite des autorisations entre domaine, cela provient peut être de là ?
    As tu des autorisations Access-Control-Allow-Origin sur ta page appelée en Ajax ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Septembre 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Septembre 2020
    Messages : 10
    Points : 13
    Points
    13
    Par défaut
    Hello.
    Tout d'abord, je te remercie pour ta réponse.
    Et je pense que ton hypothèse est bonne.
    Le serveur est dans ma raspberry.

    J'ai ouvert les droits sur le dossier web(chmod 777 -R).

    J'utilise Ajax pour lancer des scripts PHP qui lancent des scripts SH.
    Quand le SH ne nécessite pas de droit(sudo), l'Ajax se passe bien, je m'en suis rendu compte a force de fouiller .

    Et vu que ça reste en local, j'ai essayé de donner les droits sudo sans mot de passe a l'utilisateur web www-data et également a nginx.
    Mais le sudo ne passe pas.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    Jette peut être un oiel par là https://enable-cors.org/server_apache.html
    le but étant que ta page cible de l'Ajax accepte l'appel
    tu sauras rapidement si c'est le cas en ajoutant à ta page un header qui autorise tot lemonde à l'appeler en ajax
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Header set Access-Control-Allow-Origin "*"
    ou plutôt sur linux
    https://linuxhint.com/cors_nginx/#:~...ed%20carefully.
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Septembre 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Septembre 2020
    Messages : 10
    Points : 13
    Points
    13
    Par défaut
    Re
    Merci encore pour ton aide
    Mais toujours le même problème

    J'ai essayé d'intégrer le code PHP dans passer par de l'Ajax, directement dans mon code HTML.
    Lorsque le script PHP lance un script Bash sans sudo, par exemple un script Bash du type écho 'ok', ça passe.
    Mais il suffit que je rajoute sudo dans le script PHP ou Bash et ça bloque.
    J'ai une erreur me disant sudo: écho: Command not found.

    Pourtant sudo fonctionne en ligne de commande.
    J'ai essayé de mettre l'utilisateur de PHP et ningx dans mon fichier sudoers pour lui permettre de faire un sudo sans mot de passe mais en vain.

    J'ai changé les utilisateurs dans les fichiers de conf de php-fpm et ningx, j'ai mis www a la place de www-data.
    Un utilisateur que j'ai créé avec un groupe au même nom.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Septembre 2020
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms

    Informations forums :
    Inscription : Septembre 2020
    Messages : 10
    Points : 13
    Points
    13
    Par défaut
    résolu après plusieurs jours de bataille

    https://superuser.com/questions/1079...mand-not-found

    Le problème était sur le sudo, a priori un problème d'environnement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tracer les erreurs?
    Par DaedaGus dans le forum Langage
    Réponses: 2
    Dernier message: 20/04/2011, 20h02
  2. [AJAX] Modification d'un Div avec les erreurs de Struts
    Par hikamovic dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/02/2009, 12h36
  3. [AJAX] Catcher les erreurs
    Par lutecefalco dans le forum ASP.NET
    Réponses: 15
    Dernier message: 02/09/2008, 12h16
  4. [log4j] tracer les TOUTES les erreurs
    Par jaoued dans le forum Logging
    Réponses: 2
    Dernier message: 11/04/2008, 15h59
  5. Réponses: 0
    Dernier message: 25/02/2008, 18h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo