-
1. Data: 2019-09-17 16:03:33
Temat: taka sama konfiguracja dla localhost i produkcji
Od: Jivanmukta <j...@p...onet.pl>
Koduję w PHP na localhoście i wysyłam swoje programy na serwer przy
pomocy klienta FTP. Słyszałem, że można zrobić tak, żeby konfiguracja na
localhości była identyczna z produkcją, ale nie wiem jakiego
oprogramowania się używa. Możecie mi podpowiedzieć? Pracuję na Linux
Mint; używam PHP, MySQL, NetBeans i poznaję Gita.
-
2. Data: 2019-09-17 17:19:13
Temat: Re: taka sama konfiguracja dla localhost i produkcji
Od: Szyk Cech <s...@s...pl>
On 17.09.2019 16:03, Jivanmukta wrote:
> Koduję w PHP na localhoście i wysyłam swoje programy na serwer przy
> pomocy klienta FTP. Słyszałem, że można zrobić tak, żeby konfiguracja na
> localhości była identyczna z produkcją, ale nie wiem jakiego
> oprogramowania się używa. Możecie mi podpowiedzieć? Pracuję na Linux
> Mint; używam PHP, MySQL, NetBeans i poznaję Gita.
Wielce chwalebne są twoje ambicje i czyny szlachetne! Automatyzacja prac
administracyjnych jest pragmatycznym podejściem do życia (o ile nie robi
się do tego sztucznej inteligencji która ma tendencje do buntowania się).
Zanim odpowiem na twoje pytanie spytam:
Czy aby na pewno chcesz mieć na serwerze produkcyjnym od razu to co u
siebie na dysku?!? Przecież bez testów (choćby ręcznych) to masakra
gwarantowana. Nie boisz się że ktoś Ci zmyje łeb za to?!?
Odpowiadając na twoje pytanie:
Metod jest kilka:
* Ja np. używam darmowych kont WWW i mam do nich dostęp przez FTP.
Dlatego napisałem sobie skrypt w Pyhon-ie jaki generuje mi wszystkie
moje strony (ja wcale ich nie generuję w locie tak jak np. niektórzy
robią w PHP) i ten skrypt ładuje mi je na konta FTP. Takie
skrypty/programy możesz napisać w dowolnym języku z biblioteką klienta FTP.
* Jeśli masz prawa administratora na swoim serwerze możesz użyć programu
rsynch do synchronizacji katalogów na różnych maszynach.
-
3. Data: 2019-09-17 17:36:52
Temat: Re: taka sama konfiguracja dla localhost i produkcji
Od: Jivanmukta <j...@p...onet.pl>
W dniu 17.09.2019 o 17:19, Szyk Cech pisze:
> Czy aby na pewno chcesz mieć na serwerze produkcyjnym od razu to co u
> siebie na dysku?!? Przecież bez testów (choćby ręcznych) to masakra
> gwarantowana. Nie boisz się że ktoś Ci zmyje łeb za to?!?
Nie o to mi chodzi. Słyszałem, że można tak zrobić, żeby móc na
localhoście testować program, tak, żeby mieć konfigurację z hostingu.
Nie wiem czy nie chodzi o jakąś wirtualizację.
-
4. Data: 2019-09-17 17:50:05
Temat: Re: taka sama konfiguracja dla localhost i produkcji
Od: Jivanmukta <j...@p...onet.pl>
W dniu 17.09.2019 o 16:03, Jivanmukta pisze:
> Koduję w PHP na localhoście i wysyłam swoje programy na serwer przy
> pomocy klienta FTP. Słyszałem, że można zrobić tak, żeby konfiguracja na
> localhości była identyczna z produkcją, ale nie wiem jakiego
> oprogramowania się używa. Możecie mi podpowiedzieć? Pracuję na Linux
> Mint; używam PHP, MySQL, NetBeans i poznaję Gita.
Chyba już znalazłem:
https://gist.github.com/jaceklaskowski/bd3d06489ec00
4af6ed9
-
5. Data: 2019-09-17 19:35:13
Temat: Re: taka sama konfiguracja dla localhost i produkcji
Od: Marek S <p...@s...com>
W dniu 2019-09-17 o 17:50, Jivanmukta pisze:
> W dniu 17.09.2019 o 16:03, Jivanmukta pisze:
>> Koduję w PHP na localhoście i wysyłam swoje programy na serwer przy
>> pomocy klienta FTP. Słyszałem, że można zrobić tak, żeby konfiguracja
>> na localhości była identyczna z produkcją, ale nie wiem jakiego
>> oprogramowania się używa. Możecie mi podpowiedzieć? Pracuję na Linux
>> Mint; używam PHP, MySQL, NetBeans i poznaję Gita.
>
> Chyba już znalazłem:
> https://gist.github.com/jaceklaskowski/bd3d06489ec00
4af6ed9
Albo nie chwytam problemu, albo coś mocno przekombinowałeś. Zwykle
różnica między dev'em a prod'em polega na bazie danych. Prod "żyje",
użytkownicy generują różne rzeczy w bazie. Tak więc raz na jakiś czas
wystarczy dumpa bazy produkcyjnej zassać do devowej. Oczywiście obie
bazy będą miały inny connection string - to jedyna różnica.
W swoich aplikacjach (pracuję pod własnym CMS'em a także w Symfony 4),
nigdy nie mam innego środowiska dev/prod i nawet nie wiem co trzeba by
zrobić aby zróżnicować obie wersje i po co.
--
Pozdrawiam,
Marek
-
6. Data: 2019-09-17 19:39:57
Temat: Re: taka sama konfiguracja dla localhost i produkcji
Od: Jivanmukta <j...@p...onet.pl>
W dniu 17.09.2019 o 19:35, Marek S pisze:
> W dniu 2019-09-17 o 17:50, Jivanmukta pisze:
>> W dniu 17.09.2019 o 16:03, Jivanmukta pisze:
>>> Koduję w PHP na localhoście i wysyłam swoje programy na serwer przy
>>> pomocy klienta FTP. Słyszałem, że można zrobić tak, żeby konfiguracja
>>> na localhości była identyczna z produkcją, ale nie wiem jakiego
>>> oprogramowania się używa. Możecie mi podpowiedzieć? Pracuję na Linux
>>> Mint; używam PHP, MySQL, NetBeans i poznaję Gita.
>>
>> Chyba już znalazłem:
>> https://gist.github.com/jaceklaskowski/bd3d06489ec00
4af6ed9
>
> Albo nie chwytam problemu, albo coś mocno przekombinowałeś. Zwykle
> różnica między dev'em a prod'em polega na bazie danych. Prod "żyje",
> użytkownicy generują różne rzeczy w bazie. Tak więc raz na jakiś czas
> wystarczy dumpa bazy produkcyjnej zassać do devowej. Oczywiście obie
> bazy będą miały inny connection string - to jedyna różnica.
>
> W swoich aplikacjach (pracuję pod własnym CMS'em a także w Symfony 4),
> nigdy nie mam innego środowiska dev/prod i nawet nie wiem co trzeba by
> zrobić aby zróżnicować obie wersje i po co.
>
A ja mam różnice w wartościach stałych globalnych i w informacjach
diagnostycznych oraz poziomie raportowania błędów. Używam CodeIgniter3.
-
7. Data: 2019-09-17 20:06:02
Temat: Re: taka sama konfiguracja dla localhost i produkcji
Od: Jivanmukta <j...@p...onet.pl>
W dniu 17.09.2019 o 19:39, Jivanmukta pisze:
> W dniu 17.09.2019 o 19:35, Marek S pisze:
>> W dniu 2019-09-17 o 17:50, Jivanmukta pisze:
>>> W dniu 17.09.2019 o 16:03, Jivanmukta pisze:
>>>> Koduję w PHP na localhoście i wysyłam swoje programy na serwer przy
>>>> pomocy klienta FTP. Słyszałem, że można zrobić tak, żeby
>>>> konfiguracja na localhości była identyczna z produkcją, ale nie wiem
>>>> jakiego oprogramowania się używa. Możecie mi podpowiedzieć? Pracuję
>>>> na Linux Mint; używam PHP, MySQL, NetBeans i poznaję Gita.
>>>
>>> Chyba już znalazłem:
>>> https://gist.github.com/jaceklaskowski/bd3d06489ec00
4af6ed9
>>
>> Albo nie chwytam problemu, albo coś mocno przekombinowałeś. Zwykle
>> różnica między dev'em a prod'em polega na bazie danych. Prod "żyje",
>> użytkownicy generują różne rzeczy w bazie. Tak więc raz na jakiś czas
>> wystarczy dumpa bazy produkcyjnej zassać do devowej. Oczywiście obie
>> bazy będą miały inny connection string - to jedyna różnica.
>>
>> W swoich aplikacjach (pracuję pod własnym CMS'em a także w Symfony 4),
>> nigdy nie mam innego środowiska dev/prod i nawet nie wiem co trzeba by
>> zrobić aby zróżnicować obie wersje i po co.
>>
> A ja mam różnice w wartościach stałych globalnych i w informacjach
> diagnostycznych oraz poziomie raportowania błędów. Używam CodeIgniter3.
CodeIgniter ma w index.php stałą ENVIRONMENT która może mieć wartości
development/testing/production. Chciałbym mieć dla testing takie same
środowisko jak w hostingu, żebym mógł spokojnie testować aplikację na
localhoście. Stąd moje pytanie.
-
8. Data: 2019-09-17 22:43:52
Temat: Re: taka sama konfiguracja dla localhost i produkcji
Od: Marek S <p...@s...com>
W dniu 2019-09-17 o 20:06, Jivanmukta pisze:
>> A ja mam różnice w wartościach stałych globalnych i w informacjach
>> diagnostycznych oraz poziomie raportowania błędów. Używam CodeIgniter3.
> CodeIgniter ma w index.php stałą ENVIRONMENT która może mieć wartości
> development/testing/production. Chciałbym mieć dla testing takie same
> środowisko jak w hostingu, żebym mógł spokojnie testować aplikację na
> localhoście. Stąd moje pytanie.
Teraz rozumiem. Akurat Ignitera nie znam ale powiem Ci jak takie rzeczy
robi się w Symfony czy w innych frameworkach. Jest to generalnie
uporządkowane.
Też występuje zmienna narzucająca tryby pracy aplikacji (dev/prod/co tam
chcesz). W oparciu o tą zmienną mogą być załadowane różne pliki
konfiguracyjne, w których można ustawiać poziomy raportowania błędów,
zmienne środowiskowe ($_ENV itp), ładować lub nie określone bundle i
wiele innych rzeczy można wtedy zrealizować.
No i do sedna: nie ma żadnych przeszkód aby na local'u (załóżmy, że w
trybie prod) załadować plik konfiguracyjny imitujący potrzebne Ci
zmienne środowiskowe + inne ustawienia (choćby wspomniany przez Ciebie
poziom raportowania błędów). Przełączysz się między trybami i otrzymasz
zupełnie inne ustawienia aplikacji. Jeden z wariantów może naśladować
to, co masz na hostingu.
Tak naprawdę, to prawie niczego nie trzeba robić aby uzyskać zgodność
środowiska. Tryb "prod" na lokalu może się zachowywać tak samo jak na
hostingu. Ja tak właśnie robię. Czyli jeśli chcę na lokalu sprawdzić jak
działa aplikacja w trybie prod - to zwyczajnie zmieniam tryb na prod.
Jedyna różnica w prodzie na hostingu i lokalu to duperele typu wskazanie
na inną bazę czy dorzucenie wymaganych zmiennych środowiskowych w pliku
konfigurującym. W Symfony są to pliki .env, .env.local Trzymam w nich
dosłownie parę linijek kodu.
--
Pozdrawiam,
Marek
-
9. Data: 2019-09-18 06:18:01
Temat: Re: taka sama konfiguracja dla localhost i produkcji
Od: Jivanmukta <j...@p...onet.pl>
Ale ja chce mieć taką samą konfigurację PHP i MySQLa jak w hostingu.
-
10. Data: 2019-09-18 19:25:46
Temat: Re: taka sama konfiguracja dla localhost i produkcji
Od: Marek S <p...@s...com>
W dniu 2019-09-18 o 06:18, Jivanmukta pisze:
> Ale ja chce mieć taką samą konfigurację PHP i MySQLa jak w hostingu.
Czyli nie chodzi o aplikację lecz o w/w. Ok, to już konkretniej brzmi
lecz nadal nie widzę problemu.
Co do PHP, to chyba nie ma problemu? Pobierasz ze stron producenta
odpowiednią wersję, instalujesz i masz. Ewentualnie w php.ini będzie
trzeba coś dodać lub ująć. Lokalnie możesz mieć dowolną ilość wersji PHP
jeśli będziesz miał potrzebę przełączania się między nimi.
Z bazą danych jest podobnie. To kwestia włączenia/wyłączenia paru opcji
aby wyrównać z wersją serwerową. Tu nawet jest jeszcze prościej bo
możesz z bazą łączyć się zdalnie jeśli nie chce Ci się dociekać co
włączyć. Robisz klona na zdalnym serwerze i z nim się łączysz.
O co chodzi zatem?
Ja tak właśnie pracuję. Na lokalu mam 3 wersje PHP, odpowiednie dla
poszczególnych projektów - po to by się zgadzały z tym, co na serwerze.
Z bazą mam jeszcze prościej bo nie używam badziewnego MySQLa, którego,
tak na marginesie już w zasadzie nie ma pod tą nazwą. Stosuję
PostgreSQL. Konfiguracja tej bazy jest praktycznie żadna więc ryzyko, że
będzie coś innego niż na serwerze - minimalne.
Nie bawię się w dockery czy VM-ki bo to z armatą na wróble.
--
Pozdrawiam,
Marek