• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Composer na serwerze?

Object Storage Arubacloud
0 głosów
852 wizyt
pytanie zadane 24 lutego 2020 w PHP przez matizuu Obywatel (1,100 p.)
Mam lokalny projekt na laravelu i lokalnie używam composera zaimportowałem sobie moduł z gita 'composer reqire nazwa' i na lokalu śmiga. Co teraz jak chce wrzucić to na serwer przecież zmiany zaszły tylko w plikach composer.json i composer.lock. Czy na serwerze też muszę zainstalować composer, czy co muszę zrobić?

2 odpowiedzi

+3 głosów
odpowiedź 24 lutego 2020 przez Arkadiusz Waluk Ekspert (287,950 p.)
Composer instaluje paczki do katalogu vendor - sama zmiana w plikach composer.json/lock nic nie daje. Jeśli możesz to najwygodniej na serwer wgrać tylko pliki aplikacji z plikami definiującymi paczki (composer.json/lock) i tam uruchomić composer install, aby wszystko zainstalować. Jednak na hostingach współdzielonych czasem nie ma dostępu do konsoli i uruchomienie Composera może być trudne. W takiej sytuacji możesz po prostu przesłać cały katalog vendor z zainstalowanymi paczkami i też powinno zadziałać, ale nie jest to wygodne.
komentarz 24 lutego 2020 przez Ehlert Ekspert (212,670 p.)

IMO przesłanie gotowej paczki zip, czy nawet w formie obrazu dockera jest lepsze. Bez względu na projekt po co obciążać produkcję budowaniem aplikacji. wink

komentarz 24 lutego 2020 przez Mariusz08 Maniak (62,300 p.)
Przy aplikacji w PHP ciężko mówić o budowaniu, raczej tylko ściąganiu zależności.
komentarz 24 lutego 2020 przez Arkadiusz Waluk Ekspert (287,950 p.)

@Ehlert, taki build może przecież iść sobie niezależnie, więc nie wiem, zależy od podejścia. Jak dla mnie ręczne pobieranie u siebie kolejnej kopii (aby nie mieszać konfiguracji z lokalną itd.), instalowanie wszystkiego i ręczne wgrywanie jest nieco uciążliwe, tym bardziej gdy mamy kilka aplikacji i robimy ich deploye co jakiś regularny czas. Chyba że i to sobie zautomatyzujemy w jakiś sposób np. na oddzielnym serwerze, to czemu nie.

@Mariusz08, ściąganie zależności to nie jedyna rzecz którą się robi, często jest zbudowanie zasobów w stylu JS i CSS, przygotowanie bazy i inne rzeczy, więc jak dla mnie można to nazwać "budowaniem". Poza tym było wspomnienie o Dockerze, więc zakładam że mógł też mówić w tym kontekście, a tam budowanie już na pewno jest.

1
komentarz 24 lutego 2020 przez Ehlert Ekspert (212,670 p.)

@Mariusz08, build:

  • Instalacja vendora
  • Budowanie assetow
  • Odpalenie linterow/testów
  • Puszczenie migracji
  • Przepięcie symlinków w Nginxie/restart fpm/odpalenie nowego kontenera

@Arkadiusz Waluk innej opcji niż CI/CD nie biorę pod uwagę wink

komentarz 25 lutego 2020 przez matizuu Obywatel (1,100 p.)

@Arkadiusz Waluk, Wrzuciłem folder vendor z zainstalowaną paczką, ale gdy uruchamiam na serwerze podaje mi, że klasa która pochodzi właśnie z zainstalowanej paczki nie istnieje. A lokalnie śmiga. Czy po przerzuceniu folderu muszę coś jeszcze na serwerze wykonać?

komentarz 25 lutego 2020 przez Arkadiusz Waluk Ekspert (287,950 p.)
Powinno działać. Pokazuje dokładnie, że klasa nie istnieje, a widzisz że w danym katalogu jest? Wgrałeś cały katalog vendor ze wszystkim co tam było? Jedyne co mi na szybko przychodzi do głowy to może jakieś różnice między systemami, może np. robiłeś to na Windowsie, a wrzuciłeś na serwer z Linuxem, ale to strzał.
komentarz 26 lutego 2020 przez matizuu Obywatel (1,100 p.)
Tak przeniosłem cały folder, wczoraj wyjechałem na małe wakacje, a nie mogę przestać myśleć dlaczego mi to nie działało :D

