Установка настройка freebsd 10 + apache24 + php + mysql
Обновлено: Опубликовано:
В качестве примера используются apache24, php5, mysql56.
Операционная система — FreeBSD 10.
Подготовка системы
Установка и настройка MySQL
Установка и настройка Apache
Установка и настройка PHP
Подготавливаем сервер
Заходим под суперпользователем:
$ su
Выставляем часовой пояс (у меня московское время) и сразу синхронизируем время:
cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime; ntpdate 0.freebsd.pool.ntp.org;
Создаем задание в cron для автоматической синхронизации времени каждую ночь:
echo ‘0 0 * * * /usr/sbin/ntpdate 0.freebsd.pool.ntp.org’ >> /var/cron/tabs/crontab && crontab /var/cron/tabs/crontab
Обновляем список пакетов:
pkg update && pkg upgrade
Обновляем систему:
freebsd-update fetch && freebsd-update install
Установка и настройка MySQL
Устанавливаем из пакета mysql-server:
pkg install -y mysql56-server
Разрешаем запуск демона mysql:
echo ‘mysql_enable=»YES»‘ >> /etc/rc. conf
Запускаем mysql:
service mysql-server start
Меняем пароль для пользователя root в mysql:
mysqladmin -u root password
Установка и настройка Apache
Указываем правильное имя сервера через файл hosts:
ee /etc/hosts
192.168.166.155 dmosk dmosk.local
* IP-адрес указан для локального сервера, для внешнего сервера указываем внешний адрес. dmosk — имя моего сервера.
Устанавливаем Apache:
pkg install -y apache24
Разрешаем запуск демона apache24:
echo ‘apache24_enable=»YES»‘ >> /etc/rc.conf
Отредактируем файл конфигурации для apache:
ee /usr/local/etc/apache24/httpd.conf
ServerName dmosk.local
…
Include etc/apache24/extra/httpd-vhosts.conf
…
MaxClients 200
…
HostnameLookups Off
* ServerName указывает имя сервера, Include стоит раскомментировать при использовании виртуальных доменов (рекомендуется), MaxClients указывает на максимальное количество одновременно созданных процессов apache, HostnameLookups разрешает или запрещает определение имени подключенного клиента (отключение, как в примере, ускоряет работу веб-сервера Apache).
Если вы раскомментировали подключение файла etc/apache24/extra/httpd-vhosts.conf, редактируем его (удаляем все содержимое и оставляем написанное ниже):
ee /usr/local/etc/apache24/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerName /
DocumentRoot /usr/local/www/apache24/data
</VirtualHost>
* Это простейшая конфигурация для виртуального сервера. Она принимает любые запросы на сервер по http (80 порт) и запускает скрипт в директории DocumentRoot. Рекомендую посмотреть в сети Интернет более полные примеры для настройки виртуальных доменов Apache.
Запускаем сервер Apache:
service apache24 start
Проверяем работоспособность сервера apache, введя в адресной строке браузера IP-адрес сервера (в данном примере, 192.168.166.155). Сервер должен вернуть ответ «It Works!»
Установка и настройка PHP
Устанавливаем интерпретатор PHP с необходимыми модулями:
pkg install -y php5 mod_php5 php5-extensions php5-mysqli php5-mysql
Редактируем файл конфигурации php. ini:
ee /usr/local/etc/php.ini
date.timezone = «Europe/Moscow»
magic_quotes_gpc = Off
upload_max_filesize = 512M
post_max_size = 1G
max_execution_time = 0
* Это пример самых распространенных параметров, которые приходится редактировать. date.timezone определяет временную зону. magic_quotes_gpc, в данном примере, отключает экранирование кавычек («волшебных кавычек»). upload_max_filesize выставляет лимит для одного загружаемого на сервер файла. post_max_size выставляет лимит для всех загружаемых на сервер файлов. max_execution_time — это лимит времени в секундах, которое будет выделено на работу скрипта; при превышении этого времени сервер вернет ошибку (0, как в примере не лимитирует выполнение скрипта по времени).
Измените конфигурацию сервера Apache для подключения модуля PHP:
ee /usr/local/etc/apache24/httpd.conf
<IfModule mime_module>
. ..
AddType application/x-httpd-php .php .php3 .phtml
AddType application/x-httpd-php-source .phps
…
</IfModule mime_module>
DirectoryIndex index.html index.htm index.php
* AddType вставляется внутри IfModule mime_module и устанавливает правила обработки скриптов PHP. DirectoryIndex задает индексный файл по умолчанию; если скрипт не задан явно в запросе, будет запущен именно он.
Переходим в корневую директорию расположения скриптов и переименовываем индексный файл:
cd /usr/local/www/apache24/data && mv index.html index.php
Теперь добавляем в него функцию вызова параметров настройки сервера phpinfo():
echo ‘<? phpinfo() ?>’ > index.php
Перезапускаем веб-сервер:
service apache24 restart
Проверьте работоспособность сервера apache, введя в адресной строке браузера IP-адрес сервера (в данном примере, 192.168.166.155). Сервер должен вернуть много параметров в различных таблицах.
Также в данных таблицах вы должны увидеть «MySQL Suppert — Enabled». Это говорит о том, что сервер готов к работе с базой MySQL.
Контроль доступа через .htaccess для apache2.4 — Раздел помощи
Файл .htaccess позволяет производить дополнительную конфигурацию веб-сервера Apache для:
- переадресации на другой домен
- контроля доступа к сайту
- изменения значений директив PHP
- отображения собственных страниц ошибок
Директивы для веб-сервера Apache2.4+ отличаются от Apache2.2. В примерах указаны директивы для обеих версий web-серверов.
Для контроля доступа к сайту можно использовать следующие директивы:
- Отклонить все запросы
- Разрешить все запросы
- Запретить доступ на основе имени хоста
- Запретить доступ на основе IP-адреса
- Запретить доступ совсех IP-адресов, кроме нужного
- Запретить доступ к определенному файлу
- Разрешить доступ к определенному файлу с IP-адреса
- Запретить доступ по User-Agent (блокировка ботов)
Важно: нельзя использовать директивы для веб-сервера Apache2. 4+ и Apache2.2 одновременно. Это может привести к некорректной работе сайта.
Домены с кириллическими символами
При использовании кириллических доменных имён в файле .htaccess, их необходимо указывать в формате Punycode. Перекодировать их можно с помощью сервиса.
Отклонить все запросы
Apache 2.2
Order deny,allow
Deny from all
Apache 2.4
Require all denied
Разрешить все запросы
Apache 2.2
Order allow,deny
Allow from all
Apache 2.4
Require all granted
Запретить доступ на основе имени хоста
Apache 2.2
Order Allow,Deny
Allow from all
Deny from example.com
Apache 2.4
<RequireAll>
Require all granted
Require not host example.com
</RequireAll>
Использование директив <RequireAll> и Require all granted обязательны если используется более сложная конструкция.
Запретить доступ на основе IP-адреса
Для ограничения доступа к сайту с определённых IP-адресов в файл . htaccess требуется добавить:
Apache 2.2
Order Allow,Deny
Allow from all
Deny from 111.111.111.111
Deny from 222.222.222.222
Deny from 123.123.123.123
Apache 2.4
<RequireAll>
Require all granted
Require not ip 111.111.111.111
Require not ip 222.222.222.222
Require not ip 123.123.123.123
</RequireAll>
Запретить доступ совсех IP-адресов, кроме нужного
Для ограничения доступа к сайту со всех IP-адресов, кроме нужного (разрешенных IP-адресов может быть несколько), в файл .htaccess требуется добавить:
Apache 2.2
Order Deny,Allow
Deny from all
Allow from 111.111.111.111
Apache 2.4
Require ip 111.111.111.111
Запретить доступ к определенному файлу
Настройка ограничения доступа к определённым файлам производится путем добавления в .htaccess директив:
Apache 2.2
<Files ПУТЬ_К_ФАЙЛУ>
Order Allow,Deny
Allow from all
Deny from 123. 123.123.123
</Files>
Apache 2.4
<Files ПУТЬ_К_ФАЙЛУ>
<RequireAll>
Require all granted
Require not ip 123.123.123.123
</RequireAll>
</Files>
где ПУТЬ_К_ФАЙЛУ - необходимо заменить на целевой файл, а IP — на IP-адрес, для которого будет запрещен доступ.
Разрешить доступ к определенному файлу с IP-адреса
Настройка ограничения доступа к определённым файлам производится путем добавления в .htaccess директив:
Apache 2.2
<Files ПУТЬ_К_ФАЙЛУ>
Order Deny,Allow
Deny from all
Allow from 123.123.123.123
</Files>
Apache 2.4
<Files ИМЯ_ФАЙЛА>
Require ip 77.222.44.126
Require ip 123.123.123.123
</Files>
где ИМЯ_ФАЙЛА - необходимо заменить на целевой файл, а IP — на IP-адрес, для которого будет разрешен доступ.
Запретить доступ по User-Agent (блокировка ботов)
Apache 2.2
SetEnvIfNoCase User-Agent «AESOP_com_SpiderMan» bad_bot
SetEnvIfNoCase User-Agent «AhrefsBot» bad_bot
Order Allow,Deny
Allow from all
Deny from env=bad_bot
Apache 2.4
<If «%{HTTP_USER_AGENT} =~ m#BadBot#i»>
Require all denied
</If>
где BadBot - необходимо заменить на User_Agent, которым представляется бот. Узнать его можно из лога запросов.
Полный список и подробности того, какие директивы доступны для редактирования через файл .htaccess, предоставлены в официальной документации PHP и веб-сервера Apache2.4:
Документация PHP
Список директив php. ini
Веб-сервер Apache2.4
Индекс /httpd
Индекс /httpdHTTP-сервер Apache
Исходный код ДистрибутивыЭта страница загрузки включает только исходники для компиляции и создайте Apache самостоятельно с помощью соответствующих инструментов. Скачать предварительно скомпилированный дистрибутив для вашей платформы от бинарники/.
Важные замечания
- Скачать с ближайшего зеркала!
- Двоичные выпуски
- Текущие выпуски
- Старые выпуски
- Подписи PGP
- Официальные патчи
Имя Последнее изменение Размер Описание
Родительский каталог — проект HTTP-сервера бинарные файлы/ 17.06.2022 11:25 - Бинарные дистрибутивы docs/ 17.06.2022 11:25 - Дополнительные пакеты документации libapreq/ 25.08.2022 13:10 - Проект HTTP-сервера mod_fcgid/ 17.06.2022 11:25 - Проект HTTP-сервера mod_ftp/ 17. 06.2022 11:25 - Проект HTTP-сервера patches/ 17.06.2022 11:25 - Официальные патчи Announcement2.4.html 07-03-2023 12:02 Проект HTTP-сервера 3,8K Announcement2.4.txt 07-03-2023 12:02 Проект HTTP-сервера 2.5K CHANGES_2.4 07.03.2023 12:50 Проект HTTP-сервера 337K ИЗМЕНЕНИЯ_2.4.56 07.03.2023 12:50 2.9K Проект HTTP-сервера CURRENT-IS-2.4.56 2023-03-07 12:50 0 Проект HTTP-сервера KEYS 01.09.2021, 13:38 537K ключей PGP/GPG для разработчиков META.asc 2018-03-09 10:33 801 подпись PGP httpd-2.4.56.tar.bz2 07.03.2023 12:02 Проект HTTP-сервера 7,1 млн. httpd-2.4.56.tar.bz2.asc 07.03.2023 12:02 833 Подпись PGP httpd-2.4.56.tar.bz2.sha256 07.03.2023 12:02 87 Проект HTTP-сервера httpd-2.4.56.tar.bz2.sha512 07.03.2023 12:02 151 Проект HTTP-сервера httpd-2.4.56.tar.gz 07.03.2023 12:02 9Проект HTTP-сервера .3M httpd-2.4.56.tar.gz.asc 07.03.2023 12:02 833 Подпись PGP httpd-2.4.56.tar.gz.sha256 07.03.2023 12:02 86 Проект HTTP-сервера httpd-2.4.56.tar.gz.sha512 07.03.2023 12:02 150 Проект HTTP-сервера httpd_logo_wide_new. png 21-12-2016 20:14 Проект HTTP-сервера 19K
Не скачивайте с www.apache.org. Пожалуйста, используйте зеркальный сайт чтобы помочь нам сохранить пропускную способность apache.org. Идти здесь, чтобы найти ближайшее зеркало.
Доступны в каталоге двоичных файлов/. Каждый бинарный дистрибутив содержит сценарий установки. См. README для деталей.
Подробнее о текущих выпусках см. Апач HTTP Страница загрузки сервера.
Примечание; версии Apache -win32-src.zip почти идентичны версии .tar.gz. Однако они предлагают исходные файлы в DOS/Windows. текстовый формат CR/LF и включает файлы сборки Win32. Эти файлы -win32-src.zip НЕ содержат двоичных файлов! Смотрите бинарники /win32/ каталог для бинарных дистрибутивов Windows.
На сайте www.apache.org доступны только текущие рекомендуемые версии. и зеркальные сайты. Более старые выпуски можно получить на сайте архива.
Все дистрибутивы выпусков имеют цифровую подпись (используя PGP или GPG) членами Apache Group, которые их создали. Будет сопровождающий дистрибутив .asc файл в том же каталоге, что и дистрибутив. Ключи PGP можно найти в репозитории ключей Массачусетского технологического института и в рамках этого проекта файл KEYS.
Всегда используйте файлы подписи для проверки подлинности дистрибутива, например. ,
%pgpk -a КЛЮЧИ % pgpv httpd-2.2.8.tar.gz.asc или , % pgp -ka КЛЮЧИ % pgp httpd-2.2.8.tar.gz.asc или , % gpg --import КЛЮЧИ % gpg --verify httpd-2.2.8.tar.gz.asc
Мы предлагаем хеши MD5 в качестве альтернативы для проверки целостности
загруженных файлов. Программа unix под названием md5
или md5sum
включен во многие дистрибутивы Unix. Это
также доступен как часть GNU
Текстовые утилиты. Пользователи Windows могут получить бинарные md5-программы отсюда, отсюда или
здесь.
Когда у нас есть исправления для незначительной ошибки или двух, или функции, которые мы еще не включены в новый выпуск, мы поместим их в патчи подкаталог, чтобы люди могли получить к нему доступ, прежде чем мы создадим еще один полный выпуск.