Tag Archives: веб-сервер

Дизайн интерьеров

Защита файла wp-config.php в nginx

Автор: Рудюк С . А.
https://corp2.net

E-Mail: rs@corp2.net

В файле wp-config.php CMS WordPress хранит пароли и логины для доступа к базе данных. Это очень безопасная информация. Есть вероятность, что в момент отладки приложения или веб-сервера данный файл может быть доступен злоумышленникам, поэтому, рекомендуется защищать данный файл от доступа в веб-серверах.

Защита в веб-сервере Apache указывается в файле .htaccess:

Защита в веб-сервере Nginx:

Автор: Рудюк С . А. https://corp2.net

Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

3D визуализация и интерьер

Защита сайта от брутфорса без правки кода

Если Ваш сайт, написанный на базе популярного движка (WordPress, Joomla, Magento и др.), стал сильно тормозить, а в логах доступа сервера Вы видите множество обращений к странице логина или к странице администрирования, знайте — ваш сайт «нашли» боты-брутфорсеры и пытаются подобрать пароль администратора.Если с Вашим паролем всё нормально (он длинный и набран цифрами и буквами в разных регистрах), то Вы можете быть уверены, что брутфорсер его не подберёт. Но сам факт того, что происходит подбор, а тем паче то, что при этом страшно грузится сервер и расходуется трафик (особенно если на вашем хостинге он платный) откровенно говоря, напрягает.

Ниже я расскажу как избавиться от этой проблемки очень простым и бескровным способом.

