вторник, 27 марта 2018 г.

FreeBSD: Установка LAMP (Apache, PHP, MySQL, phpMyAdmin)

Установка LAMP - это комплексная инсталляция ПО: Apache, MySQL, PHP на ОС Linux, но в нашем случае это будет FreeBSD.
Начнём по порядку:

Установка Apache:

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

В настройках компонентов не забываем помечать пункты с "MySQL".
Прописываем автозапуск веб сервера:
echo 'apache24_enable="YES"' >> /etc/rc.conf

И загрузку accf_http модуля для буферизации соединения HTTP:
echo 'accf_http_ready="YES"' >> /etc/rc.conf

Запускаем веб-сервер: "service apache24 start" и проверяем открытие стартовой страницы.

Установка PHP:

cd /usr/ports/lang/php72
make install clean
cd /usr/ports/lang/php72-extensions
make install clean
cd /usr/ports/www/mod_php72
make install clean
rehash

При установке сопутствующих пакетов не забывайте указывать поддержку базы данных MySQL(MySQLi).

Настройка Apache и PHP:

Конфигурируем httpd.conf:
ee /usr/local/etc/apache24/httpd.conf

Настройте параметры: ServerName (DNS имя хостинга), ServerAdmin (e-mail администратора), DocumentRoot (расположение корневого каталога сайта).
Раскомментируйте "LoadModule rewrite_module libexec/apache24/mod_rewrite.so".
Приведите параметр "DirectoryIndex" к следующему виду:"DirectoryIndex index.php index.html index.htm default.htm default.html".
Найдите строки:

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

и добавьте после них:

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

Сохраните и закройте "httpd.conf".

Далее скопируйте "php.ini" из шаблона:

cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
chmod 444 /usr/local/etc/php.ini

Перезапустите веб-сервер: "service apache24 restart".

Установка MySQL:

cd /usr/ports/databases/mysql80-server
make install clean
rehash

Внимание! Если система ругнётся, что уже установлена другая версия клиента MySQL, то необходимо его деинсталлировать, а затем продолжить установку последней версии сервера. Например:

cd /usr/ports/databases/mysql56-client
make deinstall clean

Прописываем автозапуск:"echo 'mysql_enable="YES"' >> /etc/rc.conf".

Настройка MySQL:

Правим конфигурационный файл при необходимости: "ee /usr/local/etc/mysql/my.cnf".
Запускаем сервер: "service mysql-server start".
Выполняем команду "mysqladmin -u root password 'my_password'" и устанавливаем пароль для пользователя "root" к базе данных. По умолчанию пароль пустой, поэтому его необходимо обязательно поменять. Далее проверяем подключение командой "mysql -u root -p". Если после ввода пароля вы попали в строку управления сервером MySQL, все работает корректно. Командой "quit" выйдите обратно в оболочку.

Установка phpMyAdmin:

cd /usr/ports/databases/phpmyadmin
make install clean
rehash

Настройка phpMyAdmin:

Настраиваем конфигурационный файл "config.inc.php":
cd /usr/local/www/phpMyAdmin
cp config.sample.inc.php config.inc.php
ee config.inc.php

Заполняем поле:

$cfg['blowfish_secret'] = 'YOUR_PASS'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

Задайте секрет порядка 32 символов.
Сохраняем файл и переходим к настройке Apache: "ee /usr/local/etc/apache24/httpd.conf":

В секцию "<IfModule alias_module>" добавляем следующую строку:
Alias /phpmyadmin /usr/local/www/phpMyAdmin
2. После секции "Directory" добавляем свою:

<Directory "/usr/local/www/phpMyAdmin">
    AllowOverride None
    Options None
    Require all granted
</Directory>


Перезапускаем веб-сервер: "service apache24 restart" и проверяем работу phpMyAdmin. Также можно добавить параметры для разрешения доступа с определённых подсетей или хостов. Например:

Order Allow,Deny
Allow from 192.168.1.0/24

Дополнительная настройка виртуальных хостов (при необходимости):

Создадим директорию для расположения виртуальных хостов и пару сайтов для примера:

mkdir /usr/local/www/vhosts
mkdir /usr/local/www/vhosts/site1.local
mkdir /usr/local/www/vhosts/site2.local


Далее раскомментируем строку в https.conf:

Include etc/apache24/extra/httpd-vhosts.conf

И добавим дерективу:

<Directory "/usr/local/www/vhosts">
    AllowOverride None
    Options None
    Require all granted
</Directory>


 Сохраняем изменения и открываем файл конфигурации виртуальных хостов:
ee /usr/local/etc/apache24/extra/httpd-vhosts.conf

Удаляем всё содержимое и вносим туда в качестве примера наши два хоста:

<VirtualHost *:80> 
    ServerAdmin admin@mail.com 
    DocumentRoot "/usr/local/www/vhosts/site1.local"
    ServerName
site1.local 
    ServerAlias www.site1.local 
    <Directory /usr/local/www/vhosts/site1.local>
             Order Allow,Deny
            Allow from all
 
 </Directory>
 </VirtualHost>
 <VirtualHost *:80>
     ServerAdmin admin@mail.com
    DocumentRoot "/usr/local/www/vhosts/
site2.local"
    ServerName
site2.local 
    ServerAlias www.site2.local 
    <Directory /usr/local/www/vhosts/site2.local>
             Order Allow,Deny
            Allow from all
 
 </Directory>
 </VirtualHost>

Перезапускаем Apache. Теперь сайты будут разделены и доступны каждый по своему имени. Необходимые записи для разрешения имён нужно настроить в DNS.

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

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