to post messages and comments.

*Go *RoR *Yaml *CoffeeScript Дикое ощущение сюрреализма из-за того, что почти весь день писал на PHP, потом разгребал шаблон на Mustache, затем починил поломанный апдейтами Apache, провисел полчаса в Google Hangouts наблюдая код чувака написанный на Python, под вечер посмотрел кусочек видоса про Go-lang, исправил баг в проекте на Ruby on Rails, подправил чуток локализацию в файле на Yaml и календарик на CoffeeScript. Ну а теперь наступает ночь и нужно вернуться к PHP 😊

что-то не могу справится. apache 2.4, mod_wsgi 3.x, mod_deflate штатный. настраиваю сжатие через AddOutputFilterByType. статика, которую apache сам отдаёт — начинает сжиматься. а вот запросы к wsgi — ну ни в какую (AddOutputFilterByType DEFLATE text/html да). нагуглить проблему не могу.

Жуйк, ты такой умный и опытный.
Подскажи, пожалуйста, с чего начать свой путь в освоении настройки Apache2 на Ubuntu Server?
Есть ли, может, где простая хаутушка как настроить домашний сервер, чтоб просто и секьюрно сначала, а после этого тюнинговать и улучшать по ходу дела и повышения уровня знаний?

Ребзя, чё-то я затупил. Вот есть хранилище-вебсервер на qnap-е, есть у него виртуальные хосты, доступные по локалке 10.0.7.118/папка. Как пробросить всё так, чтобы при заходе на внешний IP по умолчанию отдавался наружу по запросу static.ip виртуальный хост из определённой папки?

То есть, набираем static.ip, получаем из 10.0.7.118

И, чтоб два раза не вставать, как в локалке сделать, чтобы адрес папка.local указывал на 10.0.7.118/папка ?

я чего-нибудь пропустил?

set apacheuser=apacheusername
set apachedir=C:\myapachedir
set R=(R)
set RW=(R,WD,AD,GR,GW)
set X=(X)
icacls %apachedir% /reset /T /C /Q
icacls %apachedir% /grant:r %apacheuser%:(OI)(CI)%R% /T /C /Q
icacls %apachedir%\logs /grant:r %apacheuser%:(OI)(CI)%RW% /T /C /Q
icacls %apachedir%\bin /grant:r %apacheuser%:(OI)(CI)%X% /T /C /Q
icacls %apachedir%\modules /grant:r %apacheuser%:(OI)(CI)%X% /T /C /Q

недокументированный косяк при переходе с apache 1.3 на 2.4 (по пути тоже не нашёл). директива Action в apache 1.3 НЕ проверяет фактическое наличие обрабатываемого файла, а apache видимо с 2.0 — ПРОВЕРЯЕТ. судя по комментарию в документации, в версии apache 2.1 ввели аргумент "virtual" для отключения проверки. самого факта проверки, как и факта изменения поведения в документации не нашёл.

недокументированный косяк при переходе с apache 1.3 на 2.4 (по пути тоже не нашёл). более строгая проверка директив конфигурации. очень часто можно было найти в .htaccess такое:
RedirectMatch ^(.*)$ example2.tld [R=301,L]
так вот в apache 2.4 такой номер не пройдёт, ибо [R=301,L] это фишка mod_rewrite, использованная клиентом по ошибке

чтобы кто ни гундел, а писать чего apache делает в proctitle — очень наглядно. да перфоманс конечно того-с, однако. особенно там rate, qps и особенно listen queue. оооо!!! где я был все эти 12 лет?

а apache в структуре запроса нет времени окончания обработки запроса. mod_log_config делает очень странный изгиб через одно место, чтобы не дублировать функции взятия времени для одного запроса, а все остальные особо не парясь фигачат apr_time_now(), который внутри для UNIX gettimeofday() со всеми вытекающими. nginx легче. он кидает время аж в массив (хз зачем). и сразу форматирует всякими разными способами. что выглядит громоздко. челодлание какое-то сплошное

выглядит pache mod_proctitle примерно так
# ps -ax -U root | grep httpd
78945 ?? Ss 0:00.01 httpd: [M 0|0] ruby21 user01 (httpd)
78989 ?? Ss 0:00.25 httpd: [M 0|0] php52 user02 [PLAIN] (httpd)
79041 ?? Ss 0:00.09 httpd: [M 0|0] php53 user02 [PLAIN] (httpd)
79095 ?? Ss 0:00.09 httpd: [M 0|0] php53 user01 [PLAIN] (httpd)
79132 ?? Ss 0:00.09 httpd: [M 0|0] php54 user02 [PLAIN] (httpd)
79166 ?? Ss 0:00.09 httpd: [M 0|0] php55 user03 [PLAIN] (httpd)
79201 ?? Ss 0:00.09 httpd: [M 0|0] php54 user04 [PLAIN] (httpd)
79248 ?? Ss 0:00.09 httpd: [M 0|0] php56 user05 [PLAIN] (httpd)
79297 ?? Ss 0:00.09 httpd: [M 0|0] php54 user06 [PLAIN] (httpd)
79558 ?? Ss 0:00.01 httpd: [M 0|0] wsgi27 user02 (httpd)
79635 ?? Ss 0:00.01 httpd: [M 0|0] wsgi27 user01 (httpd)
79708 ?? Ss 0:00.01 httpd: [M 0|0] wsgi34 user07 (httpd)

