1. Forum używa plików Cookies. Dowiedz się więcej o celu ich używania i możliwości zmiany ustawień Cookies w przeglądarce. Czytaj więcej...

ROZWIĄZANE Instalacja Laravel

Dyskusja w 'Hosting Business Cloud' rozpoczęta przez użytkownika maciek12345, 5 Czerwiec 2017.

  1. maciek12345

    maciek12345 Nowy użytkownik

    Wiadomości:
    1
    Docenione treści:
    0
    Witam,
    Zaczynam przygode z php (nie jestem poczatkujacym developerem, mam kilkuletnie doswiadczenie w mobile - iOS i Android), a teraz chcialbym wkoncu nauczyc sie robic proste backendy dla moich apek). Postanowilem zainstalowac na hostingu home.pl Laravel.
    Niestety juz na poczatku napotkalem trudnosci z instalacja. Polaczylem sie przez ssl i mam problem, aby poprawnie zainstalowac composer'a. Wtedy wpadlem na pomysl zeby polecic komende z sudo i jak sie moznabylo tego spodziewac niestety sie nie udalo. Zadzwonilem wiec na infolinie dla klientow premium i mowie jaki mam problem. Pierwsze co, to uslyszalem: " Co to jest sudo?".
    Rece mi opadly i gdyby nie to, ze rozmawialem przez sluchawki, to iphone zaliczylbym glebe.
    Odpowiedzialem grzeczenie, ze w takim razie nie mamy o czym rozmawiac i chce kogos, kto bedzie wiedzial co to "sudo". Niestety konsultatnt bardzo sie upieral, ze chce mi pomoc, tylko musze mu wytlumaczyc co to jest. Wytlumaczylem, a to on, ze musi sie skonsultowac. Po kilku powrotach do mnie i kolejnych konsultacjach okazalo sie, ze nie ma dizycznej mozliwosci aby zainstalowac composera a takze zadnej, powtarza zadnej opcji aby uruchomic Laravel'a na hostingu home.pl.

    Zmartwilo mnie to troche, bo posiadam sporo uslug na home.pl i nie chce szukac nowego dostawcy. Ale postanowilem poszukac na interencie jakis wskazowek. Znalazlem ogolnie informacje, ze nie poleca sie home.pl itp. Ale zanalzlem tez conajmniej 2 proby instalacji zakonczone powodzeniem. Jednak problemy jakie napotkali autorzy watkow byly zupelnie inne do moich. Ale zauwazylem, tez, ze administratorzy tego forum sa chetni do pomocy :)

    To co udalo mi sie zrobic, to zainstalowac Laravel'a lokalnie i przez ftp wrzucic wszystko na serwer. Po szybkim ustawieniu przekierwoania na katalog /public wszystko nawet zadzialalo. Niestety zaczalem kombinowac z przekierowaniem i przestalo i do tej pory nie dziala jak powinno.

    Zatem prosze o pomoc jak krok po kroku powinienm zainstalowac Laravel 5 na hostingu home.pl.

    Z gory dziekuje za pomoc! :)
     
  2. TheL

    TheL @Lider VIP Moderator forum

    Wiadomości:
    2 221
    Docenione treści:
    481
    niestety instalacja lokalna i wrzutka przez ftp jest jedynym rozwiązaniem działającym.
    trudno powiedzieć co zmieniałeś z przekierowaniami więc trudno na szybko pomóc :D
    napisz dokładnie co robiłeś.
     
  3. Mariusz

    Mariusz BOK home.pl home.pl Administrator forum

    Wiadomości:
    2 933
    Docenione treści:
    295
    @maciek12345 czy udało Ci się rozwiązać sprawę z instalacją frameworka Laravel na naszym hostingu? Spróbuję uzyskać więcej informacji na ten temat u naszych administratorów.
     
  4. Mariusz

    Mariusz BOK home.pl home.pl Administrator forum

    Wiadomości:
    2 933
    Docenione treści:
    295
    W pierwszej kolejności należałoby zainstalować Composera (https://getcomposer.org/download/). Następnie można przejść do instalacji frameworka Laravel.

    1) W public_html tworzymy katalog - np. katalog o nazwie "bin" [mkdir bin]
    2) W tymże katalogu tworzymy dowiązanie symboliczne stosownym poleceniem [ln -s /usr/local/bin/php7-cli ~/public_html/bin/php]
    Po pełnym zlistowaniu katalogu będzie to wyglądało tak:
    Kod:
    [serwerXXXXXX@serwerXXXXXX 10:31 ~/public_html/bin]$ ls -la
    total 8
    drwxr-xr-x 2 serwerXXXX serwerXXXXXX 4096 Jun 24 10:31 .
    drwx-x-x 21 serwerXXXX home_pl 4096 Jun 24 09:10 ..
    lrwxrwxrwx 1 serwerXXXXX serwerXXXXX 24 Jun 24 09:00 php -> /usr/local/bin/php7-cli
    
    3) Usuwamy alias [unalias php]

    4) Dodajemy ścieżkę do binarki, korzystając ze zmiennej globalnej PATH
    Kod:
    [PATH="$HOME/public_html/bin:$PATH"]
    5) Zmienna globalna będzie wówczas wyglądać tak:
    Kod:
    [serwerXXXXXX@serwerXXXXXX 10:35 ~/public_html/bin]$ echo $PATH
    /home/serwerXXXXX/public_html/bin:/usr/local/pgsql9/bin:/usr/local/pssql55/bin:/usr/bin:/usr/local/bin:/usr/local/git/bin
    6) Druga zmienna globalna pozostaje bez zmian:
    Kod:
    [serwerXXXXXX@serwerXXXXXX 10:36 ~/public_html/bin]$ echo $HOME
    /home/serwerXXXXX
    Usunięcie aliasu oraz "korekta" zmiennej PATH po wyjściu z konsoli i ponownym wejściu zostanie anulowana (co sesja trzeba to powtarzać). Rozwiązaniem jest utworzenie w pliku .bash_profile i tam wpisanie 3 i 4 kroku.

    Proszę o zaznajomienie się z powyższą instrukcją i weryfikacje czy pomoże podczas instalacji wskazanego frameworka Laravel.
     
  5. Grzesiek

    Grzesiek BOK home.pl home.pl Administrator forum

    Wiadomości:
    3 135
    Docenione treści:
    298
    @maciek12345 czy w chwili obecnej możemy pomóc Ci w czymś jeszcze?
     
  6. jaaaaaaaan

    jaaaaaaaan Początkujący

    Wiadomości:
    7
    Docenione treści:
    0
    Mam problem z Laravelem.

    Aplikacja Laravela jest w katalogu ~/app, zawartość folderu ~/app/public przekopiowałem do ~/public_html - chodzi głównie o zawartość index.php:
    Kod:
    require __DIR__.'/../vendor/autoload.php';
    $app = require_once __DIR__.'/../bootstrap/app.php';
    
    w ~/public_html/index.php zmieniłem path'e na
    Kod:
    require __DIR__.'/../app/vendor/autoload.php';
    $app = require_once __DIR__.'/../app/bootstrap/app.php';
    
    Są to kroki które nalezy wykonać aby Laravel działał na współdzielonym hostingu (link do tutoriala) - sprawdzone, działa np. na linuxpl.com.

    Błąd jaki otrzymuje: po wejściu na główną stronę:

    Kod:
    Warning: require(//../app/vendor/autoload.php): failed to open stream: No such file or directory in /index.php on line 24
    Warning: require(//../app/vendor/autoload.php): failed to open stream: No such file or directory in /index.php on line 24
    Fatal error: require(): Failed opening required '//../app/vendor/autoload.php' (include_path='.:/:/usr/local/php71/lib/pear') in /index.php on line 24
    
    Próbowałem załączać inne pliki z katalogu ~/app i pliki były znajdowane. Oczywiście autoload.php znajduje się w ~/app/vendor/autoload.php

    Wykonałem kroki z posta Mariusza, niestety nie pomogło. .bash_profile utworzyłem tu: ~/.bash_profile

    Proszę o pomoc :)
     
  7. casar

    casar Czempion

    Wiadomości:
    306
    Docenione treści:
    98
    Jak dla mnie warto spróbować bez tego '__DIR__' . w require.

    Albo nawet tak:

    Kod:
    require '/app/vendor/autoload.php';
    $app = require_once '/app/bootstrap/app.php';
    Jeśli /app jest w /public_html
     
  8. jaaaaaaaan

    jaaaaaaaan Początkujący

    Wiadomości:
    7
    Docenione treści:
    0

    Zrobiłem tak, i po wejsciu na www.mojastrona.pl mam wylistowany katalog, natomiast www.mojastrona.pl/public (tutaj jest index.php) mam Too many redirects

    .htaccess
    w ~/public_html:
    Kod:
    <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>
    
    .htacceess w ~/public_html/public
    Kod:
    <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>
    
     
  9. casar

    casar Czempion

    Wiadomości:
    306
    Docenione treści:
    98
    To jaką masz strukturę w /public_html?
    Kod:
    /app
    /public
    ?
     
  10. jaaaaaaaan

    jaaaaaaaan Początkujący

    Wiadomości:
    7
    Docenione treści:
    0
    Wrzuciłem zawartość app do public_html czyli w public_html mam pliki laravela, m.in foldery bootstrap, vendor i public (zawierajacy index.php)
     
  11. casar

    casar Czempion

    Wiadomości:
    306
    Docenione treści:
    98
    W takim razie wydaje mi się, że domena powinna kierować na /public a w index.php powinno być:
    Kod:
    require '../vendor/autoload.php';
    $app = require_once '../bootstrap/app.php';
    Bazuję tylko na podstawie mojego doświadczenia z PHP. Nie korzystałem nigdy z Laravela.
     
  12. jaaaaaaaan

    jaaaaaaaan Początkujący

    Wiadomości:
    7
    Docenione treści:
    0
    Ten sam problem z too many redirects
     
  13. jaaaaaaaan

    jaaaaaaaan Początkujący

    Wiadomości:
    7
    Docenione treści:
    0
    Mały update:

    w pliku public_html/index.php

    działa
    Kod:
    require __DIR__.'/lol.php';
    require __DIR__.'/../lol.php';
    
    natomaist nie działa
    Kod:
    require __DIR__.'/../lol/lol.php';
    
    wywala wtedy
    Kod:
    Warning: require(//../lol/lol.php): failed to open stream: No such file or directory in /index.php on line 24
    Warning: require(//../lol/lol.php): failed to open stream: No such file or directory in /index.php on line 24
    Fatal error: require(): Failed opening required '//../lol/lol.php' (include_path='.:/:/usr/local/php71/lib/pear') in /index.php on line 24
    
    czyli moge zarequirowac plik który jest w tym samym katalogu lub niżej, ale nie moge się cofnąć i wejść katalog wyżej
     
  14. casar

    casar Czempion

    Wiadomości:
    306
    Docenione treści:
    98
    To teraz pytanie, jak to wywołujesz? Po adresie domeny? I jak domena jest przekierowana na katalog?
     
  15. jaaaaaaaan

    jaaaaaaaan Początkujący

    Wiadomości:
    7
    Docenione treści:
    0
    Serwer jest bez podpiętej domeny. Wywołuje pod adresem mojausluga.home.pl
     
  16. casar

    casar Czempion

    Wiadomości:
    306
    Docenione treści:
    98
    Kod:
    require __DIR__.'/../lol/lol.php';
    ^ To na pewno nie zadziała dla pliku umieszczonego w /public_html, bo powyżej nie możesz się odwołać.

    Sprawdziłem u siebie i poprawnie działa to polecenie. Z katalogu /test, który mam w /public_html wywołuję:
    Kod:
    require __DIR__.'/../ses.php';
    i pik ses.php znajduje się w /public_html i on się wykonuje.
     
  17. jaaaaaaaan

    jaaaaaaaan Początkujący

    Wiadomości:
    7
    Docenione treści:
    0
    Dlaczego nie moge sie odwoływać powyżej? Na serwerze linuxpl.com to robiłem
     
  18. casar

    casar Czempion

    Wiadomości:
    306
    Docenione treści:
    98
    /public_html to jest najwyższy folder, do jakiego skrypt może się odwołać. Powyżej nie ma dostępu.
     
    Mariusz lubi to.

Poleć forum znajomym