Каковы рекомендации по настройке сервера для сайтов WordPress?
Я нанял системного администратора для настройки сервера VPS для меня, и, к сожалению, похоже, что все было настроено неправильно. При попытке установить и обновить плагины я постоянно сталкиваюсь с ошибками разрешений. WP Super Cache является основной проблемой, так как это приводит к тому, что мои читатели сталкиваются с 502 ошибками. В настоящее время мой сайт не загружает разбивку на страницы (нет страницы 2, Страницы 3 и т. Д.).
12/1 Обновление: Сервер apache перезапускался несколько раз сегодня и в прошло 3 часа с момента моего запроса к хост-провайдеру, все, что у меня есть до сих пор, - это то, что они отслеживают это. И он возобновился с тех пор, как они тоже начали мониторинг...
Системный администратор, настроивший сервер, упомянул, что для правильной работы в режиме DSO папки wp-admin, wp-content и wp-plugins необходимо будет изменить на разрешения 777. Единственная проблема в том, что я все еще не смог получить обновление 3.0.2 для работы с этими настройками сегодня (на этот раз ошибка 504 timeout nginx), поэтому Я все еще обеспокоен тем, чтобы вести его таким образом по многим причинам.
Мне сказали, что если я буду работать в режиме PHP (думаю, это правильно?), То я буду загружать больше оперативной памяти запросами и т. Д., И я уже использую 60% в режиме DSO. Для меня это не имеет никакого смысла, потому что мой блог работал немного медленно, но все равно нормально без каких-либо простоев на общем хостинге. Сейчас я нахожусь на очень авторитетном VPS с оперативной памятью 512 МБ, и мой сайт просматривает всего 10-12 тыс. страниц в день.
Ведущий сказал, что они подправили конфигурация для оптимизации оперативной памяти, поэтому я не думаю, что что-то установлено неправильно. Все еще пытаюсь понять, что здесь происходит.
Разработка.....
4 answers
Это очень сложный вопрос, я постараюсь сделать все возможное, имейте в виду, что сейчас 4 часа утра, поэтому я просто даю вам основные моменты, а не подробные объяснения.
Linux Я предполагаю, что вы используете последнюю версию Ubuntu
- Измените SSH-порт по умолчанию с 22 на что-то другое (/etc/ssh/sshd_config).
- Либо включите AllowGroups, либо allowuser в sshd_config,
- Установить fail2ban (apt-получить установку fail2ban)
- Установите apache2, php5 и mysql-сервер
- Отредактируйте /etc/apache2/conf.d/security.conf и внесите соответствующие изменения для рабочего сервера.
- Отключите медленный вход запросов в MySQL (вы не хотите, чтобы это было включено в рабочей среде, особенно на VPS)
- Настройте системный часовой пояс (dpkg-перенастроить tzdata)
- Убедитесь, что ваш php.ini отражает тот же часовой пояс
- Добавьте новый виртуальный хост в /etc/apache2/сайты-доступны/ (оставьте один по умолчанию в покое)
- Включите этот виртуальный хост с помощью: a2ensite имя нового хост-файла
- Включить перезапись модов (перезапись a2enmod)
- Перезапустить apache2/etc/init.d/перезапуск apache2
Вы также можете сделать некоторые другие вещи, например, установить Shorewall или UFW для лучшего управления брандмауэром, установить Nginx в качестве обратного прокси-сервера для apache, настроить кэш запросов, но это действительно зависит от целого ряда других вещей, и вам следует настроить настройки mysql после нескольких дней работы в рабочем режиме.
Рискуя не ответить на вопрос (который Vid сделал довольно хорошо), могу ли я предложить вам переключиться на хост VPS, который предлагает вам администрирование системы (обычно бесплатно).
Я думаю о http://hub.org в частности. Марк (парень, который управляет им, и один из первых четырех, кто создал PostgreSQL) - лучший системный администратор, с которым я когда-либо сталкивался.
Панель управления концентратора (это не cPanel) переделывается, когда я пишу это; ее заслуга в том, что показывайте только то, о чем должны беспокоиться конечные пользователи. Остальное, по сути, зависит от открытия билета в службу поддержки и запроса о том, чтобы о нем позаботились. (Конечно, вы можете делать все, что вам заблагорассудится, как root, если вы знаете, как обойти оболочку...)
О, и... Я должен упомянуть, что Марк из тех парней, которые действительно копаются в ваших сценариях и указывают на ошибку, если он подозревает, что именно это вызывает проблемы с сервером. Я не знаю ни одного другого ведущего, который делал бы это...
Некоторые идеи:
Мне не нравится WP-Супер-кэш, потому что он на самом деле не решает проблему медленного времени генерации динамических страниц.
Если у вас есть выделенный сервер только для wordpress, я бы не пошел ни на какие компромиссы:
Nginx+php-fpm (вы также можете использовать Apache с fcgid и suexec (это также решает большинство проблем с разрешениями)
Установите кэш кода операции APC
Используйте серверную часть кэша apc: http://wordpress.org/extend/plugins/apc/
Установите batcache для кэша страниц, он будет использовать серверную часть apc. . Настройте кэш запросов MySQL и посмотрите значение key_buffer, если вы используете таблицы MyISAM или innodb_buffer_pool_size. Если у вас много комментариев/обновлений в вашем блоге, рассмотрите возможность использования InnoDB в качестве механизма хранения.
На интенсивно используемом VPS у меня есть время генерации страниц около 150 мс для динамических страниц (ранее не кэшировавшихся), и если batcache доставит на странице это всего 1 мс. Таким образом, вы можете обслуживать до 200-300 кв/с с "обычным" VPS.
При попытке установить и обновить плагины я постоянно сталкиваюсь с ошибками разрешений.
Это распространенная проблема при запуске PHP в качестве DSO или mod_php. При запуске этой установки файлы WordPress должны принадлежать тому же пользователю, под которым работает PHP. Обычно это будет никто или для www-данных Debian/Ubuntu.
Чтобы исправить весь каталог WordPress, выполните следующие действия из командной строки:
$ chown nobody:nobody blog/ -R
Если WordPress установлен в ваш корневой общедоступный каталог, тогда это будет:
$ chown nobody:nobody public_html/ -R
Вы можете установить права доступа к файлам на 644, а к каталогам - на 755