Thomas33 | 2020-05-11 14:37:39 UTC | #1
Chcialem zaczac korzystac z vMcShop, po wielu problemach w koncu udalo mi sie wlaczyc wszystko. Ale… nie dziala paypal, zrobilem wszystko tak jak w poradnikach i nadal pokazuje mi to:
A PHP Error was encountered
Severity: Warning
Message: count(): Parameter must be an array or an object that implements Countable
Filename: controllers/Paypal.php
Line Number: 139
Backtrace:
File: /var/www/html/sklep/application/controllers/Paypal.php
Line: 139
Function: errorhandlerFile: /var/www/html/sklep/index.php
Line: 315
Function: require_once
Proszę o pomoc
logixdev | 2020-05-11 14:42:18 UTC | #2
Jaką masz wersję PHP zainstalowaną na serwerze?
Thomas33 | 2020-05-11 14:43:53 UTC | #3
7.4
logixdev | 2020-05-11 15:29:27 UTC | #4
To w wersji PHP leży problem. Sklep był pisany pod 5.6 i jednym z błędów na nowszych wersjach jest właśnie to. Idąc za radą autora skryptu, przeinstaluj wersję PHP na 5.6 lub w application/controllers/Paypal.php
zmień linijki 134-146 na to: https://pastebin.com/VVxNcdbi
Generalnie coś jeszcze w panelu może Ci sypać błędami na nowszych wersjach z tego co pamiętam. To jedynie takie rozwiązanie tymczasowe na opisany problem. Minusem oczywiście jest to, że nigdy korzystanie ze starej, niewspieranej wersji oprogramowania nie jest polecane. Wybór należy do Ciebie.
Thomas33 | 2020-05-11 14:48:08 UTC | #5
te lijniki mialem juz zmienione, podrzucisz jakis link jak przeinstalowac php na 5.6?
logixdev | 2020-05-11 14:58:53 UTC | #6
Jest też opcja, że nie masz któregoś z dodatkowych pakietów PHP wymaganego do poprawnego działania sklepu. Możesz rzucić wcześniej screenem z <?php phpinfo(); ?>. Jak chcesz wrzucić PHP 5.6 i masz Ubuntu 18.04, to ja zawsze instaluję używając repozytorium Ondrej PHP. Wszystkie inne wersje PHP musisz odinstalować lub po prostu wyłączyć. Jeśli korzystasz z Apache2 to sudo a2dismod php7.4
- potem po zainstalowaniu PHP5.6 sudo a2enmod php5.6
i możesz zrobić sudo update-alternatives --set php /usr/bin/php5.6
też.
Żeby zainstalować 5.6, to jeśli masz Apache2 dodajesz repozytorium ppa:ondrej/apache2 komendą sudo add-apt-repository ppa:ondrej/apache2
lub jeśli masz nginx to ppa:ondrej/nginx, czyli komenda sudo add-apt-repository ppa:ondrej/nginx
:slight_smile:
Następnie sudo add-apt-repository ppa:ondrej/php
i dla pewności sudo apt update
;)
I możemy przejść do instalacji PHP w wersji 5.6. Ja zawsze instaluję z dodatkowymi pakietami (m.in. do obsługi PMA i kilka innych, w sumie nie wiem, które są wymagane do poprawnego działania sklepu): sudo apt install php5.6 php5.6-cli php5.6-common php5.6-curl php5.6-gd php5.6-json php5.6-mysql php5.6-xml libapache2-mod-php5.6 php5.6-mcrypt php5.6-mbstring php5.6-zip php5.6-gettext
Thomas33 | 2020-05-11 15:08:44 UTC | #7
teraz to mi zupelnie wyrzucilo stronke
Thomas33 | 2020-05-11 15:40:33 UTC | #8
Pomocy…
logixdev | 2020-05-11 15:58:32 UTC | #9
Sprawdź logi, ja mało korzystam na co dzień z Apache, więc nie jestem w stanie pomóc. Prawdopodobnie coś się popsuło z konfiguracją w trakcie przeinstalowywania, konkretnie coś w linijce ‘ServerName’. Jeśli korzystasz z VirtualHostów, to też tak mogło się stać, ale może ktoś mądrzejszy, na bieżąco korzystający z Apache Ci coś powie. Ja zawsze od razu na czystej maszynie instalowałem 5.6 i nie było problemów wyżej opisaną metodą. ;)
Thomas33 | 2020-05-11 15:59:39 UTC | #10
Dzięki, to poczekam aż ktoś odpowie :confused:
psycho | 2020-05-11 16:05:50 UTC | #11
A co mamy Ci odpowiedzieć bez logów? Nie widzimy logów, jedny błąd jaki widać to “Segmentation Fault”, więc co mamy z tego wywnioskować. Najpierw sprawdziłbym logi, czy może tam nie ma jakichś dodatkowych informacji na ten temat.
system | 2020-06-12 16:05:52 UTC | #12
Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.