Błędy podczas konfiguracji środowiska developerskiego

Błędy podczas konfiguracji środowiska developerskiego
KA
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 3 lata
  • Postów:22
0

Witam.
Podczas instalacji i konfiguracji środowiska do programowania w PHP na Linuxa wg tego poradnika (jest to moja pierwsza styczność z tym językiem)

napotkałem błąd przy próbie wejścia w panel "phpmyadmin" w przeglądarce:

Kopiuj
"Fatal error: Array and string offset access syntax with curly braces is no longer supported in /usr/share/phpmyadmin/libraries/Util.php on line 2087"

Tak więc wyedytowałem ten plik zamieniając nawiasy klamrowe w podanej linii na kwadratowe, następnie znów wszedłem w "phpmyadmin" i tym razem pojawił się inny błąd:

Kopiuj
"Fatal error: Array and string offset access syntax with curly braces is no longer supported in /usr/share/phpmyadmin/libraries/url_generating.lib.php on line 231"

Ten plik również wyedytowałem. Znów wszedłem w "phpmyadmin" i kolejny błąd:

Kopiuj
"The mbstring extension is missing. Please check your PHP configuration."

Z jednego wątku na stackoverflow.com dowiedziałem się, że prawdopodobnie muszę doinstalować plik "php-mbstring", komendą:

Kopiuj
"sudo apt install phpmyadmin php-mbstring php-gettext"

następnie zrestartowałem serwer, komendą:

Kopiuj
"sudo /etc/init.d/apache2 restart"

Jednak nic to nie dało i dalej pojawiał się ten sam błąd. Jednak w tym samym wątku ktoś napisał, że powinno się zainstalować mbstring w takiej wersji jaką wersję interpretera php mam zainstalowaną.
No i tutaj pojawia się problem, gdyż trochę tutaj namieszałem. To długa historia, więc powiem tylko, że na php -v w terminalu system odpowiada "PHP 7.4.28 (cli)" a na funkcję phpinfo() w index.php: "PHP 8.0.16".

Postanowiłem więc zainstalować mbstring w obydwu wersjach. Jednak to pogorszyło sprawę, bo teraz wyskakuje mi taki błąd:

Kopiuj
"Fatal error: Uncaught ValueError: mb_convert_encoding(): Argument #2 ($to_encoding) must be a valid encoding, "" given in /usr/share/php/php-php-gettext/gettext.inc:181 Stack trace: #0 /usr/share/php/php-php-gettext/gettext.inc(181): mb_convert_encoding() #1 /usr/share/php/php-php-gettext/gettext.inc(278): _encode() #2 /usr/share/php/php-php-gettext/gettext.inc(285): _gettext() #3 /usr/share/phpmyadmin/libraries/sanitizing.lib.php(179): __() #4 /usr/share/phpmyadmin/libraries/Message.php(607): PMA_sanitize() #5 /usr/share/phpmyadmin/libraries/Message.php(672): PMA\libraries\Message::decodeBB() #6 /usr/share/phpmyadmin/libraries/Error.php(220): PMA\libraries\Message->getMessage() #7 /usr/share/phpmyadmin/libraries/ErrorHandler.php(193): PMA\libraries\Error->getHash() #8 /usr/share/phpmyadmin/libraries/ErrorHandler.php(156): PMA\libraries\ErrorHandler->addError() #9 [internal function]: PMA\libraries\ErrorHandler->handleError() #10 /usr/share/phpmyadmin/libraries/session.inc.php(133): ini_set() #11 /usr/share/phpmyadmin/libraries/common.inc.php(280): require('...') #12 /usr/share/phpmyadmin/index.php(13): require_once('...') #13 {main} thrown in /usr/share/php/php-php-gettext/gettext.inc on line 181"

Czy wiecie o co może chodzić i jak zmusić do działania "phpmyadmin"?

Mój system to: Linux Mint 19.3 Cinnamon
Serwer: Apache2

edytowany 1x, ostatnio: Riddle
overcq
  • Rejestracja:około 7 lat
  • Ostatnio:27 minut
  • Postów:393
0

