18+ Некоторые материалы сайта могут содержать информацию, запрещенную для детей.

Запись от AZM на субдомене raspberrypi
Все записи на субдомене: Raspberry Pi как использовать, проекты на и для Raspberry Pi

Мой apache2.conf для apache2 под Raspbian на Raspberry Pi
Кому то может показаться не правильно делать так, но я считаю что конфигурация одной программы/сервиса должна быть сложена в единый файл, а не разбросана по сотням файлов в десятках каталогов.
Так удобнее делать резервную копию файла конфигурации и восстанавливать конфигурацию, а открыв единый файл точно знаешь, что всё здесь и ничего не забыто.


УЧТИТЕ - Я НЕ ВЕЛИКИЙ LINUX АДМИН, Я ВООБЩЕ НЕ LINUX/UNIX АДМИН!
Делаю это для себя под реальные задачи на реальной железке, так что не обесссутьте.

Уведомляю:
сайты у меня лежат по пути:
/websites
соответственно дефаултный сайт (который не виртуал хост) лежит по пути:
/websites/default/
его веб страницы соответственно:
/websites/default/www/
CGI скрипты соответственно:
/websites/default/cgi-bin/

Апач работает под юзером ftper из группы www-data, через FTP я захожу под тем же самым юзером, по этому у меня нет проблем с записью/перезаписью файлов которые создали скрипты или в которые скрипты должны писать данные, так как это всё файлы одного пользователя.

Для phpMyAdmin я создал в каталоге
/websites/default/www/
символьную ссылку:
phpmyadmin
ссылающуюся на:
/usr/share/phpmyadmin

На всякий случай напомню - конфиг апача на Raspbian лежит в файле:
/etc/apache2/apache2.conf

По умолчанию концепт конфига созданного после установки апача вот такой:
/etc/apache2/apache2.conf - содержит в себе основу, которая с помощью директив "Include" подсасывает разные куски конфигурации из файлов, которые лежат в каталогах расположенных в /etc/apache2/

Соответственно, что бы заменить всю многофайловую и многокаталоговую вакханалию установленную по умолчанию на один единственный файл конфигурации, достаточно установленный с апачем конфиг переименовать, скажем в "apache2.conf_" а содержимое моей версии конфига положить вместо него в файл "apache2.conf", перезагрузить апач и всё должно взяться и заработать.

Не забываем прежде чем рестартовать апач создать каталоги:
/websites/default/www/
/websites/default/cgi-bin/
и сделать их каталогами пользователя ftper

А теперь собственно мой конфиг, который "всё нужное одним файлом и ничего лишнего":
### --- ST ----------------------------- GLOBAL CONFIG ---------------------------------------

ServerRoot "/etc/apache2"
LockFile /var/lock/apache2/accept.lock
PidFile /var/run/apache2.pid

User ftper
Group www-data

ErrorLog /dev/null
LogLevel warn

Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

## Число потоков апача которые стартуют и обрабатывают запросы. Так как у нас не веб сервер, а бот-помошник, то 3 потока достаточно
StartServers 3
MinSpareServers 3
MaxSpareServers 3
MaxClients 3
## Число запросов которые обработает поток прежде чем его апач прибьёт и запустит снова (что бы очистить от очистков и отмыть от помоев)
MaxRequestsPerChild 5000

HostnameLookups Off
UseCanonicalName Off
ServerSignature Off

Listen 80
## Для виртуал хостов, если будут виртуал хосты вида "mmmm.192.168.0.1", то раскомментируем
# NameVirtualHost *:80

### --- EN ----------------------------- GLOBAL CONFIG ---------------------------------------

### --- ST ----------------------------- LOAD MOD ---------------------------------------
## Служит для создания псевдонимов и переадресаций
LoadModule alias_module /usr/lib/apache2/modules/mod_alias.so

## Различные варианты аутентификации (для аутентификации через стандартное окно браузера "логин/пароль" если нет логина/пароля то ошибка 401)
# LoadModule auth_basic_module /usr/lib/apache2/modules/mod_auth_basic.so
# LoadModule authn_file_module /usr/lib/apache2/modules/mod_authn_file.so
# LoadModule authz_default_module /usr/lib/apache2/modules/mod_authz_default.so
# LoadModule authz_groupfile_module /usr/lib/apache2/modules/mod_authz_groupfile.so
LoadModule authz_host_module /usr/lib/apache2/modules/mod_authz_host.so
# LoadModule authz_user_module /usr/lib/apache2/modules/mod_authz_user.so

## Генерирует индексные страницы со списком файлов запрашиваемого каталога
# LoadModule autoindex_module /usr/lib/apache2/modules/mod_autoindex.so

## CGI скрипты исполняет
LoadModule cgi_module /usr/lib/apache2/modules/mod_cgi.so

## Сжимает страницы перед отправкой клиенту
# LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so

## Позволяет апачу получать списки файлов в каталогах
LoadModule dir_module /usr/lib/apache2/modules/mod_dir.so

## Управление переменными окружения, которые могут быть использованы в CGI-скриптах.
LoadModule env_module /usr/lib/apache2/modules/mod_env.so

## Позволяет определять типы файлов по их именам и для привязки обработчиков этих файлов
LoadModule mime_module /usr/lib/apache2/modules/mod_mime.so

## Позволяет серверу выбирать один из вариантов страницы (например язык) в зависимости от запроса пользователя
# LoadModule negotiation_module /usr/lib/apache2/modules/mod_negotiation.so

## Собственно PHP
LoadModule php5_module /usr/lib/apache2/modules/libphp5.so

## утанавливает тайм-аут (предел времени с момента последнего запроса к серверу по текущему соединению) и минимум скорости передачи данных для приёма запросов
LoadModule reqtimeout_module /usr/lib/apache2/modules/mod_reqtimeout.so

## дает возможность выполнять операции над переменными среды
LoadModule setenvif_module /usr/lib/apache2/modules/mod_setenvif.so

## предоставляет информацию о работе сервера apache
# LoadModule status_module /usr/lib/apache2/modules/mod_status.so
### --- EN ----------------------------- LOAD MOD ---------------------------------------

### --- ST ----------------------------- CONFIG MODULE ---------------------------------------
<IfModule mod_dir.c>
DirectoryIndex index.html index.htm index.php
</IfModule>

<IfModule mod_mime.c>
TypesConfig /etc/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-bzip2 .bz2
AddHandler type-map var
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>

<IfModule reqtimeout_module>
RequestReadTimeout header=20-40,minrate=500
RequestReadTimeout body=10,minrate=500
</IfModule>

<IfModule mod_setenvif.c>
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^gvfs/1" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
BrowserMatch " Konqueror/4" redirect-carefully
</IfModule>

<IfModule mod_php5.c>
AddType application/x-httpd-php .php
</IfModule>

### --- EN ----------------------------- CONFIG MODULE ---------------------------------------

### === SITE ========================================================================

### --- ST ----- DEFAULT SITE -------------------------------------------------------

DocumentRoot "/websites/default/www"

<Directory />
AllowOverride None
Options Indexes FollowSymLinks MultiViews Includes
Order allow,deny
Deny from all
</Directory>

<Directory "/websites/default/www">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

<IfModule alias_module>
ScriptAlias /cgi-bin/ "/websites/default/www/cgi-bin/"
</IfModule>

# phpMyAdmin default Apache configuration

<Directory /websites/default/www/phpmyadmin>
Options FollowSymLinks
DirectoryIndex index.php

<IfModule mod_php5.c>
AddType application/x-httpd-php .php

php_flag magic_quotes_gpc Off
php_flag track_vars On
php_flag register_globals Off
php_admin_flag allow_url_fopen Off
php_value include_path .
php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmya$
</IfModule>
</Directory>

### --- EN ----- DEFAULT SITE -------------------------------------------------------

### END OF FILE
На всякий случай, небольшой PHP скрипт, который будет выводить информацию о текущей установленной версии PHP, для проверки:
<?php phpinfo (); ?>
Положите его в файл:
/websites/default/www/index.php

*** Полезные ссылки:
* Стандартные подключаемые модули
* PHP.SU - Apache и другие веб-серверы - Ответ на вопрос "Помогите пожалуйста- хостер настоятельно посоветовал отключить ненужные модули php и apache"
* Модули веб сервера Apache 2

Добавлено: 1033 дн 4 час 25 мин 29 сек назад | Внесений правок: 1 | Последняя правка: 1033 дн 4 час 5 мин 33 сек назад



Raspberry Pi как использовать, проекты на и для Raspberry Pi