Веб-хостинг для Composr

Автор Аллен Эллис (ocProducts)
Перевод Наталия Хорошая

 Чтобы разместить веб-сайт в Интернете, вам необходимо организовать «веб-хостинг». Обычно это делается путем оплаты услуг веб-хостинга, который предоставит вам пространство и доступ к компьютеру(веб-серверу), который постоянно подключен к Интернету через высокоскоростное соединение.

 В этом руководстве подробно рассматриваются все требования к хостингу Composr и некоторые общие сведения о веб-хостинге и безопасности, многие из которых вы можете не понимать и различные среды для установки. Практически любой «PHP-хостинг» будет работать с Composr, если это не бесплатный хостинг с поддержкой рекламы.
  

Различные варианты хостинга.

 


 

У вас есть следующие варианты размещения Composr (примерно):

  • Традиционный общий веб-хостинг (с панелью управления).

  • Традиционный веб-хостинг VPS (с панелью управления).

  • Традиционный веб-хостинг VPS (без панели управления).

  • Выделенный сервер Linux (с панелью управления).

  • Выделенный сервер Linux (без панели управления).

  • Хостинг на собственном рабочем столе Windows (для целей разработки).

  • Хостинг на сервере Windows.

  • Хостинг на вашем рабочем столе Mac (в целях разработки).

  • Облачный хостинг IaaS* (например, Amazon EC2, Azure, Rackspace)

  • Облачный хостинг PaaS* (например, AppFog, Heroku, Rackspace Cloud, Engine Yard, OpenShift)

  • Google App Engine, который является особым случаем PaaS из-за высокого уровня организации, в которой вам необходимо работать. Это описано в собственном учебнике.

 
 Большинство пользователей выберут традиционный общий веб-хостинг или традиционный веб-хостинг VPS с панелью управления.
Пользователи с высокими требованиями к процессору, памяти, безопасности, конфиденциальности, автономности или дисковому пространству могут выбрать выделенный сервер*. Это дороже и обычно требует дополнительного обслуживания со стороны пользователя, но для некоторых пользователей настоятельно рекомендуется.

 Программисты часто предпочитают хостинг IaaS и PaaS для обеспечения масштабируемости. Однако масштабируемость не является автоматической ни в одной системе, поэтому программистам необходимо уделять серьезное внимание инфраструктуре. Подробнее это обсуждается в руководстве по оптимизации производительности.

Независимо от вашего выбора, вы всегда будете использовать одно и то же базовое программное обеспечение (PHP и т. д.). Для целей этого руководства различия не имеют большого значения, за исключением тех случаев, когда мы даем конкретные советы по настройке платформ.
У нас есть различные руководства по установке, в которых подробно рассказывается, как установить на различных вариантах хостинга.

Рекомендуемый общий веб-хостинг.

 Мы советуем выбрать собственный веб-хостинг на основе хороших отзывов, которые являются как недавними, так и заслуживающими доверия. Активно ищите людей, жалующихся на компанию, чтобы понять, являются ли эти жалобы проявлением искреннего беспокойства (в отличие от общего недовольства технологиями / необоснованных ожиданий от веб-хостинга). Не выбирайте самое дешевое, но и не думайте, что заплатив больше, вы гарантируете хорошее обслуживание!

Веб-хостинги обычно делятся на 3 категории: 
  1. Хорошая инфраструктура, хорошая поддержка (выберите такую компанию, но обычно она не длится долго — они, скорее всего, либо теряют деньги, либо поддерживаются страстной командой основателей, которым мало платят, которые не останутся там навсегда).
  2. Хорошая инфраструктура, плохая поддержка. Оставайтесь с такой компанией, потому что, вероятно, не стоит переезжать.
  3. Плохая инфраструктура, плохая поддержка.
Мое мнение
 Я поддерживаю мнение уважаемого Автор Криса Грэма, только из своего почти пятилетнего опыта могу порекомендовать опыта могу порекомендовать один из веб- хостингов. Они являются представителями 1 категории и всегда на высоте, как по ответам в тикетах, так не стесняются ответить а чате безликому пользователю. Никогда недовольная не уходила от них.
fozzy-castle2-320x50.png
Следите за тем, чтобы у вас были собственные резервные копии.
  

Требования и рекомендации.

 При выборе веб-хостинга необходимо убедиться, что он соответствует всем требованиям Composr. Composr намеренно разработан с очень низкими требованиями, но, как и при практически любом выборе в жизни, существуют различные виды продуктов, которые компании могут пробовать и продавать.
 Если был выбран случайный коммерческий веб-хост, поддерживающий PHP / MySQL, весьма вероятно, что он будет поддерживать эти требования: однако разработчики не могут нести ответственность за несовместимость с системами, которые этого не делают.

Далее подробно описываются требования Composr. Если у вас возникли проблемы с определением соответствия веб-хостов, вы можете связаться с ними и сообщить эту информацию.

Компоср требует:
  • Веб-сервер, на котором работает PHP. PHP - это программное обеспечение, обеспечивающее среду, для которой написан Composr. Composr требует PHP версии 5.3 или выше. Если веб-хост имеет более старую версию PHP, чем эта, он не только устарел, но и небезопасен: на момент написания все, что ниже PHP 7.3, не поддерживается разработчиками PHP.
    • Другие несвязанные надстройки могут иметь другие зависимости.
    • Если вы устанавливаете с PHP 5.5 или новее, вы не можете перейти на что-либо более раннее, чем PHP 5.5 , поскольку Composr уже использует функции защиты паролей PHP 5.5 для сохраненных паролей.
 

Простой справочный обзор основных рекомендаций по хостингу:

  • Среда PHP со следующим (компетентный веб-хост, ориентированный на запуск веб-приложений PHP, должен быть в состоянии обеспечить это):
    • Расширение GD2 (включая поддержку PNG и JPEG). GD используется PHP для генерации изображений, например, для создания эскизов.
    • Загрузка файлов размером не менее 5 МБ или больше, в зависимости от ваших конкретных потребностей.
    • Расширение MySQL ( mysql или mysqli или pdo_mysql) [включен или нет встроенный драйвер MySQL не имеет значения].
    • Максимальное время выполнения не менее 30 секунд.
    • max_input_vars не менее 2000 (большинство хостингов позволяют поднять этот параметр)
    • Ключевые функции не могут быть отключены с помощью disable_functions (PHP может сильно урезаться веб-хостами с сомнительной репутацией) — установщик предупредит, если какие-либо критические функции были отключены.
    • Никакого другого явного отключения стандартной функциональности, которая нам требуется. Обычно веб-хостинги делают это, используя ModSecurity, Suhosin, suPHP или свои собственные модифицированные версии PHP. Мы делаем все возможное, чтобы обойти такие проблемы для распространенных восстанавливаемых случаев, но в конечном итоге, если произвольная стандартная функциональность отключена, программное обеспечение не может работать.
    • Ограничение памяти не менее 32 МБ (минимум — вы можете увидеть ошибки, если кеши отключены, пока кеши заполняются, если вы выполняете импорт, если вы выполняете поиск в зоне администратора или если вы программист с включенным режимом разработки).
  • Не менее 50 МБ дискового пространства, плюс ваши потребности в пространстве для загрузок, изображений и т. д. Нет ограничений на максимальный размер файла менее 25 МБ или белых списков типов файлов (некоторые бесплатные веб-хостинги накладывают эти ограничения — что объясняет, почему data.cms может исчезнуть при попытке загрузить его).
  • Веб-сервер, на котором работает MySQL (*), версия 5.5.3 (†) или выше:
      • MySQL — это программное обеспечение базы данных (программное обеспечение, которое позволяет создавать ряд отдельных баз данных), которое Composr использует для хранения большинства своих данных.
      • Часто веб-хостинги указывают ряд баз данных, которые поставляются с веб-хостингом: для работы Composr требуется только одна база данных MySQL. Требуется не менее 5 МБ места для хранения базы данных, которое должно быть доступно на любом авторитетном веб-хостинге.
      • Системный max_allowed_packet параметр сервера должен быть не ниже 16M.
  • Веб-сервер, работающий под управлением Apache (обычный веб-сервер Linux) или IIS7+ (веб-сервер Microsoft). Очень маловероятно, что вы найдете веб-хостинг, который предоставляет что-то еще. Другие серверы могут работать, но не поддерживаются (дополнительные рекомендации приведены в этом руководстве).
    • Если вы используете Windows, вы должны использовать раздел NTFS, а не раздел FAT32, так как FAT32 не поддерживает блокировку файлов.
    • При запуске Apache с использованием mod_php (в отличие от CGI-версии PHP) конфигурация сервера должна иметь AllowOverride All или, по крайней мере, AllowOverride Options FileInfo Limit (поскольку мы используем распределенные .htaccess файлы, содержащие настройки для повышения безопасности).
    • Если вы хотите, чтобы URL-схемы на Apache mod_rewrite были включены.
    • При работе с IIS rewrite может потребоваться включить модуль или отредактировать пакет web.config, чтобы удалить <rewrite>...</rewrite> раздел.
  • Время ожидания CGI на сервере должно быть не менее 60 секунд (по умолчанию для Apache).
  • Что веб-сервер не перегружен слишком большим количеством пользователей и не имеет очень низкой производительности.
  • Что веб-сервер не имеет брандмауэра, который останавливает исходящие соединения или внутренние соединения с самим собой (иногда называемые «зацикливанием HTTP») - это относится как к TCP-порту 80, так и к 443.
  • Возможность подключения к почтовому серверу (SMTP), чтобы исходящая электронная почта могла быть отправлена на адрес электронной почты персонала или адреса отдельных участников.
  • Путь установки не содержит текста «_custom».
  • Либо сервер в стиле suEXEC, либо работающее FTP-соединение с PHP обратно на хостинг.
  • Если вы работаете в Windows и версии PHP ниже 7.2 и используете нелатинские символы в кодовых именах, вам необходимо установить transliteration дополнение (в основном из-за ошибки PHP при чтении и записи нелатинских имен файлов).
  • Веб-сервер может работать под управлением Windows, Linux или MacOS - другие операционные системы, такие как Solaris или OpenBSD, официально не поддерживаются, хотя могут быть внесены исправления ошибок.