Spróbuj uaktualnić phpMyAdmin.
U mnie działa dla:
PHP 8.1.2
phpMyAdmin 5.1.1


Nie znam się, ale się wypowiem.
Wizytówka
joh­nny_Be_go­od jest mistrzem ‘eskejpowania’ i osadzania.
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:12 minut
  • Lokalizacja:Koszalin
  • Postów:10094
1
Kano napisał(a):

napotkałem błąd przy próbie wejścia w panel "phpmyadmin" w przeglądarce:
[...]
Tak więc wyedytowałem ten plik zamieniając nawiasy klamrowe w podanej linii na kwadratowe, następnie znów wszedłem w "phpmyadmin" i tym razem pojawił się inny błąd:
[..]
Ten plik również wyedytowałem. Znów wszedłem w "phpmyadmin" i kolejny błąd:

Nie powinieneś nic edytować; bo jasno widać że masz nowszą wersję PHP; a oprogramowanie używało feature'ów (klamerek) które nie były kompatybilne w przód.

Tak więc to co powinieneś zrobić, to albo zmnieszyć wersję PHP; albo zupdate'ować PhpMyAdmin, z czego ta druga opcja jest lepsza.

edytowany 1x, ostatnio: Riddle
ZD
  • Rejestracja:ponad 3 lata
  • Ostatnio:ponad rok
  • Postów:2310
0
  1. Autor jest tu na forum "sławny" ... obawiam się, że nie z dobrej strony

    Jest wiele rzetelnych i po tysiąc razy sprawdzonych tutoriali, czy w kręgu Debiana (jak w tym przypadku chyba), czy Fedory
    https://www.google.com/search?client=firefox-b-d&q=debian+php++mysql+setup

  2. Jak wejdziesz na ścieżkę "naprawiania" po słabym tutorialu, to wątpię czy skończysz. Te dwa pehapy 7 i 8 mi to mówią.


If you put a million monkeys at a million keyboards, one of them will eventually write a Java program - the rest of them will write Perl
edytowany 1x, ostatnio: Riddle
KA
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 3 lata
  • Postów:22
0

A czy moglibyście mi pomóc uaktualnić phpmyadmin? Po ok. godzinnym przeszukiwaniu internetu jedynym sposobem jaki proponują użytkownicy linuxa jest wpisanie w terminalu:

"apt install phpmyadmin"

tylko, że najnowsza wersja tego panelu w repozytoriach, które mam dodane to 4.6. Nie znalazłem informacji z jakich repozytoriów mogę pobrać nowszą wersję.

ZrobieDobrze napisał(a):
  1. Autor jest tu na forum "sławny" ... obawiam się, że nie z dobrej strony

    Jest wiele rzetelnych i po tysiąc razy sprawdzonych tutoriali, czy w kręgu Debiana (jak w tym przypadku chyba), czy Fedory
    https://www.google.com/search?client=firefox-b-d&q=debian+php++mysql+setup

  2. Jak wejdziesz na ścieżkę "naprawiania" po słabym tutorialu, to wątpię czy skończysz. Te dwa pehapy 7 i 8 mi to mówią.

A czy jest jakiś inny sposób na posprzątanie tego bałaganu oprócz reinstalki systemu?

edytowany 1x, ostatnio: Kano
Riddle
Najnowsza to 5.1.3
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:12 minut
  • Lokalizacja:Koszalin
  • Postów:10094
0
Kano napisał(a):

A czy moglibyście mi pomóc uaktualnić phpmyadmin? Po ok. godzinnym przeszukiwaniu internetu jedynym sposobem jaki proponują użytkownicy linuxa jest wpisanie w terminalu:

"apt install phpmyadmin"

tylko, że najnowsza wersja tego panelu w repozytoriach, które mam dodane to 4.6. Nie znalazłem informacji z jakich repozytoriów mogę pobrać nowszą wersję.

Jeśli koniecznie chcesz wersję 4.6, to tutaj masz opisane dokładnie co jest wymagane: https://docs.phpmyadmin.net/en/release_4_8_5/require.html

Ale ja bym radził zainstalować 5tkę.

KA
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 3 lata
  • Postów:22
0

