14.06.2017

Установка веб-сервера Apache, PHP и БД MySQL на FreeBSD

Данный материал не претендует на уникальность, а представляет собой "сборную солянку" из информации, которую можно найти в сети. Она адаптирована для ОС FreeBSD 10 и выше.Также я предпочитаю не использовать стандартные пути хранения данных и стараюсь их изменять. По возможности, я выношу файлы БД и директории Web-сервера на отдельные диски, если нет возможности, на отдельные разделы.

1. Ставим Веб сервер

cd /usr/ports/www/apache24 && make install clean

Все запросы конфигурации оставляю по умолчанию, если что-то понадобится, буду собирать отдельно

2. Ставим базу данных

cd /usr/ports/databases/mysql57-server/ && make install clean

3. Ставим PHP, mod_php (Для работы Apache с PHP ) и PHP-Extension

cd /usr/ports/lang/php56 && make install clean

cd /usr/ports/www/mod_php56 && make install clean

cd /usr/ports/lang/php56-extensions/ && make install clean

В опциях нам предлагают выбрать, какие именно расширения устанавливать, я для себя обязательно кроме расширений по умолчанию устанавливаю

+[x] FTP           FTP support - для работы с FTP

+[x] GD            GD library support - работа с графикой

+[x] MYSQL         MySQL database support - работа с БД MySQL

+[x] OPENSSL       SSL/TLS support via OpenSSL

+[x] PGSQL         PostgreSQL database support

+[x] SOCKETS       sockets support

+[x] ZIP           ZIP support

+[x] ZLIB           ZLIB support

При необходимости, в дальнейшем можно установить каждый модуль расширения отдельно.

4. Настраиваем, запускаем и добавляем в автозагрузку MySQL

Добавляем в /etc/rc.conf

echo 'mysql_enable="YES"' >> /etc/rc.conf

Также у нас есть возможность изменить путь до конфигурации сервера, по умолчанию значение:

mysql_confdir="/usr/local/etc/mysql"

Для его изменения необходимо добавить соответствующую  строку в /etc/rc.conf

Редактируем файл конфигурации

/usr/local/etc/mysql/my.cnf

Так, как я предпочитаю держать БД на отдельном диске или, по крайней мере, на отдельном разделе, меняю папку в которой будут лежать данные БД

datadir                         = /data/db/mysql

tmpdir                          = /data/db/mysql_tmpdir

slave-load-tmpdir               = /data/db/mysql_tmpdir

secure-file-priv                = /data/db/mysql_secure

innodb_data_home_dir            = /data/db/mysql

innodb_log_group_home_dir       = /data/db/mysql

По умолчанию все находится в /var/db/mysql

Не забываем изменить владельца директории

mkdir /data/db/mysql && mkdir /data/db/mysql_tmpdir && mkdir /data/db/mysql_secure

chown -R mysql:mysql /data/db/mysql

chown -R mysql:mysql /data/db/mysql_tmpdir

chown -R mysql:mysql /data/db/mysql_secure

И вносим соответствующую строку в /etc/rc.conf 

mysql_dbdir="/data/db/mysql"

Пробуем запустить

/usr/local/etc/rc.d/mysql-server start

Создаем пароль, удаляем анонимного пользователя и тестовую базу

/usr/local/bin/mysql_secure_installation

Пробуем зайти в БД

mysql –p

Пароль вводим тот, который мы устанавливали в предыдущем шаге.

После входа для проверки можем выполнить команду

Show databases;

В ответ сервер должен выдать нам следующее

mysql> show databases;

+--------------------+

| Database           |

+--------------------+

| information_schema |

| mysql              |

| performance_schema |

| sys                |

+--------------------+

rows in set (0.00 sec)

5. Apache + PHP

Добавляем  Apache в автозагрузку

echo 'apache24_enable="YES"' >> /etc/rc.conf

Редактируем конфигурационный файл Apache /usr/local/etc/apache24/httpd.conf

Добавляем

ServerName 127.0.0.1:80

Вместо 127.0.0.1 указываем наш ИП-адрес или доменное имя сервера. Если не указывать, будем получать предупреждение при запуске сервера

Проверяем, подгружается ли модуль PHP

Для этого в секции модулей должна присутствовать строка

LoadModule php5_module        libexec/apache24/libphp5.so

Для того, чтобы наш сервер мог воспринимать файлы index.php, меняем

<IfModule dir_module>

DirectoryIndex index.html

</IfModule>

На

<IfModule dir_module>

DirectoryIndex index.html index.php

</IfModule>

Для того, чтобы наш сервер мог обрабатывать (выполнять) php-файлы, а не предлагать нам их скачать, в секцию конфигурации <IfModule mime_module> добавляем

<IfModule php5_module>

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

</IfModule>

Также вместо блока выше можно добавить

<FilesMatch ".php$">

SetHandler application/x-httpd-php

</FilesMatch>

<FilesMatch ".phps$">

SetHandler application/x-httpd-php-source

</FilesMatch>

Так, как меня не устраивает директория данных Apache по умолчанию (/usr/local/www/apache24), я ее переношу. Для этого

перемещаю существующие файлы

mv /usr/local/www/apache24 /data/www

И изменяю все пути в конфигурационном файле апача

C

/usr/local/www/apache24

на

/data/www

Пробуем запустить

/usr/local/etc/rc.d/apache24 start

Проверяем, запустился ли апач

/usr/local/etc/rc.d/apache24 status

apache24 is running as pid 79205.

Пробуем зайти на сервер через браузер по его ИЗ-адресу,если все нормально, получаем в ответ чистую страницу с одной единственной надписью «It works!»

Проверяем, работает ли наш веб сервер с php

Для этого создадим тестовую страницу в папке апача

echo '<?php phpinfo();?>' >> /data/www/data/index.php

И пробуем его открыть в веб браузере

http://ip-address/index.php

Должны увидеть страницу с информацией о нашем веб сервере и ПХП

Комментариев нет:

Отправить комментарий