php exec crontab不工作

php exec crontab不工作,php,permissions,cron,exec,crontab,Php,Permissions,Cron,Exec,Crontab,我尝试在本地CentOS 5.3服务器上执行apache webserver中php代码的以下行 exec("crontab -l", $output, $arg); The $arg reply 127 (command not found code) exec(“crontab-l”,$output,$arg); $arg reply 127(未找到命令代码) 然后我改变了下面的代码 exec("/usr/bin/crontab -l", $output, $arg); The $a

我尝试在本地CentOS 5.3服务器上执行apache webserver中php代码的以下行

exec("crontab -l", $output, $arg); The $arg reply 127 (command not found code) exec(“crontab-l”,$output,$arg); $arg reply 127(未找到命令代码) 然后我改变了下面的代码

exec("/usr/bin/crontab -l", $output, $arg); The $arg reply 126 (Permission problem code) exec(“/usr/bin/crontab-l”,$output,$arg); $arg回复126(权限问题代码) 这是我目前的许可证 /usr/bin/crontab-rwsr-sr-x 1根根目录311288 2007年3月15日/usr/bin/crontab.
并且没有/etc/cron.allow和/etc/cron.deny文件

我已经在php中关闭了
安全模式
。有什么解决这个问题的建议吗

////////////////////////////////////////////////////////////////////////////////

我注意到我的问题与selinux有关。 当我禁用selinux时,它正在工作

echo 0>/selinux/exforce