Ok, zainstaluję 5tkę. Tylko jak to zrobić? W jakim repozytorium ją znajdę? Niestety wyrosłem na windzie. Z linuxa korzystam od niedawna i nie jestem zbyt oblatany.

KA
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 3 lata
  • Postów:22
0

Ok. W końcu znalazłem w necie instrukcję jak zaktualizować phpmyadmin. Zauktualizowałem do wersji 5.1.3. Ostatni opisany przez mnie błąd zniknął, ale pojawił się kolejny (za to favikonka wróciła, więc jest lepiej ;):

Kopiuj
Brak rozszerzenia mysqli. Proszę sprawdzić konfigurację PHP. Zobacz naszą dokumentację, aby uzyskać więcej informacji.

Tutaj jest link do wyżej wspomnianej dokumentacji (punkt 1.20):

http://localhost/phpmyadmin/doc/html/faq.html#faqmysql

Jest tam napisane:

Kopiuj
"This problem can be also caused by wrong paths in the php.ini or using wrong php.ini.

Make sure that the extension files do exist in the folder which the extension_dir points to and that the corresponding lines in your php.ini are not commented out (you can use phpinfo() to check current setup):"

W phpinfo() znalazłem ścieżkę do pliku php.ini

Kopiuj
Loaded Configuration File:  /etc/php/8.0/apache2/php.ini

oraz lokalizację extension_dir:

Kopiuj
extension_dir:  /usr/lib/php/20200930

W pliku php.ini w linii extension_dir zmieniłem lokalizację z ./ na /usr/lib/php/20200930, ale nic to nie dało. Potem zobaczyłem, że plik mysqli.so znajduje się jedynie w lokalizacji /usr/lib/php/20210902/mysqli.so, więc skopiowałem go też do lokalizacji extension_dir, ale również nic to nie dało.

Czy macie jeszcze jakiś pomysł dlaczego to może nie działać?

edytowany 1x, ostatnio: Riddle
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:12 minut
  • Lokalizacja:Koszalin
  • Postów:10094
1
Kano napisał(a):

Ok. W końcu znalazłem w necie instrukcję jak zaktualizować phpmyadmin. Zauktualizowałem do wersji 5.1.3. Ostatni opisany przez mnie błąd zniknął, ale pojawił się kolejny (za to favikonka wróciła, więc jest lepiej ;):

Kopiuj
Brak rozszerzenia mysqli. Proszę sprawdzić konfigurację PHP. Zobacz naszą dokumentację, aby uzyskać więcej informacji.

To po prostu oznacza że nie masz włączonego extensiona mysqli, które domyślnie jest wyłączone, a którego wymaga PhpMyAdmin. Musisz po prostu go włączyć, znajdując plik php.ini (możesz go zobaczyć uruchamiając php --ini), edytować go i odkomentować ;extension=mysqli, usuwając średnik.

Jakoś tak to powinno wyglądać:

Kopiuj
...
...
;extension=intl
;extension=imap
;extension=ldap
extension=mbstring
;extension=exif     
extension=mysqli
;extension=oci8_12c  
;extension=odbc
;extension=openssl
;extension=pdo_firebird
...
...
edytowany 1x, ostatnio: Riddle
KA
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 3 lata
  • Postów:22
0

Zrobiłem tak jak napisałeś, ale nadal ten sam błąd.

Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:12 minut
  • Lokalizacja:Koszalin
  • Postów:10094
0
Kano napisał(a):

Zrobiłem tak jak napisałeś, ale nadal ten sam błąd.

Odpaliłeś php --ini, zobaczyłeś który plik php.ini jest używany, otworzyłeś go, odkomentowałeś mysqli, zapisałeś, i nadal podczas uruchomienia dostajesz błąd o brakującym extensionie mysqli?

jurek1980
  • Rejestracja:ponad 8 lat
  • Ostatnio:około godziny
  • Postów:3510
1

że na php -v w terminalu system odpowiada "PHP 7.4.28 (cli)" a na funkcję phpinfo() w index.php: "PHP 8.0.16

Skoro tak to sprawdznie w CLI nie ma sensu.
Co masz po wyświetleniu przez phpinfo()

KA
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 3 lata
  • Postów:22
