Как правильно настроить взаимодействие с Word через COM
У меня есть скрипт, в котором есть следующая строчка:
$wordHandle = new COM('word.application')
При выполнении скрипта я получаю ошибку: Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `word.application': Îòêàçàíî â äîñòóïå. '
поскольку: "Îòêàçàíî â äîñòóïå." означает — «Отказано в доступе.», я предполагаю, что для подключения необходимо где-то раздать права, но увы что бы я ни делал — результат не менялся.
ОС — Win7, IIS7, PHP 5.3.14
Может кто-то может подробнее сказать, что именно надо сделать, чтобы заработало подключение?
Настройка разрешения для COM:
Далее идем в Start->Administrative Tools->Component Services
Разворачиваем меню Component Services->Computers->My Computer->DCOM Config
В списке ищем необходимые нам приложения COM (как правило все они начинаются со слов Microsoft… )
Жмем правой кнопкой по интересующему выбираем Properties переходим на закладку Securety в секции Access Permissions ставим точку в Customize и жмем на кнопку Edit
В появившемся окне жмем add и добавляем пользователя который имеет права на запуск apache (вводим в нижнее поле логин пользователя и жмем Check Names если все нормально, то винда его найдет, жмем ок)
В списке выбираем добавленного пользователя и ставим ему галочку Remote Acceess
Подтверждаем все изменения (жмем ok 2 раза)
Включи в php.ini поддержку COM и что нужно сделать, стоит ли целый офис подключать?
IIS или Apache — никакого отношения это не имеет к com. Это вебсервера.
У вас php взаимодействует с com объктом. Вебсервер нужен только чтобы принимать и отдавать запросы с сети.
Давайте смотреть настройки. Тоже настраивали IIS php и com объекты, только не ворд. Мы сами генерим листы без ворда
Давайте так:
1) забудьте про IIS и проверьте запуск скрипта не из под вебсервера а с консоли. Проверим этим самым настройки php. Если все вызывается — дело внастройках IIS.
2) Поставьте запуск вашего пула из под прав localsystem. Возможно нет прав обращаться к ком объекту.