但我不想禁用selinux,selinux中是否有允许来自apache的crontab的选项

  • 将/usr/bin添加到shell环境路径
  • 将crontab添加到与Web服务器相同的组中
  • 尝试在php exec(“echo$PATH”)中查看PATH变量。您还可以查找unsetenv并暂时禁用它
  • 您可以在php错误日志中查找错误的详细描述,但正如您所说的您熟悉Linux,我无法教您有关用户权限管理的知识。env变量和path变量的注释运行程序时,并不总是确保导出env变量。你的问题可能就是这样。这意味着要么操作系统已损坏,要么必须手动将env变量附加到程序。一种解决方法是查看shell在哪里查找程序并将程序符号化。在错误日志中,crontab似乎位于/usr/bin文件夹中。而且这似乎不是一个编程问题。在server.stackexchange上询问为什么找不到crontab。例如,“我的环境”如下所示:

    LC_PAPER=de_de LC_地址=de_de LC_MONETARY=de_de AF_PIDDIR=/tmp/AF PIDDIR UPNP_根=upnpav:// SHELL=/bin/sh 术语=xterm 禁用\u网关=1 GTK2_RC_FILES=/etc/hildon/theme/gtk-2.0/gtkrc TMPDIR=/var/tmp MMC\u交换\u位置=/media/mmc1 LC_NUMERIC=de_de MMC_挂载点=/media/mmc1 OLDPWD=/root HILDON\u FM\u OBEX\u ROOT=OBEX:// LAUNCHWRAPPER\u NICE\u KILL=/etc/osso af init/NICE-KILL-launch-wrapper.sh 内部安装点=/home/user/MyDocs OSSO_版本=RX-51_2009 SE_20.2010.36-2_PR_MR0 用户=根 LS_颜色=no=00:fi=00:di=00;36:ln=00;35:pi=40;33:so=01;35:bd=40;32;00:cd=40;32;00:or=01;05;37;41:mi=01;05;37;41:ex=00;33:.cmd=00;32:.exe=00;32:.com=00;32:btm=00;32:bat=00;32:sh=00;32:.csh=00;32:.焦油=00;31:tgz=00;31:arj=00;31:.taz=00;31:lzh=00;31:.zip=00;31:z=00;31:Z=00;31:gz=00;31:.bz2=00;31:.bz=00;31:tz=00;31:rpm=00;31:。cpio=00;31:.jpg=00;35:.gif=00;35:bmp=00;35:.xbm=00;35:.xpm=00;35:.png=00;35:.tif=00;35: 电话 SESSION_BUS_PID_FILE=/tmp/dbus_SESSION_BUS.PID.user OSSO_产品_硬件=RX-51 STATESAVEDIR=/tmp/osso appl states LAUNCHWRAPPER\u NICE\u TRYRESTART=/etc/osso af init/NICE-launch-wrapper-TRYRESTART.sh OSSO_产品全名=诺基亚N900 OSSO_产品_发布_全名=Maemo 5 OSSO_产品_发布_名称=Maemo 5 MYDOCSDIR=/home/user/MyDocs 路径=/usr/bin/gnu:/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin:/usr/local/sbin LC_MESSAGES=de_de OSSO_PRODUCT_SHORT_NAME=诺基亚N900 会话总线地址文件=/tmp/SESSION总线地址.user LC_IDENTIFICATION=de_de PWD=/home/user/MyDocs 编辑器=/usr/bin/nano-w-c 朗德 误差=0 LC_测量=de_de PS1=[\033[1;36m][\033[0;36m]\u\h[\033[0;37m]:\w[\033[1;36m][\033[m]$[\033[0;37;00m] 非法的字符=/:*| OSSO_产品_键盘=德语 AF_定义_=1 SHLVL=1 HOME=/root SDL_音频驱动器=脉冲 OSSO_SWAP=/home/user/MyDocs OSSO_产品发布版本=20.2010.36-2 LS_选项=--颜色 LAUNCHWRAPPER_TRYRESTART=/etc/osso af init/launch-wrapper-TRYRESTART.sh OSSO_产品_名称=N900 AF_INIT_DIR=/etc/osso AF INIT MMC\u设备\u文件=/dev/mmcblk0p1 LOGNAME=root DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/DBUS-eCbOI2qrVP,guid=cd1dea104334a338a9007b97000014 LAUNCHWRAPPER=/etc/osso af init/launch-wrapper.sh OSSO_产品_WLAN_信道=fcc/us 最大文件名长度=255 显示=:0.0 LAUNCHWRAPPER_NICE=/etc/osso af init/NICE-launch-wrapper.sh LC_TIME=de_de 内部\u MMC\u交换\u位置=/home/user/MyDocs LC_NAME=de_de OSSO_产品_地区=德国 _=/usr/bin/gnu/env

    只需在提示符中键入env

  • 将/usr/bin添加到shell环境路径
  • 将crontab添加到与Web服务器相同的组中
  • 尝试在php exec(“echo$PATH”)中查看PATH变量。您还可以查找unsetenv并暂时禁用它
  • 您可以在php错误日志中查找错误的详细描述,但正如您所说,您熟悉Linux,我无法教您有关用户权限管理的知识。请注意env变量和path变量。运行程序时并不总是确保导出env变量。这可能是您的问题所在。这意味着操作系统已损坏,或者您必须手动将env变量附加到您的程序。一种解决方法是查看shell在何处查找程序并将程序符号化。在错误日志中,crontab似乎位于/usr/bin文件夹中。此外,这似乎不是一个编程问题。请在server.stackexchange上询问为什么找不到crontab。有关示例my env如下所示:

    LC_PAPER=de_de LC_地址=de_de LC_MONETARY=de_de AF_PIDDIR=/tmp/AF PIDDIR UPNP_根=upnpav:// SHELL=/bin/sh 术语=xterm 禁用\u网关=1 GTK2_RC_FILES=/etc/hildon/theme/gtk-2.0/gtkrc TMPDIR=/var/tmp MMC\u交换\u位置=/media/mmc1 LC_NUMERIC=de_de MMC_挂载点=/media/mmc1 OLDPWD=/root HILDON\u FM\u OBEX\u ROOT=OBEX:// LAUNCHWRAPPER\u NICE\u KILL=/etc/osso af init/NICE-KILL-launch-wrapper.sh 内部安装点=/home/user/MyDocs OSSO_版本=RX-51_2009 SE_20.2010.36-2_PR_MR0 用户=根 LS_COLORS=no=00:fi=00:di=00;36:ln=00;35:pi=40;33:so=01;35:bd=40;32;00:cd=40;32;00:or=01;05;37;41:mi=01;05;37;41:ex=00;33:cmd=00;32:exe=00;32:com=00;32:btm=00;32:bat=00;32:sh=00;3