Форумы портала PHP.SU » PHP » Уроки php » PHP и COM (Word, Excel и т.п.)

Страниц (1): [1]
 

1. EvilBear - 30 Июня, 2011 - 19:08:55 - перейти к сообщению
Информации по настройке взаимодействия РНР и СОМ-объектов в И-нете достаточно много. Однако занявшись отладкой упомянутого взаимодействия я обнаружил, что большая часть этой информации касается отдельных проблем настройки, но не всего процесса целиком.

Поэтому по материалам данного форума, а также ряда других сайтов я попробовал сложить небольшое руководство по данному вопросу.

Я очень благодарен тем участникам форума, сообщения которых помогли разобраться в вопросе мне.

Надеюсь, что и моя информация будет полезной для других.

Конфигурация программного обеспечения: WinXP SP2 + IIS 5.1 + PHP 5.3.

Настройка прав доступа для взаимодействия РНР и СОМ-объектов (в первую очередь - Word, Excel и т.п.).
Все настройки выполняются под учётной записью администратора локального компьютера.

1. Конфигурация рабочих групп.

1.1. На локальной машине присутствует несколько категорий рабочих групп.

Нас интересуют следующие: «Администраторы», «Опытные пользователи», «Пользователи».

Для доступа к администрированию рабочих групп выполняем: «Пуск» -> «Выполнить» -> В командной строке набираем: lusrmgr.msc.

Открывается утилита администрирования пользовательских групп.

В левом окне утилиты выбираем «Пользователи» и видим перечень пользователей локального компьютера.

В выведенном перечне присутствуют учётные записи пользователей, созданные администраторами локального компьютера, а так же учётные записи служб (в т.ч. – сервера IIS).

Нас интересуют две записи:

IWAM_CompName – учётная запись сервера IIS;
IUSR_CompName – гостевая учётная запись Интернета;

где CompName – имя локального компьютера (т.е. если локальный компьютер имеет имя HOME, то учётная запись IIS будет иметь вид IWAM_HOME).

Если эти записи отсутствую в перечне – значит, был некорректно установлен или настроен сервер IIS. В таком случае необходимо провести повторную установку или настройку сервера.


1.2. Если обе учётные записи присутствуют в перечне – переходим к вкладке «Группы» в левом окне утилиты.

В правом окне утилиты появится перечень групп пользователей.

Выбираем группу «Опытные пользователи» (можно и группу «Администраторы», но я бы не рекомендовал), и добавляем в неё учётную запись IWAM_CompName.

Для этого:
правой кнопкой мыши вызываем контекстное меню и выбираем пункт «Свойства»
-> в открывшемся окне нажимаем кнопку «Добавить»
-> в новом открывшемся окне нажимаем кнопку «Дополнительно»
-> в новом открывшемся окне нажимаем кнопку «Поиск»
-> из появившегося списка внизу выбираем учётную запись IWAM_CompName
-> нажимаем кнопку «ОК» в окне «Выбор: Пользователи»
-> снова нажимаем кнопку «ОК» в следующем окне «Выбор: Пользователи»
-> нажимаем кнопку «Применить» в окне «Свойства: Опытные пользователи»
-> нажимаем кнопку «ОК» в окне «Свойства: Опытные пользователи».

На этом все настройки рабочих групп завершены.

Теперь нам необходимо предоставить рабочей группе «Опытные пользователи» необходимые привилегии.

В процессе работы РНР с приложениями Офиса нам необходимо будет с помощью скриптов:
запускать приложения;
создавать, редактировать и сохранять документы;
выполнять ряд других функций, которые обычно доступны пользователям этих приложений.

Закрываем утилиту и переходим к шагу 2.


2. Настройки доступа к дискам.

Группе «Опытные пользователи» (где находится учётная запись сервера IIS) необходимо дать следующие права:

право на чтение и запуск приложений с дисков, на которых находятся приложения Офиса (как правило, это диск, на котором находится папка «Program Files»);

право на чтение и запись дисков, на которых расположены каталоги переменных среды (что бы узнать, где они у Вас находятся – откройте: «Панель управления» -> «Система» -> «Дополнительно» -> «Переменные среды»);

право полного доступа к дискам, где будут сохраняться файлы документов, созданные приложениями Офиса;



Группе «Пользователи» (где находится гостевая учётная запись Интернета) необходимо дать права на чтение и выполнение программ на дисках, где расположен исполнимый файл IIS.


Делается это следующим образом:
Откройте вкладку «Свойства» нужного диска (через контекстное меню по правой кнопке мыши).

Если в контекстном меню присутствует вкладка «Безопасность» - переходите к ней.
Если нет:
в меню Проводника выбираем пункт «Сервис»
-> в нём выбираем «Свойства папки»
-> в открывшемся окне выбираем вкладку «Вид»
-> в выбранной вкладке снимаем галочку с пункта «Использовать простой общий доступ к файлам (рекомендуется)»
-> нажимаем «Применить», а затем «Применить ко всем папкам» и «ОК».

