Проблема с 301 редиректом?

Есть старый сайт, который был перенесен на SimplaCMS. Изменилась структура URL и нужно сделать редирект со старых страниц на новые.

Файл хтаццес имеет такой вид: (редиректы в конце самом)

AddDefaultCharset UTF-8

ErrorDocument 404 /404

ErrorDocument 401 /password.php

RewriteEngine on

# Админка теперь по адресу /simpla

RewriteRule ^admin/?$ simpla [L]

# Каталог товаров
Читать дальше

Почему «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?

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

Не корысти ради, а токмо волею пославшей мя супруги заказчиков, не имеющих денег на админов, вынужден не только разработкой заниматься, но и администрированием 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 ставлю? Может ещё что?

Где поискать красивые конфиги 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.
Читать дальше

Как хранить 3 000 000 картинок и 100 000 файлов?

Дано:
Три сервера, следующей конфигурации:

4-х ядерный процессор AMD Athlon II X4 640

16 ГБ оперативной памяти

14 жестких дисков, два по 250 Гб объединенных в raid-1 (hardware) для ОС и софта, двенадцать по 2 Тб объединенных в raid-6 (mdadm) для самого хранилища, т.е. фактически с учетом издержек на raid и файловую систему доступно 19 Тб пространства)

итого порядка 57 Тб пространства в сумме
Существующие данные:

3 000 000 картинок, средний размер около 1 Мб (преимущественно это фотографии и скриншоты)

100 000 разношерстных файлов, средний размер очень условно 150 Мб, на деле от 100 Кб до 4 Гб

итого около 18 Тб данных
Программное обеспечение:
Читать дальше

Помогите с mod_rewrite и хостингом

Добрый день друзья.

Помогите кто чем может разобраться с хостером. Клиент предоставил хостинг, некий Alkar.net где судя по хелпам ничего не менялось с десять лет, еще успешно используют CGI и так далее.

Когда я начал заливать сайт, в котором есть .htaccess с некоторыми правилами все стало колом 500 ошибки, но я такое встречаю время от времени особенно на хостингах Франции и Бельгии, но стоит найти и закоментить некоторое правило или добавить какое то новое которое они рекомендуют и все работает. Но стал я пытаться отыскать в чем проблема в этот раз наткнулся на то что никогда не мешало.

Само правило очень простое:
RewriteRule ^(?!admin/|css/|images/|inc/|js/|m/|pma/)(.+)$ index.php [L,QSA]

То есть все что не начинается на admin/|css/|images/|inc/|js/|m/|pma — передается на index.php. Это правило работало уже 4 года и я его никогда нигде не трогал и трогать тут нечего, работает оно и на моем тестовом хостинге, но у этого провайдера все выпадает в 500. Ему не нравится "?!" то есть отрицание того что идет далее.

Друзья, подскажите как быть, на этом правиле все и работает, без него никуда.

Спасибо за ваши советы и время.

Как победить Error: accept EMFILE?

Проблема в следующем:
Стоит node 0.8.14, запущен скрипт, использующий sockjs

Сервер перезапустили, и теперь постоянно сыпется в лог скрипта следующее:
events.js:71 throw arguments[1]; // Unhandled 'error' event ^ Error: accept EMFILE at errnoException (net.js:769:11) at TCP.onconnection (net.js:1017:24)

После перезагрузки я проставил
ulimit -u 1048576 ulimit -n 1048576

Эти значения были до перезагрузки

Вот вывод ulimit -a на данный момент
core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 509680 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1048576 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 10240 cpu time (seconds, -t) unlimited max user processes (-u) 1048576 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
Система CentOS 6 x64
Гуглил, пока не нашел решения

Не уходит почта с Ubuntu 12.04 Exim4, куда копать?

У меня проблема — помогите, пожалуйста.
Есть vps-сервер Ubuntu 12.04, на нем хостятся несколько сайтиков. Сайтики на wordpress. Раньше почта для них ходила при помощи msmtp, для него был прописан Google Apps Mail аккаунт с аутентификацией и т.п.

Появилась необходимость отправлять почту с каждого сайтика отдельно, от каждого отдельного адреса. Для этого был снесен msmtp и установлен Exim4 только для отправки писем. При этом происходят чудеса — из командной строки письма уходят — при помощи
echo «This is a test.» | mail -s Testing mail@example.com
а вот при помощи
/usr/sbin/sendmail -t -i Test > Test > EOT
почта фризится и в логах Exim пишется: unroutable address, соответственно, почта не уходит.
Подскажите, пожалуйста, куда копать?

nginx+php-fpm+freebsd логи

Всем привет.
После недели мучений я сдаюсь. :)
Мне нужна помощь в настройке связки nginx+php-fpm+freebsd
Конкретнее, у меня проблема с логами ошибок. Они, тупо, не пишутся.
вводные данные таковы.
freebsd 8.3-RELEASE
PHP 5.4.7 (fpm-fcgi)
nginx version: nginx/1.2.4

конфиг FPM
[global] pid = run/php-fpm.pid error_log = log/php-fpm.log log_level = notice emergency_restart_threshold = 5 emergency_restart_interval = 2 process_control_timeout = 2 daemonize = yes events.mechanism = kqueue [puser] listen = /usr/local/www/host/tmp/php-fpm.sock; listen.backlog = -1 listen.allowed_clients = 127.0.0.1 listen.owner = puser listen.group = puser listen.mode = 0666 user = puser group = puser pm = dynamic pm.max_children = 30 pm.start_servers = 2 pm.min_spare_servers = 2 pm.max_spare_servers = 5 pm.max_requests = 50 slowlog = /usr/local/www/host/logs/fpm.log.slow request_slowlog_timeout = 1s rlimit_files = 1024 rlimit_core = 0 chroot = /usr/local/www/host/ catch_workers_output = yes env[HOSTNAME] = $HOSTNAME env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp php_admin_value[upload_tmp_dir] = /tmp php_admin_value[cgi.fix_pathinfo] = 0 php_admin_value[date.timezone]= 'Europe/Moscow' php_admin_value[memory_limit] = 320m php_admin_value[max_execution_time] = 180
Читать дальше