繁体   English   中英

从bash执行php脚本时出错

[英]Error while executing php script from 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文件?

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

在您的情况下,您的php配置中有两个extension=apc.so实例。 使用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/

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

php --info

并检查该php.ini的内容以获得extension=apc.so的双重声明

上面的所有答案都暗示了正在发生的事情,但事实上有一个单独的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”。

就我而言(在Ubuntu上,基于Debian的Linux变体),我在/etc/php5/conf.d/有两个apc.ini副本。 当我第一次安装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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM