Установка Shop-Script 4 (309)
Правильная установка 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
или через форму обратной связи.