(*) Другое программное обеспечение базы данных может работать, но не поддерживается. MariaDB должна работать как замена MySQL, но мы не тестируем ее заранее. Требуются определенные разрешения, как описано в руководстве по базовой установке.
(†) MySQL 5.5.3 представляет набор символов utf8mb4, необходимый для хранения эмодзи. Установщик предполагает, что вы установите эту поддержку, но обновления с более старых версий могут работать во всем, начиная с MySQL 4.1+, если база данных хранится в latin1 через наличие $SITE_INFO['database_charset'] = 'latin1';в _config.phpЭта совместимость не гарантируется, но поскольку веб-хостинги очень медленно обновляют установки MySQL, мы неофициально попытаемся поддерживать ее.
 
Composr рекомендует:
  • Версии PHP, которые не достигли статуса окончания срока службы.
  • Среда PHP со следующими расширениями/опциями сборки PHP и соответствующим системным программным обеспечением:
    • FTP †.
    • EXIF.
    • pSpell или Enchant с соответствующими установками и словарями aspell/hunspell (проверка орфографии).
    • iconv или mbstring (поддержка Unicode).
    • intl (строгая транслитерация неевропейских языков для создания качественного псевдонима URL).
    • FreeType (с опцией сборки для GD). FreeType позволяет нам рисовать текст на графике, используя шрифты TrueType.
    • OpenSSL (повышает безопасность, настоятельно рекомендуется).
    • ZIP.
    • XML.
    • CURL.
    • APC (только PHP 5.6 или ниже), или Memcache, или Memcached, или Wincache или eAccelerator (только PHP 5.4 и ниже).
  • Среда PHP с отключенным, но open_basedir включенным безопасным режимом — или сервер suEXEC/IIS (описано ниже).
  • Ограничение памяти PHP 64 МБ.
  • Не менее 100 МБ свободного места на диске.
  • Как правило, если вы используете общий веб-хостинг, мы советуем выбрать хост, который делает ночные резервные копии, к которым у вас есть доступ для восстановления - мы видели, что многие веб-хосты не несут никакой ответственности за резервное копирование, и это нужно делать на сервере. 
  • Если работает Apache, следующие модули Apache (для максимальной производительности): mod_headersmod_setenvifmod_envmod_deflatemod_filter
 
† Если у вас нет расширения PHP FTP, вам потребуется:
  1. Среда, в которой пользователь веб-сервера имеет рекурсивный доступ для записи в веб-каталоги (большинство серверов Windows).
  2. Среда, в которой пользователь веб-сервера совпадает с пользователем входа на виртуальный хостинг (suEXEC)

Требования к конкретным функциям:

 Если вам нужна автоматическая генерация эскизов и транскодирование, вам нужен сервер с FFMPEG. Он должен быть доступен через PHP либо через расширение PHP (только эскизы, а не транскодирование), либо возможность shell_exec запуска из PHP (как эскизы, так и транскодирование).