Jak wrócę to będę kombinował, i pewnie się tutaj znowu odezwę.

A skoro już piszę, to ostatnio zauważyłem, że przy rejestracji z laravela od razu loguje mnie na utworzone konto. Nie wiem czy tak było wcześniej, od samego początku, bo nie zwróciłem na to uwagi. Normalnie przychodzi mail o aktywacji, a mimo to mogę się zalogować, masz może pomysł czemu?
1
komentarz 27 lutego 2020 przez Arkadiusz Waluk Ekspert (287,950 p.)
Prawdę mówiąc nie wiem, nie pamiętam jak dokładnie to było, może coś się zmieniło albo masz coś zmienione u siebie w kodzie. Sprawdź po prostu akcje odpowiadające za logowanie i co tam jest sprawdzane, jak brakuje warunku sprawdzającego czy konto jest aktywne to trzeba dodać i powinno być dobrze.
komentarz 2 marca 2020 przez matizuu Obywatel (1,100 p.)
Właśnie wróciłem do domu, i rejestracje/logowanie już sobie poradziłem, teraz siadam dlaczego nie zadziałało to co przeniosłem w folderze vendor
komentarz 4 marca 2020 przez matizuu Obywatel (1,100 p.)

@Arkadiusz Waluk, Czy folder vendor powinien być przechowywany na gicie czy raczej lepiej go tam nie wystawiać? 

3
komentarz 4 marca 2020 przez Ehlert Ekspert (212,670 p.)
Vendor nigdy nie powinien być wersjonowany przez Twoje repo. To nie Twój kod.
komentarz 5 marca 2020 przez matizuu Obywatel (1,100 p.)
Chyba już się poddam, nie mam pojęcia o co chodzi folder przeniosłem, nakombinowałem, i nadal nie widzi tej klasy.

Czy po przeniesieniu takiego folderu na pewno nie trzeba nic więcej robić, jakieś tworzenie ścieżek czy coś?
komentarz 5 marca 2020 przez Arkadiusz Waluk Ekspert (287,950 p.)
Nie spotkałem się z tym, aby trzeba było coś jeszcze robić. Takie ręczne przenoszenie vendora robiłem co prawda może 2-3 razy jakiś czas temu, ale nie pamiętam żadnego problemu u siebie.
+2 głosów
odpowiedź 5 marca 2020 przez Ehlert Ekspert (212,670 p.)

Najlepiej przestań się bawić w jakieś przenoszenie, podmienianie vendorów. Opcje są... 3:

  • instalujesz wszystko lokalnie, budujesz apkę, pakujesz w zipa, wysyłasz na serwer, unpack, przepinasz symlinki na serwerze, restart usług. W zależności od aplikacji musisz ogarnąć jak z cachem i migracjami w bazie danych. Przy tym Flow musisz pilnować alby wersje oprogramowania na Twoim kompie i serwerze się zgadzały. Zalecane jest wykorzystanie Jenkinsa/GitlabCI/Travis cokolwiek.
  • Całe flow robisz zdalnie na serwerze docelowym. Minus jest taki że musi on mieć wszystko co jest potrzebne do budowania apki.
  • Budujesz obraz dockera i push. Resztę robi Kubernetes. Jeśli dobrze piszesz Dockerfile to wersje softu się nie powinny zmieniać, wszystko raczej będzie działać.

Podobne pytania

0 głosów
3 odpowiedzi 1,030 wizyt
pytanie zadane 27 sierpnia 2020 w PHP przez molik Użytkownik (950 p.)
0 głosów
1 odpowiedź 186 wizyt
pytanie zadane 7 stycznia 2021 w PHP przez czarkowsky Nowicjusz (240 p.)
0 głosów
2 odpowiedzi 199 wizyt
pytanie zadane 24 sierpnia 2020 w PHP przez Jakub 0 Pasjonat (23,120 p.)

92,565 zapytań

141,418 odpowiedzi

319,602 komentarzy

61,951 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...