Мой старт в интернет!

В процессе эксплуатации серверного пакета «Мой Сервер» может возникнуть необходимость дополнительного тюнинга Апаче, например, загрузка дополнительных модулей, блокировка доступа к сайту, увеличение времени выполнения php-скриптов, настройка видимых папок для PHP и т.п.

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

Например, для сайта example.com необходимо закрыть доступ с адреса 1.2.3.4, увеличить время выполнения php-скриптов до 120 секунд и ограничить видимость для PHP временной папкой и папкой сайта.

Для этого добавляем в .htaccess в корне папки сайта следующие строки

1
2
3
4
5
6
7
<RequireAll>
  Require all granted
  Require not ip 1.2.3.4
</RequireAll>
<IfModule mod_php5.c>
  php_value max_execution_time 120
</IfModule>

Для настройки видимых PHP папок необходимо отредактировать файл конфигурации сайта W:\conf\hosts\example.com.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# example.com # example.com # example.com
<VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com
  DocumentRoot /www/example.com
  <Directory /www/example.com>
    AllowOverride All
    Require all granted
    Options -Indexes +Includes +FollowSymLinks
  </Directory>
  ErrorLog /logs/example.com-error.log
  CustomLog /logs/example.com-access.log combined
  <IfModule mod_php5.c>
    php_admin_value open_basedir /tmp/;/www/example.com/
  </IfModule>
</VirtualHost>

Важно!
После редактирования конфигурационного файла сайта необходимо проверить правильность конфигурации

1
mysrv test apache

и при отсутствии ошибок перегрузить Apache

1
mysrv reload apache


Для глобального тюнинга Apache нет необходимости редактировать конфигурационные файлы W:\usr\local\Apache\conf\httpd.conf и W:\conf\mysrv.conf, которые могут быть заменены при последующем апдейте серверного пакета. Для того что бы актуальная рабочая конфигурация не была затерта при апдейте следует размещать ее в папке кастомных конфигураций W:\conf\conf.d

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

Для этого в папке W:\conf\conf.d создаем файл deny_dot_file.conf

1
2
3
<FilesMatch "^\.">
    Require all denied
</FilesMatch>

и файл mod_geoip.conf

1
2
3
4
5
6
7
8
9
LoadModule geoip_module modules/mod_geoip.so
# настройки модуля
    GeoIPEnable On
    GeoIPEnableUTF8 Off
    GeoIPScanProxyHeaders On
    GeoIPOutput Env    
# полный путь к файлам
    GeoIPDBFile /usr/local/share/GeoIP/GeoIPv6.dat
    GeoIPDBFile /usr/local/share/GeoIP/GeoLiteCity.dat

Файлы в папке кастомных конфигураций должны иметь расширение conf

Важно!
После добавления файлов в папку кастомных конфигураций необходимо проверить правильность конфигурации

1
mysrv test apache

и при отсутствии ошибок перегрузить Apache

1
mysrv reload apache