Однако лучше всего перекодировать вручную в автономном режиме/вне сервера, чтобы избежать чрезмерного использования ресурсов.

 Не пытайтесь установить Composr на бесплатном веб-хостинге, спонсируемом рекламой. Баннеры и отслеживание, которые они внедряют, будут мешать работе механизмов Composr.

 Если требуется интеграция с LDAP (для интеграции аутентификации в корпоративной сети), требуется расширение PHP LDAP.

 Если вам нужно иметь возможность легко удалять «отказные» электронные письма из списков подписчиков на информационные бюллетени, вам понадобится расширение PHP IMAP. Если ваш IMAP-сервер требует SSL (например, gmail), вам потребуется поддержка IMAP-SSL внутри PHP (иначе вы получите ошибки «неверная удаленная спецификация»).

 Если требуются зашифрованные CPF(настраиваемые поля профиля) (см. руководство по расширенной системе участников Composr) или DKIM на основе Composr, требуется расширение PHP OpenSSL.

Установка пакета (дополнительно):

 Этот раздел содержит некоторые предложения по установке пакетов в разных дистрибутивах Linux, чтобы получить хорошую среду PHP. Это применимо только к людям, которые не используют традиционный хостинг с панелью управления для управления.

 Этот раздел активно не поддерживается. Названия пакетов могут меняться, но они предназначены для поддержки людей, настраивающих новые серверы Linux.

Убунту/Дебиан

Code (Bash)
apt-get install apache2 libapache2-mod-php5 php5 php5-common php5-cli php5-apcu php5-curl php5-enchant php5-ffmpeg php5-gd php5imap php5-mysqlnd php5-pspell openssl mysql-server mysql-client postfix nano wget lynx hunspell git openssh-server nano wget iostat
 
 

 Некоторые строки в PHP ini (/etc/php5/apache2/php.ini) по умолчанию необходимо изменить:
upload_max_filesize = 2M → upload_max_filesize = 500M
post_max_size = 8M → post_max_size = 500M
;date.timezone = → date.timezone = "UTC" (чтобы избежать ошибок при запуске PHP)
; extension_dir = "./" → extension_dir = "usr/lib/php5/20121212"
;opcache.enable=0 → opcache.enable=1

 Extension_dir может фактически отличаться в разных версиях, поэтому проверьте это.

Fedora/RHEL/CentOS

Возможно, вам потребуется сначала настроить репозиторий EPEL.
 
Code (Bash)
yum install httpd mod_ssl mod_fcgid php php-common php-cli php-pecl-apc php-pdo curl enchant freetype gd php-gd php-imap php-mysqlnd php-mbstring php-pspell php-xml openssl mysql-server mysql sendmail nano wget lynx hunspell git openssh-server aspell aspell-en nano wget iotop hunspell-en screen unzip



 

Возможно, у вас установлен selinux, вы можете увидеть, делаете ли вы это с помощью sestatus:

[root@localhost html]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      28

Если это так, вам нужно установить дополнительные права на запись с чем-то вроде:
chcon -R -t httpd_sys_rw_content_t /var/www