Сперва предыстория. Проблемой я озаботился спустя некоторое время после того, как перешёл с «самодельного» движка на WordPress (впрочем, это мог бы быть любой другой более-менее распространённый движок). Запилил первый сайт и уже через неделю увидел в логах огромное количество запросов к странице логина. Поиски в интернете выводили на множество «рецептов», подавляющее большинство которых заключается в переименовании файла wp-login.php и его правке (поскольку адрес самой страницы неоднократно встречается в самом файле wp-login.php и других файлах движка.

Но этот способ означает правку ядра WordPress. А это влечёт за собой невозможность получать регулярные автоматические обновления ядра, а также несовместимость с некоторыми плагинами. К тому же способ абсолютно не спасает против тех роботов, которые ищут «дыры» в админке и плагинах, обращаясь с хитроумными параметрами по адресам вида /wp-admin/* В общем, этот способ сразу был отвергнут.

А идея моя заключается вот в чём.

Нужно завести специальную куку, такую, чтобы при её отсутствии сам сервер (Apache или Nginx) перехватывал обращения к странице логина или админке и выдавал вместо кода страниц код состояния 404, означающий полное отсутствие по этим адресам каких-либо страниц). А при наличии куки сервер должен просто обходить эту проверку и сайт должен работать как ни в чём не бывало. Брутфорсеры не тупые, они не будут бесконечно «долбать» отсутствующий URL и отступят.

Куку я планировал устанавливать автоматически с помощью секретного скрипта, который кроме всего прочего (для моего удобства) должен также переносить меня на страницу логина.

Теперь дело за реализацией.

Я привожу кусок конфига для Nginx, поскольку я пользуюсь только этим сервером, но, зная идею, Вы самостоятельно можете написать конфигурацию для Apache или другого сервера.

Теперь файл PHP с секретным именем, который будет данную куку устанавливать:

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

Вот и всё. Просто, правда? Разумеется, этот рецепт может быть повторен абсолютно для любого движка, Вам нужно будет только поменять пути и названия файлов.

Что-то непонятно? Спросите в комментариях!


Источник: http://epsiloncool.ru/programmirovanie/php/zashhita-sajta-ot-brutforsa-bez-pravki-koda

Настройка кеширования страниц в PHP: XCACHE

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

Настраиваем кеш: Файл настройки /etc/php5/apache2/conf.d/xcache.ini.

Также можно указать число ядер вашего процессора:

понятно, что это для 2-х процессоров.


Источник: http://help.ubuntu.ru/wiki/web-server

Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

Дизайн интерьеров

Разгоняем WordPress до скорости света

7337481781ba67dec1Скорость и отказоустойчивость – одни из тех факторов, что неизменно влияют на популярность вашего ресурса, ведь даже с лучшим в мире контентом медленно работающий сайт будет раздражать читателей и рано или поздно вы их потеряете. В этой статье мы будем оптимизировать самый популярный блоговый движок — WordPress, работающий на PHP. А заодно рассмотрим несколько общих моментов в оптимизации сайтов.

1 Тестируем текущую скорость

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

1.1 Pingdom

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

habr1Бенчмарк одного довольно известного ресурса.

1.2 YSlow

YSlow– плагин для Firefox, который встраивается в, пожалуй лучший плагин для веб разработчика, Firebug. Он анализирует более 20 факторов, которые влияют на скорость работы сайта и оценивает общую производительность по 100 бальной системе, а каждый отдельный элемент оценкой от A до F.

habr2

1.3 Количество запросов и время их выполнения

Вставив небольшой кусок PHP кода, можно вывести в футер количество запросов к БД и время, затраченное на их выполнение.

<?php echo get_num_queries(); ?> queries in <?php timer_stop(1); ?> seconds.

 

2 Web Hosting

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

  • Shared Hosting – на одном сервере может хоститься в среднем около 100 человек;
  • VPS – на одном сервере может хоститься около 20 человек;
  • Dedicated – сервер будет использоваться только вами.

Чтоб просмотреть примерную нагрузку на сервер, залогиньтесь через ssh и введите в консоли команду top.

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

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

3 Установка и настройка сервера

Удостоверьтесь, планируемая нагрузка соответствует мощности сервера и он сможет с ней справиться. В первую очередь это будет зависеть от объема оперативной памяти и процессора. Как правило, WordPress ставят на Apache, но много удачных решений существует и на базе других http серверов: nginx, lighttpd и т.д.

Не забудьте обновить до последней версии PHP и Apache.

3.1 Отключите неиспользуемые сервисы

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

  • Удалите ClamD;
  • Настроить SpamD на использование только 1 дочернего процесса;
  • Удалите Mailman, если, конечно, вы не собираетесь запускать почтовый сервис.

 

3.2 MYSQL Query Cache

Поскольку стабильность и скорость WordPress довольно сильно зависит от работы БД, стоит убедиться, что настройки в my.cnf соответствуют возможностям сервера. В первую очередь следует установить настройки кэширования запросов, добавив в my.cnf следующие строки:

query_cache_type = 1
query_cache_limit = 2M
query_cache_size = 20M

Чтоб настройки вступили в силу придется перезапустить сервис MySQL сервис.

3.3 Кэш компилятора: XCache или Eaccelerator?

Кэш компилятора увеличивает производительность откомпилированных скриптов на сервере, кэшируя их – это поможет сократить время выполнения PHP скриптов. Стоит попробовать и то и другое решение, однако по результатам опытов увеличение производительности при использовании Xcache на 5% выше, чем с Eaccelerator.

3.4 Увеличьте максимальное число соединений на Apache

Увеличение максимального количества соединений в httpd.conf повысит производительность, т.к. сервер сможет обрабатывать большее количество подключений за раз. Однако, следует изменять этот параметр осторожно, дабы не исчерпать весь объем оперативной памяти и не замедлить работу сервера, потому всегда тестируйте новые настройки прежде чем запускать их в работу. Установим к примеру 150 коннектов:

max_connections = 150

Не забудьте рестартить сервис Apache, чтоб применить настройки.

4 Оптимизация кода и графики

Итак, сервер заработал и теперь настало самое время поиграть с кодом WordPress.

4.1 Отключите хотлинки

Каждый раз когда вы используете свой сервер для хранения изображений вы существенно больше используете его ресурсов. Довольно часто люди заимствуют ваши изображения, ставя хотлинки на своих серверах. Это не только занимает канал, но и создает определенную нагрузку на сервер.
Добавьте следующий код в .htaccess файл, заменив example.com на имя вашего домена, чтобы отключить использование хотлинков:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/.*$ [NC]
RewriteRule .*\.(gif|jpg|png|ico)$ - [F,L]
</ifModule>

 

4.2 Используйте внешний хостинг для хранения изображений

Хостинг изображений на внешних серверах поможет значительно снизить нагрузку на сервер. В примере ниже вы можете видеть снижение объема используемой оперативной памяти на одном из блогов после переноса изображений на сервис Amazon S3.

amazons3images

4.3 Сжимайте java-скрипт код

Сжатие javascript довольно простая задача. Поскольку он выполняется при каждом просмотре страницы, вы можете уменьшить размер Javascript, удалив все незаполненное пространство. Вот простой инструмент, который поможет сделать это за вас — JavaScript Compressor.

4.4 Javascript в начале страницы

Часто случается так, что сайт начинает загружаться медленно или вообще останавливается, т.к. другой ресурс, с которого вызывается javascript(на пример Digg badges, Tweetmeme и т.д.), не доступен или оффлайн. Чтобы избежать этого вынесите весь javascript код в конец страницы, а то что по каким-то причинам вынести не удалось – попробуйте заключить в iFrame.

4.5 Используйте кэш браузера

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

FileETag MTime Size
<ifmodule mod_expires.c>
<filesmatch "\.(jpg|gif|png|css|js)$">
ExpiresActive on
ExpiresDefault "access plus 1 year"
</filesmatch>
</ifmodule>

 

4.6 Сжимайте статические данные

Вы можете уменьшить размер загружаемой страницы позволив браузеру принимать и передавать данные в сжатом виде. Это также снизит загрузку канала и количество загружаемых данных.
Следующий код в .htaccess может помочь вам в этом:

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html

 

4.7 Используйте CDN для статических файлов

Если хранить все изображения на одном и том же домене, то браузер будет ожидать их загрузки одного за другим. Допустим на странице их у вас есть 12 штук, если вы разделите их между тремя поддоменами, они будут загружаться одновременно из трех «разных» источников вместо того, чтоб загружаться браузером по очереди из одного.
Можете попробовать перенести все css & javascript файлы на files.yoursite.com, а изображения и временные файлы на static.yoursite.com. Или же просто использовать CDN(Content Delivery Network) – большая сеть серверов, расположенных по всему миру, которые позволят не только хранить ваши файлы на разных поддоменах, а значит загружать их параллельно, но и доставлять пользователю данные с самого близкого к нему сервера. Все это позволит загружать данные намного быстрее.

5 WordPress

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

5.1 Обновитесь до последней версии

Обновления до более новых версий позволяют не только устранять обнаруженные уязвимости, но и улучшают производительность. Для примера в wordpress 2.8 была существенно оптимизирована работа с БД.

5.2 Отключите Post Revisions

Во всех версиях wordpress, начиная с 2.6, редакции ваших статей каждый раз во время правки автоматически сохранялись. Это замедляет работу БД и увеличивает ее размер без особой надобности.
Чтоб отключить post revisions, добавьте следующую строку в wp-config.php:

define('WP_POST_REVISIONS', false);

Чтобы удалить сохраненные ранее ревизии текста, выполните следующий запрос в PHPmyadmin:

DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision'

 

5.3 Сократите количество запросов

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

<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />

Мы запросто можем переписать в:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Уже на два запроса меньше. Довольно просто, не правда ли?

6 WordPress Plugins

И на последок предлагаю вашему вниманию несколько плагинов, которые могут повысить производительность wordpress. Как только все, описанное выше, будет выполнено, эти плагины помогут добиться еще более высокой производительности.

WP Super Cache
Это, пожалуй, лучший плагин к WordPress. WP Super Cache создает статические html версии каждой страницы и загружает их каждый раз, обходясь тем самым без запросов к БД. Это значительно увеличивает скорость загрузки страниц и снижает нагрузку на сервер. Строго рекомендуется к установке.

PHP Speedy WP
Этот плагин решает другую проблему, обозначенную в этой статье – удаление незаполненного пространства в CSS & javascript. Однако есть некоторые проблемы совместимости этого плагина с WP Super Cache, кроме того он долгое время уже не обновлялся, потому используйте на свой страх и риск.

Optimize DB
Плагин позволяет оптимизировать таблицы MySQL без помощи PHPmyadmin.


Источник: http://habrahabr.ru/post/69046/

Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

.htaccess и php_value mbstring.func_overload

Автор: Рудюк С . А.
https://corp2.net

E-Mail: rs@corp2.net

В 1С-Битрикс требуют установку параметров php.ini:

Но, с некоторых пор данные параметры не изменяются в файле .htaccess. Изменение же в php.ini может отрицательно сказаться на работе других сайтов.

Решением может настройка конфига виртуального хоста:

Автор: Рудюк С . А. https://corp2.net

Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

3D визуализация и интерьер

Оптимизация веб-сервера

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

1. Оптимизация CMS-системы.

Как было показано опытами, которые я проводил несколько лет назад, наибольшая скорость загрузки и пропускная система — у статических файлов. Скорость cms-систем и статических файлов отличается в 1000-10 000 раз. Причем, это еще сильней сказывается при применении системы веб-сервера NGinx.

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

2. Оптимизация работы веб-сервера. Связка Apache-Nginx.

Мы давно практикуем систему 2-х уровневого веб-сервера. Эта система дает устойчивость к большому количеству посещений, и как результат — скорость работы веб-сервера.
3. Оптимизация работы базы данных. Связка PostgreSQL-PGBouncer.

Связка о которой многие забывают, но которая просто необходима при большом количестве работающих пользователей в online. Эта связка прекрасно себя проявила и сейчас реально у нас реально выдерживается более 500 пользователей в online. Причем, есть возможность выдерживать еще гораздо большие нагрузки!
4. Оптимизация работы с файлами Nginx.

Если не правильно настроить Nginx, то он будет загружать не нужной работой Apache. Поэтому, мы настроили Nginx так, чтоб он как можно реже переводил управление на Apache. В идеале — работая вообще без Apache!

5. Системы кеширования PHP. Остановились на xCache.

Значительное время веб-сервера тратится на компиляцию PHP-кода. Поэтому, я решил установить систему кеширования PHP-кода. Рассматривая ряд вариантов остановился на xCache. Но, ниже дам выдержки из статей для настройки нескольких разных систем кеширования php-кода. Может, в некоторых случаях, они будут более эффективны…

По настройке админки xcache, советую прочитать документацию: http://xcache.lighttpd.net/wiki/InstallAdministration

Установка и настройка xCache

Оптимизация работы вебсерверов, ускорение их работы тема очень интересная, возможности развернуться в этой области предостаточно, инструментов тоже хватает. XCache относится к средствам ускорения работы PHP. Устанавливается XCache как дополнительный модуль PHP и служит для кеширования результатов выполнения скриптов в шаред мемори. По сравнению с eAccelerator, XCache показывает более ощутимые результаты, но в проектах, где объемы кеша очень большие – не совсем подходит. Все таки оперативная память не бесконечна. Установим XCache из портов:

cd /usr/ports/www/xcache/
make install clean

При установке доступен диалог настройки сборки, с единственным пунктом Enable code coverage dumper, по умолчанию она включена и служит для определения.предотвращения переполнения памяти.
По окончании установки, нужно скопировать файл настройки xcache.ini в /usr/local/etc/php/:

cp /usr/local/share/examples/xcache/xcache.ini /usr/local/etc/php/

и немного исправить.
У меня получился такой файл настроек:

[xcache-common]
extension = xcache.so
#Включим админ интерфейс
[xcache.admin]
xcache.admin.enable_auth = On
xcache.admin.user = «admin»
#В качестве пароля укажем md5 хеш, создать его можно с
#помощью команды md5 -s «ваш пароль»
xcache.admin.pass = «XXXXXX»

[xcache]
xcache.shm_scheme = «mmap»
#Выделим для кеша 128 мегабайт
xcache.size = 128M
xcache.count = 1
xcache.slots = 8K
xcache.ttl = 0
xcache.gc_interval = 0
xcache.var_size = 0M
xcache.var_count = 1
xcache.var_slots = 8K
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.test = Off
xcache.readonly_protection = Off
xcache.mmap_path = «/dev/zero»
xcache.coredump_directory = «»
xcache.cacher = On
xcache.stat = On
xcache.optimizer = On

[xcache.coverager]
xcache.coverager = On
xcache.coveragedump_directory = «»

Настройка самого XCache закончена, остается сделать доступным админ интерфейс. Для этого я у себя скопировал /usr/local/share/examples/xcache/admin в документ рут своего вебсервера www.hilik.org.ua
После этого админ интерфейс станет доступным по URL http://www.hilik.org.ua/admin/
Конечно через этот интерфейс доступна только статистика, но все равно, это полезная функция.
Да и авторизация определена вами в xcache.ini.

Взято на сайте http://www.hilik.org.ua
Установка Eaccelerator

PHP — язык интерпретируемый. Это значит, что каждый раз, когда происходит вызов скрипта на этом языке, запускается PHP-интерпретатор, который проводит полный анализ исходного кода. Причем, если спустя секунду произойдет второй запуск того же скрипта, вся процедура будет повторена заново. Это нерациональное использование ресурсов, поэтому мы применим инструмент под названием eAccelerator, который скомпилирует исходные тексты PHP в двоичное представление, оптимизирует их и будет бережно хранить в оперативной памяти для более быстрого доступа. Благодаря только этому скорость обработки PHP-скриптов вырастет в десятки раз (подтверждено тестами).

Пакета eAccelerator нет в репозиториях популярных дистрибутивов, поэтому его придется собрать самостоятельно. Сначала устанавливаем необходимые для сборки утилиты:

$ sudo apt-get install php5-dev build-essential

Далее получаем исходные тексты eAccelerator:

$ cd /tmp/
$ wget http://bart.eaccelerator.net/source/0.9.6.1/
eaccelerator-0.9.6.1.tar.bz2
$ tar xvjf eaccelerator-0.9.6.1.tar.bz2
$ cd eaccelerator-0.9.6.1
$ phpize
$ ./configure —enable-eaccelerator=shared
$ make
$ sudo make install

Создаем каталог для хранения кэша:

$ sudo mkdir -p /var/cache/eaccelerator
$ sudo chmod 0777 /var/cache/eaccelerator
И, наконец, подключаем eAccelerator к PHP (добавить в начало файла):
# vi /etc/php5/apache2/php.ini
[PHP]
; Подключаем расширение
extension = «eaccelerator.so»
eaccelerator.enable = «1»
; Максимальный размер дискового кэша (Мб)
eaccelerator.shm_size = «64»
; Каталог для хранения кэша
eaccelerator.cache_dir = «/var/cache/eaccelerator»
; Включаем оптимизатор кода
eaccelerator.optimizer = «1»
; Перекомпилировать модифицированные скрипты
eaccelerator.check_mtime = «1»
; Отключаем режим отладки
eaccelerator.debug = «0»
; Кэшировать все файлы (пустой фильтр)
eaccelerator.filter = «»
; Неограниченный размер кэша в памяти
eaccelerator.shm_max = «0»
; В случае отсутствия места в кэше удалять объекты старше
1 часа (3600 секунд)
eaccelerator.shm_ttl = «3600»
eaccelerator.shm_prune_period = «0»
; Кэшировать данные и в памяти, и на диске
eaccelerator.shm_only = «0»
; Сжимать кэшированные данные с максимальным уровнем компрессии
eaccelerator.compress = «1»
eaccelerator.compress_level = «9»

Установка APC

Статья по адресу: http://phpcoder.ws/2009-02/apc-setup.html

APC (Alternative PHP Caching – это Альтернативный ПХП Кешер, руководство по использованию на английском языке). Входит в число трех наиболее популярных способов кеширования опкодов для выполненных php скриптов. Его ближайшими конкурентами являются XCache и eAccelerator. О последнем я уже писал недавно на этом блоге, а статья об XCache, который имеет несколько очень существенных преимуществ перед конкурентами, будет опубликована здесь в ближайшее время. Короче говоря, APC это еще один способ повысить быстродействие вашего сайта в том случае если он расположен на вашем сервере, вы являетесь админом своего хостинга и вас волнуют вопросы быстродействия размещенных на нем сайтов…

Установка APC

Одним из основных преимуществ APC является его простота установки. Если вы являетесь пользователем Debian/Ubuntu, то вполне вероятно что для установки вам будет достаточно набрать в консоли команду sudo aptitude install php-apc или установить этот пакет через synaptic. Если вы используете другой дистрибутив, или по какой-то причине не можете установить “родной” deb-пакет, то у вас есть другой путь – установка из PECL. Для этого нужно набрать команду: sudo pecl install apc, которая скачает нужные архивы из сети, распакует, откомпилирует и установит полученный файл apc.so в нужную директорию.
Проверка установки APC

Во-первых, проверьте что строчка загрузки расширения extension=apc.so действительно прописалась в php.ini (или создан файл apc.ini с этой строчкой в папке с конфигами расширений php – зависит от вашего дистрибутива. Для Debian, например, этой папкой будет /etc/php5/apache2/conf.d/

Если строчка успешно найдена/добавлена, то перезапускаем сервер apache и переходим к проверке самого расширения. Для этого находим папку в которую было установлено расширение. В этой папке будет лежать файл apc.php (файл так же можно взять в архиве установки), копируем его в public директорию любого из сайтов на этом веб-сервере и заходим браузером по адресу http://сайт/apc.php. Если расширение было установлено корректно, то вы увидите на загруженной странице статистику по APC (скриншоты приведены ниже).
Общая информация об APC

Общая информация об APC
Подробная информация об APC

Подробная информация об APC
Информация о хосте

Информация о хосте
Замеры изменения производительности

Для проверки была выбрана CMS Joomla1.5.9 с демонстрационным набором данных после установки и с шаблоном дизайна по умолчанию. При тестировании производительности при помощи утилиты ab2 (было выполнено 1000 обращений к главной странице сайта в 5 потоков) скорость генерации страниц увеличилась на 40%
Недостатки APC

Объективности ради отмечу и недостатки APC…

* отсутствует поддержка FastCGI
* кеширование работает только с модулем apache mod_php (в режиме cli ускорения не будет)
* работает с версиями PHP<=5.2 С версией 5.3 отмечаются проблемы, а что касается 6.0 — будущее совсем туманно. Возможно какой-то механизм кеширования будет интегрирован в само ядро…

Заключение

По-моему стоит установить APC на своем веб-сервере и попробовать – подойдет ли оно именно вам. Несмотря на ряд описанных выше ограничений APC считается наиболее надежным из тройки основных реализаций кеширования для языка PHP…

Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

Дизайн интерьеров

2-й экземпляр apache

Автор: Рудюк С . А.
https://corp2.net

E-Mail: rs@corp2.net

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

Определимся, чем должны, отличаться наши экземпляры.
Это конфигурационными файлами:
/etc/apache2/apache2.conf  — указаны порты и специфичные для каждого из Апачей виртуальные хосты
/etc/apache2/ports.conf — содержит прослушиваемые порты.
/etc/apache2/envvars — путь к файлу для сохранения pid запущенного демона.

Стоит разделить логи директивами в в apache2.conf:
ErrorLog /var/log/apache2/error.log
CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined

Идем в папку init скриптов:
cd /etc/init.d

Создаем копию init скрипта родного Apache:
cp apache2 apache2_srv

Где apache2_srv — это название нового экземпляра Apache.

Сразу Добавляем фейловер Апача в автозапуск:
update-rc.d apache2_srv defaults

Корректируем скрипт apache2_srv:

Вместо блока:
PIDFILE=. /etc/apache2/envvars ; echo $APACHE_PID_FILE
if [ -z «$PIDFILE» ] ; then
echo ERROR: APACHE_PID_FILE needs to be defined in /etc/apache2/envvars >&2
exit 2
fi

Вставляем:
PIDFILE=. /etc/apache2/envvars_apache2_srv ; echo $APACHE_PID_FILE
if [ -z «$PIDFILE» ] ; then
echo ERROR: APACHE_PID_FILE needs to be defined in /etc/apache2/envvars_apache2_srv >&2
exit 2
fi

Чуть выше корректируем ENV:
ENV=»env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin APACHE_ENVVARS=/etc/apache2/envvars_apache2_srv»

Корректируем конфиги:
cp /etc/apache2/envvars /etc/apache2/envvars_apache2_srv

Заменяем
export APACHE_PID_FILE=/var/run/apache2.pid
на
export APACHE_PID_FILE=/var/run/apache2_apache_2.pid

Создаем файл портов /etc/apache2/ports_apache_srv.conf:
В нем пишем:
Listen 81

Создаем файлы логов:
touch /var/log/apache2/error_apache2_srv.log
touch /var/log/apache2/other_vhosts_access_apache2_srv.log
chown root:root /var/log/apache2/other_vhosts_access_apache2_srv.log
chown root:adm /var/log/apache2/error_apache2_srv.log
chmod 640 /var/log/apache2/error_apache2_srv.log

Теперь давайте посмотрим, как осуществляется управление демоном Апача. Сразу скажу, что кэш мы не используем и следовательно «check_htcacheclean» всегда будет выдавать ложь.
Запуск:

start)
log_daemon_msg «Starting web server» «apache2»
if $APACHE2CTL start; then
if check_htcacheclean ; then
log_progress_msg htcacheclean
start_htcacheclean || log_end_msg 1
fi
log_end_msg 0
else
log_end_msg 1
fi
;;

То есть все вопросы к: $APACHE2CTL, его мы будем использовать не как SysV инит скрипт, а будем им проксировать все наши вопросы к apache

Для этого в верху скрипта делаем замену:

APACHE2CTL=»$ENV /usr/sbin/apache2ctl»

на

APACHE2CTL=»$ENV /usr/sbin/apache2ctl -f /etc/apache2/apache2_srv.conf»

Далее изменяем все параметры вызов APACHE2CTL:

$APACHE2CTL start на $APACHE2CTL -k start
$APACHE2CTL stop на $APACHE2CTL -k stop
$APACHE2CTL graceful на $APACHE2CTL -k graceful
$APACHE2CTL configtest на $APACHE2CTL -t

Теперь надо скорректировать функцию pidof_apache, иначе при stop мы будем убивать всех Апаче разом:

Делаем замену:

pidof_apache() {
# if pidof is null for some reasons the script exits automagically
# classified as good/unknown feature
PIDS=pidof apache2 || true

на:

pidof_apache() {
# if pidof is null for some reasons the script exits automagically
# classified as good/unknown feature
PIDS=ps aux | grep 'apache2_srv' | grep -v 'grep' | awk '{print $2}' | xargs || true

Теперь попробуем запустить второго Апача:

/etc/init.d/apache2_srv  start
Starting web server: apache2apache2: Could not open configuration file /etc/apache2/apache2_failover.conf: No such file or directory
failed!

Теперь необходимо на основе apache2.conf составить /etc/apache2/apache2_srv.conf

Скопируем оригинал

cp /etc/apache2/apache2.conf /etc/apache2/apache2_srv.conf

И далее корректируем пути к файлами, которые обсуждали выше.

CustomLog /var/log/apache2/other_vhosts_access_apache2_srv.log vhost_combined
ErrorLog /var/log/apache2/error_apache2_srv.log
Include /etc/apache2/ports_apache2_srv.conf

Теперь надо поменять порты у директив NameVirtualHost xx.xx.xx.xx:80 и VirtualHost xx.xx.xx.xx:81.

Повторяем попытку запуска:

/etc/init.d/apache2_srv  start
Starting web server: apache2.

Автор: Рудюк С . А. https://corp2.net

Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

Веб-сервер Nginx и PHP-FPM (настройка мобильного хостинга) — пополняется

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

Для виртуальной машины вырал virtualbox:
https://www.virtualbox.org/wiki/Downloads

Операционную систему использую Linux Ubuntu:
http://www.ubuntu.com/

После того, как установил Linux Ubuntu в вируальной машине VirtualBox, устанавливаю веб-сервер nginx и PHP-FPM:

Редактируем файл:

Редактируем файл:

Перезагружаем:

Для удобства, ставлю некоторые из утилит:

Устанавливаю DNS-сервер для настройки ns-сервера и доменных зон:

mc — это удобный файловый менеджер.

htop — удобное средство для просмотра загрузки процессоров.

whois — сервис для получения информации о доменах.

Еще некоторые команды, которые могут понадобиться при настройке доменов.

dig название домена — определение информации о настройках домена .
nslookup название домена — просмотр ns-серверов домена.

Устанавливаем Apache2

Для сайтов, которым нужен rewrite устанавливаем Apache2:

apt-get install apache2

apt-get install libapache2-mod-php5

apt-get install php5-curl

Ставим RPaf

Устанавливаем MySQL

Устанавливаем Memcahed

Настройка рабочего места веб-разрабочика

Для работы с веб-сервером, удобно поставить такое программное-обеспечение:
putty — клиент терминала.
filezilla — файловый менеджер, передающий файлы по ssh.

Данное программное обеспечение — с открытым исходным кодом, бесплатное и кросс-платформенное. Прекрасно зарекомендовало себя при работе с веб-сервером.

Настройка конфигов Nginx

Другие полезные утилиты на хостинге

Просмотр объема трафика в терминале:
apt-get install iptraf
Чтоб просмотреть трафик, просто наберите в терминале:  iptraf

Просмотр объема трафика в веб-виде:
apt-get install darkstat

После установки, изменяем конфиг /etc/darkstat/init.cfg
# Turn this to yes when you have configured the options below.
START_DARKSTAT=yes

# Don’t forget to read the man page.

# You must set this option, else darkstat may not listen to
# the interface you want
INTERFACE=»-i eth0″

#DIR=»/var/lib/darkstat»
PORT=»-p 666″
#BINDIP=»-b 127.0.0.1″
#LOCAL=»-l 192.168.0.0/255.255.255.0″

# File will be relative to $DIR:
#DAYLOG=»—daylog darkstat.log»

# Don’t reverse resolve IPs to host names
#DNS=»—no-dns»

#FILTER=»not (src net 192.168.0 and dst net 192.168.0)»

# Additional command line Arguments:
# OPTIONS=»—syslog —no-macs»

service darkstat start

Чтоб посмотреть трафик просто в браузере наберите:
http://ip-адрес_Вашего_сервера:666

Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

Предметная визуализация

Дизайн интерьеров

Налаштування Nginx – PHP-FPM для роботи багато-сайтовості в WordPress

По замовчуванню, WordPress працює в одно-сайтовому режимі. Якщо Ви бажаєте включити багато-сайтовість, то зробіть наступні дії:

1. Відкрийте файл wp-config.php. В нього додайте програмний код:

2. Налаштуйте мережу. Для цього, зайдіть в Administration > Tools > Network Setup (Инструменты — Установка сети).

3. WordPress вам повідомить скрипт, призначений для роботи в Apache2.

Скрипт для додавання в wp-config.php (він підходить як для нашого випадку, так і для Apache2).

Скрипт для Apache2, який потрібно додати в файл .htaccess в корні сайту (не підходить для варіанта Nginx, бо від не виконує ці файли :))

Для зв’язки Nginx — PHP-FPM необхідно вставляти інший скрипт в налаштування домену Nginx. Цей скрипт різний в залежності від вибраної Вами схеми багато-сайтовості WordPress.

Скрипт для Nginx для багато-сайтового WordPress, що використовує підкаталоги:

Скрипт для Nginx, що використовує багато-доменність для WordPress:

Разработка и создание сайтов, интернет-магазинов, веб-приложений, порталов, лэндингов, мобильных приложений (Киев)

3D визуализация и дизайн