Снова вызываем свойства нужного нам диска – в окне свойств появилась вкладка «Безопасность».


На вкладке «Безопасность» выбираем нужные группы пользователей, и ставим галочки напротив тех элементов доступа, которые хотим им дать.

Если нужная Вам группа пользователей отсутствует в окне – нажмите кнопку «Добавить» и добавьте группу по той же процедуре, по которой Вы добавляли пользователей в группу в шаге 1.

Если Вы не до конца разобрались в правах доступа – тогда рекомендую для группы «Опытные пользователи» установить галки на пунктах:
«Изменить»;
«Список содержимого папки»;
«Чтение и выполнение»;
«Чтение»;
«Запись».

После установки всех необходимых разрешений – нажмите кнопку «Применить».

После этого нажмите кнопку «Дополнительно».

Откроется окно «Дополнительные параметры безопасности».
В этом окне выделите те группы пользователей, для которых Вы проводили изменение прав доступа, а затем поставьте галочку в пункте «Заменить разрешения для всех дочерних объектов заданными здесь разрешениями».

Нажмите кнопку «Применить» и ответьте «Да» в окне предупреждения.
Процесс изменения прав может занять до нескольких минут.

После его окончания закройте все окна, и повторите процедуру для других дисков (если нужно).


3. Настройки доступа к Реестру.

Доступ к изменениям Реестра необходим учётной записи IIS, для корректной работы с методами СОМ-объектов.

Более подробную информацию по этому вопросу можно получить здесь:

Отсутствие доступа к Реестру приведёт при вызове метода СОМ-объекта к появлению ошибки «Не удается открыть банк макросов».


Для предоставления IIS доступа к Реестру:

«Пуск» -> «Выполнить» -> в командной строке вводим «regedit» и запускаем на выполнение.

Откроется утилита доступа к реестру.

Находим ключ Реестра «HKEY_CLASSES_ROOT», правой кнопкой мыши вызываем его контекстное меню и выбираем пункт «Разрешения».

В пункте «Разрешения» выбираем группу «Опытные пользователи» (если её нет в списке – добавляем по стандартной процедуре добавления, аналогичной шагам 1 и 2), и выставляем для неё права «Полный доступ».

После этого:
нажимаем «Применить»
-> затем нажимаем «Дополнительно»
-> Откроется окно «Дополнительные параметры безопасности».

В этом окне выделите группу «Опытные пользователи», а затем поставьте галочку в пункте «Заменить разрешения для всех дочерних объектов заданными здесь разрешениями».

Нажмите кнопку «Применить» и ответьте «Да» в окне предупреждения.

Процесс изменения прав может занять до нескольких минут.

После его окончания закройте все окна.

Процедура конфигурирования прав доступа к Реестру завершена.


4. Настройки доступа к объектам DCOM.

Последним элементом настройки являются права доступа к объектам DCOM. Эти права дают возможность службе сервера IIS запускать выбранные приложения посредством их вызова из скриптов РНР.

Для настройки доступа к объектам DCOM:
«Пуск» -> «Панель управления» -> «Администрирование» -> «Службы компонентов».

Откроется окно консоли «Службы компонентов».
В окне:
«Службы компонентов» -> «Компьютеры» -> «Мой компьютер» -> «Настройка DCOM».

Далее возможны два варианта:

Разрешить IIS полный доступ ко всем объектам DCOM
Разрешить IIS доступ к отдельным приложениям DCOM

При выборе первого варианта: необходимо выделить в окне консоли папку «Настройка DCOM».

Далее на панели управления консоли нажать кнопку «Настройка моего компьютера» (крайняя справа кнопка во втором ряду панели консоли, с изображением компьютера).

После нажатия кнопки появится окно «Безопасность компьютера».

Выберите вкладку «Безопасность СОМ».

На этой вкладке мы видим два блока: «Права доступа» и «Разрешения на запуск и активацию».

Первый блок отвечает за предоставление прав работать с приложениями, а второй – даёт (или не даёт) право эти приложения запускать и подключаться к экземплярам приложений, запущенным другими пользователями.

Настройка обоих блоков абсолютно идентична:
Нажимаем кнопку «Изменить настройки по умолчанию»
-> добавляем в перечень пользователей группу «Опытные пользователи» (процедура та же самая, что и в шагах 1, 2, 3)
-> даём группе «Опытные пользователи» права на локальный доступ (в блоке «Права доступа»), и локальный запуск и активацию (в блоке «Разрешения на запуск и активацию»).
-> нажимаем «Применить» и «ОК».

Если Вам необходимо настраивать права доступа для каждого отдельного приложения – рекомендую вот это руководство[dot]

Только учтите, что на вкладке «Удостоверение» настройки по умолчанию менять не надо.

Вот и всё.

Теперь перезагрузите компьютер – и можете начинать опробовать хрестоматийный скрипт по работе с Word Радость

Вот этот, например.

 

Powered by ExBB FM 1.0 RC1