Правильная установка Shop-Script v.309 (Shop-Script-4) на хостинг.

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

1. Сразу после установки скрипта нужно удалить следующие папки и файлы:
Папки:

  •     help/
  •     i2/
  •     includes/

Файлы (в корне сайта):

  •     .state.tar.tmp
  •     .state.tar.tmp.log
  •     access
  •     ajaxhandler.php
  •     domxml-php4-to-php5.php
  •     install.css
  •     install.js
  •     install.log
  •     install.php
  •     license.txt
  •     readme.txt
  •     settings.xml
  •     setupguide.htm
  •     showdblist.php
  •     showmucontent.php
  •     update.xml
  •     wbs.tgz

2. После этого выставляем нужные права.

Желательно выставлять права после того как вы настроили все в инсталлере, включили ЧПУ, сделали основную массу других изменений. Иначе вы рискуете столкнуться с ситуацией когда для каждого небольшого изменения вам нужно поправлять права на файл, а после изменения выставлять их обратно.
Проще всего сделать это так:
На папку, которая является корнем вашего сайта ( обычно это папки htdocs, http, httpdocs, public_html, www) ставим рекурсивно (т.е. на эту папку и все вложенные в нее папки и файлы) права "только для чтения". Например 500 или 555.
Правильные права зависят от конфигурации вашего хостинг-сервера и от текущего владельца файла и папки.
После того как фактически вы выставили на весь свой сайт права только для чтения вам необходимо дать права на запись и изменение ряда файлов и папок.
В зависимости от текущей конфигурации и владельца это могут быть права 700, 755 или 777
Всегда старайтесь установить по возможности как можно более низкие права.
Папки и файлы для которых должно быть разрешено изменение веб-сервером (на примере полного комплекта скриптов, у вас некоторые папки могут отсутствовать):

  •     data/ (сама папка и все вложенные в нее файлы и папки)
  •     dblist/ (сама папка и вложенные в нее файлы)
  •     kernel/ (сама папка и вложенные в нее файлы(только файлы, не папки))
  •     kernel/includes/smarty/compiled/ (сама папка и все вложенные в нее файлы и папки)
  •     published/publicdata/ (сама папка и все вложенные в нее файлы и папки)
  •     published/AA/localization/ (сама папка и все вложенные в нее файлы и папки)
  •     published/CM/localization/ (сама папка и все вложенные в нее файлы и папки)
  •     published/common/templates/localization/ (сама папка и все вложенные в нее файлы и папки)
  •     published/DD/localization/ (сама папка и все вложенные в нее файлы и папки)
  •     published/DD/2.0/localization/ (сама папка и все вложенные в нее файлы и папки)
  •     published/IT/localization/ (сама папка и все вложенные в нее файлы и папки)
  •     published/MM/localization/ (сама папка и все вложенные в нее файлы и папки)
  •     published/MW/localization/ (сама папка и все вложенные в нее файлы и папки)
  •     published/PD/localization/ (сама папка и все вложенные в нее файлы и папки)
  •     published/PM/localization/ (сама папка и все вложенные в нее файлы и папки)
  •     published/QN/localization/ (сама папка и все вложенные в нее файлы и папки)
  •     published/QP/localization/ (сама папка и все вложенные в нее файлы и папки)
  •     published/SC/localization/ (сама папка и все вложенные в нее файлы и папки)
  •     published/SC/html/scripts/modules/localization/ (сама папка и все вложенные в нее ф. и п.)
  •     published/ST/localization/ (сама папка и все вложенные в нее файлы и папки)
  •     published/UG/localization/ (сама папка и все вложенные в нее файлы и папки)
  •     published/wbsadmin/localization/ (сама папка и все вложенные в нее файлы и папки)
  •     published/WG/localization/ (сама папка и все вложенные в нее файлы и папки)
  •     published/WG/widgets/DDList/localization/ (сама папка и все вложенные в нее файлы и папки)
  •     published/WG/widgets/DDUploader/localization/ (сама папка и все вложенные в нее ф. и п.)
  •     published/WG/widgets/PDList/localization/ (сама папка и все вложенные в нее файлы и папки)
  •     published/WG/widgets/SBSC/localization/ (сама папка и все вложенные в нее файлы и папки)
  •     temp/ (сама папка и все вложенные в нее файлы и папки)

Обычно это делается так:
если нужно дать права на запись на папку и все вложенные - просто ставите на папку 700 рекурсивно если права на запись только на папку и файлы в ней - просто ставите на папку 700 рекурсивно, а потом заходите в нее и ставите 500 на все содержащиеся в ней папки.

Удобно выставлять права через админ-панель хостинга, но не всегда возможно (например cPanel и многие "самописные" панели хостингов не дает возможность изменить права рекурсивно). Тогда вы можете поставить на корневую папку права через админ-панель хостинга, а на все файлы и папки скрипта через installer скрипта.
В инсталлере папки и файлы с правами только для чтения - права будут подсвечены красным, с правами на чтение и изменение права будут подсвечены зеленым.
Перед обновлением скрипта вам нужно будет установить права на чтение и изменение ДЛЯ ВСЕХ папок и файлов скрипта (включая корневую), после обновления выполнить указанную выше процедуру заново.
Также необходимо будет повышать права при изменении файлов css, .htaccess и при внесении изменений в исходный код.

После того, как выставите права - сбросьте кеш скрипта и посмотрите, чтобы инсталлер не "ругнулся" на невозможность выполнить операцию, потом внимательно проконтролируйте корректность работы сайта.

Выставить правильные права на файлы и папки вашего сайта нужно обязательно, иначе вероятность и простота взлома вашего сайта существенно увеличиваются.

