На Ubuntu 18.04 все работало (рнр 7.2.7): $info = mime_content_type($file->getPathname();
Перенес программу на OpenSUSE 15 (PHP 7.2.5) и началось...(весь день убил).
Call to undefined function mime_content_type() - Как ее включить - ЭТО ПЕРВЫЙ ВОПРОС.
Хотя в phpinfo() показывает, что есть mod_mime и mod_mime_magic.
(пробовал их дергать через aenmod - без mod_mime не запускается апачи, значит меня слушается) - не понимаю, почему же undefined (инет переполнен подобными вопросьбами).
Ладно.. в убунту в phpinfo() есть fileinfo, а в опенсусе нет! (видимо какой болван скомпилировал с ключом БЭЗ поддержки fileinfo? А как же смотреть свойства файла то?!)
Так и не понял какая из этих функций устарела, а какая должна входить в дистрибутив:
qaru.site/questions/485889/mimecontenttype-functio...
Вот на эту ссылку все посылают, типа здесь написано КАК инсталлировать:
php.net/manual/ru/fileinfo.installation.php
Видимо убрали описание инсталляции, раз входит в пакет.
Пытался поставить fileinfo - не выходит. Как ее включить\поставить - ЭТО ВТОРОЙ ВОПРОС.
(инет переполнен подобными просьбами, но виндоусятники отвечают: Для пользователей винды откройте дллку. А насчет линукса промалчивают, ибо нет такой системы. Но я и без них знаю, что extension=fileinfo.so нужно раскомментить в рнр.ини (и это не поможет, ибо нужно установить пакет, но тогда этот коммент не повлияет - проверял уже на убунте, например на mb_string))
#pecl install fileinfo
WARNING: "pear/Fileinfo" is deprecated in favor of "channel://php-src/ext/fileinfo/in php sources"
я так понял что это нечто устаревшее...
WARNING: channel "pear.php.net" has updated its protocols, use "pecl channel-update pear.php.net" to update
downloading Fileinfo-1.0.4.tar ...
Starting to download Fileinfo-1.0.4.tar (24,064 bytes)
........done: 24,064 bytes
3 source files, building
running: phpize
Cannot find config.m4.
Make sure that you run '/usr/bin/phpize' in the top level source directory of the module
ERROR: `phpize' failed
Ладно, пытаюсь отдельно найти:
# zypper in fileinfo
Loading repository data...
Reading installed packages...
'fileinfo' not found in package names. Trying capabilities.
No provider of 'fileinfo' found. (ПОЧЕМУ?! Fileinfo это плохо? Это устарело? Это не нужно?)
#PHP --version
PHP Version => 7.2.5
System => Linux opensuse 4.12.14-lp150.11-default #1 SMP Fri May 11 08:28:30 UTC 2018 (a9fee09) x86_64
Additional .ini files parsed => /etc/php7/conf.d/ctype.ini,
/etc/php7/conf.d/dom.ini,
/etc/php7/conf.d/iconv.ini,
/etc/php7/conf.d/json.ini,
/etc/php7/conf.d/mbstring.ini,
/etc/php7/conf.d/mysqli.ini,
/etc/php7/conf.d/pdo.ini,
/etc/php7/conf.d/pdo_mysql.ini,
/etc/php7/conf.d/pdo_sqlite.ini,
/etc/php7/conf.d/sqlite3.ini,
/etc/php7/conf.d/tokenizer.ini,
/etc/php7/conf.d/xmlreader.ini,
/etc/php7/conf.d/xmlwriter.ini,
/etc/php7/conf.d/zlib.ini
Тут рекомендуют скачать:
ruphp.com/ext-fileinfo-x4.html
# wget
pecl.php.net/get/Fileinfo-1.0.4.tgz
Скачал!
#tar -zxf Fileinfo-1.0.4.tgz
#cd Fileinfo-1.0.4
# phpize
#./configure
checking for magic files in default path... not found
configure: error: Please reinstall the libmagic distribution
#zypper in libmagic
Loading repository data...
Reading installed packages...
'libmagic' not found
#zypper in file-devel (это было невозможно догадаться! ушли еще часы поиска по говносайтам)
#./configure
#make
..Fileinfo-1.0.4/fileinfo.c:159:32: error: unknown type name ‘zend_rsrc_list_entry’; did you mean ‘zend_rsrc_list_dtors_entry’?
и еще сто ошибок, как и всегда в линуксах, кроме пожалуй убунту.
прочитал десятки советов типа:
https://nagg.ru/2012/04/resheno-php-warning-finfo_...
В общем то можно наверное снести дистрибутив рнр и установить самому, но у заказчика нет инета и закрыты юсб, так что я пока на своем компе пытаю этот дистр.