Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Class "mysqli" not found i Class "OAuth" not found
Forum PHP.pl > Forum > Przedszkole
szczrzcz
Pracuję w projekcie od długiego czasu i w ostatnich dniach napotkałem problemy chyba powiązane ze sobą.

Przy próbie odpalenia testów automatycznych mam fatal error w tej linii : "Fatal error: Uncaught Error: Class "mysqli" not found"
  1. $this->resource = @new mysqli($this->host, $this->login, $this->password, $this->database, $this->port);


A przy odpaleniu skryptu aktualizującego projekt mam: ""Class 'OAuth' not found""

  1. $oAuth = new OAuth(self::$oauthConsumerKey, self::$oauthConsumerSecret, OAUTH_SIG_METHOD_PLAINTEXT);


Obie linijki wyglądają tak samo od lat i obu komendy używam od lat, więc coś w konfiguracji php. Może aktualizacja php na wersję 7.4.28 coś tu namieszała?

Mam dodatki mysqli i php-oauth w php 7.4.28, aczkolwiek w php.ini nie mam nic o OAuth mimo, że komenda php -m pokazuje go na liście. O mysqli coś tam jest:

nospor
te testy odpalasz w konsoli jak rozumiem? Konsola korzysta z innego php.ini w ktorym mysqli moze nie by aktywowany
szczrzcz
Kurcze faktycznie coś jest na rzeczy. phpinfo() w projekcie pokazuje wersję 7.4.28 a php -v 8.1.3. Chiałbym zostać przy 7.4, czy powinienem deaktywować tą komendą sudo a2dismod?


  1. $ sudo update-alternatives --config php
  2. There are 4 choices for the alternative php (providing /usr/bin/php).
  3.  
  4. Selection Path Priority Status
  5. ------------------------------------------------------------
  6. * 0 /usr/bin/php8.1 81 auto mode
  7. 1 /usr/bin/php7.2 72 manual mode
  8. 2 /usr/bin/php7.4 74 manual mode
  9. 3 /usr/bin/php8.0 80 manual mode
  10. 4 /usr/bin/php8.1 81 manual mode


ps. jak to możliwe że w projekcie mam 7.4 a php -v pokazuje 8.1.3?
viking
To co jest przypięte do hosta np przez php-fpm, to zupełnie co innego niż php uruchamiany z cli. Albo wskaż konkretną wersję wywołując cli (/usr/bin/php7.4) i ustaw dla niej odpowiednie php.ini.
szczrzcz
zmieniłem na wersję 7.4.28, już nie mam fatala z mysqli przy skrypcie aktualizującym projekt,

ale nadal mam ten Error : Class 'OAuth' not found przy testach automatycznych, ale teraz widzę, że nie mam oauth na liscie php -m (wcześniej był).


edit:
Więc zainstalowałem OAuth ale nadal php-m nie pokazuje go na liscie

  1. :~$ sudo apt-get install -y php-oauth
  2. Reading package lists... Done
  3. Building dependency tree
  4. Reading state information... Done
  5. php-oauth is already the newest version (2.0.7+1.2.3-14+ubuntu18.04.1+deb.sury.org+10).
  6. The following packages were automatically installed and are no longer required:
  7. libicu60:i386 libllvm9 libllvm9:i386 libssl-doc php7.2-bcmath php8.0-bcmath
  8. php8.0-gd php8.0-oauth php8.0-phpdbg php8.0-xdebug pkg-php-tools shim shtool
  9. Use 'sudo apt autoremove' to remove them.
  10. 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
  11.  
  12. :~$ php -m
  13. [PHP Modules]
  14. bcmath
  15. bz2
  16. calendar
  17. Core
  18. ctype
  19. curl
  20. dom
  21. exif
  22. FFI
  23. fileinfo
  24. filter
  25. ftp
  26. gd
  27. gettext
  28. hash
  29. iconv
  30. imagick
  31. json
  32. libxml
  33. mbstring
  34. mysqli
  35. mysqlnd
  36. openssl
  37. pcntl
  38. pcre
  39. PDO
  40. pdo_mysql
  41. Phar
  42. posix
  43. readline
  44. Reflection
  45. session
  46. shmop
  47. SimpleXML
  48. sockets
  49. sodium
  50. SPL
  51. standard
  52. sysvmsg
  53. sysvsem
  54. sysvshm
  55. tokenizer
  56. xdebug
  57. xml
  58. xmlreader
  59. xmlwriter
  60. xsl
  61. Zend OPcache
  62. zip
  63. zlib
  64.  
  65. [Zend Modules]
  66. Xdebug
  67. Zend OPcache
  68.  
viking
No tak, ale instalujesz dla wersji 8.0 chyba patrząc po pakietach, a korzystasz z 7.4. Pewnie coś w stylu sudo apt-get install -y php7.4-oauth
szczrzcz
dziękuję, udało się, tak jak napisałeś
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.