Логотип   Простое и понятное управление
  Уникальные возможности по настройке
  Open Server скачали уже 1 021 073 раза!

Форум

Добро пожаловать, Гость!

PHP CLI path, exec, safe_mode is off

Вопросы по работе с Apache, Nginx, PHP, MySQL, Sendmail и т.д.
Аватара пользователя
Dragon_Knight
Сообщения: 581
C нами: 4 года 2 мес
Контакты:

Непрочитанное сообщение Dragon_Knight » 26 май 2014, 18:33

Я даю такие советы, потому что этот вопрос равносилен вопросу: "Народ, я забыл как дышать, напомните плис.", ибо что бы это понять, особо умом блистать не нужно.

Что касается пустой строчки, в установщике я думаю стоит проверка на заполнение или того хуже поиск по указанному пути какого-то файла от PHP, и поэтому пустая строка не прокатит.

Аватара пользователя
Максим
Сообщения: 4877
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 26 май 2014, 18:35

Dragon_Knight писал(а):в установщике я думаю стоит проверка на заполнение или того хуже поиск по указанному пути какого-то файла от PHP, и поэтому пустая строка не прокатит.


Согласен, возможно и такое. Хреновый значит установщик :mrgreen:

CheF85
Сообщения: 7
C нами: 2 года 6 мес

Непрочитанное сообщение CheF85 » 28 май 2014, 11:28

Пробовал определять путь и тем и другим способом, но покопавшись в коде модуля выяснил что написанная команда для exec не делает того что нужно:
function background(){
   // Load hwdMediaShare config
   $hwdms = hwdMediaShareFactory::getInstance();
   $config = $hwdms->getConfig();
   $result = false;
   // Delete test file is already exists
   jimport( 'joomla.filesystem.file' );
   $filename = JPATH_SITE.'/tmp/hwdms.background';
   if (JFile::exists($filename)) JFile::delete($filename);
   $cli = JPATH_SITE.'/administrator/components/com_hwdmediashare/cli.php';
   // Try to create test file in background
   if(substr(PHP_OS, 0, 3) != "WIN"){
      exec("env -i ".$config->get('path_php')." $cli test &>/dev/null &");
   }
   else{
         exec($config->get('path_php')." $cli test NUL");
   }
   // Sleep for 2 seconds
      usleep(1000000);
   // Check if file exists
   if (JFile::exists($filename)){
      JFile::delete($filename);
      $result = true;
   } 

Судя по коду, проверка будет пройдена только в том случае, если будет существовать файл, который создаётся (в моём случае, т.е. substr(PHP_OS, 0, 3) = "WIN" ), командой exec($config->get('path_php')." $cli test NUL"), где path_php и есть тот самый путь к php-cli, но судя по этой команде, файл она не создаёт :(
Так что прошу прощения за беспокойство.

Аватара пользователя
Максим
Сообщения: 4877
C нами: 5 лет 11 мес
Контакты:

Непрочитанное сообщение Максим » 28 май 2014, 11:32

Строку exec($config->get('path_php')." $cli test NUL"); перепишите в
exec("php.exe $cli test NUL");
либо попробуйте указать во время установки такой путь к php:
php.exe


Вернуться в «Модули и инструменты»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость