Visualizzazione risultati 1 fino 29 di 29
Like Tree1Likes
  • 1 Post By mzanella

Discussione: Deploy sito Angular-Laravel problemi con utilizzo in localhost

  1. #1
    sanfrarovigo non è connesso Neofita
    Data registrazione
    10-12-2020
    Messaggi
    16

    Angry Deploy sito Angular-Laravel problemi con utilizzo in localhost

    Ciao
    Ho fatto una web application basata su Angular per il lato Frontend e Laravel per il lato Backend.
    In locale, sulla macchina di sviluppo (visual studio code) funziona a meravoiglia.
    Ho fatto il deploy e, completato l'installazione su Altervista, mi da errori strani in fase si utilizzo.
    Vorrei illustrare i passi fatti e le conseguenti personalizzazioni per capire dove sbaglio.

    Sullo spazio altervista assegnatomi (morenowork.altervista.org) ho creato 3 cartelle e precisamente:
    - laravel --> identifica il backend (Laravel)
    - messanatale --> identifica il frontend
    - messapi --> identifica ail backend (cartella Public)

    nella root ho creato il file .htaccess

    <IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
    Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php[L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    </IfModule>

    # # av:php5-engine
    AddHandler av-php73 .php
    e il file index.php
    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="utf-8">
    <title>Messa di Natale - Test - on line </title>
    <base href="http://morenowork.altervista.org/messanatale/">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="icon" type="image/x-icon" href="favicon.ico">
    <link rel="stylesheet" href="styles.abd0e528e6e91ea207c8.css"></head>
    <body>
    <app-root></app-root>
    <!-- per gestire la popup di cancellazione 2020/11/14 -->
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
    crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
    crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
    crossorigin="anonymous"></script>
    <!-- per gestire la popup di cancellazione -- fine -- 2020/11/14 -->
    <script src="runtime.acf0dec4155e77772545.js" defer></script><script src="polyfills.5c8033dfb7c3b4aa1601.js" defer></script><script src="scripts.4b8610c36b0ede43b206.js" defer></script><script src="main.f5dfdad7eab981ff6233.js" defer></script></body>
    </html>
    --------- cartella messanatale (Frontend) in Angular

    per il deploy in Visual Studio code ho utilizzato il comando
    - ng build –prod –base-href http://morenowork.altervista.org/messanatale
    in modo da impostare correttamente il base href.

    la cartella messanatale contiene quanto creato nella cartella "dist" con il build a cui ho aggiunto il file .htaccess che riporto

    <IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
    Options -MultiViews
    </IfModule>

    RewriteEngine On
    RewriteBase /messanatale/
    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.html [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    </IfModule>

    # # av:php5-engine
    AddHandler av-php73 .php
    la riga RewriteBase /messanatale/ si rende necessaria per il corretto utilizzo della cartella.


    --------- cartella laravel [U](Backend) in Laravel/U]

    ho copiato tutto il contenuto del progetto laravel da visual studio code a meno della cartella "public"

    Personalizzazioni eseguite:

    file .env

    APP_NAME=Laravel
    APP_ENV=local
    APP_KEY=base64:06wroKKP3OR966ExYzzF/rXOjitJsSV8acHLvYlzqng=
    APP_DEBUG=true
    APP_URL=http:sanfrarovigo.altervista.org/messanatale/

    LOG_CHANNEL=stack

    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=my_sanfrarovigo
    DB_USERNAME=sanfrarovigo
    DB_PASSWORD=
    Ho personalizzato le righe evidenziate in blu e precisamente URL e le credenziali del database mysql.


    ---- Cartella Config file Database

    'mysql' => [
    'driver' => 'mysql',
    'url' => env('DATABASE_URL'),
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '3306'),
    'database' => env('DB_DATABASE', 'my_sanfrarovigo'),
    'username' => env('DB_USERNAME', 'sanfrarovigo'),
    'password' => env('DB_PASSWORD', ''),
    'unix_socket' => env('DB_SOCKET', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'prefix_indexes' => true,
    'strict' => true,
    'engine' => null,
    'options' => extension_loaded('pdo_mysql') ? array_filter([
    PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
    ]) : [],
    ],
    le credenziali del Database MySql


    --------- cartella messeapi [U](Backend - parte public) in Laravel/U]

    ho copiato tutto il contenute della cartella "public" presente nel progetto laravel


    personalizzazioni fatte:

    - file .htaccess

    <IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
    Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On
    RewriteBase /messeapi/
    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
    </IfModule>
    la modifica RewriteBase /messeapi/ si rende necessaria per il corretto uso della cartella.

    -- file index.php

    <?php

    /**
    * Laravel - A PHP Framework For Web Artisans
    *
    * @package Laravel
    * @author Taylor Otwell <taylor@laravel.com>
    */

    define('LARAVEL_START', microtime(true));

    /*
    |--------------------------------------------------------------------------
    | Register The Auto Loader
    |--------------------------------------------------------------------------
    |
    | Composer provides a convenient, automatically generated class loader for
    | our application. We just need to utilize it! We'll simply require it
    | into the script here so that we don't have to worry about manual
    | loading any of our classes later on. It feels great to relax.
    |
    */

    require __DIR__.'/../laravel/vendor/autoload.php';

    /*
    |--------------------------------------------------------------------------
    | Turn On The Lights
    |--------------------------------------------------------------------------
    |
    | We need to illuminate PHP development, so let us turn on the lights.
    | This bootstraps the framework and gets it ready for use, then it
    | will load up this application so that we can run it and send
    | the responses back to the browser and delight our users.
    |
    */

    $app = require_once __DIR__.'/../laravel/bootstrap/app.php';

    /*
    |--------------------------------------------------------------------------
    | Run The Application
    |--------------------------------------------------------------------------
    |
    | Once we have the application, we can handle the incoming request
    | through the kernel, and send the associated response back to
    | the client's browser allowing them to enjoy the creative
    | and wonderful application we have prepared for them.
    |
    */

    $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);

    $response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
    );

    $response->send();

    $kernel->terminate($request, $response);
    le istruzioni originarie
    require __DIR__.'/../vendor/autoload.php';
    $app = require_once __DIR__.'/../bootstrap/app.php';
    sono state aggiornate nella Path per il corretto funzionamento del sito in

    require __DIR__.'/../laravel/vendor/autoload.php';
    $app = require_once __DIR__.'/../laravel/bootstrap/app.php';
    allego screenshot






    ecco la procedura eseguita in localhost

    https://ibb.co/RBQyVhf

    Domande: sbaglio o dimentico qualche cosa nel deploy su altervista ?

    Perchè sovrascrivo il sito altervista con "localhost:8000" come da screenshot ?

    Grazie

    Moreno

    ps facendo anteprima non vengono visualizzati alcuni screenshot; non so se un problema dell'inserimento.
    nel caso fatemi saperecome poterli inserire.
    grazie

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    A occhio ti manca un RewriteBase / nel file .htaccess nella root, ma non credo sia l'unico problema.

    Aprendo la tua homepage, la console del browser riporta che viene effettuata una chiamata a localhost:8000/messa, la quale ovviamente fallisce. Ricaricando la pagina, sempre la console riporta che viene effettuata una chiamata AJAX verso [i]morenoworks.altervista.org/messanatale/messa[i], questa viene bloccata dalla CORS.

    A prima vista i problemi sembrano essere gli URL.

    PS: è bello vedere dei concittadini sul forum

    I suggerimenti che do più spesso:


  3. #3
    sanfrarovigo non è connesso Neofita
    Data registrazione
    10-12-2020
    Messaggi
    16

    Predefinito

    Ciao mzanella

    grazie per seguire il mio problema.
    Nella tua osservazione dici che

    Aprendo la tua homepage, la console del browser riporta che viene effettuata una chiamata a localhost:8000/messa, la quale ovviamente fallisce. Ricaricando la pagina, sempre la console riporta che viene effettuata una chiamata AJAX verso [i]morenoworks.altervista.org/messanatale/messa[i], questa viene bloccata dalla CORS.
    nella presentazione della domanda, come vedi ho aggiornato tutti, almeno pensavo, i riferimenti da localhost al vero indirizzo del backend che è morenowork.altervista.org
    Ovviamente il comportamento è corretto, ma dove manca, secondo te, l'aggiornamento da localhost al vero url ?
    seguendo le specifiche del corso gli interventi vanno fatti come indicato negli sccreenshot


    Posso chiederti come fai a vedere che la chiamata iniziale e verso
    localhost:8000/messa ?

    Ho provato a guardare l'analisi del codice, ma non trovo nessun riferimento a localhost:8000
    Se riesco a capire dove effettuare la correzzione, dovrebbe andare.

    Grazie

    Moreno
    Ultima modifica di sanfrarovigo : 30-12-2020 alle ore 10.55.37

  4. #4
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Il sito a cui fare riferimento è ospitato in http://sanfrarovigo.altervista.org, oppure in http://morenowork.altervista.org?
    I problemi della chiamata verso localhost e delle CORS compaiono nel primo, ma non nel secondo. Nel codice che hai mostrato compare sanfrarovigo.altervista.org, quindi ho immaginato fosse il primo. Se è così, non puoi effettuare chiamate verso morenowork.altervista.org, il browser le blocca perché violano le CORS.

    Nel secondo quei problemi non ci sono, ma viene eseguita una chiamata AJAX verso l'URL http://morenowork.altervista.org/messanatale/messa. Immagino che quella chiamata dovrebbe recuperare un JSON con le informazioni con cui popolare la tabella, tuttavia l'URL in questione (che è lo stesso della pagina) restituisce un HTML. Per questo compare l'errore "Unexpected token < in JSON at position 0" nella console.

    Posso chiederti come fai a vedere che la chiamata iniziale e verso [...]
    Aprendo la pagina la prima volta e ispezionando la console, compare questo:

    Ricaricandola compare invece l'avviso relativo alle CORS.
    sanfrarovigo likes this.

    I suggerimenti che do più spesso:


  5. #5
    sanfrarovigo non è connesso Neofita
    Data registrazione
    10-12-2020
    Messaggi
    16

    Predefinito

    Ciao mzanella
    grazie per la cortese risposta.
    Gestisco sia sanfrarovigo.altervista.org che morenowork.altervista.org.
    Ho installato due versioni della stessa web ma con diverse stati di avanzamento, se così si può dire.
    difatti mi trovo in imbarazzo perchè, come giustamente facevi osservare
    I problemi della chiamata verso localhost e delle CORS compaiono nel primo, ma non nel secondo.
    non possono mai esserci chiamate che inizialmente partono da morenowork e poi vanno su sanfrarovigo.

    il problema sta, in sanfrarovigo, che inizialmente parte con localhost:8000 e poi va a sanfrarovigo come deve andare originariamente e quindi problemi cors non dovrebbero comparire perchè rivolti a stesso dominio.

    ti riporto il codice sia lato frontend su messe.component.ts, su messe.service e lato backend con messeController.php

    ----- Messe.component.ts

    async loadMesse() {
    this.presenti = false;
    this.Message = 'Nessuna messa presente';

    await this.messaService.getMesses().subscribe(
    res => {
    if(res['number'] > 0) {
    this.nRec = res['number'];
    this.alertSuccess = true;
    this.isVisible = true;
    this.Message = 'Situazione attuale';
    this.messe = res['data'];
    console.log('trovati messe da editare in elenco');
    this.presenti = true;
    } else {
    this.isVisible = true;
    this.Message = 'Nessuna messa presente';
    }
    },
    err => {
    this.alertSuccess = false;
    this.isVisible = true;

    console.log(err);
    switch (err.status) {
    case 401: //login
    this.Message = 'errore 401';
    break;
    case 403: //forbidden
    this.Message = 'errore 403';
    break;
    case 404: //login
    this.Message = 'errore 404';
    break;
    case 405: //forbidden
    this.Message = 'errore 405';
    break;
    default:
    this.Message = err.status;
    break;
    }
    });
    ----- Messe.service.ts

    import { Injectable } from '@angular/core';

    import { HttpClient, HttpHeaders } from '@angular/common/http';
    import { observable, Observable } from 'rxjs';

    import { environment } from '../../environments/environment';
    import { Messa } from './../classes/Messa';




    @Injectable({
    providedIn: 'root'
    })
    export class MessaService {

    // lettura dati da server laraapi
    messes: Messa[] = []; // definisco i dati come array vuoto

    private prefixTable = "/messa";
    private APIURL = environment.APIURL + this.prefixTable;
    constructor(private http: HttpClient) {
    }

    getMesses() {
    return this.http.get(this.APIURL);
    }

    getMessa(id: number) {
    return this.http.get(this.APIURL + '/' + id);
    }


    deleteMessa(messa: Messa) {
    return this.http.delete(this.APIURL + '/' + messa.id);

    }


    updateMessa(messa: Messa) {

    messa['_method'] = 'PUT';

    return this.http.patch(this.APIURL + '/' + messa.id, messa);

    }


    createMessa(messa: Messa){
    return this.http.post(this.APIURL, messa);
    }

    }

    ----- MesseController.php (backend)

    use App\Messa;
    use Illuminate\Http\Request;
    use App\Http\Controllers\Controller;

    class MessaController extends Controller
    {
    /**
    * Display a listing of the resource.
    *
    * @return \Illuminate\Http\Response
    */
    public function index()
    {
    // return Messa::all();

    $res = [
    'data' =>[],
    'number' => 0,
    'message' => ''
    ];
    try{
    $res['data'] = Messa::all(); // $res['data'] = Fedele::where('idmessa',$idmessa->input('idmessa'))->get();
    $res['number'] = Messa::All()->count(); // Fedele::where('idmessa',$idmessa->input('idmessa'))->count();
    $res['message'] = 'trovato Messe';
    } catch (\Exception $e){
    $res['message'] = $e->getMessage();
    }
    return $res;

    }

    ........ altri metodi

    Questi elementi di valutazione ti sono sufficienti per capire perchè perchè mi torna text e non dati ?

    Grazie
    Moreno

  6. #6
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Non sono molto esperto di Angular, ma a occhio qui:
    Codice:
    import { environment } from '../../environments/environment';
    [...]
    private APIURL = environment.APIURL + this.prefixTable;
    [...]
    getMesses() {
      return this.http.get(this.APIURL);
    }
    viene costruito l'URL da cui recuperare le messe, leggendo un parametro "APIURL" in "../../environments/environment".
    Il valore contenuto in quel file è corretto?

    I suggerimenti che do più spesso:


  7. #7
    sanfrarovigo non è connesso Neofita
    Data registrazione
    10-12-2020
    Messaggi
    16

    Predefinito

    ciao mZanella

    il tuo contributo è davvero importante e sta facendo luce sul problema.
    L'osservazione è pertinente, ma il meccanismo di generazione del build dovrebbe essere sicuro.
    Infatti in quella fase, come documentato, il contenuto della environment.prod.ts va a sovrapporsi a envirnment.ts

    riporto i valori

    ------- enviroment.ts

    // This file can be replaced during build by using the `fileReplacements` array.
    // `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
    // The list of file replacements can be found in `angular.json`.


    export const environment = {
    production: false,
    APIURL: 'http://localhost:8000'
    };
    ------- enviroment.prod.ts

    export const environment = {
    production: true,
    APIURL: 'http://morenowork.altervista.org/messanatale'
    };

    ------------------- angular.json


    "configurations": {
    "production": {
    "fileReplacements": [
    {
    "replace": "src/environments/environment.ts",
    "with": "src/environments/environment.prod.ts"
    }
    ],
    "optimization": true,
    "outputHashing": "all",
    "sourceMap": false,
    "namedChunks": false,
    "extractLicenses": true,
    "vendorChunk": false,
    "buildOptimizer": true,
    "budgets": [
    {
    "type": "initial",
    "maximumWarning": "2mb",
    "maximumError": "5mb"
    },
    {
    "type": "anyComponentStyle",
    "maximumWarning": "6kb",
    "maximumError": "10kb"
    }
    ]
    }
    }
    },


    quindi in fase di build url in envirment dovrebbe avere come valore morenowork.altervista.org e non localhost:8000

    Perchè non dovrebbe aver funzionato ?

    ciao
    Moreno

  8. #8
    sanfrarovigo non è connesso Neofita
    Data registrazione
    10-12-2020
    Messaggi
    16

    Predefinito

    ciao mZanella

    Ho provato, in attesa di capire se è la build che non effettua la copia di envirnment.prod.ts su envirnment.ts, a forzare su messa.service url proveniente da environment con una stringa fissa sanfrarovigo.altervista.org/messanatale e non va ancora.

    da errore
    message: "Http failure during parsing for http://sanfrarovigo.altervista.org/messanatale/messa"


    da errore parsing, ma non vedo come possa esserci.
    il 200 visualizzato sul rettangolo rossiccio è il http codice dopo la lettura delle messe. Quindi i dati sono stati letti, ma non si edita

    come possiamo risolvere ?
    grazie
    Moreno

    ho onserito il link dell'immagine, ma non viene visualizzato. Ho utilizzato quanto descritto su
    http://forum.it.altervista.org/how/2...sto-forum.html per caricare immagini. Non funziona più o cosa sbaglio ?
    Ultima modifica di sanfrarovigo : 30-12-2020 alle ore 15.37.44

  9. #9
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Non puoi effettuare richieste da un dominio a diverso dominio altrimenti CORS.
    Quindi solo sanfrarovigo e non morenowork.
    Dopo aver importato dovrai anche cancellare la cache della tua applicazione (non sto dicendo il browser).
    Altresì altervista offre spazio web per siti destinati fruibili al web, non semplice archiviazione di file.
    In teoria il file .env dovrebbe avere la precedenza su alcune funzioni specifiche.
    Ultima modifica di darbula : 30-12-2020 alle ore 15.54.27

  10. #10
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Oltre a quanto dice darbula sulle CORSE,

    da errore parsing, ma non vedo come possa esserci.
    il 200 visualizzato sul rettangolo rossiccio è il http codice dopo la lettura delle messe. Quindi i dati sono stati letti, ma non si edita
    HTTP 200 significa che la chiamata AJAX ha ottenuto una riposta positiva dal server, il quale gli ha restituito un contenuto.
    L'errore indica, però, che si tratta del contenuto sbagliato. La pagina si aspettava di ricevere un JSON, ma si è trovata invece del codice HTML.
    Normalmente bisognerebbe capire se sta sbagliando il server nel restituire il contenuto, o il client che sta chiedendo quello sbagliato. In questo caso è semplice: la chiamata AJAX punta a http://sanfrarovigo.altervista.org/messanatale/messa, che è una pagina HTML, non JSON, quindi è il codice Angular che genera l'URL sbagliato.

    Guardando enviroment.prod.ts:
    Codice:
    export const environment = {
      production: true,
      APIURL: 'http://morenowork.altervista.org/messanatale'
    };
    (CORS a parte), effettivamente c'è un problema, l'URL usato per le API è lo stesso del frontend.

    Mi spiego con un esempio. L'homepage risponde all'URL http://sanfrarovigo.altervista.org/messanatale/messa, che serve quindi pagine HTML. Il file environment dice che le API rispondo agli URL il cui prefisso è sempre http://sanfrarovigo.altervista.org/messanatale, questi URL devono quindi servire dei JSON, vale in particolare per l'endpoint "messa".
    L'URL http://sanfrarovigo.altervista.org/messanatale/messa cosa deve restituire, dunque? Un file HTML in quanto è l'homepage, oppure un file JSON perché fa parte di quegli URL indicati per le API? Al momento viene scelta la prima opzione, quindi l'homepage è visibile ma, quando viene effettuata la chiamata AJAX allo stesso URL, viene restituito dell'HTML anziché JSON.

    È voluto che gli URL coincidano? Se non è così ci sono dei problemi di configurazione da qualche parte.
    Se il comportamento inteso era che il frontend stesse da una parte, e le API su un altro host invece c'è il problema delle CORS, e non va bene. Altrimenti c'è un problema concettuale alla base.

    I suggerimenti che do più spesso:


  11. #11
    sanfrarovigo non è connesso Neofita
    Data registrazione
    10-12-2020
    Messaggi
    16

    Predefinito

    Ciao durbala
    grazie per il tuo contributo.
    come ho già risposto a mzanella, sanfrarovigo e morenowork sono due spazi diversi in cui sto testando l'applicazione in stadi diversi di sviluppo.
    Quindi le chiamate sono sempre dentro allo stesso dominio. se provo l'applicazione con sanfrarovigo.altervista.org ho tutto qui dentro e non effettuo chiamate ad un altro dominio.
    fatta questa premessa, il problema non è in CORS, dato ceh opero sempre nello stesso dominio, ma bensi di
    message: "Http failure during parsing for http://sanfrarovigo.altervista.org/messanatale/messa"
    Nei vari post ho allegato anche il codice in messa.service e messe.component.ts per quanto riguarda il frontend e messeController per quanto riguarda il backend.
    Non so capire perchè va in errore parsing.

    spero di aver maggiormente chiarito il problema.
    grazie
    Moreno

  12. #12
    sanfrarovigo non è connesso Neofita
    Data registrazione
    10-12-2020
    Messaggi
    16

    Predefinito

    grazie mzanella

    il tuo ultimo contributo penso sia centrale per capire il problema.
    Sicuramente dipende da me e vorrei spiegarti come sono intervenuto.
    In locale, dalla macchina di sviluppo tutto funziona alla meraviglia.

    il ragionamento che facciamo è relativo allo spazio
    morenowork.altervista.org
    gli interventi che ho fatto prima di eseguire il deploy e quindi creare la cartella dist sono:

    - modifcare il file environment.prod
    da
    APIURL: 'http://localhost:8000'
    a
    APIURL: 'http://sanfrarovigo.altervista.org/messanatale'
    effettuata questa modifca effettuo la build con base-href imposta morenowork.altervista.org/messanatale/

    nello spazio morenowork.altervista.org ho crato 3 cartelle che rappresentano la parte frontend e la parte backend con i seguenti nomi:

    - messanatale ----> Frontend (Angular) nel quale copio il contenuto della cartella dist ottenuta dalla build
    in questa inserisco il file .htaccess con questo contenuto:
    <IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
    Options -MultiViews
    </IfModule>

    RewriteEngine On
    RewriteBase /messanatale/
    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.html [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    </IfModule>

    # # av:php5-engine
    AddHandler av-php73 .php
    - messeapi ----> Backend (Laravel - cartella public del progetto) in cui copio il contenuto della cartella public del progetto laravel.
    in questa inserisco il file .htaccess con il seguente codice

    <IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
    Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On
    RewriteBase /messeapi/
    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
    </IfModule>
    intervengo sul file index.php impostando le seguenti correzzioni per puntare al backend laravel
    <?php

    /**
    * Laravel - A PHP Framework For Web Artisans
    *
    * @package Laravel
    * @author Taylor Otwell <taylor@laravel.com>
    */

    define('LARAVEL_START', microtime(true));

    /*
    |--------------------------------------------------------------------------
    | Register The Auto Loader
    |--------------------------------------------------------------------------
    |
    | Composer provides a convenient, automatically generated class loader for
    | our application. We just need to utilize it! We'll simply require it
    | into the script here so that we don't have to worry about manual
    | loading any of our classes later on. It feels great to relax.
    |
    */

    require __DIR__.'/../laravel/vendor/autoload.php';

    /*
    |--------------------------------------------------------------------------
    | Turn On The Lights
    |--------------------------------------------------------------------------
    |
    | We need to illuminate PHP development, so let us turn on the lights.
    | This bootstraps the framework and gets it ready for use, then it
    | will load up this application so that we can run it and send
    | the responses back to the browser and delight our users.
    |
    */

    $app = require_once __DIR__.'/../laravel/bootstrap/app.php';
    ho modificato la path per poter raggiungere le cartelle bootstrap e autoload

    - laravel ----> Backend (Laravel - tutto il sito di backend a meno della cartella public del progetto) in cui copio il contenuto totale del sito di backend a meno della cartella public.

    Modifche effettuate:

    in config/database imposto i dati del db MySQL e precisamente

    'mysql' => [
    'driver' => 'mysql',
    'url' => env('DATABASE_URL'),
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '3306'),
    'database' => env('DB_DATABASE', 'my_morenowork'),
    'username' => env('DB_USERNAME', 'morenowork'),
    'password' => env('DB_PASSWORD', ''),
    'unix_socket' => env('DB_SOCKET', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'prefix_indexes' => true,
    'strict' => true,
    'engine' => null,
    'options' => extension_loaded('pdo_mysql') ? array_filter([
    PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
    ]) : [],
    ],

    in .env nella root di laravel (backend senza la public) imposto i dati del db MySQL e precisamente

    APP_NAME=Laravel

    APP_ENV=local

    APP_KEY=base64:06wroKKP3OR966ExYzzF/rXOjitJsSV8acHLvYlzqng=

    APP_DEBUG=true

    APP_URL=http://morenowork.altervista.org/messanatale



    LOG_CHANNEL=stack



    DB_CONNECTION=mysql

    DB_HOST=127.0.0.1

    DB_PORT=3306

    DB_DATABASE=my_morenowork

    DB_USERNAME=morenowork

    DB_PASSWORD=



    BROADCAST_DRIVER=log

    CACHE_DRIVER=file

    QUEUE_CONNECTION=sync

    SESSION_DRIVER=file

    SESSION_LIFETIME=120



    REDIS_HOST=127.0.0.1

    REDIS_PASSWORD=null

    REDIS_PORT=6379



    MAIL_MAILER=smtp

    MAIL_HOST=smtp.mailtrap.io

    MAIL_PORT=2525

    MAIL_USERNAME=null

    MAIL_PASSWORD=null

    MAIL_ENCRYPTION=null

    MAIL_FROM_ADDRESS=null

    MAIL_FROM_NAME="${APP_NAME}"



    AWS_ACCESS_KEY_ID=

    AWS_SECRET_ACCESS_KEY=

    AWS_DEFAULT_REGION=us-east-1

    AWS_BUCKET=



    PUSHER_APP_ID=

    PUSHER_APP_KEY=

    PUSHER_APP_SECRET=

    PUSHER_APP_CLUSTER=mt1



    MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"

    MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
    mi sembra di non aver tralasciato nulla dei passi di personalizzazione che effettuo in fase di deploy su ambiente altervista.
    Sicuramente faccio del casino, ma mi sembra di rispettare quanto dettagliato nel corso ceh ho seguito.
    Ti sembra chiatìro e corretto ?
    Spero potrai darmi del somaro, ma che riesci a evidenziare dove sbaglio in maniera pacchiana.


    grazie per la pazienza, ma probabilmente il problema sta in una banalissima personalizzazione che non riesco a vedere.
    grazie ancora
    Moreno

  13. #13
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Laravel nella cartella public usa htaccess, di conseguenza avrai richieste a http://example.domain.com/project/public dicasi anche root laravel ma è comunque dentro una cartella non necessariamente può essere effettivamente la ridice del tuo virtual host (web serber).
    https://laravel.com/docs/7.x/installation#pretty-urls il codice necessario per eliminare index.php finale.
    Per favore indica solo un un'argomento per topic e usa solamente il dominio sanfrarovigo, sei riuscito a cancellare la cache laravel?
    relative path i due punti in un percorso significa la cartella padre (precedente).
    In tutti i file .htaccess va inserito RewriteBase :
    Codice:
    RewriteEngine On
    RewriteBase /project/public/
    Questo è un'esempio creato appositamente per il file .htaccess situato nella cartella public.
    Ultima modifica di darbula : 30-12-2020 alle ore 17.34.42

  14. #14
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Concordo, sicuramente c'è una fesseria da qualche parte che causa i problemi .

    Effettivamente vedo ancora un po' di confusione tra i domini morenowork e sanfrarovigo, nella configurazione a volte compare uno, altre l'altro:
    il ragionamento che facciamo è relativo allo spazio
    morenowork.altervista.org
    [...]
    APIURL: 'http://sanfrarovigo.altervista.org/messanatale'
    ma queste cose sono facili da risolvere.

    Piuttosto, proprio questa riga:
    Codice:
    APIURL: 'http://sanfrarovigo.altervista.org/messanatale'
    sembra puntare allo stesso URL del frontend. Non dovrebbe invece puntare a
    Codice:
    APIURL: 'http://morenowork.altervista.org/messeapi'
    ?

    I suggerimenti che do più spesso:


  15. #15
    sanfrarovigo non è connesso Neofita
    Data registrazione
    10-12-2020
    Messaggi
    16

    Predefinito

    ciao darbala

    nel corso viene specificato che per poter indirizzare correttamente il sito nel file .htaccess devo mettere solo la personalizzazione
    RewriteBase /messanatale/
    per il sito di frontend
    RewriteBase /messeapi/
    per il sito di baackend (parte pubblica)


    effettuo la cancllazione della cache del browser con
    opzioni/privacy e sicurezza/elimina dati in cucki e dati del sito.

    mi chiedi
    sei riuscito a cancellare la cache laravel?
    se coincide con quella del broser si, altrimenti non so come fare.

  16. #16
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    No laravel è hardcoded non è sufficiente cambiare i percorsi ma devi usare il default (i loro standard) visto che non puoi creare la web root nel virtual host in /path/project/public/ (altervista usa questa web root /membri/nick_altervista/ per la configurazione del singolo dominio) ti devi accontentare di http://example.domain.com/project/public/ dopo magari riscrivi con .htaccess /project/public/ alla root del web server ad esempio questo : http://example.domain.com/ e ovviamente copia il file index.php nella root del web server (prima di /project/public/) sostituendo i percorsi in modo da recuperare correttamente i file.
    No non coincide con il browser, cerca cancella cache laravel.
    Ultima modifica di darbula : 30-12-2020 alle ore 17.57.54

  17. #17
    sanfrarovigo non è connesso Neofita
    Data registrazione
    10-12-2020
    Messaggi
    16

    Predefinito

    mzanella
    scusami ma ho fatto dei copia incolla incoerenti, ma considera valida un'affermazione fondamentale.
    morenowork.altervista.org e sanfrarovigo.altervista.org sono due siti distinti nei quali gestisco versioni diverse dell'applicazione.

    quindi i ragiobamenti sulle personalizzazioni vanno fatte pensado ragionando con uno solo dei due. trovata la soluzione la potrò ribaltare anche sul secondo.


    il problema probabilmente sta qui
    APIURL: 'http://sanfrarovigo.altervista.org/messanatale'
    questa originariamente era impostata a http://localhost:8000 perchè era nella macchina di sviluppo nel progetto di backend
    ora deve puntare alla cartella al sito di backend e mi par di non dire stupidaggini alla parte pubblica e quindi alla cartella messapi.
    Non so se ho detto correttamente, ma non so come farlo.


    Mi sembra di aver rispettato quanto spiegato, ma sicuramente ho preso fischi per fiaschi e non so più orientarmi.
    Tu riesci a trovare i fiaschi ?

    grazie
    Moreno

    se ne esco mi prendo davvero un bel fiasco !!!!

  18. #18
    sanfrarovigo non è connesso Neofita
    Data registrazione
    10-12-2020
    Messaggi
    16

    Predefinito

    scusa durbala

    sul come effettuare la pulizia di laravel ho trovato questo
    php artisan

    Se si desidera cancellare la cache di visualizzazione, basta usare:

    php artisan view:clear

    Se non sai come usare un comando artigianale specifico, aggiungi "aiuto" (vedi sotto)

    php artisan help view:clear
    ma riguarda comandi che posso fare dal terminal in visualcode.
    Ma per pulire sul sito in produzione su altervista non trovo nulla.
    Non saprei come fare

  19. #19
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    questa originariamente era impostata a http://localhost:8000 perchè era nella macchina di sviluppo nel progetto di backend
    ora deve puntare alla cartella al sito di backend e mi par di non dire stupidaggini alla parte pubblica e quindi alla cartella messapi.
    Non so se ho detto correttamente, ma non so come farlo.
    Credo anche io che debba puntare a messeapi.
    Non puoi semplicemente modificare il file in questione [ed eventualmente rigenerare qualcosa], in modo analogo a come hai cambiato da localhost:8000 all'URL attuale?

    I suggerimenti che do più spesso:


  20. #20
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Il problema è credo che il codice sia creato automaticamente io ho trovato il codice php per pulire la cache ma non capisco dove metterlo. (A volte laravel usa i vecchi percorsi in cache per questo è indispensabile cancellare la cache).
    Se mi copi il file originale /project/public/.htaccess ti faccio le modifiche necessarie, mi occorre anche il file originale /project/public/index.php poi ti indico cos'altro fare.
    Ultima modifica di darbula : 30-12-2020 alle ore 18.37.31

  21. #21
    sanfrarovigo non è connesso Neofita
    Data registrazione
    10-12-2020
    Messaggi
    16

    Predefinito

    ho corretto url su environment per puntare al backend
    quindi l'url corretta dovrebbe essere
    APIURL: 'http://sanfrarovigo.altervista.org/messeapi'
    dove messeapi è la parte pubblica del sito di backend

    ho ricreato la build e copiato i file della cartella dist dentro alla cartella messanatale che è il frontend.
    Dovrebbe andare

    da invece errore 500 e riporto il codice

    APIURL: 'http://sanfrarovigo.altervista.org/messeapi'
    in dettaglio
    GET

    scheme
    http
    host
    sanfrarovigo.altervista.org
    filename
    /messeapi/messa
    Indirizzo
    168.119.39.86:80
    Stato500
    Internal Server Error
    VersioneHTTP/1.1
    Trasferito758 B (dim. 554 B)
    Referrer Policystrict-origin-when-cross-origin

    ora secondo logica dovrebbe funzionare.
    da frontend ho chiamato la parte pubblica di backend passandogli le rotte e quindi il controller (messaController) che dovrebbe utilizzando il metodo index leggere sul database e ritornare i dati da visualizzare.

    stiamo migliorando, ma non so come correggere ora.

    Ti sembra vada bene ?

  22. #22
    sanfrarovigo non è connesso Neofita
    Data registrazione
    10-12-2020
    Messaggi
    16

    Predefinito

    ciao durbala

    ecco .htaccess della root principale

    ## ------------ Hidran
    <IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
    Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php[L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    </IfModule>

    # # av:php5-engine
    AddHandler av-php73 .php
    e ecco il file index.php della root principale

    <!doctype html>
    <html lang="en">
    <head>
    <meta charset="utf-8">
    <title>Messa Natale Beppe</title>
    <base href="http://sanfrarovigo.altervista.org/messanatale/">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="icon" type="image/x-icon" href="favicon.ico">
    <link rel="stylesheet" href="styles.32d843a71366612d22b9.css"></head>
    <body>
    <app-root></app-root>

    <!-- per gestire la popup di cancellazione 2020/11/14 -->

    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
    <!-- per gestire la popup di cancellazione -- fine -- 2020/11/14 -->
    <script src="runtime.359d5ee4682f20e936e9.js" defer></script><script src="polyfills.d1aec6c43f3be0777851.js" defer></script><script src="scripts.8b48871b3f91560ad879.js" defer></script><script src="main.d33ee3c8d3798299c435.js" defer></script></body>
    </html>

  23. #23
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    È decisamente un passo avanti, direi che ora l'URL punta dalla parte giusta, ma c'è qualcosa che non va nel codice.
    Guardando dalla console, la risposta 500 della chiamata porta con se un messaggio d'errore:
    Codice:
    "<br />
    <b>Fatal error</b>:  Namespace declaration statement has to be the very first statement or after any declare call in the script in <b>/membri/sanfrarovigo/laravel/app/Http/Controllers/MessaController.php</b> on line <b>3</b><br />
    {
        "message": "Namespace declaration statement has to be the very first statement or after any declare call in the script",
        "exception": "Symfony\\Component\\ErrorHandler\\Error\\FatalError",
        "file": "/membri/sanfrarovigo/laravel/app/Http/Controllers/MessaController.php",
        "line": 3,
        "trace": []
    }"
    Questo indica che, nel codice di MessaController.php, hai inserito del codice prima della dichiarazione del namespace. Quest'ultimo deve invece comparire prima del codice, anche prima degli include/require.
    Se hai dubbi su questo, mostra pure le prime righe del file in questione

    I suggerimenti che do più spesso:


  24. #24
    sanfrarovigo non è connesso Neofita
    Data registrazione
    10-12-2020
    Messaggi
    16

    Predefinito

    ciao mzanella

    ecco il codice di messaController
    <?php

    namespace App\Http\Controllers;

    use App\Messa;
    use Illuminate\Http\Request;
    use App\Http\Controllers\Controller;

    class MessaController extends Controller
    {
    /**
    * Display a listing of the resource.
    *
    * @return \Illuminate\Http\Response
    */
    public function index()
    {
    // return Messa::all();

    $res = [
    'data' =>[],
    'number' => 0,
    'message' => ''
    ];
    try{
    $res['data'] = Messa::all(); // $res['data'] = Fedele::where('idmessa',$idmessa->input('idmessa'))->get();
    $res['number'] = Messa::All()->count(); // Fedele::where('idmessa',$idmessa->input('idmessa'))->count();
    $res['message'] = 'trovato Messe';
    } catch (\Exception $e){
    $res['message'] = $e->getMessage();
    }
    return $res;






    /*
    return response()->Json(
    ['data'=> Messa::orderByDesc('demessa')->get(),
    'Success' => true
    ]
    ); */
    }

    /**
    * Show the form for creating a new resource.
    *
    * @return \Illuminate\Http\Response
    */
    public function create()
    {
    //
    }

    /**
    * Store a newly created resource in storage.
    *
    * @param \Illuminate\Http\Request $request
    * @return \Illuminate\Http\Response
    */
    public function store(Request $request)
    {
    $data = [];
    $message = '';
    try {
    $User = new Messa();
    $success = true;
    $postData = $request->except('id','_method');
    // $postData['password'] = Hash::make($postData['password'] ?? 'password'); // nel caso ci siano campi da cripare
    $User->fill($postData);
    $success = $User->save();
    $data = $User;
    $message = 'Inserimento eseguito con successo';
    } catch (\Exception $e) {
    $success = false;
    $message = $e->getMessage();
    }
    return compact('data','message','success');
    }

    /**
    * Display the specified resource.
    *
    * @param int $id
    * @return \Illuminate\Http\Response
    */
    public function show($id)
    {


    try {
    return
    response()->json(['data'=>Messa::FindOrFail($id)]) ;
    } catch (\Exception $e) {
    return response(
    [
    'data'=>[],
    'Messaggio' => 'Messa Inesistente !! ',
    'a' => 'Selezionare una Messa esistente ',
    'message '=> $e->getMessage()
    ]
    );
    }

    }
    /**
    * Show the form for editing the specified resource.
    *
    * @param int $id
    * @return \Illuminate\Http\Response
    */
    public function edit($id)
    {
    //
    }

    /**
    * Update the specified resource in storage.
    *
    * @param \Illuminate\Http\Request $request
    * @param int $id
    * @return \Illuminate\Http\Response
    */
    public function update(Request $request, $id)
    {
    // eseguo aggiornamento dell'utente

    // inizializzo i parametri per l'aggiornamento
    $data = [];
    $message = '';
    try {
    $User = Messa::findOrFail($id);
    $success = true;
    // salva sulla variabile data i dati dalla richiesta (request)
    // ad eccezzione del campo id e del campo di comodo _method

    $postData = $request->except('id','_method');
    // imposto la crittografia alla password (questo temporraneo)
    // $postData['password'] = Hash::make($postData['password'] ?? 'password'); // bcrypt('test'); --> non abbiamo password
    // eseguo l'aggiornamento
    $success = $User->update($postData);
    $data = $User;
    $message = 'Aggiornamento eseguito con successo';

    } catch (\Exception $e) {
    $success = false;
    $message = $e->getMessage();
    }
    return compact('data','message','success');

    }

    /**
    * Remove the specified resource from storage.
    *
    * @param int $id
    * @return \Illuminate\Http\Response
    */
    public function destroy($id)
    {
    $data = [];
    $message = 'Cancellazione eseguita con successo !!';
    $success = true;
    try {
    $User = Messa::findOrFail($id);
    $data = $User;
    $success = $User->delete();
    } catch (\Exception $e) {
    $success = false;
    $message = 'Messa non trovata - Cancellazione non possibile';
    }
    return compact('data','message','success');

    }
    }

  25. #25
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Puoi verificare dal pannello di controllo altervista da gestione file se prima di <?php te lo segnala rosso? (BOM unicode).
    Ultima modifica di darbula : 31-12-2020 alle ore 03.48.11

  26. #26
    sanfrarovigo non è connesso Neofita
    Data registrazione
    10-12-2020
    Messaggi
    16

    Predefinito

    Ciao Derbala

    anche oggi in prima linea.
    Dura la scorza del programmatore.

    mi hai suggerito di
    Puoi verificare dal pannello di controllo altervista da gestione file se prima di <?php te lo segnala rosso? (BOM unicode).
    in messaController c'era una doppia barra davanti a <?php

    //<?php

    namespace App\Http\Controllers;

    use App\Messa;
    use Illuminate\Http\Request;
    use App\Http\Controllers\Controller;

    class MessaController extends Controller
    {
    ho tolto il commento e richiamando il backend con
    sanfrarovigo.altervista.org/messeapi
    arrivo alla home page di Laravel, quindi si riesce a contattare il backend

    con
    sanfrarovigo.altervista.org/messeapi/messa
    ottengo i dati delle messe in formato json

    data
    0
    id 1
    demessa "messa vigilia di Natale - sabato 24/12 ore 18"
    postimax 128
    postipren 128
    created_at null
    updated_at null
    1
    id 2
    demessa "messa di Natale - domenica 25/12 ore 10"
    postimax 160
    postipren 3
    created_at null
    updated_at "2020-12-16T22:18:54.000000Z"
    2
    id 4
    demessa "terza nessa del natale"
    postimax 152
    postipren 0
    created_at "2020-12-16T22:31:32.000000Z"
    updated_at "2020-12-16T22:31:32.000000Z"
    number 3
    message "trovato Messe"

    quindi lato backend il problema sembra superato.


    se ora provo a gestire le chiamate da frontend con
    va in 500 Internal Server Error
    Internal Server Error

    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Please contact the server administrator, info@altervista.org and inform them of the time the error occurred, and anything you might have done that may have caused the error.

    More information about this error may be available in the server error log.

    Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
    andando in analisi elemento

    GEThttp://sanfrarovigo.altervista.org/messenatale
    [HTTP/1.1 500 Internal Server Error 125ms]


    GET

    scheme
    http
    host
    sanfrarovigo.altervista.org
    filename
    /messenatale
    Indirizzo
    168.119.39.86:80
    Stato500
    Internal Server Error
    VersioneHTTP/1.1
    Trasferito846 B (dim. 670 B)


    metto link per screenshot nella speranza si possa vedere

    pensi riusciamo a venkirne fuori ?
    ciao

    Moreno

  27. #27
    sanfrarovigo non è connesso Neofita
    Data registrazione
    10-12-2020
    Messaggi
    16

    Predefinito

    Ciao Derbala

    rientrato il problema.
    sbagliavo url
    scrivevo
    sanfrarovigo.altervista.org/messenatale
    mentre url corretto era
    sanfrarovigo.altervista.org/messanatale
    funziona tutto.
    sei stato grande e paziente nel seguirmi.
    Ora che si è risolto si scopre che era davvero banale.

    Grazie ancora e tanti auguri di buon nuovo 2021

    Facciamoci vaccinare e torniamo a riveder le stelle.

    ciao

    Moreno

  28. #28
    sanfrarovigo non è connesso Neofita
    Data registrazione
    10-12-2020
    Messaggi
    16

    Predefinito

    posso disturbarti per un'ultima volta ?

    come ben ricordi ho anche il sito morenowork.altervista.org dove ho una versione dell'applicazione in un diverso stadio di sviluppo.

    ho ricontrollato e non va a contattare backend
    mi da questo errore

    include(/membri/morenowork/laravel/vendor/composer/../laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php): failed to open stream: No such file or directory

    ho provato anche a disinstallare e rifare upload della parte backend, ma continua a dare errore.

    pensavo fosse il problema della // su messaController, ma è a posto.
    come posso capire dove staa il problema ?

    ciao

    Moreno

  29. #29
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Devi dapprima capire la struttura di laravel.
    Tipicamente il backend sta in http://example.domain.com/project/public/ in realtà se si deve essere pignoli è questo http://example.domain.com/project/public/index.php (dicasi root laravel)
    Adesso mi chiedo, hai eliminato la cartella public?
    Comunque per il tuo problema specifico sembra ti manca il file, ecco come devi interpretare questo percorso cerca in /membri/morenowork/laravel/vendor/composer dentro la cartella vendor (../ prima di composer) questo percorso /../laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php
    /membri/morenowork/ è la root del tuo dominio (la cartella principale da gestione file o ftp).
    Quel file si trova due livelli prima di composer mentre tu (inteso laravel) lo cerchi solamente un livello prima.
    Ultima modifica di darbula : 31-12-2020 alle ore 14.23.12

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •