Jump to content
Sign in to follow this  
Red Drag

Настройка сервера под DLE

Recommended Posts

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

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

<?php

phpinfo()

?>

Далее открываем этот файл http://ваш_сайт.ru/название_файла.php

Я могу описать очень мало пунктов.

memory_limit - Ограничивает оперативную память под выполнение скриптов.

post_max_size и upload_max_filesize - ограничивают максимальный размер загружаемого файла.

Все что я привел выше это конечно не оптимизация сервера,но многие спрашивают как увеличить максимальный размер загружаемого файла :)

Где настраивается php зависит от операционной системы вашего сервера,у меня Windows и настраивается в папке C:\php\php.ini

На виртуальном хостинге настраивать php можно только в режиме cgi,и если я не ошибаюсь это поддерживают не все хостеры.

Что касается Linux серверов то я с ними не работал.

С настройками Apache и иных программ на сервере и не сталкивался.

В общем,смысл темы делиться опытом и настройками серверов :)

Share this post


Link to post
Share on other sites

Чтобы в Linux найти свой php.ini можно запустить комманду: find / -name "php.ini"

Также хорошая статья про MySQL кеширование

:rolleyes:

После изменений в файле php.ini не забываем перезапустить Apache, чтобы он прочитал новые данные конфигурационного файла.

Для того, чтобы перезапустить Apache можно использовать комманду: /etc/init.d/httpd restart

У кого на сервере редактор VI и других нет, вот документация по этому редактору: http://lib.ru/unixhelp/vi.txt

Share this post


Link to post
Share on other sites

Чтобы в Linux найти свой php.ini можно запустить комманду: find / -name "php.ini"

Также хорошая статья про MySQL кеширование

:rolleyes:

После изменений в файле php.ini не забываем перезапустить Apache, чтобы он прочитал новые данные конфигурационного файла.

Для того, чтобы перезапустить Apache можно использовать комманду: /etc/init.d/httpd restart

У кого на сервере редактор VI и других нет, вот документация по этому редактору: http://lib.ru/unixhelp/vi.txt

Да,совсем забыл про апач,на windows его тоже не забываем перезапустить!

Также надеюсь celsoft выложит рекомендуемые настройки php,апача и других :)

Edited by Red Drag

Share this post


Link to post
Share on other sites

CRON

Ищем свой CRON: find / -name "crontab"

Открываем: vi /etc/crontab и добавляем правило для autobackup.php (файл обязательно переименовать!)

#minute  hour     mday     month   wday     who        command

0        1        *        *       *        root       wget http://site.ru/autobackup.php && rm autobackup.php*.php
wget это тем, у кого нет интерпритатора php :rolleyes: Между цифрами и звёздочками ставим только табуляцию (клавиша TAB) Первая цифра означает срабатывать в 0 минут Вторая цифра означает срабатывать в 1 час ночи Первая звёздочка означает срабатывать каждый день Вторая звёздочка означает срабатывать каждый месяц Третья звёздочка означает срабатывать каждый день недели Там где написано who это значит от имени какого пользователя запускать комманду CRON-ом command - соответственно сама команда :) Например, если мы хотим сделать, чтобы наш файл запускался каждый день в 12:34, то в CRON надо прописать так:
34        12        *        *       *        root       wget http://site.ru/autobackup.php && rm autobackup.php*.php

После внесения изменений в файл: /etc/crontab необходимо перезапустить CRON, чтобы он прочитал новые правила.

Share this post


Link to post
Share on other sites

Общие настройки

Так же как и в случае с "httpd.conf", вам нужно будет сделать правку файла "php.ini".

Директива, разрешающая заключать PHP-код в короткие тэги:

short_open_tag = On
Т. е. вот в такие "<? ?>", вместо таких "<?php ?>" или "<script>". Вывод ошибок в браузер. Для облегчения отладки сценариев:
display_errors = On
Показывать все ошибки, кроме замечаний:

