Получение информации списка, содержащего сотен имен из файла GTF

КРАТКИЙ ответ: Я только что установил новейшую версию PHP в свою систему.

Ответ LONG (и вся боль, которую я испытал на этом пути):
Я постоянно получал ошибку при запуске crontab, в которой говорилось, что определенный класс, который я созданный в моем скрипте - SoapClient - не был найден. Моя функция автозагрузки тоже не нашла ее; следовательно, как показано в OP, я получал следующую ошибку:

Fatal error: require_once(): 
Failed opening required '/path/to/includes/initialize.php' 
(include_path='.:') in /path/to/my/script.php on line 3

Была еще одна похожая ошибка, которую я получал вот так, и я обнаружил, что проблема заключалась в том, что в старой версии php не было включено расширение SOAP, и когда функция автозагрузки начала его искать, она проверила файл установки php php.ini на наличие строки: include_path и проверила каталоги в них, чтобы найти класс SOAP, который я пытался включать. Когда не удалось найти класс, возникла фатальная ошибка. Примечание : ( include_path в вашем файле php.ini работает аналогично переменной $ PATH в вашей среде Unix).

Я использовал команду locate php.ini и немного интуиции и обнаружил, что файл php.ini моей системы находится по адресу /private/etc/php.ini.default . Здесь находился старый файл php.ini - для версии php 5.2.Дело в том, что мыло просто не было включено, и поэтому параметр include_path моего файла php.ini не находил свое местоположение.

Итак, я загрузил PHP 5.4.4 и выполнил следующие команды:

$ ./configure --enable-soap --with-mysql
$ make
$ make install

Установка была произведена в / usr / local / bin . Однако установка root php находилась в / usr / bin , поэтому я выполнил следующую команду, чтобы переместить все содержимое / usr / local / bin в / usr / bin , чтобы перезаписать старую версию php:

$ sudo cp -Rvf /usr/local/bin/ /usr/bin

Я указываю:
-R для копирования ВСЕХ файлов в иерархии / usr / local / bin / , ] -v , чтобы просто отобразить выходное сообщение, в котором указывается, какие файлы перемещаются по мере выполнения процесса, и -f , что позволяет мне перезаписывать соответствующие файлы в / usr / bin по желанию.

После того, как я перезаписал старую версию PHP новой версией, новый файл php.ini располагался в другом месте. Но где? Я выполнил это, чтобы узнать:

$ php -i | grep -i "configuration file"
  Configuration File (php.ini) Path => /usr/local/lib
  Loaded Configuration File => /usr/local/lib/php.ini

После внесения соответствующих изменений я перезаписал файл /private/etc/php.ini.default новым файлом php.ini, который пришел с моей установкой php 5.4.4.

Альт. Задание cron работает, и мне вообще не нужно было указывать другой путь php. Ваше здоровье!

0
02.10.2018, 20:56
1 ответ

Если у вас есть один файл с кратким списком данных, для которых вам нужны подробности, вы можете сделать простой grep. Скажем, например, что ваш список всех данных находится в файле с именем needles.list, а ваша коллекция данных — в файле с именем haystack.gtf. Затем вы можете:

$ grep -f needles.list haystack.gtf
0
28.01.2020, 02:42

Теги

Похожие вопросы