4 комментария на «Кастомная настройка Apache в MySrv 2.1»

  • Добрый день!

    В папке W:\conf\conf.d создал файл mod_auth_sspi.conf :

    LoadModule sspi_auth_module modules/mod_auth_sspi.so

    #Настройки модуля

    Options Indexes Includes
    Order allow,deny
    Allow from all
    AllowOverride None
    Options None

    AuthName «My Intranet»
    AuthType SSPI
    SSPIAuth On
    SSPIAuthoritative On
    SSPIOfferBasic Off
    SSPIOmitDomain On

    require valid-user

    Файл mod_auth_sspi.so поместил в папку W:\usr\local\Apache\modules

    Запускаю тестирование и получаю:
    [Apache] test
    httpd.exe: Syntax error on line 571 of W:/usr/local/Apache/conf/httpd.conf: Syntax error on line 48 of W:/conf/mysrv.conf: Syntax error on line 1 of W:/conf/conf.d/mod_auth_sspi.conf: Cannot load modules/mod_auth_sspi.so into server: \xcd\xe5 \xed\xe0\xe9\xe4\xe5\xed\xe0 \xf3\xea\xe0\xe7\xe0\xed\xed\xe0\xff \xef\xf0\xee\xf6\xe5\xe4\xf3\xf0\xe0.

    Что я делаю не так? Уже весь мозг сломал.

    • mod_auth_sspi не входит в дефолтный дистрибутив апача (ни у апачалаунж, ни у апачахауз)
      и поэтому в папке modules его нет и быть не может
      именно это говорит апач Cannot load modules/mod_auth_sspi.so
      авторизацию может сделать Mod Auth NTLM
      найти его можно на странице загрузок апача-хауз

  • Спасибо за оперативность. Думал долго ждать ответа буду. 🙂

    То что mod_auth_sspi не входит в дистрибутив это понятно. Я его в папку modules положил и он теперь там есть. Другое дело, что данный модуль не работает с apache выше версии 2.2, а в Вашей сборке он 2.4.4.
    На ресурсе https://www.apachehaus.net/modules/mod_authnz_sspi/ выложен данный модуль, вроде как для 2.4.4, но при тесте выдаёт:
    mysrv test apache
    [Apache] test
    httpd.exe: Syntax error on line 571 of W:/usr/local/Apache/conf/httpd.conf: Syntax error on line 48 of W:/conf/mysrv.conf: Syntax error on line 3 of W:/conf/conf.d/mod_auth_sspi.conf: Can’t locate API module structure `sspi_auth_module’ in file W:/usr/local/Apache/modules/mod_authnz_sspi.so: No error

    И естественно апачь не стартует.

    Скачал и установил mod_authn_ntml-1.0-2.4.x-x86. Апачь запустился без проблем, но авторизация не работает.

    Вкратце опишу задачу.
    1. Есть корпоративная сеть с поднятой АктивДиректори в головном офисе к её управлению мы доступа не имеем. Все ПК и пользователи подключены к данному домену.
    2. Есть ПК с Win XP SP3 (x86), на котором развёрнут MySrv, данный ПК так же зарегистрирован в домене и работа на нём ведётся под доменной учёткой с админскими правами. Брандмауер , для чистоты эксперимента, отключен.
    3. Есть таблица в MySQL в которой прописаны ФИО и login по которому и должна пройти авторизация.

    код для авторизации следующий:
    //АВТОРИЗАЦИЯ
    $query = «SELECT id, f, i, o, id_sl, login, comment FROM FIO ORDER BY binary (lower(f))»;
    $result = mysql_query ($query);
    echo «», mysql_error(), «\n»,»»;
    $user = $_SERVER[‘REMOTE_USER’];//$REMOTE_USER;
    //echo ‘===’.$_SERVER[REMOTE_USER];
    $user_present = 0; //User найден

    На апачь 2.2, в другом филиале с модулем mod_auth_sspi , всё отрабатывает на ура.
    У меня с запущенным модулем mod_authn_ntml работать не хочет.
    В конфиге запуска модуля mod_authn_ntml прописал следующие:

    LoadModule auth_ntlm_module modules/mod_authn_ntlm.so

    #Настройки модуля

    Options Indexes Includes
    Order allow,deny
    Allow from all
    AllowOverride None
    Options None

    AuthName «My Intranet»
    AuthType SSPI
    NTLMAuth On
    NTLMAuthoritative On
    NTLMOfferBasic Off
    NTLMOmitDomain On
    require valid-user

    # use this to add the authenticated username to you header
    # so any backend system can fetch the current user
    # rewrite_module needs to be loaded then

    # RewriteEngine On
    # RewriteCond %{LA-U:REMOTE_USER} (.+)
    # RewriteRule . — [E=RU:%1]
    # RequestHeader set X_ISRW_PROXY_AUTH_USER %{RU}e

    Может не те настройки передаю?

    P.S.

    С раскомментированными последними 4-мя строчками то же не пашет.

    • Контакты скинул на почту. Свяжитесь со мной. Если это еще актуально.
      WBR

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Для подтверждения, что вы не робот, решите задачу * Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.

WebMoney

Вы можете оказать посильную помощь на поддержку сайта и развитие проектов переводом средств на кошельки платежной системы WebMoney

Z325624025520
E360373898601
U279044372586
R180028144815

Комментарии

QR