Вы также можете включить туда yum-cron (или что там сейчас ) для автоматических обновлений системы (у кого есть время, чтобы оставаться в курсе всего серверного программного обеспечения для срочных исправлений безопасности).

 Некоторые строки в  PHP ini (/etc/php.iniпо умолчанию необходимо изменить:
upload_max_filesize = 2M → upload_max_filesize = 500M
post_max_size = 8M → post_max_size = 500M
;date.timezone = → date.timezone = "UTC" 
Чтобы избежать ошибок при запуске PHP.

Совместимость с веб-сервером.

Composr протестирован и оптимизирован только для Apache и IIS.
Однако в принципе он должен работать на любом программном обеспечении веб-сервера.

Есть несколько замечаний, которые следует сделать, хотя единственное, что, вероятно, имеет большое значение, — это схема URL-адресов.
 
 
Примечание Apache-подход IIS-подход Комментарии


Схемы URL


recommended.htaccess файл


web.config
файл
Если желательны схемы URL-адресов, правила перезаписи необходимо будет написать вручную для других серверов.

Правила оптимизации Gzip/кеширования

themes/*/templates_cached/.htaccessuploads/
.htaccess
,recommended.htaccess
Никто Для других серверов  вручную настройте предпочтительные правила.


Базовая конфигурация PHP

recommended.htaccessфайл
(только для установки PHP-модуля)
Никто Конфигурация по умолчанию обычно подходит, но пример .ini 
конфигурации представлен в FAQ.


Конфигурация ошибки 404


recommended.htaccess файл


web.configфайл
Для других серверов просто вручную настройте, требуется ли маршрутизация на страницу 404 Composr.


Эффективные баны IP


Записано в .htaccess файл


Никто
Для серверов, отличных от Apache, запреты применяются только в процессе начальной загрузки Composr (немного медленнее); 
баны могут быть вручную добавлены в конфигурацию веб-сервера по желанию


Отключение PHP
в определенных каталогах


.htaccess файлы разбросаны вокруг


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


Отключение доступа к URL
в определенных каталогах


.htaccess файлы разбросаны вокруг


web.config
файл
Это дополнительный уровень безопасности, но он не требуется, поскольку исполняемые файлы PHP, которые не предназначены для выполнения,
не имеют кода, который активируется
по URL-адресу,
а частные файлы защищены рандомизацией имен файлов.




Отключение несанкционированной загрузки файла журнала




data_custom/.htaccessм файл




web.config
файл
Журнал ошибок Composr - единственный существующий журнал, и загрузка защищена, поскольку это .php файл; если дополнительные журналы создаются вручную, веб-сервер должен быть настроен вручную, чтобы запретить прямой доступ



failover_apache_rewritemap_file 
вариант



Поддерживается



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


MATURITY_FILTER_REQUESTED
условное обозначение


Поддерживается
(только для установки PHP-модуля)


Нет поддержки по умолчанию
Как описано в учебнике по программированию Tempcode, существует обходной путь для настройки других серверов.


Документация


Предоставил


Предоставил
Хотя документация написана для Apache и IIS, опытные пользователи могут адаптировать концепции.


Обходные пути для причуд


Реализовано


Реализовано
Причуды, присутствующие в Apache и IIS, обходятся там, где это необходимо (например, ModSecurity или максимальный размер файла cookie); не ожидается, что на других серверах будут существовать значительные особенности, которые не могут быть устранены путем настройки указанных серверов.
 
Что касается поддержки операционных систем, Composr протестирован и оптимизирован только для Windows, Mac и Linux. Он может работать в других операционных системах, поддерживающих PHP, таких как варианты BSD, если они похожи на Unix.

 Драйверы форума (дополнительно).

Если вы хотите интегрировать существующий форум в Composr, а не использовать наш собственный, форум должен быть одним из:
  • Расширенный электронный форум 1
  • Совет Invision 1.1-1.3/2.0-2.3
  • phpBB 2.0-3.0
  • мой ББ 1.4
  • бюллетень 2.2/3.0-3.7
  • Горящая доска 2.0/2.2/облегченная
  • Форум простых машин 1.0/1.1
  • ВовББ 1.7
 Если вашего форума нет в списке, профессиональные разработчики могут добавить поддержку.

 Обратите внимание, что многие «системы форумов» называются «досками объявлений», а «форум» внутри «форумов» часто называют «доской». Мы постоянно используем термины «дискуссионные форумы», «форумы» и «форум» для их описания.

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

Возможность настройки связанных форумов

 Вместо того, чтобы называть форум «Темы комментариев веб-сайта» или «Заявки в службу поддержки веб-сайта», вы можете назвать его «Центр комментариев Mysite», «Регион справки Mysite» или как угодно другое по вашему выбору. Просто не забудьте изменить параметр конфигурации, чтобы отразить это.

 Это находится в группах «Заявки в службу поддержки» и «Взаимодействие с пользователем» категории конфигурации «Параметры функций». Найдите это в разделе «Административная зона»> «Настройка»> «Конфигурация».
 Если у вас установлены форумы, вы, вероятно, захотите создать форум для комментариев. Для этого создайте закрытый форум под названием «Темы комментариев на веб-сайте». Этот форум будет использоваться для хранения тем, связанных с комментариями к контенту на вашем портале.

 Вы также можете создать закрытый форум под названием «Тикеты в службу поддержки веб-сайта», если хотите включить функцию тикетов в службу поддержки.

Настройка MySQL (дополнительно).

 Переменные сервера могут быть установлены в конфигурации MySQL — либо в основном файле конфигурации (например /etc/my.cnf,), либо в подключаемых файлах (например, из /etc/my.cnf.d) — либо в параметрах запуска — либо путем установки переменной сервера во время выполнения. Если они нигде не установлены, MySQL будет использовать жестко заданные значения по умолчанию.

 Чтобы узнать, какие конфигурационные файлы использует MySQL, выполните следующую команду (Linux и MacOS):
 
Code (Bash)
mysql –help | grep "Default options" -A 1


 
В конфигурационном файле это будет выглядеть примерно так (пример для настройки max_allowed_packet, что, вероятно, вы и хотите):
 
Code (Bash)
[ mysqld ]

max_allowed_packet = 16M




 

Чтобы узнать, установлен ли параметр в параметрах запуска (Linux и MacOS), выполните:

Code (Bash)
ps -Af | grep mysqld
 
 Если это так, вы увидите это в команде. Это может быть установлено в файле инициализации, таком как /etc/init.d/mysqld, но оно значительно различается в зависимости от дистрибутива Linux.

 Если вы изменяете файл конфигурации или параметр запуска, вам, естественно, необходимо сбросить MySQL, чтобы он вступил в силу, например, с помощью:
 
Code (Bash)
/etc/init.d/mysqld restart
 

или:

Code (Bash)
service mysqld restart
 

 Опять же, это сильно зависит от распределения. В Windows вы должны использовать приложение «Службы» для перезапуска службы.

 Когда сеанс MySQL запускается, определенные серверные переменные клонируются в сеанс (например, max_allowed_packet). Затем эти переменные можно читать и записывать как переменные сервера или сеанса (фактически они max_allowed_packet доступны только для чтения как переменные сеанса — исключение, описанное ниже). Если вы установите глобальную переменную, то текущий сеанс не будет затронут, но будут затронуты новые сеансы. Сеансы сбрасываются, когда соединения закрываются, например, когда страница Composr полностью обслуживается.

Чтобы найти значения переменной, вы можете использовать эти запросы MySQL (пример для max_allowed_packet):

Code (MySQL)
SHOW GLOBAL VARIABLES LIKE 'max_allowed_packet';
SHOW SESSION VARIABLES LIKE 'max_allowed_packet';
 

 В MySQL есть много эквивалентных терминов и синтаксисов, которые могут запутать при попытке понять документацию и сторонние решения. Вот руководство:

  • Типы переменных:

    • "Сервер" = "Глобальный"

    • "Сеанс" = "Локальный" = "Соединение"

  • Команды для установки переменных:

    • Переменные сервера, все эквивалентны:

      • SET @@global.whatever=something

      • SET GLOBAL whatever=something

    • Переменные сеанса, все эквивалентны:

      • SET whatever=something

      • SET @@whatever=something

      • SET @@session.whatever=something

      • SET SESSION whatever=something

      • SET @@local.whatever=something

      • SET LOCAL whatever=something

  • Команды для получения переменных:

    • Переменные сервера, все эквивалентны:

      • SHOW GLOBAL VARIABLES LIKE 'whatever'

      • SELECT @@global.whatever

    • Переменные сеанса, все эквивалентны:

      • SHOW VARIABLES LIKE 'whatever'

      • SHOW LOCAL VARIABLES LIKE 'whatever'

      • SHOW SESSION VARIABLES LIKE 'whatever'

      • SELECT @@local.whatever

      • SELECT @@session.whatever

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

  • max_allowed_packet существует как отдельные настройки на стороне сервера и на стороне клиента; это полностью отличается от концепции серверных и сеансовых переменных (оба являются серверными), и их не следует путать.
  • max_allowed_packet по умолчанию 1 МБ на стороне сервера, если он вообще не настроен (т. е. это жестко заданное значение по умолчанию). Большинство веб-хостов будут иметь более высокое значение по умолчанию, и Composr определяет минимальное требование в 16 МБ (мы устанавливаем более высокий предел в случае кэширования больших страниц Comcode).
  • max_allowed_packet переменная сеанса существует, но доступна только для чтения. Попытка изменить его выдаст сообщение об ошибке. Поэтому вы должны правильно настроить серверную переменную.
  • Только пользователи MySQL с SUPER привилегия может установить переменную сервера. Обычно это root есть только у пользователя.
  • max_allowed_packet по умолчанию 1 ГБ на стороне клиента (например, PHP), за исключением официальных клиентских приложений, таких как mysql (16 МБ) и mysqldump (24 МБ) (которые могут быть настроены в конфигурации MySQL, в разделах конфигурации клиента).
  • Поэтому для приложения Composr настройка на стороне клиента не имеет значения, но вы можете придумать ее, например, при создании дампов MySQL.
  • max_allowed_packet может быть установлен с синтаксисом «M», а не только с точными байтами. Таким образом, вы можете установить его на 16M или 16777216, это ваш выбор. После анализа MySQL покажет его в байтах.

 Абсолютный максимальный размер max_allowed_packet (как на стороне сервера, так и на стороне клиента, в зависимости от реализации протокола) составляет 1 ГБ.

Доменные имена.

 Большинство веб-сайтов предпочитают иметь короткий и запоминающийся интернет-адрес, ведущий на главную страницу. Для этого вам нужно будет заплатить за управление доменным именем. Очень большое количество компаний предоставит эти домены и возможность привязать эти имена к вашему веб-серверу за очень низкую плату.
 Важно отметить, что доменные имена лицензируются на временной основе, поэтому вам нужно будет вовремя продлить свои доменные имена. Срок действия лицензии варьируется, но обычно составляет от 1 до 5 лет.

Текущие обязанности по техническому обслуживанию.

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

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

Базовая инфраструктура сервера и сайта.

 Когда вам предоставляется веб-хостинг, вам обычно выделяется «панель управления хостингом», на которой работает такое программное обеспечение, как:

  • Plesk
  • cPanel
  • Ensim
  • DirectAdmin

 Это позволяет вам управлять своей учетной записью на сервере и создавать базы данных, учетные записи FTP (в дополнение к вашей основной учетной записи, которая уже существует) и адреса электронной почты.

Примечание: следующие несколько абзацев подробно описывают сложности типичной файловой системы Linux, и большинству пользователей читать их не обязательно.

 Сам сервер имеет файловую систему, очень похожую на настольный компьютер, и обычно выглядит примерно так (этот пример для сервера Linux):

/
/home/
/home/your-account-name/
/home/your-account-name/httpdocs/
/var/
/var/mysql/
/var/mysql/your-database-name/
/var/mysql/your-database-name/<database-files>

 Конечно, это лишь частичное описание структуры каталогов, но цель состоит в том, чтобы дать вам общее представление о том, что на самом деле происходит на вашем сервере. Обычно вы не сможете с помощью панели управления или SFTP/FTP видеть что-то за пределами «/home/your-account-name/». Когда вы устанавливаете Composr, вы обычно размещаете файлы быстрой установки или ручной установки внутри '/home/your-account-name/httpdocs/'; это каталог, который становится доступным по базовому URL-адресу вашего веб-сайта.

Например, если ваша учетная запись на сервере была связана с доменным именем «mywebsite.com», то http://mywebsite.com/index.php она будет привязана к файлу файловой системы «/home/your-account-name/httpdocs/index.php» (часто «www.» можно удалить, но не на всех серверах).
 Кроме того, из вашей основной учетной записи FTP тот же файл, скорее всего, будет «/httpdocs/index.php».

Другими словами, в зависимости от контекста существуют три представления файловой системы:
  1. Полное представление файловой системы, которое обычно полностью скрыто от вас, но которое на самом деле использует сам Composr.
  2. Представление FTP, которое ответвляется от базы каталога вашей учетной записи в полном представлении файловой системы.

  3. Представление URL, которое ответвляется от каталога httpdocs в каталоге вашей учетной записи.

Как упоминалось ранее, эта файловая система является просто иллюстративной. Разные серверы используют разные соглашения; например httpdocs часто public_html или www.

Безопасность сервера.

Советы по оптимальной настройке приведены в учебнике по безопасности -
здесь мы просто рассмотрим некоторые практические последствия настройки.

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

  1. Общий пользователь

  2. suEXEC-стиль

 С общим пользователем все сайты запускают код от имени пользователя, такого как apache или nobodyЭто проще для хоста настроить, но это не очень хорошая идея для безопасности. Это также является причиной того, что может потребоваться так много «chmodding», чтобы общий пользователь имел доступ на запись к файлам конкретно в вашей учетной записи. В этом сценарии они, как правило, затем блокируют другие вещи, такие как отказ в доступе к оболочке и установка open_basedir PHP для песочницы, но редко этих ограничений бывает достаточно, и это по своей сути неправильный подход для общего веб-хостинга. Различные пользователи сервера, вероятно, смогут получить доступ и вмешаться (удалить и отредактировать) файлы друг друга. Мы настоятельно рекомендуем всем веб-хостингам использовать среду в стиле suEXEC.

 В среде хостинга в стиле suEXEC сайты запускают код под той же учетной записью, в которой хранится сайт. Это проще, проще в настройке и более безопасно. «suEXEC» относится конкретно к тому, как сервер Apache управляет этим, другое серверное программное обеспечение будет ссылаться на него по-разному.

Рабочий пример общей схемы разрешений пользователей

Без suEXEC веб-сервер будет работать под определенным пользователем веб-сервера, например apache или nobody.

Это хорошая идея, чтобы понять несоответствие прав собственности на файлы, которое может произойти…

Предположим, что веб-сервер работает как apache, а ваша учетная запись пользователя — bob.

Любой файл, созданный веб-сервером (или PHP), будет принадлежать apacheНапример, загрузки Composr или файлы ревизий Composr.

Любые файлы, загруженные вами вручную (например, через FTP), будут принадлежать bob.

Обе эти ситуации представляют несоответствие в схеме разрешений.

 Если apache он хочет записать файл, который вы загрузили, он не может, если только вы не указали права на запись в файл для всего мира.Вот почему мы говорим о правах доступа к файлам в нашей документации, говоря, что именно нужно установить.

Если вы хотите отредактировать или удалить файл, созданный веб-сервером, используя свою учетную запись FTP, вы не можете этого сделать, если только сервер не указал права на запись в файл для всехК счастью, Composr довольно умен и действительно устанавливает права на запись во всем мире для apache принадлежащих ему файлов. Это происходит потому, что он автоматически обнаруживает несоответствие между владельцем учетной записи и пользователем, от имени которого работает сервер.
Composr определяет владельца учетной записи, видя, кому принадлежит index.php файл.

Итак, главный вывод:
Если у вас нет suEXEC, любые файлы, которые веб-сервер должен иметь возможность записывать, необходимо либо переназначить, чтобы они принадлежали веб-серверу (если вы являетесь администратором сервера, вы можете сделать это, это более безопасно, если другие пользователи имеют вход в систему на вашем веб-сервере) или предоставленные права на запись во всем мире (что пришлось бы делать большинству пользователей Composr).

PHP-информация.

 «PHP-info» отображает информацию о среде сервера PHP. Это основано на одноименной функции, предоставляемой самим PHP, но мы также добавляем некоторые собственные дополнительные проверки, выдавая предупреждения, если требования к программному обеспечению не выполняются.

 Информация включает в себя все технические детали конфигурации PHP, такие как установленные расширения PHP и определенные параметры.

 Некоторые параметры PHP могут быть определены в файле '.htaccess' (только для пользователей веб-сервера Apache без CGI), как показано в recommended.htaccess файле по умолчанию. На серверах CGI вместо этого вам нужно использовать пользовательский php.ini файл (см. FAQ). Полная информация об этом есть в руководстве по PHP .

PHP-информация также удобна для определения более широких факторов системной среды, таких как пути к серверам.

Доступ к PHP-информации можно получить из:
Admin Zone > Tools > PHP-Info / Server Checks

Отказоустойчивый режим.

Вы можете настроить специальный режим аварийного переключения через config_editor скрипт. 
Этот режим обслуживает кешированные версии страницы, если ваш сервер выходит из строя. Это не идеальная система, потому что:
  1. Это служит хитам в качестве гостей.
  2. Он может работать, только если статический кеш заполнен.
  3. Предполагается, что ваш сервер выходит из строя только по причинам производительности/базы данных, а не полностью (однако большинство сбоев на практике таковы).
 Тем не менее, это все еще отличная система, поскольку она позволяет контенту вашего сайта оставаться доступным даже при большой нагрузке. Аварийное переключение может происходить автоматически на основе ряда критериев.

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

 Режим аварийного переключения требует, чтобы usleep функция PHP не была отключена.
 

Концепция

 
Webhost
Провайдер интернет-серверов
Dedicated server 
Сервер, который не используется совместно с другими
VPS  
Виртуальный частный сервер. Это работает, позволяя нескольким виртуальным машинам работать на реальном хост-компьютере. Обычно это то, что облачный хостинг использует за кулисами.
Linux
Операционная система Linux, очень хорошо подходящая для серверов
Patches 
Патчи — это обновления программного обеспечения, предназначенные для устранения проблем, особенно проблем безопасности в настоящее время.
IaaS
Инфраструктура как услуга. Это облачный хостинг, основанный на прямом предоставлении VPS.
PaaS 
Платформа как услуга. Это облачный хостинг, основанный на предоставлении прямой поддержки и возможности настройки для определенного языка (языков) программирования. Обычно это скрывает от вас сложности управления VPS.
SaaS
Программное обеспечение как услуга. Это то, что вы используете, когда создаете что-то вроде страницы Facebook или размещенного блога, где вам никогда не нужно напрямую устанавливать/настраивать программное обеспечение. Это имеет преимущества, но сильно ограничивает возможности настройки. Composr может поставляться как SaaS, но большинству пользователей нужен высокий уровень контроля над своими сайтами.
Traditional hosting
Хостинг управляется через веб-хостинг. Предоставляется поддержка, серверы поддерживаются в актуальном состоянии, а панели управления предоставляются для относительно простого управления системой.

Смотрите также: