从bash执行php脚本时出错

时间:2012-01-02 11:47:22

标签: php bash

您好我试图从bash脚本执行php文件

#!/bin/sh

php ./func.php

func.php文件看起来像

<?php

echo "php file";

并作为输出 PHP Warning: Module 'apc' already loaded in Unknown on line 0

编辑: 也许你也可以告诉我如何将参数传递给php文件??

5 个答案:

答案 0 :(得分:8)

Unknown on line 0中的错误意味着您的配置有缺陷(这与bash无关 - 直接运行该程序应该产生相同的消息)。

在您的情况下,您的php配置中有两个extension=apc.so实例。使用 grep apc.so /etc/php5/cli/ -r找到这些。

答案 1 :(得分:3)

此错误与您的PHP配置有关,而与您的代码无关。

这可以在您的php.ini中修复,请查看此主题:http://blog.ciuly.com/my-server/php-warning-module-apc-already-loaded-in-unknown-on-line-0/

答案 2 :(得分:2)

找出CLI模式中使用的php.ini

php --info

并检查php.ini的内容,以获得extension=apc.so

的双重声明

答案 3 :(得分:1)

上面的所有答案都暗示了正在发生的事情,但事实上正在加载一个单独的apc文件,因此只需点击“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

因此,自从加载模块以来,您只需要从apache和cli php.ini配置中删除“extension = apc.so”。

答案 4 :(得分:0)

就我而言(在Ubuntu上,基于Debian的Linux版本),我在apc.ini中有两份/etc/php5/conf.d/。当我第一次安装apc时,我有一个放在那里的东西。我还找到了从/etc/php5/conf.d/20-apc.ini../mods-available/apc.ini的符号链接。

看来php的一些升级,启用了这个模块的“Debian方式”(带符号链接)。我删除了我的apc.ini副本,现在我正在使用符号链接到mods-available的那个。

进一步说,有一些命令行程序应该用于在Ubuntu和Debian下启用和禁用PHP模块。以下是启用和禁用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