Visualizzazione risultati 1 fino 15 di 15
Like Tree6Likes
  • 1 Post By alemoppo
  • 1 Post By alemoppo
  • 1 Post By GraphOGLRisorse
  • 1 Post By alemoppo
  • 1 Post By darbula
  • 1 Post By darbula

Discussione: Laravel 7.x doesn't work on altervista

  1. #1
    biotek17 non è connesso Neofita
    Data registrazione
    20-11-2019
    Messaggi
    4

    Predefinito Laravel 7.x doesn't work on altervista

    Salve ho pubblicato questo topic anche su forum.en.altervista.org al seguente link. Ho problemi relativi con il funzionamento di laravel 7.x una volta hostato su una subdirectory della root directory via ftp. L'applicazione dovrebbe rendersi visibile con direttamente da questo indirizzo http://biotek17.altervista.org/imapp/ invece si rende visibile solo la home page a quest'indirizzo http://biotek17.altervista.org/imapp/public/ il mio file .env e questo:

    Codice HTML:
    APP_NAME=imAPP
    APP_ENV=local
    APP_KEY= //i have already app_key but here i hide it for privacy.
    APP_DEBUG=true
    APP_URL=http://biotek17.altervista.org/imapp/
    
    LOG_CHANNEL=stack
    
    DB_CONNECTION=mysql
    DB_HOST=localhost
    DB_PORT=3306
    DB_DATABASE=my_biotek17
    DB_USERNAME=biotek17
    DB_PASSWORD=
    Vorrei sapere il procedimento piu opportuno per fare in modo che tutto funzioni come in locale, grazie anticipatamente spero possiate aiutarmi.

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,132

    Predefinito

    Per come è pensato quell'applicativo, la parte "accessibile da esterno" è appunto in /public. L'unica cosa che mi viene in mente come soluzione è utilizzare .htaccess per mostrare in URL /imapp/ ma con la vera "URL" che punta a "/public".

    Non so se Laravel permette anche di modificare l'impostazione della directory di base.

    Ciao!
    biotek017 likes this.

  3. #3
    biotek017 non è connesso Utente AlterBlog
    Data registrazione
    20-11-2019
    Messaggi
    3

    Predefinito

    Ciao alemoppo grazie per aver risposto al mio topic, io in realtà avevo già provato a fare una cosa del genere con un file .htaccess ma non ho avuto risultati forse ho sbagliato qualcosa potresti farmi una esempio pratico? .htaccess andrebbe in pratica nella directory /imapp/ facendo puntare tutte le richieste su quella directory alla directory public giusto?

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,132

    Predefinito

    Una cosa del genere dovrebbe funzionare, credo:

    Codice:
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} !^public
    RewriteRule ^(.*)$ public/$1 [L]
    Fammi sapere.

    Ciao!
    biotek017 likes this.

  5. #5
    biotek017 non è connesso Utente AlterBlog
    Data registrazione
    20-11-2019
    Messaggi
    3

    Predefinito

    http://biotek17.altervista.org/imapp/ Guarda mi da un errore del genere e non capisco a cosa si riferisca, il mio .htaccess è all'interno della cartella imapp quindi ho sostituito RewriteBase / con RewriteBase /imapp/..

  6. #6
    biotek017 non è connesso Utente AlterBlog
    Data registrazione
    20-11-2019
    Messaggi
    3

    Predefinito

    Rettifico, adesso sembrerebbe funzionare ma quando vado su /imapp/ laravel mi ritorna 404 non capisco..

  7. #7
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    3,994

    Predefinito

    Salve,
    al momento il sito viene caricato solo con il seguente indirizzo: http://biotek17.altervista.org/imapp/public/.

    Quando esegue delle modifiche, al fine di evitare falsi risultati, si ricordi di aggiornare la cache tra una prova e l'altra. Svuotare la cache del browser

    Cordiali saluti.
    biotek17 likes this.

  8. #8
    biotek17 non è connesso Neofita
    Data registrazione
    20-11-2019
    Messaggi
    4

    Predefinito

    Si visualziza solo la home page, tutto il resto dell'applicazione non funziona.

  9. #9
    biotek17 non è connesso Neofita
    Data registrazione
    20-11-2019
    Messaggi
    4

    Predefinito

    Se vedete di andare ttp://biotek17.altervista.org/imapp/index.php/contacts il funge ma non riesce a reperire le immagini ne lo stile, io non capisco perche succede questo, se in locale funziona tutto a meraviglia.

  10. #10
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,132

    Predefinito

    Noto che gli elementi che producono 404 hanno nell'url "index.php" (esempio questo). Eliminando quella parte, l'url sembra funzionare.

    Ciao!
    biotek17 likes this.

  11. #11
    biotek17 non è connesso Neofita
    Data registrazione
    20-11-2019
    Messaggi
    4

    Predefinito

    Il problema credo sia dovuto a che non ho impostato nessun virtual host.

  12. #12
    laravista non è connesso Utente AlterBlog
    Data registrazione
    07-12-2019
    Messaggi
    38

    Predefinito

    Questo progetto usa una vecchia versione di Laravel ma probabilmente la soluzione funziona anche con l'ultima:


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

    Predefinito

    @laravista puoi controllare la variabile attraverso prefisso REDIRECT_ https://httpd.apache.org/docs/2.4/re...tml#setenvvars
    Per rimuovere /index.php/ (PATHINFO) e usare la riscrittura (mod_rewrite)
    Codice:
    Options +FollowSymLinks -Indexes
    RewriteEngine On
    
    # # this root / this path root /mypath/
    RewriteBase /
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
    Dovrai aggiungere RewriteBase /mypath/ con il nome della directory dove risiede ogni file .htaccess (per root imapp RewriteBase /imapp/ per root imapp/public RewriteBase /imapp/public/) per mod_rewrite questa è la root / mentre per i file che risiedono in altervista è /membri/nickname (eccetto file temporanei che potrebbero avere percorsi impostati diversamente, ad esempio la cartella temporanea per l'upload).
    File env per nickname altervista https://github.com/vlucas/phpdotenv
    Codice:
    BASE_DIR="/membri/nickname/project-root" # or /membri2/nickname/project-root
    CACHE_DIR="${BASE_DIR}/cache"
    TMP_DIR="/membri/.dummy/temp"
    APP_ENV=production
    APP_DIR="/membri/nickname/project-root"
    APP_URL="http://nickname.altervista.org/project-root/public/index.php"
    In /imapp/config/app.php cambia APP_ENV e APP_URL https://github.com/laravel/laravel/b...ig/app.php#L55
    Ho usato il codice WordPress per recuperare la cartella temporanea altrimenti userà /tmp
    Codice:
    <?php
    var_dump(get_temp_dir());
    function untrailingslashit( $string ) {
        return rtrim( $string, '/\\' );
    }
    function trailingslashit( $string ) {
        return untrailingslashit( $string );
    }
    function win_is_writable( $path ) {
        if ( '/' === substr($path, strlen( $path ) - 1 ) ) {
            // If it looks like a directory, check a random file within the directory.
            return win_is_writable( $path . uniqid( mt_rand() ) . '.tmp' );
        } elseif ( is_dir( $path ) ) {
            // If it's a directory (and not a file), check a random file within the directory.
            return win_is_writable( $path . '/' . uniqid( mt_rand() ) . '.tmp' );
        }
     
        // Check tmp file for read/write capabilities.
        $should_delete_tmp_file = ! file_exists( $path );
     
        $f = @fopen( $path, 'a' );
        if ( false === $f ) {
            return false;
        }
        fclose( $f );
     
        if ( $should_delete_tmp_file ) {
            unlink( $path );
        }
     
        return true;
    }
    function wp_is_writable( $path ) {
        if ( 'WIN' === strtoupper( substr( PHP_OS, 0, 3 ) ) ) {
            return win_is_writable( $path );
        } else {
            return @is_writable( $path );
        }
    }
    function get_temp_dir() {
        static $temp = '';
        if ( defined( 'WP_TEMP_DIR' ) ) {
            return trailingslashit( WP_TEMP_DIR );
        }
     
        if ( $temp ) {
            return trailingslashit( $temp );
        }
     
        if ( function_exists( 'sys_get_temp_dir' ) ) {
            $temp = sys_get_temp_dir();
            if ( @is_dir( $temp ) && wp_is_writable( $temp ) ) {
                return trailingslashit( $temp );
            }
        }
     
        $temp = ini_get( 'upload_tmp_dir' );
        if ( @is_dir( $temp ) && wp_is_writable( $temp ) ) {
            return trailingslashit( $temp );
        }
     
        $temp = WP_CONTENT_DIR . '/';
        if ( is_dir( $temp ) && wp_is_writable( $temp ) ) {
            return $temp;
        }
     
        return '/tmp';
    }
    https://laravel.com/docs/7.x
    Per account altersito INNODB va attivato per la prima volta "unicamente" dal pannello di controllo altervista.
    Ultima modifica di darbula : 24-06-2020 alle ore 07.07.50
    laravista likes this.

  14. #14
    laravista non è connesso Utente AlterBlog
    Data registrazione
    07-12-2019
    Messaggi
    38

    Predefinito

    Però per poter usare Laravel7 servirebbe una versione più recente di PHP, adesso abbiamo:



    Adesso provo a cambiare versione con:

    Codice:
    AddHandler av-php73 .php
    Sembra funzionare senza dover fixare la funzione env come fatto a suo tempo per la L56



    Ho dovuto configurare i due file .htaccess uno sotto la cartella /L7x

    Codice:
    <IfModule mod_rewrite.c>
        RewriteEngine On
    
        RewriteCond %{HTTP:X-Forwarded-Proto} !=https
        RewriteCond %{HTTPS} =off
        RewriteRule ^ https://laravista.altervista.org%{REQUEST_URI} [L,R=301]
    
        RewriteBase /L7x
        RewriteRule ^(.*)$ public/$1 [L]
    </IfModule>
    e l'altro sotto la cartella /L7x/public

    Codice:
    <IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options -MultiViews -Indexes
        </IfModule>
    
        RewriteEngine On
        RewriteBase /L7x
    
        # 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]
    
        # Handle Front Controller...
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ public/index.php/$1 [L]
    </IfModule>
    ed utilizzare il prefisso nel /L7x/routes/web.php

    Codice PHP:
    Route::get('/L7x/test', function () {
    return
    'TEST';
    });
    Ultima modifica di laravista : 27-06-2020 alle ore 00.55.00

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

    Predefinito

    Il manuale dotenv afferma che le variabili dovrebbero avere precedenza su dove si usa getenv/putenv anzi il loro uso è scoraggiato..
    Poi ovviamente lo fai funzionare come meglio credi.
    Qui su altervista l'unico database si chiama my_laravista che anche il predefinito.
    Ti manca RewriteBase /L7x/ per la cartella/L7x e RewriteBase /L7x/public/ per il percorso/L7x/public va sempre posto subito dopo RewriteEngine On.
    Ultima modifica di darbula : 27-06-2020 alle ore 00.56.57
    laravista likes this.

Regole di scrittura

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