php exec crontab не работает - PullRequest
       26

php exec crontab не работает

2 голосов
/ 25 октября 2011

Я пытаюсь на своем локальном сервере CentOS 5.3, когда я пытаюсь выполнить строку ниже в моем php-коде с веб-сервера apache

exec("crontab -l", $output, $arg);  
The $arg reply 127  (command not found code)

Тогда я изменил код ниже

exec("/usr/bin/crontab -l", $output, $arg); 
The $arg reply 126  (Permission problem code)

Вот мое текущее разрешение / usr / bin / crontab -rwsr-sr-x 1 корневой корень 311288 15 марта 2007 г. /usr/bin/crontab.
И нет файлов /etc/cron.allow и /etc/cron.deny.

Я уже выключил Safe_mode в php. Любое предложение, чтобы решить эту проблему?

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

Замечу, что моя проблема связана с selinux. Работает, когда отключаю selinux

echo 0> / selinux / принудительное исполнение

Но я не хочу отключать selinux, есть ли возможность в selinux разрешить crontab из apache?

1 Ответ

1 голос
/ 25 октября 2011
  1. Добавьте / usr / bin к вашей оболочке env path
  2. Добавьте crontab в ту же группу, что и веб-сервер
  3. Попробуйте в php exec ("echo $ PATH")увидеть переменную пути.Вы также можете найти unsetenv и временно отключить его

Вы можете посмотреть подробное описание ошибки в журнале ошибок php, но, как вы сказали, вы знакомы с Linux, я не могу вас научитьуправление правами пользователя.Примечание к переменной env и переменной пути не всегда гарантирует, что переменная env будет экспортирована при запуске программы.Это может быть в случае с вашей проблемой.Это означает, что либо ОС повреждена, либо вам нужно вручную присоединить переменную env к вашей программе.Обходным путем может быть поиск, где оболочка ищет программы, и символическая ссылка на программу.В вашем журнале ошибок кажется, что crontab находится в папке / usr / bin.Также это, кажется, не вопрос программирования.Спросите на server.stackexchange, почему crontab не найден.Например, мой env выглядит следующим образом:

LC_PAPER = de_DE LC_ADDRESS = de_DE LC_MONETARY = de_DE AF_PIDDIR = / tmp / af-piddir UPNP_ROOT = upnpav: // SHELL = / bin / sh TERM = xterm DISABLE_FRC_GATAY_GATEW= / etc / hildon / theme / gtk-2.0 / gtkrc TMPDIR = / var / tmp MMC_SWAP_LOCATION = / media / mmc1 LC_NUMERIC = de_DE MMC_MOUNTPOINT = / media / mmc1 OLDPWD = / root HILDON_FM_OBEX_ROOT = okex_RAPT = obex_RAPT = obex_RAPT = obex_RAPT = obex-af-init / nice-kill-launch-wrapper.sh INTERNAL_MMC_MOUNTPOINT = / home / user / MyDocs OSSO_VERSION = RX-51_2009SE_20.2010.36-2_PR_MR0 USER = root LS_COLORS = нет = 00: fi = 00: di = 00; 36:п = 00; 35: р = 40; 33: так = 01; 35: шд = 40; 32; 00: кд = 40; 32; 00: или = 01; 05; 37; 41: миль = 01; 05;37; 41: ех = 00; 33: .cmd = 00; 32: .exe = 00; 32: .com = 00; 32: .btm = 00; 32: .bat = 00; 32: .sh = 00; 32: .csh = 00; 32: .tar = 00; 31: .tgz = 00; 31: .arj = 00; 31: * +1021 * .taz = 00; 31: * 1 022 * .lzh = 00; 31: * 1 023 * .zip = 00; 31: .z = 00; 31: .Z = 00; 31: .gz = 00; 31: * * .bz2 тысяча двадцать-семь = 00; 31: * 1 028 * .bz = 00; 31: .tz = 00; 31: .rpm = 00; 31: .cpio = 00; 31: * * .jpg тысячи тридцать-два = 00; 35: .gif = 00; 35: * 1 034 * .bmp = 00; 35: * * .xbm тысяча тридцать пять = 00; 35: * * .xpm одна тысяча тридцать шесть = 00;35: .png = 00; 35: .tif = 00; 35: LC_TELEPHONE = de_DE SESSION_BUS_PID_FILE = / tmp / dbus_session_bus.pid.user OSSO_PRODUCT_HARDWARE = ​​Состояния RX-51 STATESAVEDIR = / tmp / omp / omp / ompLAUNCHWRAPPER_NICE_TRYRESTART = / etc / osso-af-init / nice-launch-wrapper-tryrestart.sh OSSO_PRODUCT_FULL_NAME = Nokia N900 OSSO_PRODUCT_RELEASE_FULL_NAME = Maemo 5 / OSSO / MY = USER_NOWE_GERD_RID_RIDbin: / usr / bin: / usr / local / bin: / sbin: / usr / sbin: / usr / local / sbin LC_MESSAGES = de_DE OSSO_PRODUCT_SHORT_NAME = Nokia N900 SESSION_BUS_ADDRESS_FILE = / tmp / session_bus_address.uDW_D_DIF_ID_ID_DIF_ID/ user / MyDocs EDITOR = / usr / bin / nano -w -c LANG = de_DE ERR = 0 LC_MEASUREMENT = de_DE PS1 = [\ 033 [1; 36m] [[\ 033 [0; 36m] \ u \ h [\033 [0; 37 м]: \ w [\ 033 [1; 36 м]] [\ 033 [м] $ [\ 033 [0; 37; 00 м] ILLEGAL_FAT_CHARS = /: *? <> |OSSO_PRODUCT_KEYBOARD = Немецкий AF_DEFINES_SOURCED = 1 SHLVL = 1 HOME = / root SDL_AUDIODRIVER = импульсный OSSO_SWAP = / home / user / MyDocs OSSO_PRODUCT_RELEASE_VERSION = запуск / вступление в должность = 20.2010.36-2.-tryrestart.sh OSSO_PRODUCT_NAME = N900 AF_INIT_DIR = / etc / osso-af-init MMC_DEVICE_FILE = / dev / mmcblk0p1 LOGNAME = корневой DBUS_SESSION_BUS_ADDRESS = unix: абстрактные = / tmp / d00-ru00-d0-v2-init / launch-wrapper.sh OSSO_PRODUCT_WLAN_CHANNEL = fcc / us MAX_FILENAME_LENGTH = 255 DISPLAY =: 0.0 LAUNCHWRAPPER_NICE = / и т.д.= de_DE OSSO_PRODUCT_REGION = Германия _ = / usr / bin / gnu / env

Просто введите в приглашении env.

...