2015-02-11 4 views
0

Good Afternoon, В настоящее время я работаю над проектом PHP, который требует, чтобы php-скрипт монтировал общий диск Windows. В настоящее время создается с использованием OSX с XAMPP.PHP OSX XAMPP - команда монтирования exec

exec('mount -t smbfs //user:[email protected]/Share /Volumes/Share 2> temp/error.txt'); 

Теперь я понимаю, почему это не работает. Это связано с разрешениями. Apache работает как пользовательский демон. Теперь я могу изменить пользователя, которого Apache работает, чтобы исправить эту «проблему», но, если это возможно, избегать любых изменений на сервере. Я хотел бы остановиться и посмотреть, есть ли лучший способ сделать это.

Любые идеи?

+0

Зачем вам это не за пределами PHP и просто держать его на месте? – prodigitalson

+0

, поскольку он должен быть установлен только на короткое время перед размонтированием. – Wayde

+0

Да, но разрешить пользователю веб-сервера монтировать его, вероятно, является ужасной идеей, в то время как установка его в системе имеет меньший недостаток, если только это не очень проблематично для SMB-сервера. Какой тип машины будет работать при ее развертывании? – prodigitalson

ответ

0

Хорошо, так что я получил его работу. Мне просто нужен веб-сервер (пользовательский демон), чтобы создать папку, в которой установлен этот ресурс.

EG. создал папку под названием «tempshare», что пользователь владеет демон и находится в той же папке, что и сценарий PHP (не волнуйтесь, он будет помещен из веб-корня, когда полное)

exec('mount -t smbfs //user:[email protected]/Share /path/to/tempshare 2> temp/error.txt'); 

Показалось работать. Любые советы по безопасности с использованием этого метода?

+0

Я также нашел [munkie/samba] (https://github.com/munkie/samba) BTW .. его клиент SMB PHP и соответствующий потоковая оболочка. Он использует 'smbclient', хотя это его единственная для * nix систем, и, вероятно, было бы немного работать, чтобы добавить реализацию Windows ... затем снова, кто запускает PHP на ящике Windows ;-) Я проверил это и иметь пример кода, если вы заинтересованы. – prodigitalson

+0

Спасибо @prodigitalson! Я посмотрю на это! – Wayde

+0

Также, если вы собираетесь играть с ним, вам нужно будет установить 'samba' с homebrew или' samba3' с macports, так как клиент в OS X является 'smbutil' и отличается. (Я тестировал с помощью macports 'samba3'). – prodigitalson

Смежные вопросы