[inne][PHP] Problem z composerem |
[inne][PHP] Problem z composerem |
12.10.2022, 10:39:56
Post
#1
|
|
Grupa: Zarejestrowani Postów: 320 Pomógł: 2 Dołączył: 17.03.2006 Skąd: Siemianowice Ostrzeżenie: (0%) |
Dzień dobry,
Mam problem z wykorzystaniem composer-a. Udało mi się go zainstalować. Instalator utworzył mi plik composer/composer.phar. Z przykładów jakie są dostępne na stronie composer-a wybrałem opcję GMAIL. Wklepałem wszystkie dane, etc. Nie mniej, non stop dostaję komunikat że ta ścieżka jest błędna:
W katalogu jest uruchomiona wersja PHP 7.4. Natomiast instalator nie stworzył nic oprócz tego jednego pliku composer.phar w katalogu composer. Zanim zadałem to pytanie, guglałem sporo w sieci, ale opcji rozwiązań problemu jest multum jednak dotyczą one najczęściej instalacji na lokalnym komputerze pod windows lub różnych starszych wersji, które trzeba aktualizować. Kompletnie nie wiem, jak ten temat dalej ruszyć. Serwer współdzielony mam w firmie KEI. Jeśli ktoś coś może mnie naprowadzić to byłbym wdzięczny. Pozdrawiam, ŁF. |
|
|
12.10.2022, 10:43:50
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 449 Pomógł: 6292 Dołączył: 27.12.2004 |
A odpaliles komende
composer install ? -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
12.10.2022, 12:20:30
Post
#3
|
|
Grupa: Zarejestrowani Postów: 320 Pomógł: 2 Dołączył: 17.03.2006 Skąd: Siemianowice Ostrzeżenie: (0%) |
Wykonałem tylko te 4 komendy z manuala https://getcomposer.org/download/
W wierszu poleceń pokazało mi po wykonaniu 3 komendy, że composer został zainstalowany we wskazanym katalogu. I to jest ten katalog który wymieniłem, czyli composer/composer.phar
Ten post edytował lukash82 12.10.2022, 12:21:16 |
|
|
12.10.2022, 12:53:23
Post
#4
|
|
Grupa: Zarejestrowani Postów: 343 Pomógł: 70 Dołączył: 15.07.2014 Ostrzeżenie: (0%) |
Pokaż strukturę katalogów w projekcie jaką masz.
I co się wyświetli jak w konsoli wpiszesz: `composer -v` ? |
|
|
12.10.2022, 13:33:25
Post
#5
|
|
Grupa: Moderatorzy Postów: 36 449 Pomógł: 6292 Dołączył: 27.12.2004 |
Cytat Wykonałem tylko te 4 komendy z manuala https://getcomposer.org/download/ No dobrze, ale to bylo do zainstalowania composer. A teraz jak juz chcesz go uzywac, a z pierwszego posta zrozumialem ze dodales sobei jakis tam przyklad ogmailu, to musisz zrobic albo composer install albo composer update by wczytac VENDORy, ktorych chcesz uzywac. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
12.10.2022, 14:09:51
Post
#6
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
Cytat Composer (version 2.2.18) successfully installed to: /home/users/host/public_html/domena/composer/composer.phar Use it: php public_html/domena/composer/composer.phar Czemu nie czytasz co Ci napisał?
a jak chcesz composer install to musisz sobie to przerzucić w odpowiednie miejsce https://getcomposer.org/doc/00-intro.md#globally |
|
|
12.10.2022, 20:10:17
Post
#7
|
|
Grupa: Zarejestrowani Postów: 320 Pomógł: 2 Dołączył: 17.03.2006 Skąd: Siemianowice Ostrzeżenie: (0%) |
Dzięki za sugestie.
Mam drobny krok do przodu, ale... znów są jakieś ale...:/ Zrobiłem tak:
Dostałem w odpowiedzi, że brakuje mu jakiegoś pliku composer.json wraz z sugestią, aby odwiedzić dany URL:
Albo ja tego nie kumam, albo to jest jakoś niejasno napisane... Pisze na tej stronie o jakichś pakietach, wersjach, zależnościach, ale nie ma (albo tego nie widzę) wprost tego nieszczęsnego pliku composer.json. Znalazłem jego treść tu https://github.com/composer/composer/blob/main/composer.json Wrzuciłem to do pliku z rozszerzeniem json i włączyłem jeszcze raz powyższy kod z instalacją. Wrzuciłem plik do głównego katalogu na serwerze. I teraz to już wogóle wywaliło mi coś w czerwonej ramce:
Z tego co widać, brakuje mu teraz plik composer.lock. Więc z tej samej strony co wyżej, pobrałem kod tego pliku i wrzuciłem do głównego katalogu. Ponowiłem zapytanie z instalacją. Zaczęło się coś dziać, bo zaczął pobierać jakieś pakiety typu
A na końcu i tak wywalił znów ten sam błąd co wcześniej. Finalnie na serwerze pojawił mi się katalog vendor i jakieś podkatalogi typu composer, justinrainbow, phpstan, psr, react, seld i symphony. Nie ma w nim jednak pliku autoload.php więc wracam do punktu wyjścia. Bo plik, który miał wysyłać maila z gmaila znów wywala, że brakuje mu Fatal error: require(): Failed opening required '../vendor/autoload.php' Co może oznaczać ten błąd powyżej. Jest tam jakby sugestia dodania dodatkowych flag do instalatora. Ale po co i na co? I którą wybrać? Ten post edytował lukash82 12.10.2022, 20:11:04 |
|
|
12.10.2022, 20:31:42
Post
#8
|
|
Grupa: Zarejestrowani Postów: 343 Pomógł: 70 Dołączył: 15.07.2014 Ostrzeżenie: (0%) |
Poproszę jeszcze raz o screenshota katalogów w projekcie i zawartość pliku composer.json z niego.
|
|
|
13.10.2022, 02:04:53
Post
#9
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Po co chcesz używać composer? Żeby w projekcie dołączać jakieś biblioteki zewnętrzne. Co ty robisz? Zainstalowałeś composer ale kopiujesz losowy plik i tak do końca nie wiesz co chcesz. Masz zrobić, w głównym folderze projektu, composer init co utworzy plik composer.json. następnie composer require nazwa pakietu co pobierze ten pakiet i jeśli wszystko będzie ok wygeneruje vendor/autoload.php który masz dołączyć u siebie. Mogą być jeszcze np problemy sieciowe i wtedy wskazać proxy ale to zależy od maszyny.
-------------------- |
|
|
13.10.2022, 08:50:16
Post
#10
|
|
Grupa: Zarejestrowani Postów: 320 Pomógł: 2 Dołączył: 17.03.2006 Skąd: Siemianowice Ostrzeżenie: (0%) |
Moim celem jest wykorzystanie composer-a do wysyłki maili z gmaila zamiast używać do tego zwykłej funkcji mail(); W założeniu nie wyglądało to na tak skomplikowaną sprawę więc postanowiłem podjąć rękawicę, bo rozwiązanie jest całkiem użyteczne.
@vendor skopiowałem treści tych plików z github bo wołał o nie instalator, który wskazywał, aby skorzystać w tym celu z tego linka https://getcomposer.org/basic-usage gdzie nie widzę nic, poza metodami instalacji, opisem zależności, flagami, etc. Słowo "init" nawet nie występuje na tej stronie. Z pisaniem czegokolwiek w SSH miałem do czynienia 18 lat temu na studiach, więc na ten moment jest to dla mnie ciężki temat. Chętnie bym to zlecił na zewnątrz, ale nawet nie mam komu. A męczy mnie to okrutnie:/ Nie mniej, nie lubię się poddawać, więc póki co drążę temat dalej. Twoja sugestia @vendor pozwoliła mi pójść dalej i zrozumieć o co chodzi z tym plikiem composer.json. Wklepałem to polecenie i przeszedłem kilka kolejnych kroków z pytaniami o ustawienia do stworzenia tego pliku. Wyglądało to tak:
Na serwerze w głównym katalogu (ponad public_html) utworzył się katalog vendor i src. Z tego co piszesz @vendor, kolejnym krokiem ma być polecenie php public_html/domena/composer/composer.phar require? Tak wklepałem i zapytał mnie o "Search for a package: ". Jak wpisałem mu to co wyżej, czyli "composer/composer" to wywalił błąd [ErrorException] Use of undefined constant CURLOPT_PROTOCOLS - assumed 'CURLOPT_PROTOCOLS' Zastanawia mnie też, czy dobrze to zrozumiałem. Mam na serwerze X domen w katalogu public_html. Nie mogę globalnie dla całości zmienić PHP do wersji 7.4 więc zrobiłem to tylko dla jednej domeny gdzie pobrał się composer.phar. Natomiast cała instalacja, którą dzisiaj wykonałem utworzyła mi foldery vendor i src ponad folderem public_html. Mam teraz ogólnie taką strukturę: /public_html /vendor /src composer.json a folder domeny jest w /public_html/domena Czy nie powinien ten vendor i src być też w folderze domeny? |
|
|
13.10.2022, 09:35:42
Post
#11
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Composer to nie program do wysyłki maili tylko menadżer pakietów. Pakietem który to robi jest np phpmailer.
I jak wchodzisz na https://github.com/PHPMailer/PHPMailer to masz jasno composer require phpmailer/phpmailer -------------------- |
|
|
13.10.2022, 11:53:13
Post
#12
|
|
Grupa: Zarejestrowani Postów: 3 033 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%) |
Zainstaluj sobie tego composera globalnie na serwerze by robić to tak jak napisali bo tak tylko sobie utrudniasz życie, tutaj opisane jak
https://getcomposer.org/doc/00-intro.md#globally |
|
|
20.10.2022, 12:47:16
Post
#13
|
|
Grupa: Zarejestrowani Postów: 320 Pomógł: 2 Dołączył: 17.03.2006 Skąd: Siemianowice Ostrzeżenie: (0%) |
Musiałem ochłonąć od tego composera...
Wyrzuciłem całą instalkę z serwera i zrobiłem ją jeszcze raz zgodnie z sugestią @com, wszystko wykonałem w katalogu głównym serwera. Czyli ponad public_html. Mam teraz taką strukturę katalogów: .composer .subversion public_html vendor (a w nim m.in. plik autoload.php) composer.json composer.lock composer.phar Zawartość pliku composer.json utworzona podczas instalacji wygląda tak
I teraz, jeśli dobrze rozumiem, aby z tego ustrojstwa skorzystać w domenie, która znajduje się w podkatalogu public_html/domena/ wrzucam tam plik o takiej zawartości https://github.com/PHPMailer/PHPMailer/blob...ples/gmail.phps uzupełniając wymagane dane? Zapewne trzeba też gdzieś wrzucić folder PHPMailer. Ale gdzie bym go nie dodał (domena, folder główny serwera, folder composer) to wywala błąd Fatal error: Uncaught Error: Class 'PHPMailer\PHPMailer\PHPMailer' not found in (...) on line 17 Sory. Kompletnie nie rozumiem logiki działania tego narzędzia, a jestem zdany tylko na siebie i to forum. Manuale przejrzałem wszerz i wzdłuż, ale ciężko mi to nadal ogarnąć...:/ Jeśli mogę liczyć na pomoc, to proszę bardzo. PS. Chętnie pozbyłbym się tego problemu poprzez odpłatne zlecenie. Jeśli jest ktoś chętny, to proszę o PRIV. Pozdrawiam, ŁF. |
|
|
20.10.2022, 13:10:06
Post
#14
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
Masz w projekcie załączyć ten plik autoload.php i używać używać normalnie wg dokumentacji php mailer czyli załączyć przestrzeń nazw i korzystać.
-------------------- |
|
|
20.10.2022, 13:36:50
Post
#15
|
|
Grupa: Zarejestrowani Postów: 343 Pomógł: 70 Dołączył: 15.07.2014 Ostrzeżenie: (0%) |
Kiedyś miałem w planach zrobić CMS z zaczytywaniem danych z zewnątrz ale niestety brakło mi czasu - projekt jednak poleciał na GH: https://gitlab.com/piotrdziubczynski/gameserver-client
Tutaj masz konkretnie przykład jak wczytać autoloada i używać namespace'ów: https://gitlab.com/piotrdziubczynski/gamese.../app/kernel.php A tutaj zaczytanie pliku kernel i podstawowa konfiguracja: https://gitlab.com/piotrdziubczynski/gamese...ublic/index.php Kod nie jest najwyższych lotów, ale wystarczy Ci do analizy i zrozumienia jak działa composer. Ten post edytował Salvation 20.10.2022, 13:37:26 |
|
|
Wersja Lo-Fi | Aktualny czas: 23.04.2024 - 09:19 |