ryg

Не удается открыть внешнее приложение средствами php

12 сообщений / 0 новое
Последнее сообщение
sergey
Не удается открыть внешнее приложение средствами php

Приветствую!

Помогите, пожалуйста, разобраться почему не выполняется команда запуска приложения средствами php.

В php файле одна единственная строка<?php shell_exec("/usr/bin/open -a /Applications/TextEdit.app"); ?>

При обращении к этому файлу через браузер, сервер сообщает об ошибке:

Oct 17 13:19:10 stream-server-mac-m.local open[45081]: spawn_via_launchd() failed, errno=1 label=[0x0-0xa10a1].com.apple.TextEdit path=/Applications/TextEdit.app/Contents/MacOS/TextEdit flags=0

Если задать эту команду (/usr/bin/open -a /Applications/TextEdit.app) в Terminal, то приложение запускается без каких-либо проблем

Система  OS X Server Yosemite 10.10.1 PHP Version 5.5.14

Сергей

vago
Аватар пользователя vago
Получил аналогичную ошибку.

Получил аналогичную ошибку. Но сейчас разбираться некогда. Часа через два поковыряюсь. Наиболее вероятно что речь идет о правах

vago
Аватар пользователя vago
Как и предполагал проблема

Как и предполагал проблема кроется в правах. Apache работает от пользователя с именем _www, у которого нет прав на запуск данного файла. Поменять права нельзя так как работает новая гадость под названием SIP (http://osxh.ru/elcappitan/sip), поэтому необходимо менять пользователя apache

В файле 

/etc/httpd.con

Ищем строки

User _www
Group _www

Их под комментарий и делаем аналогичные строки под своим именем и именем группы. Свое имя и име группы можно посмотреть с помощью команды bash 

id

Потом перезапуск apache и все работает.

sergey
как может еще называться этот файл?

поскольку я не могу его найти ни в ручную, открыв contents приложения SERVER, ни через терминал используя find /etc/httpd.con

sergey
как может еще называться этот файл?

поскольку я не могу его найти ни в ручную, открыв contents приложения SERVER, ни через терминал используя find /etc/httpd.con

sergey
У меня этот файл называется по-другому

/Library/Server/Web/Config/apache2/httpd_server_app.conf

в нем есть необходимые строки

 

 

User _www Group _www

Просто в редакторе textedit его не изменить. Как правильно внести в него изменения?

 

vago
Аватар пользователя vago
Два варианта: или с помощью 

Два варианта: или с помощью 

sudo nano /Library/Server/Web/Config/apache2/httpd_server_app.conf

Или скопировать данный файл в папку пользователя, отредактировать и скопировать обратно.

Стоп, а Вы что apache отдельно ставили? Через MAMP или как-то еще? 

sergey
Нет, apache отдельно не ставил

на систему  Yosemite 10.10.1 поставил приложение Server за 20 долл из appstore

sergey
Напишите, пожалуйста,  для

Напишите, пожалуйста,  для моего случая, что должно быть написано вместо этих двух строк (User и Group)

Команда ID дала следующий ответ

uid=501(serey) gid=20(staff) groups=20(staff),701(com.apple.sharepoint.group.1),702(com.apple.sharepoint.group.2),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),703(com.apple.sharepoint.group.3),33(_appstore),100(_lpoperator),204(_developer),398(com.apple.access_screensharing-disabled),399(com.apple.access_ssh)

Правильно ли я понимаю, что закомментировать строки это поставить перед ними знак решетки #?

...

Может кому будет полезен ответ на мой же предыдущий вопрос, как внести в системный файл

Ответ. В терминале написать sudo nano /Library/Server/Web/Config/apache2/httpd_server_app.conf

После ввода пароля попадаешь в текстовый редактор

vago
Аватар пользователя vago
#User _www
#User _www #Group _www User serey Group staff

 

В Вашем случае вот так

 

 

sergey
Правильно ли я указал User и Group

Я написал так:

# User _www

# Group _www

User sergey

Group staff

vago
Аватар пользователя vago
и перезапустить apache

и перезапустить apache

sudo apachectl restart