Привет, я пытаюсь выполнить php-файл из сценария bash
#!/bin/sh php ./func.php
и файл func.php
выглядит так:
<?php echo "php file";
И как вывод PHP Warning: Module 'apc' already loaded in Unknown on line 0
EDIT: И, может быть, U может также сказать мне, как передать параметр в файл php?
Ошибка в Unknown on line 0
означает, что ваша конфигурация неисправна (это не имеет никакого отношения к bash – прямое выполнение программы должно давать одно и то же сообщение).
В вашем случае у вас есть два экземпляра extension=apc.so
в вашей конфигурации php. Используйте grep apc.so /etc/php5/cli/ -r
чтобы найти их.
Эта ошибка связана с вашей конфигурацией PHP, а не с вашим кодом.
Это можно исправить в php.ini
, проверьте этот поток: http://blog.ciuly.com/my-server/php-warning-module-apc-already-loaded-in-unknown-on-line-0/ ,
Узнайте, какой php.ini
используется в режиме CLI:
php --info
и проверьте содержимое этого php.ini
для двойного объявления extension=apc.so
Все ответы выше намекали на то, что происходит, но это был факт, что был загружен отдельный файл apc, поэтому просто grepping для «extension = apc.so» не выявил проблему.
php --info | grep -i apc PHP Warning: Module 'apc' already loaded in Unknown on line 0 Additional .ini files parsed => /etc/php5/cli/conf.d/apc.ini
Так как модуль загружался, вам просто нужно удалить «extension = apc.so» из ваших конфигураций apache и cli php.ini.
В моем случае (на Ubuntu, на основе Linux на основе Debian) у меня было две копии apc.ini
в /etc/php5/conf.d/
. У меня был тот, который я поставил там, когда я впервые установил apc. Я также нашел символическую ссылку из /etc/php5/conf.d/20-apc.ini
на ../mods-available/apc.ini
.
Похоже, что некоторое обновление php позволило этому модулю «Debian way» (с символической ссылкой). Я удалил свою копию apc.ini, и теперь я просто использую тот, который символически связан с mods-available
.
Копаем дальше, есть программы командной строки, которые должны использоваться для включения и отключения модулей PHP под Ubuntu и Debian. Вот команды для включения и отключения APC:
sudo /usr/sbin/php5enmod apc # Creates the symlink in /etc/php5/conf.d that enables APC sudo /usr/sbin/php5dismod apc # Deletes the symlink in /etc/php5/conf.d that disables APC