# ps -ax -U user02 | grep httpd
79025 ?? I 0:00.00 httpd: [I] [127.0.3.1] 127.0.3.1 GET / HTTP/1.1 (httpd)
79026 ?? I 0:00.00 httpd: [C] php52 user02 [PLAIN] (httpd)
79027 ?? I 0:00.00 httpd: [C] php52 user02 [PLAIN] (httpd)
79056 ?? I 0:00.00 httpd: [I] [127.0.3.2] 127.0.3.2 GET / HTTP/1.1 (httpd)
79057 ?? I 0:00.00 httpd: [C] php53 user02 [PLAIN] (httpd)
79058 ?? I 0:00.00 httpd: [C] php53 user02 [PLAIN] (httpd)
79147 ?? I 0:00.00 httpd: [C] php54 user02 [PLAIN] (httpd)
79148 ?? I 0:00.00 httpd: [I] [127.0.3.3] 127.0.3.3 GET / HTTP/1.1 (httpd)
79149 ?? I 0:00.00 httpd: [C] php54 user02 [PLAIN] (httpd)
79562 ?? I 0:00.04 httpd: user02/site2/2.user02.cz8.ru/norm (httpd)
79563 ?? I 0:00.04 httpd: user02/site2/2.user02.cz8.ru/norm (httpd)
79564 ?? I 0:00.04 httpd: [C] wsgi27 user02 (httpd)
79565 ?? I 0:00.03 httpd: [C] wsgi27 user02 (httpd)

(вот те GET — это наш monit моиторит состояние; [M] — основной воркер апача, он пишет заодно complete и incoplete queue; [C] — это "дочка" апача, пока не обработала ни одного запроса; [B] запрос в обработке, [I] — данные прошедшего запроса; запросы показываются только для mpm_prefork; на линукс пока не портировал)

воткнулся в слаборешаемую проблему — не могу никакими способами посредством API apache достать низкоуровневый дескриптор сокета, который слушаем. задница там из-за apr, который отдельно.

товарищи линуксоиды! скажите, а в каких дистрибутивах что есть для передачи переменных окружения apache´у? вот в Debian/Ubintu я вижу закопанный файлик envvars. а в CentOS, Gentoo, etc?

PhusionPassenger думает, что он умный и меняет proctitle основному апачу. тупо копированием в argv[0] того, что в этот argv[0] при запуске прилетело. не поверяя на длину. соответственно в proctitle полный дрен, если строка аргументов была длинная. так победим

воткнуться в центральный процесс apache — это ap_hook_monitor() OK. способа забрать содержимое Define средствами API apache не существует

прелесть какая. в apache можно задефайнить переменную через -D в коммандной строке, и через Define в конфигурационном файле. но задать ей значение через командную строку нельзя, а через конфиг — можно

и последний наверное вопрос дня — а есть дока по apache API? ну та что на сайте она какая-то косая... разве что на helloworld. я конечно уже начитался исходников, но таки иногда не хватает указаний....

припёрло, за рабочий день набросал/слизал mod_proctitle для apache 2.4 (да, коллеги, спёр с джитхаба у двух хостеров, но они там или странные, или слаборабочие)

мне кто-нибудь может сказать, за что в apache MultiViews удостоился особой чести, что его запись в .htaccess надо включать отдельно AllowOverride Options=All, MultiViews ? есть модель угроз?

Чтобы отработал Include типа: <pre><!--#include virtual="text.txt" --></pre>, нужно активировать модуль "include" в Apache и внести опции в "Virtualhost":

<VirtualHost *:80>
<Directory /www/site/>
Options +Includes
...
</Directory>
<FilesMatch "\.html(\..+)?$">
SetOutputFilter INCLUDES
</FilesMatch>
</VirtualHost>

*diphost кратко — перевел хостинг на apache 2.4, завёл php 5.5 и 5.6 (жду теперь UMI.CMS 3.0 :), немного запоздало (а может и верно, что запоздало — неясно куда там всё дуло) завёл python 3.3 и python 3.4, надоело искать куда редмайны пристроить — завёл ruby 1.9 и 2.1, ну и начитался twitter bootstrap — теперь есть bower и lesscss :) теперь буду потихоньку описывать что где нового и что с этим делать для чайников

Товарищи, а как в выводе mod_autoindex сделать русскими надписи Name/Last modified/Size/Description ?
И как убрать надпись снизу [server] by [author] at [sitename] Port [portnumber] ?
Я что-то никак не могу нагуглить.