0
TomRiddle napisał(a):
Kano napisał(a):

Zrobiłem tak jak napisałeś, ale nadal ten sam błąd.

Odpaliłeś php --ini, zobaczyłeś który plik php.ini jest używany, otworzyłeś go, odkomentowałeś mysqli, zapisałeś, i nadal podczas uruchomienia dostajesz błąd o brakującym extensionie mysqli?

W sumie plików php.ini mam 6.

dmk@dmk-P31-DS3L:~$ sudo find / -name php.ini
[sudo] hasło użytkownika dmk:
find: ‘/run/user/1000/gvfs’: Brak dostępu
/etc/php/7.4/apache2/php.ini
/etc/php/7.4/cli/php.ini
/etc/php/8.1/phpdbg/php.ini
/etc/php/8.1/cli/php.ini
/etc/php/8.0/apache2/php.ini
/etc/php/8.0/cli/php.ini

We wszystkich odkomentowałem extension=mbstring i extension=mysqli

Na php --ini system odpowiada:

dmk@dmk-P31-DS3L:~$ php --ini
PHP Warning: PHP Startup: Unable to load dynamic library 'mysqli' (tried: /usr/lib/php/20190902/mysqli (/usr/lib/php/20190902/mysqli: cannot open shared object file: No such file or directory), /usr/lib/php/20190902/mysqli.so (/usr/lib/php/20190902/mysqli.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning: Module 'mbstring' already loaded in Unknown on line 0
Configuration File (php.ini) Path: /etc/php/7.4/cli
Loaded Configuration File: /etc/php/7.4/cli/php.ini
Scan for additional .ini files in: /etc/php/7.4/cli/conf.d
Additional .ini files parsed: /etc/php/7.4/cli/conf.d/10-opcache.ini,
/etc/php/7.4/cli/conf.d/10-pdo.ini,
/etc/php/7.4/cli/conf.d/20-calendar.ini,
/etc/php/7.4/cli/conf.d/20-ctype.ini,
/etc/php/7.4/cli/conf.d/20-exif.ini,
/etc/php/7.4/cli/conf.d/20-ffi.ini,
/etc/php/7.4/cli/conf.d/20-fileinfo.ini,
/etc/php/7.4/cli/conf.d/20-ftp.ini,
/etc/php/7.4/cli/conf.d/20-gettext.ini,
/etc/php/7.4/cli/conf.d/20-iconv.ini,
/etc/php/7.4/cli/conf.d/20-json.ini,
/etc/php/7.4/cli/conf.d/20-mbstring.ini,
/etc/php/7.4/cli/conf.d/20-phar.ini,
/etc/php/7.4/cli/conf.d/20-posix.ini,
/etc/php/7.4/cli/conf.d/20-readline.ini,
/etc/php/7.4/cli/conf.d/20-shmop.ini,
/etc/php/7.4/cli/conf.d/20-sockets.ini,
/etc/php/7.4/cli/conf.d/20-sysvmsg.ini,
/etc/php/7.4/cli/conf.d/20-sysvsem.ini,
/etc/php/7.4/cli/conf.d/20-sysvshm.ini,
/etc/php/7.4/cli/conf.d/20-tokenizer.ini

jurek1980 napisał(a):

że na php -v w terminalu system odpowiada "PHP 7.4.28 (cli)" a na funkcję phpinfo() w index.php: "PHP 8.0.16

Skoro tak to sprawdznie w CLI nie ma sensu.
Co masz po wyświetleniu przez phpinfo()

A co konkretnie mam podać? Przesyłam screen pierwszej tabeli. Napisz jeśli coś jeszcze mam podać.
php.png

  • php.png (228 KB) - ściągnięć: 8
Riddle
Administrator
  • Rejestracja:prawie 15 lat
  • Ostatnio:12 minut
  • Lokalizacja:Koszalin
  • Postów:10094
0

@Kano: Po pierwsze; robisz bajzel, bo używasz php z linii poleceń który widać że jest w wersji 7.4; ale pokazujesz nam phpinfo() z wersji 8.0. Więc widać, że masz różne wersje PHP na kompie. Ogarnij to jakoś.

@Kano: Co do samego błędu - przecież masz napisane jak na dłoni

Kopiuj
PHP Warning: PHP Startup: Unable to load dynamic library 'mysqli' (tried: /usr/lib/php/20190902/mysqli (/usr/lib/php/20190902/mysqli: cannot open shared object file: No such file or directory)
edytowany 1x, ostatnio: Riddle
jurek1980
  • Rejestracja:ponad 8 lat
  • Ostatnio:około godziny
  • Postów:3510
1

Za to, że wpiszesz sobie w dowolnym miejscu w systemie php filex.php i to zadziała odpowdają zmienne środowiskowe. Ustaw sobie tą samą w wersję dla comand line. https://forums.linuxmint.com/viewtopic.php?t=180380

Lub na odwrót w apache ustaw z jakiego rozszerzenia ma on korzystać.
https://serverfault.com/questions/149039/how-to-change-what-version-of-php-apache2-uses

Jak to sobie poustawiasz odkomentuj potrzebne rozszerzenia we właściwej wersji. Załadowane modułu możesz sprawdzić poprzez php -m w cmd oraz przez phpinfo() w jakimś index.php

W ogóle walczysz o to PHPMyAdmin ale czy jest Co ono potrzebne? Do bazy możesz podłączyć się z jakiegoś IDE typu Vscode czy innych programów, a nawet pisać zapytania w linii komend. Piszę tak tylko informacyjne, żebyś się nie poddawał i w rasie co miał alternatywę.

KA
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 3 lata
  • Postów:22
0
TomRiddle napisał(a):

@Kano: Po pierwsze; robisz bajzel, bo używasz php z linii poleceń który widać że jest w wersji 7.4; ale pokazujesz nam phpinfo() z wersji 8.0. Więc widać, że masz różne wersje PHP na kompie. Ogarnij to jakoś.

Dobrze, postanowiłem więc najpierw zrobić porządek. W Synapticu usunąłem wszystkie pakiety mające w nazwie php7.4. Teraz na php -v system odpowiada

dmk@dmk-P31-DS3L:$ php -v
PHP Warning: PHP Startup: Unable to load dynamic library 'mysqli' (tried: /usr/lib/php/20210902/mysqli (/usr/lib/php/20210902/mysqli: cannot open shared object file: No such file or directory), /usr/lib/php/20210902/mysqli.so (/usr/lib/php/20210902/mysqli.so: undefined symbol: mysqlnd_global_stats)) in Unknown on line 0
PHP Warning: Module "mbstring" is already loaded in Unknown on line 0
PHP 8.1.3 (cli) (built: Feb 21 2022 14:48:26) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.3, Copyright (c) Zend Technologies
with Zend OPcache v8.1.3, Copyright (c), by Zend Technologies

a na php --ini

dmk@dmk-P31-DS3L:</del>$ php --ini
PHP Warning: PHP Startup: Unable to load dynamic library 'mysqli' (tried: /usr/lib/php/20210902/mysqli (/usr/lib/php/20210902/mysqli: cannot open shared object file: No such file or directory), /usr/lib/php/20210902/mysqli.so (/usr/lib/php/20210902/mysqli.so: undefined symbol: mysqlnd_global_stats)) in Unknown on line 0
PHP Warning: Module "mbstring" is already loaded in Unknown on line 0
Configuration File (php.ini) Path: /etc/php/8.1/cli
Loaded Configuration File: /etc/php/8.1/cli/php.ini
Scan for additional .ini files in: /etc/php/8.1/cli/conf.d
Additional .ini files parsed: /etc/php/8.1/cli/conf.d/10-mysqlnd.ini,
/etc/php/8.1/cli/conf.d/10-opcache.ini,
/etc/php/8.1/cli/conf.d/10-pdo.ini,
/etc/php/8.1/cli/conf.d/15-xml.ini,
/etc/php/8.1/cli/conf.d/20-bz2.ini,
/etc/php/8.1/cli/conf.d/20-calendar.ini,
/etc/php/8.1/cli/conf.d/20-ctype.ini,
/etc/php/8.1/cli/conf.d/20-curl.ini,
/etc/php/8.1/cli/conf.d/20-dom.ini,
/etc/php/8.1/cli/conf.d/20-exif.ini,
/etc/php/8.1/cli/conf.d/20-ffi.ini,
/etc/php/8.1/cli/conf.d/20-fileinfo.ini,
/etc/php/8.1/cli/conf.d/20-ftp.ini,
/etc/php/8.1/cli/conf.d/20-gd.ini,
/etc/php/8.1/cli/conf.d/20-gettext.ini,
/etc/php/8.1/cli/conf.d/20-iconv.ini,
/etc/php/8.1/cli/conf.d/20-mbstring.ini,
/etc/php/8.1/cli/conf.d/20-mysqli.ini,
/etc/php/8.1/cli/conf.d/20-pdo_mysql.ini,
/etc/php/8.1/cli/conf.d/20-phar.ini,
/etc/php/8.1/cli/conf.d/20-posix.ini,
/etc/php/8.1/cli/conf.d/20-readline.ini,
/etc/php/8.1/cli/conf.d/20-shmop.ini,
/etc/php/8.1/cli/conf.d/20-simplexml.ini,
/etc/php/8.1/cli/conf.d/20-sockets.ini,
/etc/php/8.1/cli/conf.d/20-sysvmsg.ini,
/etc/php/8.1/cli/conf.d/20-sysvsem.ini,
/etc/php/8.1/cli/conf.d/20-sysvshm.ini,
/etc/php/8.1/cli/conf.d/20-tokenizer.ini,
/etc/php/8.1/cli/conf.d/20-xmlreader.ini,
/etc/php/8.1/cli/conf.d/20-xmlwriter.ini,
/etc/php/8.1/cli/conf.d/20-xsl.ini,
/etc/php/8.1/cli/conf.d/20-zip.ini

Czy powinienem jeszcze usunąć PHP 8.1, czy jest to część PHP 8.0?

TomRiddle napisał(a):

@Kano: Co do samego błędu - przecież masz napisane jak na dłoni

Kopiuj
PHP Warning: PHP Startup: Unable to load dynamic library 'mysqli' (tried: /usr/lib/php/20190902/mysqli (/usr/lib/php/20190902/mysqli: cannot open shared object file: No such file or directory)

Nie wiem dlaczego wyskakuje taki komunikat, bo taki katalog istnieje:

dmk@dmk-P31-DS3L:/usr/lib/php$ ls -1
20190902
20200930
20210902
8.0
8.1
packaging
php-fpm-socket-helper
php-helper
php-maintscript-helper
sessionclean

Skopiowałem do wszystkich już wcześniej mysqli.so, ale nic to nie dało.

jurek1980 napisał(a):

Za to, że wpiszesz sobie w dowolnym miejscu w systemie php filex.php i to zadziała odpowdają zmienne środowiskowe. Ustaw sobie tą samą w wersję dla comand line. https://forums.linuxmint.com/viewtopic.php?t=180380

Lub na odwrót w apache ustaw z jakiego rozszerzenia ma on korzystać.
https://serverfault.com/questions/149039/how-to-change-what-version-of-php-apache2-uses

Jak to sobie poustawiasz odkomentuj potrzebne rozszerzenia we właściwej wersji. Załadowane modułu możesz sprawdzić poprzez php -m w cmd oraz przez phpinfo() w jakimś index.php

Szczerze mówiąc woałbym zostawić sobie tylko PHP 8.0 a wszystkie pozostałe usunąć (jeśli się da), bo nie będą mi do niczego potrzebne.

jurek1980 napisał(a):

W ogóle walczysz o to PHPMyAdmin ale czy jest Co ono potrzebne? Do bazy możesz podłączyć się z jakiegoś IDE typu Vscode czy innych programów, a nawet pisać zapytania w linii komend. Piszę tak tylko informacyjne, żebyś się nie poddawał i w rasie co miał alternatywę.

Nie mam pojęcia. Stawiam tutaj pierwsze kroki. Z kursu podanego na początku tego tematu wynika, że jest mi potrzebne, więc wolałbym móc go używać.

edytowany 2x, ostatnio: Kano

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.