Мой старт в интернет!

После инсталляции сервера диск W: имеет следующую структуру папок:

   /
   +-- CGI-BIN                           ; папка cgi скриптов
   +-- CONF                              ; папка конфигурации
   +-- HOME                              ; папка для файлов сайта
   +-- LNK                               ; папка линков
   |     +-- ICO                         ; папка иконок линков
   +-- LOGS                              ; папка логов Apache
   +-- TMP                               ; временная папка
   |     +-- SESSIONS                    ; папка для сессий
   +-- USR
        +-- BIN                          ; папка для программ (утилит)
        +-- LOCAL
               +-- APACHE                ; папка Apache
               |      +-- .....
               +-- MYSQL                 ; папка MySQL
               |      +-- .....
               +-- MYSRV-CMD             ; папка скриптов команд управления сервером
               +-- PHP                   ; папка PHP
               |      +-- EXT            ; папка расширений PHP
               +-- PHPMYADMIN            ; папка phpMyAdmin
                      +-- .....

В процессе создания виртуального диска в PATH прописывается полный путь доступа к папке PHP и папке расширений PHP. При удалении виртуального диска эта запись удаляется из PATH

В папке \USR\BIN находятся следующие утилиты:

  1. iniman.exe — утилита для работы с ini-файлами из Windows Server 2003 Resource Kit Tools
  2. instsrv.exe и srvany.exe — утилиты для работы с сервисами из Windows Server 2003 Resource Kit Tools
  3. pathman.exe — утилита для работы с PATH из Windows Server 2003 Resource Kit Tools
  4. psubst.exe — утилита для создания виртуального диска
  5. uname.exe — порт unix команды
  • Скрипт управления сервером (mysrv.cmd) находится в корне диска W:
    rem Диск для сервера
    set ServerDrive=W
    rem Определяем текущий диск
    set Drive=%CD:~0,1%
    if %Drive%==%ServerDrive% (
             set RootDir=%CD:~0,0%
    ) else (
             set RootDir=%CD:~2%)
    rem Префикс для папки скриптов и файла скрипта модуля
    set Prefix=mysrv-
    rem Флаг необходимости перезазрузки
    set NeedReboot=FALSE
    rem Назначаем директории
    set UsrDir=%RootDir%\usr
    set HomeDir=%RootDir%\home
    set TmpDir=%RootDir%\tmp
    set BinDir=%UsrDir%\bin
    set LocalDir=%UsrDir%\local
    set CmdDir=%LocalDir%\%Prefix%cmd
    rem строка для добавления/удаления в/из Path
    set addtopath=%ServerDrive%:%LocalDir%\Php;%ServerDrive%:%LocalDir%\Php\ext
    rem Определяем нужно делать
    if "%1"=="" exit
    set Action=%1
    rem Создаем или удаляем диск для сервера и перегружаемся если необходимо
    if "%Action%"=="createdrive" call %Drive%:%CmdDir%\%Prefix%drive.manager.cmd
    if "%Action%"=="deletedrive" call %Drive%:%CmdDir%\%Prefix%drive.manager.cmd
    if "%NeedReboot%"=="TRUE" %Drive%:%CmdDir%\%Prefix%reboot.pc.cmd
    rem Дальнейшее управления осуществляется с диска сервера
    if not %Drive%==%ServerDrive% (
              set ERRORMSG=Управление сервером осуществляется с диска %ServerDrive%:
              call %Drive%:%CmdDir%\%Prefix%error.msg.cmd )
    set Drive=%ServerDrive%
    rem если 2-й параметр командной строки пустой, то передаем действие всем модулям
    if "%2"=="" ( set Module=all.modules
    ) else (
                  set Module=%2)
    if not exist %Drive%:%CmdDir%\%Prefix%%Module%.cmd (
                  set ERRORMSG=Не найден скрипт управления модуля %Module%
                  call %Drive%:%CmdDir%\%Prefix%error.msg.cmd )
    rem вызываем скрипт модуля
    call %Drive%:%CmdDir%\%Prefix%%Module%.cmd
    rem после инсталляции/деинсталяции - пауза, чтобы посмотреть экран
    rem  и перезагрузка если необходимо
    if "%Action%"=="install" (
             pause
             if "%NeedReboot%"=="TRUE" %Drive%:%CmdDir%\%Prefix%reboot.pc.cmd
             exit /b)
    if "%Action%"=="uninstall" (
             pause
             if "%NeedReboot%"=="TRUE" %Drive%:%CmdDir%\%Prefix%reboot.pc.cmd
             exit /b)
  • Скрипты команд управления сервером находятся в папке \USR\LOCAL\MYSRV-CMD
    1. mysrv-all.modules.cmd
      CALL %Drive%:%CmdDir%\%Prefix%apache.cmd
      CALL %Drive%:%CmdDir%\%Prefix%mysql.cmd
      rem add your module here
      exit /b

      Скрипт производит последовательный вызов скриптов управления установленных модулей сервера
    2. mysrv-drive.manager.cmd
      if "%Action%"=="createdrive" (
        if exist "%ServerDrive%":\  ( set ERRORMSG=Диск %ServerDrive%: уже существует
                                      %Drive%:%CmdDir%\%Prefix%error.msg.cmd )
        %Drive%:%BinDir%\psubst.exe /P %ServerDrive%: %CD%\
        if not exist "%ServerDrive%":\ ( set ERRORMSG=Не могу создать диск %ServerDrive%:
                                         %Drive%:%CmdDir%\%Prefix%error.msg.cmd )
        %Drive%:%BinDir%\iniman.exe %Drive%:%LocalDir%\mysql\my.ini mysqld.basedir="%ServerDrive%:/usr/local/mysql" >nul
        %Drive%:%BinDir%\iniman.exe %Drive%:%LocalDir%\mysql\my.ini mysqld.datadir="%ServerDrive%:/usr/local/mysql/data" >nul
        %Drive%:%BinDir%\iniman.exe %Drive%:%LocalDir%\mysql\my.ini mysqld.default-storage-engine="MYISAM" >nul
        echo.
        echo Диск "%ServerDrive%": ассоциирован с директорией %CD%\
        set NeedReboot=TRUE
        %Drive%:%BinDir%\pathman.exe /as %addtopath%
        exit /b)
       
      if "%Action%"=="deletedrive" (
        if "%Drive%"=="%ServerDrive%" ( set ERRORMSG=Диск %ServerDrive%: может быть удален только из директории установки
                                        %Drive%:%CmdDir%\%Prefix%error.msg.cmd )
        if not exist %ServerDrive%:\ (set ERRORMSG=Не могу найти диск %ServerDrive%:
                                      %Drive%:%CmdDir%\%Prefix%error.msg.cmd )
        %Drive%:%BinDir%\pathman.exe /rs %addtopath%
        %Drive%:%BinDir%\psubst.exe /DF %ServerDrive%:
        echo.
        echo Диск %ServerDrive%: удален
        echo После перезагрузки компьютера удалите директорию установки
        set NeedReboot=TRUE
        exit /b)

      Скрипт создает или удаляет виртуальный диск (команды createdrive deletedrive)
      При создании виртуального диска прописываются пути доступа к \USR\LOCAL\PHP и \USR\LOCAL\PHP\EXT в PATH и устанавливаются значения параметров BASEDIR, DATADIR и DEFAULT-STORAGE-ENGINE секции MYSQLD конфигурационного файла MySQL
      При удалении виртуального диска пути прописанные пути доступа удаляются из PATH
    3. mysrv-error.msg.cmd
      echo.
      echo *ОШИБКА* %ERRORMSG%
      echo.
      pause
      exit

      Скрипт выводит сообщение об ошибке и после паузы завершает скрипт управления сервером
    4. mysrv-reboot.pc.cmd
      if "%NeedReboot%"=="TRUE" (
        echo.
        echo Сохраните данные и закройте программы
        echo Компьютер будет перезагружен
        echo.
        pause
        %windir%\system32\shutdown.exe -r -t 0
        exit)

      Скрипт выводит сообщение о необходимости перезагрузки компьютера и после паузы перегружает его, завершая скрипт управления сервером
    5. mysrv-service.manager.cmd
      if "%Action%"=="uninstall" (
        net stop %ModuleServiceName%
        %Drive%:%BinDir%\instsrv.exe %ModuleServiceName% REMOVE
        exit /b)
      if "%Action%"=="start" (
        net start %ModuleServiceName%
        exit /b)
      if "%Action%"=="restart" (
        net stop %ModuleServiceName%
        net start %ModuleServiceName%
        exit /b)
      if "%Action%"=="stop" (
        net stop %ModuleServiceName%
        exit /b)
      if not "%Action%"=="install" exit /b
      %Drive%:%BinDir%\instsrv.exe %ModuleServiceName% %Drive%:%BinDir%\srvany.exe
      if exist %Drive%:%TmpDir%\%ModuleServiceName%.vbs del /q %Drive%:%TmpDir%\%ModuleServiceName%.vbs
      echo Dim WshShell >%Drive%:%TmpDir%\%ModuleServiceName%.vbs
      echo Set WshShell = WScript.CreateObject("WScript.Shell") >>%Drive%:%TmpDir%\%ModuleServiceName%.vbs
      echo Const root = "HKEY_LOCAL_MACHINE" >>%Drive%:%TmpDir%\%ModuleServiceName%.vbs
      echo Const key = "\SYSTEM\CurrentControlSet\Services\" >>%Drive%:%TmpDir%\%ModuleServiceName%.vbs
      echo WshShell.RegWrite root ^& key ^& "%ModuleServiceName%" ^& "\Parameters\Application", "%ModuleBinFile%", "REG_SZ" >>%Drive%:%TmpDir%\%ModuleServiceName%.vbs
      cscript %Drive%:%TmpDir%\%ModuleServiceName%.vbs //nologo
      del /q %Drive%:%TmpDir%\%ModuleServiceName%.vbs
      net start %ModuleServiceName%
      exit /b

      Скрипт производит инсталляцию и деинсталляцию сервиса, его запуск, остановку и перезапуск (команды install uninstall start stop restart)
  • Скрипты управления модулями Apache и MySQL находится в папке \USR\LOCAL\MYSRV-CMD
    1. mysrv-apache.cmd
      set ModuleActive=TRUE
      if not "%ModuleActive%"=="TRUE" exit /b
      set ModuleServiceName=Apache
      set ModuleBinFile=%Drive%:%LocalDir%\%ModuleServiceName%\bin\httpd.exe
      if "%Action%"=="reload" (
        %ModuleBinFile% -n %ModuleServiceName% -k restart
        exit /b)
      if "%Action%"=="install" (
        %ModuleBinFile% -k install -n %ModuleServiceName% -f "%Drive%:%LocalDir%\%ModuleServiceName%\conf\httpd.conf"
        net start %ModuleServiceName%
        exit /b)
      if "%Action%"=="uninstall" (
        net stop %ModuleServiceName%
        %ModuleBinFile% -n %ModuleServiceName% -k uninstall
        exit /b)
      call %Drive%:%CmdDir%\%Prefix%service.manager.cmd
      exit /b

      Скрипт производит инсталляцию и деинсталляцию сервиса модуля Apache и перезагрузку конфигурации без перезапуска сервиса (команды install uninstall reload)
    2. mysrv-mysql.cmd
      set ModuleActive=TRUE
      if not "%ModuleActive%"=="TRUE" exit /b
      set ModuleServiceName=MySQL
      set ModuleBinFile=%Drive%:%LocalDir%\%ModuleServiceName%\bin\mysqld.exe
      if "%Action%"=="install" (
        %ModuleBinFile% --install %ModuleServiceName% --defaults-file="%Drive%:%LocalDir%\%ModuleServiceName%\my.ini"
        net start %ModuleServiceName%
        exit /b)
      if "%Action%"=="uninstall" (
        net stop %ModuleServiceName%
        %ModuleBinFile% --remove %ModuleServiceName%
        exit /b)
      call %Drive%:%CmdDir%\%Prefix%service.manager.cmd
      exit /b

      Скрипт производит инсталляцию и деинсталляцию сервиса модуля MySQL (команды install uninstall)
WebMoney

Вы можете оказать посильную помощь на поддержку сайта и развитие проектов переводом средств на кошельки платежной системы WebMoney

Z325624025520
E360373898601
U279044372586
R180028144815

Комментарии

QR