Каждый раз, когда я запускаю свой php скрипт командной строки, прежде чем сценарий на самом деле выведет на экран, php всегда возвращает набор сообщений об ошибках следующим образом:
PHP Warning: PHP Startup: Unable to load dynamic library '/opt/local/lib/php/extensions/no-debug-non-zts-20060613/gd.so' - (null) in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/opt/local/lib/php/extensions/no-debug-non-zts-20060613/mbstring.so' - (null) in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/opt/local/lib/php/extensions/no-debug-non-zts-20060613/mcrypt.so' - (null) in Unknown on line 0
PHP Warning: Module 'memcache' already loaded in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/opt/local/lib/php/extensions/no-debug-non-zts-20060613/mysql.so' - (null) in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/opt/local/lib/php/extensions/no-debug-non-zts-20060613/mysqli.so' - (null) in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/opt/local/lib/php/extensions/no-debug-non-zts-20060613/pdo_mysql.so' - (null) in Unknown on line 0
PHP Warning: Module 'syck' already loaded in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/opt/local/lib/php/extensions/no-debug-non-zts-20060613/zip.so' - (null) in Unknown on line 0
PHP Warning: Module 'xdebug' already loaded in Unknown on line 0
Однако предупреждения, действительно кажется, не мешают моим сценариям работать правильно (хотя это говорит, что определенные библиотеки не могли быть загружены, но я могу все еще использовать их в своих сценариях). Я в настоящее время выполняю php5.2, установленный через macports для Leopard 10.5.7
hidetoshi:bin jeffrey04$ port installed php5
The following ports are currently installed:
php5 @5.2.9_0+apache2+macosx+mysql5+pear+postgresql83
php5 @5.2.9_2+apache2+macosx+mysql5+pear+postgresql83 (active)
php5 @5.3.0_1+apache2+macosx+mysql5+pear+postgresql83
php5 @5.3.0_2+apache2+macosx+mysql5+pear+postgresql83
и я переключаюсь на php5.2 с помощью этого простого сценария оболочки
port deactivate php5 @5.3.0_2+apache2+macosx+mysql5+pear+postgresql83
port activate php5 @5.2.9_2+apache2+macosx+mysql5+pear+postgresql83
port deactivate php5-syck @0.55_2
port activate php5-syck @0.55_1
port deactivate php5-memcache @2.2.5_1
port activate php5-memcache @2.2.5_0
port deactivate php5-xdebug @2.0.5_0
port activate php5-xdebug @2.0.4_0
/opt/local/apache2/bin/apachectl restart
Я делаю что-то не так? Там какой-либо путь состоит в том, чтобы удалить предупреждения, возвращенные во время php инициализации?
Другая мысль - деактивирует все php форты расширений, деактивирование php активирование php затем активирует расширения.
На всякий случай существуют другие зависимости
Я видел подобный вопрос где-нибудь; рекомендовалось сделать все деактивации сначала, затем все активации, в случае, если некоторые модули зависят от других. Так измените свой сценарий на:
port deactivate php5 @5.3.0_2+apache2+macosx+mysql5+pear+postgresql83
port deactivate php5-syck @0.55_2
port deactivate php5-memcache @2.2.5_1
port deactivate php5-xdebug @2.0.5_0
port activate php5 @5.2.9_2+apache2+macosx+mysql5+pear+postgresql83
port activate php5-syck @0.55_1
port activate php5-memcache @2.2.5_0
port activate php5-xdebug @2.0.4_0
/opt/local/apache2/bin/apachectl restart