Публикации

Почему «class not found» для memcached в php-fpm, хотя есть в phpinfo()?

Сервер CentOS, на нём nginx и php-fpm, собранные из исходников. Понадобилось добавить поддержку memcached.

Установил libmemcached и php memcached — всё тоже из исходников. Добавил строку php_admin_value[extension]=memcached.so в конфиг php-fpm и перезапустил его.

Тестовый php на веб сервере показывает секцию про memcached в phpinfo(), но в этом же файле попытка инстанциировать этот класс даёт фатальную ошибку «Class 'Memcached' not found».

Точно такая же ситуация с php расширением memcache (без «d»). Есть в phpinfo(), «Class not found» при попытке работать с классом.

ЧЯДНТ и как правильно подключить поддержку memcached из исходников в php-fpm?

(нужен совет) Автоматизация операций с пользователями + LTSP

Сначала немного вводных данных:
Есть сервер на базе Edubuntu 12.04, на нем поднят LTSP, система на SSD, /home размещен на аппаратном рейде, админ с линухом не дружит ).

1. Допустимо ли размещение расшареных папок и бэкапов непосредственно в /home (не в папках пользователей)? Насколько это «идеологически» верно…
2. Можно ли как-то оптимизировать процесс настройки терминальных учетных записей? К примеру: нужно для любого вновь созданного пользователя(а также и уже существующих) оперативно применить настройки того же рабочего стола, прокси и прикладного ПО по шаблону с конкретно указанной учеткой, совершать автоочистку пользовательских каталогов по завершению сеанса/временному промежутку. Если да, то как?
3. Клиенты (тонкие и не очень) различаются по аппаратному обеспечению, в связи с чем происходит потеря производительности. От чего конкретно зависит качество воспроизведения видео на терминалах при использовании LTSP (графический адаптер, память...)? Непонятно ведет себя и сеть, например подключенный по гигабитному соединению современный ноутбук работает идеально, канал связи забивается до значений порядка 40Мбит, но зато никаких артефактов и торможений картинки не наблюдается, однако этот же ноутбук, подключенный по каналу 100Мбит воспроизводит то же самое видео в режиме слайдшоу, а исходящий с сервера поток урезается до ~10Мбит…

Может быть есть какое-нибудь средство для мониторинга текущей нагрузки на компоненты клиента, благо определяются они вполне корректно(судя по тому, что работают без проблем)?
UPD: 3 вопрос переходит в разряд философских. Исходя из статистики использования канала можно сделать один вывод — с современными разрешениями экранов для комфортной работы потребуется не менее 10 честных мегабит. Для просмотра видео в достаточно высоком качестве канал нужен в пять раз быстрее.
Хабравчане — не молчите, иначе вопрос превратится в статью :)

Куда и как правильно положить свои скрипты и как их лучще хранить?

Не корысти ради, а токмо волею пославшей мя супруги заказчиков, не имеющих денег на админов, вынужден не только разработкой заниматься, но и администрированием vds под их проекты, над которыми работаю. использую Ubuntu Server. Есть несколько скриптов на bash/python/php для сервера (создание виртхостов nginx+php-fpm и пользователей для них, бэкапы, анализ логов и прочие мелочи). некоторые скрипты должны запускаться от рута (через sudo), некоторые от текущего пользователя (каждый виртхост — свой пользователь и группа). Как это всё организовать, желательно с каким-то центральным репозиторием (известным, бесплатным), с которого можно было бы разворачивать привычное окружение на новом сервере, даже если старый и личный десктоп оказались недоступны?

Как мне видится: скрипты разрабатываются локально под контролем git или hg (исходники хостятся на github или bitbacket), потом «ручками» (условно тоже каким-нибудь скриптом, возможно хуком на vcs) формируются deb-пакеты (по сути из одного файла), заливаются на launchpad (вроде единственный популярный бесплатный хостинг, на котором можно deb репозиторий без проблем поднять), адрес репа добавляется в source-list, и потом через apt-get скрипты ставятся в /usr/local/bin/ (чтобы сразу через path были доступны), при необходимости создаются каталоги в /usr/local/{lib,share,etc}. Получаю что на любой машине (с Ubuntu точно, с другими Debian-like вероятно, а остальные особо не интересуют), могу развернуть привычное окружение. Недостаток — пакеты, а в случае github и исходники, доступны в паблике (и над ними могут все ржать :)

Или я себе слишком жизнь усложняю и обычно это всё проще решается? или отдельные замечания к моему сценарию есть? Может без local надо обходиться, раз через apt ставлю? Может ещё что?

Как увидеть logtail в веб-интерфейсе supervisord?

В веб-интерфейсе supervisord (supervisord.org/) напротив сервиса есть ссылка «Tail -f» (адрес такой: site.ru:9001/logtail/service_name%3A0). При нажатии на данную ссылку открывается новое окно, но ответ так и не приходит в браузер. Из консоли supervisorctl аналогичный вызов (tail -f service_name:0) отрабатывает нормально.

supervisor> tail -f service_name:0 ==> Press Ctrl-C to exit

BSOD on windows server 2012?

Привет

В продакшине есть сервер dell poweredge r720xd с windows server 2012 datacenter edition, он забсодил после того как я отправил виртуальную машину в ребут.

интересное из мини дампа:
Технические характеристики kd>! analyze -v

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

* *

* Bugcheck Analysis *

* *

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

Читать дальше

MySQL запрос или вина хостера. Кто прав?

Добрый вечер!

У меня есть ресурс на облачном хостинге. Там есть скрипт поиска. Идет поиск по нескольким таблицам, но FULLTEXT индекс только у одного поля ( articles.article_text_for_search ). Объемы текстов по которым ведется поиск — большие. Количество записей в articles — 3 000

Дело в том, что когда работает скрипт search.php ( а это около 8-ми секунд ) — то остальные страницы с сайта, если их попробовать загрузить — сразу не отдаются. Отдаются только когда скрипт search.php начинает отдавать контент в браузер…

Хостер говорит, что это я виноват. И больше ничего не говорит. Я не гуру mysql, но как SELECT запросы могут мешать отдачи контента? ( LOCK Tables не использую, тип таблиц везде — MyISAM )

SELECT articles.id, articles.magazine_id, articles.issue_id, articles.article_name, articles.annotation, articles.article_text, SUBSTRING( articles.article_text, 1, 1000) as article_text_1, articles.section_id, articles.article_rating, articles.to_main, articles.article_unix_add, magazines.mag_name, magazines_issues.issue_number, GROUP_CONCAT( users.user_name ) AS user_names, GROUP_CONCAT( users.user_surname ) AS user_surnames,
Читать дальше

Где поискать красивые конфиги nginx или как сделать красивым мой?

Многоуважаемые, как решить задачи логирования и красивой организации конфигов nginx, когда адреса и с префиксом www/ftp/mysql… и без него хочется логировать в один файл в одной папке под заданный набор хостов?

upstream vserver_pool { server 100.100.100.100:80; } root /var/log/nginx/; access_log /var/log/nginx/$host-access.log; error_log /var/log/nginx/error.log; server { listen 80; server_name www.domain1.tld; return 301 domain1.tld$request_uri; root /var/log/nginx/$host/; access_log /var/log/nginx/$host/$host-access.log; }… server { listen 80; server_name www.domain100500.tld; return 301 domain100500.tld$request_uri; root /var/log/nginx/$host/; access_log /var/log/nginx/$host/$host-access.log; }

