Быстрый способ установить веб-сервер на FreeBSD для тех, кто ранее не имел дела с *nix

Мануал этот — полностью отсебятина, по-моему ничего не забыл. На момент написания версия FreeBSD 8.2

Создаём нового пользователя

adduser
И заполняем необходимые поля (пока так), не забываем добавить его в группу wheel чтобы он мог выполнять sudo
те поля, что не знаете как заполнить — оставлять по умолчанию.

Делаем резервную копию файла автозапуска
cp /etc/rc.conf /etc/rc.conf.bak

начинаем его редактировать
ee /etc/rc.conf

добавляем строку, которая будет запускать демон sshd при старте системы
sshd_enable=”YES”

КАК НАСТРОИТЬ ПОДКЛЮЧЕНИЕ ПО SSH для Root в среде FreeBSD

Для начала делаем резервную копию файла конфига sshd:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

теперь редактируем сам конфиг
ee /etc/ssh/sshd_config

Раскомментируем строки
Port 22
PasswordAuthentication yes
PermitEmptyPasswords no

запускаем службу sshd
/etc/rc.d/sshd start
Обновляем порты:
portsnap fetch extract
Перейдем к установке sudo из портов FreeBSD. Выполняем:
cd /usr/ports/security/sudo

Устанавливаем:
make install clean

После того как встало, редактируем файлик конфигурации:
ee /usr/local/etc/sudoers

подробнее про установку прав в sudoers можно почитать на сайте http://www.nibbl.ru/freebsd/sudo

Создание каталога для исходниковft
mkdir -p /usr/local/src
-p <- этот параметр создаёт недостающие каталоги по пути к конечному

Переходим в созданную директорию
cd /usr/local/src

Скачиваем proftpd исходник
fetch ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.4a.tar.gz
Распаковываем
tar xfz proftpd-1.3.4a.tar.gz
Переходим в директорию куда распаковались исходники
cd proftpd-1.3.4a
Запускаем конфигурирование
./configure
Запускаем компиляцию
make
Запускаем установку в директории
make install clean

Создаём группу для proftpd
pw groupadd ftp
Создаём пользователя для proftpd
pw useradd ftp -c “FTP Server” -d /dev/null -g ftp -s /sbin/nologin
-c создаёт комментарий
-d домашняя директория пользователя /dev/null — её нету
-g группа, к которой будет принадлежать пользователь
-s шелл, /sbin/nologin не позволит залогиниваться под этим пользователем

указываем что нужно запускать proftpd при старте системы
ee /etc/rc.conf

добавляем строчку
proftpd_enable=”YES”

редактируем конфиг proftpd
ee /usr/local/etc/proftpd.conf

находим строки
User nobody
Group nogroup

изменяем на
User ftp
Group ftp

Сделаем чтобы каждый пользователь мог попадать в свою домашнюю директорию при подключении — раскомментируем
#DefaultRoot ~
меняем на
DefaultRoot ~

в файл /etc/shells добавляем строчку чтобы не могли логиниться по ssh фтп-пользователи
/ftponly

создаём директорию для нового пользователя
mkdir -p /home/test

создаём пользователя для доступа по фтп
pw user add test -s /ftponly -d /home/test

меняем владельца каталога пользователя, чтобы он мог туда записать файлы
chown test:test /home/test
где 1-ый test — логин
test после знака двоеточия — группа пользователя (как и везде в никсах).

задаём созданному пользователю пароль
passwd test

запускаем сервер proftpd
/usr/local/sbin/proftpd

Сервер может выдать ошибку о том, что не может определить IP адрес для localhost.localdomain (или другого доменного имени вашей машины), для этого мы просто пропишем его в файле /etc/hosts
ee /etc/hosts
дописываем строку
нужный айпи (например 127.0.0.1) имя_хоста.имя_домена, например
127.0.0.1 localhost.localdomain
но если установлен на адрес 127.0.0.1, то из внешнего мира виден сервер не будет. поэтому я например сделал так:
myvhost.localdomain 192.168.32.132 (это айпи этой машины, на которой крутится бсд)

 

УСТАНОВКА ВЕБ СЕРВЕРА APACHE

переходим в директорию для исходников
cd /usr/local/src

запускаем скачивание
fetch http://apache.strygunov.com//httpd/httpd-2.2.21.tar.gz
http://mirrors.besplatnyeprogrammy.ru/apache//httpd/httpd-2.2.21.tar.gz
tar xfz httpd-2.2.21.tar.gz
cd httpd-2.2.21
ee apache.sh
добавляем строки для конфигурирования
./configure -prefix=/usr/local/apache2
-enable-so
-with-mpm=prefork
make
make install clean
сохраняемся, запускаем ./apache.sh

Добавляем демон httpd в автозагрузку
ee /etc/rc.conf
apache_enable=”YES”

Создаём группу и пользователя от имени которго будет запущен apache.
pw groupadd apache
pw useradd apache -c “Apache Server” -d /dev/null -g apache -s /sbin/nologin

ee /usr/local/apache2/conf/httpd.conf
User daemon
Group daemon
изменяем на
User apache
Group apache

для нормальной установки PHP требуется библиотеки mysql-client
mysql устанавливаем из портов:

cd /usr/ports/databases/mysql51-server
make install clean

ee /etc/rc.conf
Прописываем в /etc/rc.conf следующие строчки для автоматического запуска mysql-сервера

mysql_enable=”YES”

Создаём таблицы
cd /usr/local; mysql_install_db

Присваиваем каталогу с базами данных mysql права пользователя mysql
chown -R mysql:mysql /usr/home/mysql

запускаем мускл-сервер
/usr/local/etc/rc.d/mysql-server start

Устанавливаем базовый пароль на рута
mysqladmin -u root password ‘p@$$w0rd’

подключаемся к мускл-серверу
mysql -p

создаём базу данных
create database test_wp;

создаём пользователя и даём ему все привелегии на эту базу данных
GRANT ALL PRIVILEGES ON test_wp.* TO ‘test_user_wp’@’localhost’ IDENTIFIED BY ‘TeST1234’ WITH GRANT OPTION;

Дальше устанавливаем сам PHP

fetch http://ua2.php.net/get/php-5.3.8.tar.gz/from/this/mirror
tar xfz
cd php-5.3.8.tar.gz
ee php.sh

./configure —prefix=/usr/local/php5
-with-mysql=/usr/local
-with-apxs2=/usr/local/apache2/bin/apxs
sh php.sh
make
make install

Редактируем конфиг апача

Изменяем
DirectoryIndex index.html index.php

добавляем тип пхп
AddHandler php5-script .php
AddType text/html .php
AddType application/x-httpd-php-source phps

раскоментируем
include conf/extra/httpd-vhosts.conf

закомментируем все <Directory …>

И пишем свой
<Directory />
Options Includes Indexes FollowSymLinks
AllowOverride All
Allow from all
</Directory>

That’s all folks!

Leave a Reply

Your email address will not be published. Required fields are marked *