Napisany przez: Neutral 1.05.2018, 14:35:13
Sprawdź w katalogu, czy masz zainstalowaną tę bibliotekę z rozszerzeniem najprawdopodobniej ".dll". Jeśli nie masz to doinstaluj. Sprawdź też path, jeśli jesteś pod Windows. Możliwe, że podczas instalacji coś się nie powiodło, sprawdź w logach. Jeśli nie chcesz się w to "bawić", to możesz zainstalować gotowy pakiet, np. XAMPP. Lepiej jednak by było zainstalować to ręcznie od nowa. Mogło zdarzyć się też tak, że DLL'ka z PHP 5 nadpisuje DLL'kę z PHP 7, czy coś takiego. Chyba coś ci koliduje na serverze.
Napisany przez: Kshyhoo 1.05.2018, 15:20:31
Mam zainstalowany AppServ 8.6.0 i w obu folderach (5 i 7) są biblioteki tych rozszerzeń. Zanim napisałem posta, wszystko sprawdziłem i przeszukałem Google. Zrestartowałem serwer a potem i system i nadal nie widzi...
Napisany przez: trueblue 1.05.2018, 15:25:14
A phpinfo() widać to rozszerzenie?
Napisany przez: Kshyhoo 1.05.2018, 15:32:58
Tak, obydwa.
if (function_exists('exif_imagetype')) {
http://www.php.net/echo "Tak";
} else {
http://www.php.net/echo "Nie";
}
Pokazuje nie...
Napisany przez: Neutral 2.05.2018, 00:29:08
Dodaj może zmienne środowiskowe do tego PHP 7 i jeszcze możesz wyrzucić chwilowo zmienną środowiskową PHP 5. Teraz właśnie zauważyłem, że to już pisałem w poście wyżej z tym path, chodziło mi właśnie o te zmienne środowiskowe, może pod Linuxem jest coś podobnego. Wejdź w:
Panel sterowania\System i zabezpieczenia\System -> Zaawanansowane ustawienia systemu (Właściwości systemu) -> Zaawansowane -> Zmienne środowiskowe -> Path
i dodaj ścieżkę do tego katalogu z PHP 7.
Co do sprawdzania, czy masz zainstalowane te rozszerzenie to wystarczy wykonać to:
http://www.php.net/var_dump(function_exists('exif_imagetype')); // => bool(false)/bool(true)
Jeśli zwróci false, to znaczy, że tego nie masz.
Napisany przez: Kshyhoo 2.05.2018, 05:46:31
Mam bool(false), co wydaje się dziwne, bo nie działa zarówno pod PHP5 jak i pod PHP7. W katalogach biblioteki są, w php.ini odkomentowane, i phpinfo.php je widzi.
Co do Path:
Cytat
C:\AppServ\Apache2.2\bin
C:\AppServ\php5
C:\AppServ\MySQL\bin
C:\AppServ\Apache24\bin
Może problemem była podwójna ścieżka do Apacha, do jego starej wersji... Po restarcie sprawdzę.
Napisany przez: Neutral 2.05.2018, 10:35:03
Kod
;extension=php_ldap.dll
extension=php_mbstring.dll
extension=php_exif.dll; Must be after mbstring as it depends on it
extension=php_mysqli.dll
;extension=php_oci8_12c.dll; Use with Oracle Database 12c Instant Client
U mnie pisze w komentarzu, że php_exif.dll korzysta z DLL'ki php_mbstring.dll, jeśli dobrze zrozumiałem, więc najprawdopodobniej ta DLL'ka powinna znaleźć się pod tamtą DLL'ką (w takiej kolejności jak ja mam).
http://php.net/manual/en/configuration.changes.php
https://superuser.com/questions/773173/how-to-change-path-of-php-ini-windows
Kod
;(...)
engine=On
;(...)
short_open_tag=Off
;(...)
zlib.output_compression=Off
;(...)
implicit_flush=Off
;(...)
unserialize_callback_func=
;(...)
serialize_precision=17
;(...)
disable_functions=
;(...)
disable_classes=
;(...)
zend.enable_gc=On
;(...)
expose_php=On
;(...)
variables_order="GPCS"
;(...)
request_order="GP"
;(...)
register_argc_argv=Off
;(...)
auto_globals_jit=On
;(...)
include_path=C:\xampp\php\PEAR
;(...)
doc_root=
;(...)
user_dir=
;(...)
extension_dir="C:\xampp\php\ext"
;(...)
enable_dl=Off
;(...)
safe_mode_allowed_env_vars=PHP_
safe_mode_protected_env_vars=LD_LIBRARY_PATH
;(...)
Nie napisałeś, czy używasz Linux'a, czy Windows'a.
Kod
; UNIX: "/path1:/path2"
;(...)
; Windows: "\path1;\path2"
;(...) - Oznacza, że zamiast tego u mnie w pliku php.ini są komentarze albo jakieś instrukcje (konfiguracja).
Sprawdź, czy DLL'ka php_exif.dll znajduje się w odpowiednim katalogu, do którego linkujesz, to znaczy sprawdź tę ścieżkę, żeby konfigurator, czy coś takiego widział, że ma pobierać/brać instrukcję z tej DLL'ki. U mnie to jest w:
C:\xampp\php\ext
Zapodam screen'a.
Aha, sprawdź też, czy DLL'ka php_exif.dll nie jest pusta, u mnie waży 48KB.
http://php.net/manual/en/ini.core.php#ini.extension-dir
http://php.net/manual/en/function.getenv.php
Cytat z mojego php.ini:
Cytat
; If you only provide the name of the extension, PHP will look for it in its
; default extension directory.
;
; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5+)
; extension folders as well as the separate PECL DLL download (PHP 5+).
; Be sure to appropriately set the extension_dir directive.
https://www.elektroda.pl/rtvforum/topic1982499.html
Może dodaj taką ścieżkę w tym Path:
C:\AppServ
A tamte chwilowo wyrzuć, skopiuj je z path i wklej np. do notatnika. Jeśli samo C:\AppServ pomogło, to już ich spowrotem nie wklejaj tam.
Napisany przez: Kshyhoo 2.05.2018, 18:30:12
Mam Windows 10. Całą resztę opisałem w poprzednich postach. Sprawdziłem całą konfigurację i mam tak jak powinno być a nie działa. Spróbuję ponownie zainstalować serwer albo sprawdzę na innych kompach.