Если Вы не можете справится с этой задачей самостоятельно (или вам просто лень разбираться с этим), мы можем сделать это вместо вас за небольшую оплату. Также за небольшую оплату мы можем установить ваш скрипт на хостинг (а для клиентов купивших лицензию на Webasyst через наш магазин мы устанавливаем купленные скрипты на хостинг бесплатно).


Использование расширения PHP - suhosin

Если у вас на хостинге используется расширение suhosin и есть доступ к его настройкам, то рекомендуем просмотреть параметры его работы т.к. при некоторых настройках ваш скрипт может не работать как нужно.

Настройки suhosin хранятся в php.ini

Проверьте чтобы данные опции были выключены:

  • suhosin.executor.disable_eval = Off
  • suhosin.executor.disable_emodifier = Off

Вот работоспособный вариант настроек (необходимые вам настройки могут отличаться в зависимости от конфигурации вашего хостинга и сайта)
suhosin как расширение PHP, не Suhosin-Patch:

;************************************************************************
;                           suhosin Parameters
;       For a full list of parameters and their documentation go to:
;         (http://www.hardened-php.net/suhosin/configuration.html)
;************************************************************************
[suhosin]
extension="ваш_путь/suhosin.so"
; Logging Configuration
suhosin.filter.action =
suhosin.log.syslog = 511
suhosin.log.syslog.facility = 9
suhosin.log.syslog.priority = 1
suhosin.log.use-x-forwarded-for = Off

; Executor Options
suhosin.executor.max_depth = 0
suhosin.executor.include.max_traversal = 7
suhosin.executor.include.whitelist =
suhosin.executor.include.blacklist = "php://, http://, ftp://, gzip://, https://, ftps://"
suhosin.executor.func.whitelist =
suhosin.executor.func.blacklist = system, shell_exec, eval, register_tick_function, ini_get_all, pcntl_exec, passthru, popen, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, posix_setgid, posix_uname, proc_close, proc_nice, proc_open, proc_terminate
suhosin.executor.eval.whitelist =
suhosin.executor.eval.blacklist = system, shell_exec, eval, register_shutdown_function, register_tick_function, ini_get_all, pcntl_exec, passthru, popen, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, posix_setgid, posix_uname, proc_close, proc_nice, proc_open, proc_terminate
suhosin.executor.allow_symlink = Off
suhosin.executor.disable_emodifier = Off
suhosin.executor.disable_eval = Off

; Misc Options
suhosin.apc_bug_workaround = Off
suhosin.sql.bailout_on_error = On
suhosin.sql.comment = 0
suhosin.sql.multiselect = 0
suhosin.sql.opencomment = 0
suhosin.sql.union = 0
suhosin.sql.user_postfix =
suhosin.sql.user_prefix =
suhosin.multiheader = Off
suhosin.memory_limit = 128M
suhosin.mail.protect = 2

; Transparent Encryption Options
suhosin.session.encrypt = Off
suhosin.session.cryptkey =
suhosin.session.cryptua = Off
suhosin.session.cryptdocroot = On
suhosin.session.cryptraddr = 0
suhosin.session.checkraddr = 0
suhosin.session.max_id_length = 128
suhosin.cookie.checkraddr = 0
suhosin.cookie.cryptdocroot = On
suhosin.cookie.cryptkey =
suhosin.cookie.cryptlist =
suhosin.cookie.cryptraddr = 0
suhosin.cookie.cryptua = Off
suhosin.cookie.disallow_nul = 1
suhosin.cookie.disallow_ws = 1
suhosin.cookie.encrypt = Off
suhosin.cookie.plainlist =

; Filtering Optionins
suhosin.cookie.max_array_depth = 50
suhosin.cookie.max_array_index_length = 64
suhosin.cookie.max_name_length = 64
suhosin.cookie.max_totalname_length = 256
suhosin.cookie.max_value_length = 10000
suhosin.cookie.max_vars = 100
suhosin.get.disallow_nul = On
suhosin.get.disallow_ws = 0
suhosin.get.max_array_depth = 50
suhosin.get.max_array_index_length = 64
suhosin.get.max_name_length = 200
suhosin.get.max_totalname_length = 512
suhosin.get.max_value_length = 4096
suhosin.get.max_vars = 100
suhosin.perdir = 0
suhosin.coredump = Off
suhosin.post.disallow_nul = On
suhosin.post.disallow_ws = 0
suhosin.post.max_array_depth = 100
suhosin.post.max_array_index_length = 64
suhosin.post.max_name_length = 200
suhosin.post.max_totalname_length = 512
suhosin.post.max_value_length = 1000000
suhosin.post.max_vars = 30033
suhosin.protectkey = On
suhosin.request.disallow_nul = On
suhosin.request.disallow_ws = 0
suhosin.request.max_array_depth = 50
suhosin.request.max_array_index_length = 64
suhosin.request.max_totalname_length = 512
suhosin.request.max_value_length = 1000000
suhosin.request.max_varname_length = 200
suhosin.request.max_vars = 30033
suhosin.stealth = On
suhosin.upload.max_uploads = 35
suhosin.upload.disallow_elf = 1
suhosin.upload.disallow_binary = Off
suhosin.upload.remove_binary = Off
suhosin.upload.verification_script =
suhosin.session.max_id_length = 128
suhosin.simulation = Off
    ;************************************************************************
    ;                       End suhosin Parameters
    ;************************************************************************

В любом случае в начале использования желательно установить suhosin.simulation = On и после нескольких дней работы просмотреть логи.
Так можно определить какие были срабатывания suhosin не мешая рабте скрипта.
После завершения настройки установите suhosin.simulation = Off

По всем вопросам обращайтесь пожалуйста через скайп shop-script.org
или через форму обратной связи.