error_reporting = E_ALL & ~E_NOTICE
Запись ошибок в файл журнала. Для локального тестирования лучше отключить:
log_errors = Off
Порядок, в котором PHP будет регистрировать перменные (E - встроенные переменные, G - GET переменные, P - POST переменные, C - Cookies, S - сессии). Отсутствие какой-либо из букв не позволит вам работать с соответствующими переменными. Задайте следующий порядок:
variables_order = "EGPCS"
Возможность обращения к переменным, поступающим через GET/POST/Cookie/сессии, как к обычным переменным (например, "$переменная"). Не рекомендуется включать эту опцию, но включайте, иначе вы сможете обращаться к этим переменным только через суперглобальные массивы (например, "$_POST['переменная']):
register_globals = On
Отключение автоматической обработки кавычек, поступающих через POST/GET/Cookie:
magic_quotes_gpc = Off
Загрузка файлов Разрешает загрузку файлов:
file_uploads = On

Каталог для временных закачанных файлов (не забудте создать этот каталог!):
upload_tmp_dir = C:\Temp\uploadtemp
Максимальный размер закачиваемого файла:
upload_max_filesize = 5M
Динамически загружаемые расширения Путь к папке с расширениями PHP:
extension_dir = extensions
или абсолютный:
extension_dir = C:\Server\PHP\extensions
Подключение динамических библиотек. Включайте только те, которые вам нужны. Для подключения того или иного расширения просто раскомментируйте нужную строку. Например, для подключения графической библиотеки GD, раскомментируйте следующую строку:
extension=php_gd2.dll
Настройка SMTP-сервера Используемый SMTP-сервер:
SMTP = localhost
Порт:
smtp_port = 25
Адрес, который будет указываться в поле "From" в элетронных письмах:

sendmail_from = your@email.name
Настройка MySQL Внимание: В каких-то версиях PHP, поддержка MySQL встроена в ядро, и следовательно, никаких дополнительных расширений для работы с этой БД подключать не надо, а в каких-то нет. Так что, если в архиве с расширениями, который вы скачали, нет библиотеки "php_mysql.dll", то ваша версия PHP поддерживает MySQL, если же эта библиотека присутствует, то вам нужно ее подключить:

extension=php_mysql.dll
Указание порта:

mysql.default_port = 3306
и хоста MySQL по умолчанию:
mysql.default_host = localhost
Настройка сессий Хранить данные сессий в файлах:
session.save_handler = files

Папка для хранения файлов сессий (не забудте создать этот каталог!):

session.save_path = C:/Temp/session
Использовать cookie в сессиях:
session.use_cookies = 1

Исользовать в качестве имени сессии и сессионной cookie ID сессии:
session.name = PHPSESSID
Запрет на инициализацию сессии при начале соединения:
session.auto_start = 0
Время жизни сессионных cookie ("0" - до закрытия окна браузера):
session.cookie_lifetime = 0
ID сессии будут добавляться ко всем ссылкам на странице автоматически (если у пользователя отключены cookie):
session.use_trans_sid = 1

Настройка PHP завершена. Перезапустите Apache для вступления в силу сделанных изменений.

Share this post


Link to post
Share on other sites

MySQL

Выкачка

***********************************************

Для того, чтобы выкачать информацию из базы данных MySQL в отдельный файл, нам надо найти: mysqldump

Запускаем команду: find / -name "mysqldump"

Допустим это будет: /usr/mysql/bin/mysqldump

Запускаем команду: /usr/mysql/bin/mysqldump -uЛОГИН -pПАРОЛЬ НАЗВАНИЕ БАЗЫ > /volume1/web/123.sql

В этом примере у нас по адресу: /volume1/web/ будет лежать файл 123.sql в котором будет бекап нужной нам базы.

Если Вы хотите, чтобы название файла было не 123.sql, а каждый раз разное, то можно прописывать так:

Запускаем команду: /usr/mysql/bin/mysqldump -uЛОГИН -pПАРОЛЬ НАЗВАНИЕ БАЗЫ > /volume1/web/`date "+%d-%m-%Y_%H:%M:%S"`.sql

В итоге файл будет иметь имя, например, 13-10-2009_23:30:52.sql

Если Вы хотите сделать полный бекап баз данных (всех её баз, а не какой-то конкретной), то нужно делать так:

Запускаем команду: /usr/mysql/bin/mysqldump -uЛОГИН -pПАРОЛЬ --opt --all-databases > /volume1/web/123.sql

Если Вы не хотите делать бекап через файл: autobackup.php при помощи PHP, то можно в CRON добавить правило:

0        0        *        *       *        root        /usr/mysql/bin/mysqldump -uЛОГИН -pПАРОЛЬ --opt --all-databases > /volume1/web/`date "+%d-%m-%Y"`.sql

После этого у Вас каждый день в 0 часов 0 минут будет создаваться полный бекап баз данных и он будет сохраняться по адресу /volume1/web/ и будет иметь имя, например, 13-10-2009.sql


Закачка

***********************************************

Для того, чтобы закачать свой дамп базы в MySQL нам надо найти: mysql

Запускаем команду: find / -name "mysql"

Допустим это будет: /usr/mysql/bin/mysql

Запускаем команду: /usr/mysql/bin/mysql --user=ЛОГИН --password=ПАРОЛЬ --default-character-set=КОДИРОВКА БАЗА ДАННЫХ < /volume1/web/123.sql

Пример: /usr/syno/mysql/bin/mysql --user=root --password=12345 --default-character-set=cp1251 test < /volume1/web/proba.sql

Вот этим: /volume1/web/proba.sql - мы указываем откуда брать нашу базу.

Перед тем, как запускать данный код, убедитесь, что существует такая база (в примере test) и что она обязательно пустая! Если она не будет пустая и таблицы будут одинаковые, то будет ошибка.

Если Вы хотите восстановить бекап всех баз данных с одного файла, то просто в предыдущем примере не указывайте: БАЗА ДАННЫХ

После того, как Вы закачали свою базу данных в MySQL перезапустите MySQL

Share this post


Link to post
Share on other sites

Включаем: Server-Status

http://httpd.apache.org/docs/2.0/mod/mod_status.html

Картинка пример:

ae426d56750883f4900c728e9ab0.png

Находим файл: httpd.conf, для этого надо запустить команду: find / -name "*httpd.conf*"

Допустим это будет: /usr/apache/conf/httpd.conf

Заходим в файл: /usr/apache/conf/httpd.conf и в самом низу добавляем такой код:

ExtendedStatus On

<Location /server-status>

        SetHandler server-status

        Order Allow,Deny

        Allow from all

</Location>
После изменений в файле httpd.conf не забываем перезапустить Apache, чтобы он прочитал новые данные конфигурационного файла. Теперь по адресу: _http://site.ru/server-status/index.html?refresh=5 будет показываться информация о сервере, с интервалом обновления 5 секунд. Если Вы хотите, чтобы данная статистика была доступна не для всех, то можно разрешить показывать её только для определённых IP. Для этого надо заменить:
        Order Allow,Deny

        Allow from all

на:
        Order Deny,Allow

        Deny from all

        Allow from 123.123.123.123

        Allow from 234.234.234.234

Также Вам надо убедиться, что у Вас присутствует и подключён данный модуль: LoadModule status_module modules/mod_status.so
ExtendedStatus On в запросах (Request) показывает только первые 63 знака, а потом обрезает. Если хочется увидеть последние 63 знака, то надо добавить строчку: SeeRequestTail On, чтобы вышло так:

ExtendedStatus On

SeeRequestTail On

<Location /server-status>

        SetHandler server-status

        Order Allow,Deny

        Allow from all

</Location>

Например, запрос: GET /disk1/storage/apache/htdocs/images/imagestore1/food/apples.jpg HTTP/1.1

При ExtendedStatus On будет отображатся так:

GET /disk1/storage/apache/htdocs/images/imagestore1/food/apples

Вместе с SeeRequestTail On будет отображатся так:

orage/apache/htdocs/images/imagestore1/food/apples.jpg HTTP/1.1

То, что я отметил красным, это одинаковое, а черным это разница.

  • Upvote 1

Share this post


Link to post
Share on other sites

Включаем ведение логов доступа и ошибок Apache

Находим файл: httpd.conf, для этого запускаем команду: find / -name "*httpd.conf*"

Допустим это будет адрес: /usr/apache/conf/httpd.conf

Далее в файле: /usr/apache/conf/httpd.conf

ищем строчку: ErrorLog /dev/null и заменяем на: ErrorLog /volume1/logs/error.log

Этим мы включаем ведение логов ошибок. Лог файл будет создаваться по адресу: /volume1/logs/error.log

ищем строчку: CustomLog /dev/null combined и заменяем на: CustomLog /volume1/logs/access.log combined

Этим мы включаем ведение логов доступа. Лог файл будет создаваться по адресу: /volume1/logs/access.log

После изменений в файле httpd.conf не забываем перезапустить Apache, чтобы он прочитал новые данные конфигурационного файла.

Если после этого Вы удалите файлы access.log и error.log, то чтобы они появились снова, надо перезапустить Apache и он создаст их снова.

Пример лога ошибок:

[Tue Jan 12 02:24:28 2010] [error] [client 195.210.57.83] File does not exist: /var/services/web/robots.txt

[Tue Jan 12 02:54:14 2010] [error] [client 66.249.67.154] File does not exist: /var/services/web/robots.txt

[Tue Jan 12 04:03:29 2010] [error] [client 65.55.106.204] File does not exist: /var/services/web/robots.txt

[Tue Jan 12 04:21:15 2010] [error] [client 67.218.116.162] File does not exist: /var/services/web/robots.txt

[Tue Jan 12 04:44:26 2010] [error] [client 207.46.199.179] File does not exist: /var/services/web/robots.txt

[Tue Jan 12 07:56:37 2010] [error] [client 87.194.30.85] File does not exist: /var/services/web/robots.txt

[Tue Jan 12 09:07:06 2010] [error] [client 66.249.67.154] File does not exist: /var/services/web/images

[Tue Jan 12 09:30:00 2010] [error] [client 65.55.215.75] File does not exist: /var/services/web/robots.txt

[Tue Jan 12 13:32:27 2010] [error] [client 65.55.207.21] File does not exist: /var/services/web/robots.txt

[Tue Jan 12 14:18:10 2010] [error] [client 195.210.57.83] File does not exist: /var/services/web/robots.txt

[Tue Jan 12 15:39:10 2010] [error] [client 66.249.67.154] File does not exist: /var/services/web/robots.txt

[Tue Jan 12 15:56:24 2010] [error] [client 207.46.199.182] File does not exist: /var/services/web/robots.txt

[Tue Jan 12 20:19:44 2010] [error] [client 87.250.254.242] File does not exist: /var/services/web/robots.txt

[Tue Jan 12 21:51:28 2010] [error] [client 87.250.254.242] File does not exist: /var/services/web/uploads/sitemap.xml

[Tue Jan 12 22:06:59 2010] [error] [client 66.249.67.154] File does not exist: /var/services/web/robots.txt

[Tue Jan 12 23:06:51 2010] [error] [client 216.131.91.232] File does not exist: /var/services/web/store

[Tue Jan 12 23:06:51 2010] [error] [client 216.131.91.232] File does not exist: /var/services/web/zen-cart

[Tue Jan 12 23:06:52 2010] [error] [client 216.131.91.232] File does not exist: /var/services/web/e-commerce

[Tue Jan 12 23:06:52 2010] [error] [client 216.131.91.232] File does not exist: /var/services/web/includes

[Tue Jan 12 23:06:52 2010] [error] [client 216.131.91.232] File does not exist: /var/services/web/zencart

[Tue Jan 12 23:06:56 2010] [error] [client 216.131.91.232] File does not exist: /var/services/web/zen

[Tue Jan 12 23:06:56 2010] [error] [client 216.131.91.232] File does not exist: /var/services/web/cart

[Tue Jan 12 23:06:57 2010] [error] [client 216.131.91.232] File does not exist: /var/services/web/ZenCart

[Tue Jan 12 23:56:44 2010] [error] [client 212.76.100.186] File does not exist: /var/services/web/favicon.ico

[Tue Jan 12 23:59:44 2010] [notice] caught SIGTERM, shutting down

Как видно из логов ошибок, разные IP-адреса обращались к файлу robots.txt, но так как его нет, то они получали ошибку.

Скорее всего это были поисковые роботы. Логи ошибок очень полезны для выявления разных ошибок на сервере и Вашем сайте :rolleyes:

Пример лога доступа:

87.250.254.242 - - [12/Jan/2010:00:01:02 +0200] "GET /2008/12/17/ HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)"

87.250.254.242 - - [12/Jan/2010:00:03:04 +0200] "GET /tags/%EC%E8%EB%EB%E8%EE%ED%E5%F0%FB/ HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)"

87.250.254.242 - - [12/Jan/2010:00:05:06 +0200] "GET /erotika/3222-bianca-beauchamp-18-foto-nyu.html HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)"

87.250.254.242 - - [12/Jan/2010:00:07:08 +0200] "GET /tags/%E2%E8%E4%E5%EE%EF%F0%E8%EA%EE%EB%FB/ HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)"

87.250.254.242 - - [12/Jan/2010:00:09:10 +0200] "GET /tags/%F0%E0%E7%ED%FB%E5/ HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)"

87.250.254.242 - - [12/Jan/2010:00:11:12 +0200] "GET /eto-interesno/4367-chelovek-xameleon-17-foto.html HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)"

87.250.254.242 - - [12/Jan/2010:00:13:14 +0200] "GET /avto-prikoli/4489-motocikl-skrestili-s-avtomobilem-6-foto.html HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)"

87.250.254.242 - - [12/Jan/2010:00:15:16 +0200] "GET /devushki/4458-gruppa-podderzhki-plyazhnogo-volejbola-50-foto.html HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)"

87.250.254.242 - - [12/Jan/2010:00:17:17 +0200] "GET /tags/%F8%ED%EE%E1%E5%EB%E5%E2%F1%EA%E0%FF/ HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)"

87.250.254.242 - - [12/Jan/2010:00:19:19 +0200] "GET /user/Sandei/ HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)"

87.250.254.242 - - [12/Jan/2010:00:21:21 +0200] "GET /ne-smogli-proiti-mimo/4612-kulinarnoe-masterstvo-39-foto.html HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)"

87.250.254.242 - - [12/Jan/2010:00:23:23 +0200] "GET /devushki/3703-lyubitelskie-fotki-devchonok-24-foto.html HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)"

87.250.254.242 - - [12/Jan/2010:00:25:25 +0200] "GET /devushki/4202-ozornye-devchonki-28-foto-nyu.html HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)"

87.250.254.242 - - [12/Jan/2010:00:27:27 +0200] "GET /photoprikol/3925-demotivatory-20-foto.html HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)"

87.250.254.242 - - [12/Jan/2010:00:29:29 +0200] "GET /tags/%EF%F0%E8%E2%FB%F7%EA%E8/ HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)"

125.230.161.110 - - [12/Jan/2010:00:30:55 +0200] "CONNECT 203.188.201.253:25 HTTP/1.1" 200 1059 "-" "-"

87.250.254.242 - - [12/Jan/2010:00:31:31 +0200] "GET /avto-prikoli/3277-tyuning-honda-accord-28-foto.html HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)"

87.250.254.242 - - [12/Jan/2010:00:33:33 +0200] "GET /photoprikol/3873-prikolnyj-pes-4-foto.html HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)"

87.250.254.242 - - [12/Jan/2010:00:35:35 +0200] "GET /tags/%EC%FB%EB%FC%ED%FB%E5/ HTTP/1.1" 200 726 "-" "Yandex/1.01.001 (compatible; Win16; I)"

Логи доступа дают очень ценную информацию, такую как: IP-адрес с которого был запрос к серверу, время в которое был запрос, дата, путь к файлу к которому был запрос, реферер (если интересно знать с какого сайта к Вам зашли в гости или с какого сайта тянут картинки, файлы Вашего сервера), браузер посетителя и т.д.

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

Share this post


Link to post
Share on other sites

:(

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

max_execution_time = 30 ; Maximum execution time of each script, in seconds

max_input_time = 60 ; Maximum amount of time each script may spend parsing request data

;max_input_nesting_level = 64 ; Maximum input variable nesting level

memory_limit = 128M ; Maximum amount of memory a script may consume (128MB)

post_max_size=3072M

upload_max_filesize = 2048M

Начинает работать только если я уменьшу значение post_max_size... помогите плиизззз Версия 8,3

С Уважением Богдан

Edited by bonhead

Share this post


Link to post
Share on other sites

Снижение нагрузки на VPS (OpenVZ)

Задача:

Снизить потребление памяти на VPS построенной по технологии OpenVZ, снижение нагрузки.

Купил недавно себе VPS построенный на технологии OpenVZ, конфигурация – CPU 1100 Mhz / RAM 512 Mb. Технология виртуализации OpenVZ отличается к примеру от XEN тем, что в OpenVZ ограничивается виртуальная память и это снижает производительность, в моменты когда системе нужно больше ресурсов, а их нету. Изначально не настроенный VPS с ОС Debian Lenny и установленным LAMP со всеми приблудами потреблял около 300 – 350 Mb RAM, что было очень странно. После оптимизации потребление сократилось вдвое. В статье я опишу как снизить потребление памяти путем уменьшения размера стека выделяемого под каждый запущенный процесс, ускорить обработку PHP скриптов средствами eAccelerator.

1. Подрежем стек

Итак как я выше написано, на каждый запущенный тред в виртуальной памяти выделяется место под стек. В моем случае в Debian Lenny размер стека равен 10 Mb. Это очень много и при большом количестве тредов потребление памяти будет огромным. Просмотреть размер стека можно командой:

root@vds:~# ulimit –s

1024
в ответ будет получен объем в килобайтах. У меня это уже измененный размер. Размер стека в 10 Mb велик и его можно и нужно снизить, дабы не порождались пустые выделения памяти на каждый тред. Погуглив и почитав манов я остановился на размере в 1 Mb. Уменьшить его можно командой:
ulimit -s <размер стека на тред в Кб>
В итоге прописываем ulimit -s 1024 в файле /etc/init.d/rc (по выше), ребутим сервер и радуемся снижением потребления памяти. 2. eAccelerator eAccelerator по сути своей является PHP-акселератором, основное назначение которого состоит в кэшировании бинарного представления кода. Каждый раз при выполнении скрипта, PHP читает все подключаемые файлы и переводит их в бинарный код, при запросе скрипта операция повторяется. Задача eAccelerator состоит в сохранении бинарного кода для повторного использования, уменьшая время выполнения скрипта. Установка и настройка его довольно проста и не должна вызвать никаких проблем. Для установки и компиляции акселератора понадобится пакет php5-dev, устанавливаем его:
apt-get install build-essential php5-dev
Теперь нужо скачать и становить акселератор, так как он не входит в состав репозиторий для Debian:
cd /tmp

wget http://bart.eaccelerator.net/source/0.9.5.2/eaccelerator-0.9.5.3.tar.bz2

tar xvfj eaccelerator-0.9.5.2.tar.bz2

cd eaccelerator-0.9.5.2

phpize

./configure

make

make install
После удачной установки необходимо создать файл конфигурации :
vi /etc/php5/conf.d/eaccelerator.ini
И внести в него строки:
extension="eaccelerator.so"

eaccelerator.shm_size="16"

eaccelerator.cache_dir="/var/cache/eaccelerator"

eaccelerator.enable="1"

eaccelerator.optimizer="1"

eaccelerator.check_mtime="1"

eaccelerator.debug="0"

eaccelerator.filter=""

eaccelerator.shm_max="0"

eaccelerator.shm_ttl="0"

eaccelerator.shm_prune_period="0"

eaccelerator.shm_only="0"

eaccelerator.compress="1"

eaccelerator.compress_level="9"
Директория /var/cache/eaccelerator будет испотзоваться акселератором для хранения кэша, поэтому ее необходимо создать и выставить на нее права 0777:
mkdir -p /var/cache/eaccelerator

chmod 0777 /var/cache/eaccelerator
После всех действий рестартим апач и наблюдаем работу акселератора:
/etc/init.d/apache2 restart

Используемые материалы при написании:

http://www.howtoforge.com/eaccelerator_php5_debian_etch

http://www.eaccelerator.net/wiki/Settings

Share this post


Link to post
Share on other sites

Снижение нагрузки на VPS (OpenVZ)

Вопрос по второму пункту. У меня уже болтается сайт на VPS (Debian6)

Как узнать, стоит ли php5-dev или тот же eAccelerator?

Share this post


Link to post
Share on other sites

php -v[/CODE]

Если акселератор стоит, то вывод будет вроде этого:

PHP 5.2.17 (built: Feb 4 2012 07:16:03)

Copyright © 1997-2012 The PHP Group

Zend Engine v2.3.0, Copyright © 1998-2012 Zend Technologies

with eAccelerator v0.9.6.1, Copyright © 2004-2010 eAccelerator, by eAccelerator

Share this post


Link to post
Share on other sites

В итоге прописываем ulimit -s 1024 в файле /etc/init.d/rc (по выше), ребутим сервер и радуемся снижением потребления памяти.

Для сервера под управлением Centos изменяется стек в файле: /etc/secutity/limits.conf

В данный файл нужно добавить строку следующего содержания:

* hard stack 1024[/CODE]

Share this post


Link to post
Share on other sites

php -v[/CODE]

Если акселератор стоит, то вывод будет вроде этого:

PHP 5.2.17 (built: Feb 4 2012 07:16:03) Copyright © 1997-2012 The PHP Group Zend Engine v2.3.0, Copyright © 1998-2012 Zend Technologies with eAccelerator v0.9.6.1, Copyright © 2004-2010 eAccelerator, by eAccelerator

Написано вот такое:

PHP 5.3.10-1~cl+1 (cli) (built: Feb 21 2012 06:25:51)

Copyright © 1997-2012 The PHP Group

Zend Engine v2.3.0, Copyright © 1998-2012 Zend Technologies

with Suhosin v0.9.32.1, Copyright © 2007-2010, by SektionEins GmbH

Не повлияет установка акселератора на работоспособность в данном случае? И как сделать откат, если что?

Добавлю, что на сервере стоит nginx

Edited by Ginko

Share this post


Link to post
Share on other sites

Не повлияет установка акселератора на работоспособность в данном случае? И как сделать откат, если что? Добавлю, что на сервере стоит nginx

Не повлияет, наоборот сервер должен шустрее работать. С nginx eAccelerator отлично работает. Удаляется одной командой в случае чего.

Edited by ower_xz

Share this post


Link to post
Share on other sites

Удаляется одной командой в случае чего.

Какой? :)

Share this post


Link to post
Share on other sites

Парни помогите справиться с проблемой. Хостер только разводит руками.

Ситуация такая:

Сайт стоит на VPS (Debian6, ngnix, 1gb оперативки, акселератор)

Помимо для стоит еще два мода (оба лицензионные, с поддержкой, широкими настройками, в т.ч. времени кеширования). На сайте порядка 7500 новостей.

Почти весь день сайт летает без проблем. Однако ближе к вечеру начинается дурдом: ровно каждый час резко прыгает нагрузка. И при том, что все равно еще остается значительный запас ресурсов, сайт ложится с 504 ошибкой. Иногда это длится не больше нескольких секунд, иногда - до 15 минут!

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

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

Пожалуйста, помогите найти причину.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...