Проблема красивой организации конфигов всплывают, когда есть потребность к каждому хосту прибавить набор идентичных правил проксирования. 10 раз добавить идентичный кусок:
server { listen 80 default_server; location ~ /\.ht { deny all; } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location / { proxy_pass vserver_pool; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_redirect off; proxy_buffering off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }

И 5 раз — не идентичный. Возникает проблема с иерархией. Я полагал, что частный случай конфига будет иметь приоритет, однако все, чего я добиваюсь — дублирование логов, в случае наличия префикса www в имени хоста.

Нет ответа от сервера c nginx на некоторые syn?

Добрый день.

Столкнулся со следующей ситуацией.

Есть сервер с Debian Squeeze, на нём установлен nginx 0.7.67 (из репозитория).

В принципе, всё работает без проблем, но заметили, что иногда не получается приконнектиться к порту. SYN приходит, ответа нет.

Пробовал включить syncookies, это несколько помогло (в логах вылезли ошибки про «possible SYN flooding on port 80. Sending cookies.»). Но всё равно были проблемы с коннектом. Синфлуда при этом нет, это просто много легального трафика.

После этого, увеличил следующие параметры:
net.core.somaxconn = 128000 net.core.netdev_max_backlog = 10000 net.ipv4.tcp_max_syn_backlog = 128000'

У нжинкса увеличил listen backlog до 65536.
Читать дальше

Проброс почты с одного внутренного Exchange 2007 на внешний Exchange 2007

Доброе время суток.

Есть 2 сервера:
— который смотрит только в локальную сеть (будем называть его IntServ);
— который смотрит одной ногой в интернет (будем называть его ExtServ), другой в локальную сеть и видит IntServ;
На IntServ настроен Exchange Server 2007 и используется он как внутрикорпоративная почта с адресами вида @%prefix%.example.local, где %prefix% — это некий региональный префикс, который меняется в разных регионах и подразделениях. На ExtServ также стоит Exchange Server 2007 и к нему прикручен домен %prefix%.example.com, где %prefix% означает тоже самое, что и у IntServ.

Возможно ли настроить так ExtServ, чтобы они занимался пересылкой почты через себя от IntServ на любую почту в интернете? Поясню на примерах:
— login1@a.example.local посылает письмо login2@b.example.local. Письмо идёт на IntServ и там дальше по внутренней локальной сети к login2.
— login1@a.example.local посылает письмо на login@example.net. Письмо идёт на IntServ, он «понимает», что письмо во вне, отсылает его ExtServ, тот подменяет адрес на login1@a.example.com и посылает какому-то серверу, обслуживающий домен example.net.
— Обратная ситуация: login@example.net посылает письмо login2@b.example.com. От сервера, обслуживающего example.net письмо приходит на ExtServ, он подменяет адрес на login2@b.example.local, отсылает письмо на IntServ, тот уже передаёт login2.
Чисто логически я тут проблемы не вижу, нужно лишь правила обработки почты на IntServ и ExtServ написать, но можно ли такое сделать на Exchange Server 2007?
P.S. IntServ нельзя просто дать доступ к интернету — служба безопасности порвёт всех и вся.
Заранее огромное спасибо!

Странный глюк с файлами в сетевой шаре

Добрый день!
Ситуация в следующем:
Есть windows server 2008R2 (в рабочей группе), там установлен бухгалтерский софт. Туда подключаются люди по RDP, работают с ним, делают выгрузки в файл. Файл выгружается на локальный диск этого сервера, который у клиентов подключен как сетевой (\\IPaddress\d$ )
Иногда возникает странная ситуация — выгрузка закончена, файлик виден на самом сервере, но на клиентах его нет! Файл не большой, 3-4 КБ, поэтому если он выгрузился- значит выгрузился.
На клиентах (семерка и может быть XP, надо будет уточнить) этот файлик в подключенной папке становится виден ну минут через 5-10… Глюк плавающий, четкого повторения добиться не удалось. Бухгалтера уже смирились с таким глюком, но все равно иногда начинают меня терзать на предмет «почему так» :)
Такой вот странный глюк. НКто-нибудь сталкивался с чем-либо похожим?