Установка и настройка сервера на PC-BSD для разработчика сайтов
Установка сервера заключается в установке трёх основных компонентов: Apache2, PHP5, MySQL5. Статья будет содержать в себе установку при помощи PBI-пакетов, коллекции портов и исходных кодов программ. Сразу хочу отметить, что настройка программ независимо от метода установки везде одинакова. Настройку я опишу после обозрения всех видов установки.
Итак, сначала я рассмотрю саму установку, потом настройку конфигурационных файлов, а потом и методы исправления распространённых ошибок.
Содержание:
- Установка из PBI-пакетов
- Установка из портов
- Apache 1.x
- Apache 2.x
- MySQL 5
- PHP 5
- Установка из пакетов
- Apache 1.x
- Apache 2.x
- MySQL 5
- PHP 5
- Установка из исходников
- Apache 1.x
- Apache 2.x
- MySQL 5
- PHP 5
- Установка связки Apache 1.x + PHP 5 + MySQL 5
- Установка связки Apache 2.x + PHP 5 + MySQL 5
- Настройка
- Apache 1.x
- Apache 2.x
- MySQL 5
- PHP 5
- Основные ошибки установки

Заметны сходства. Нажимаем «Next» и видим тоже самое сходство:

«Next»:

…и установка закончена! Создаются ярлыки на исполняемые файлы, при помощи которых точно так же, как в ОС Windows можно запускать установленные программы. Все необходимые программы в виде PBI-пакетов всегда можно скачать с адресов http://mirror.pcbsd.ru/PBI и http://pbidir.com. На момент написания статьи были Apache2, Apache2+PHP5, MySQL5. (Apache2.2.4-PV.pbi; Apache2_PHP5-PV1.0a.pbi). Аналогичным образом устанавливают нужные нам компоненты(Apache, PHP, MySQL).
- Либо при установке самого дистрибутива PC-BSD.
-
Либо уже после установки вставить второй диск с дистрибутивом, перейти в каталог components нажать F4, набрать команду: «% su» (без кавычек, и без символа «%») – switch user(сменить пользователя), можно набрать $ su root, что переведёт нас в режим суперпользователя, или как это принято говорить в Windows-системах — Администратор. После этого необходимо ввести пароль суперпользователя. Смена символа $ на # говорит о том, что теперь в консоли можно выполнять операции, доступные лишь суперпользователю. Выполняем далее следущую команду:
# pkg_add -f ports.tbz — она в течении некоторого времени(зависит от производительности компьютера) установит ту самую, нужную нам коллекцию портов в /usr/ports/. Если такие действия покажутся слишком сложными, то можно сделать иначе. А именно: Пуск->Настройка->Software & Updates->Add/Remove Software. Опять же, вводим пароль пользователя root, переходим на вкладку «Системные компоненты», выбираем «Ports Tree», нажимаем на «Install», подтверждаем, что мы точно вставили диск PC-BSD DISK2, и ждём окончания установки. Независимо от метода установки, коллекция портов будет находиться по адресу /usr/ports/.
Apache 1.x
Выполним # whereis apache13. Получаем примерно такие строки:
a1ewka-gal4onok(PC-BSD)# whereis apache13
apache13: /usr/ports/www/apache13
они говорят нам о том, что порт apache13 находится в /usr/ports/www/apache13. Чтобы начать установку, нам необходимо перейти в этот каталог. Далаем это командой: # cd /usr/ports/www/apache13. Кто усомнился в нахождении теперь в этом каталоге, может проверить нахождение в каталоге командой # pwd:
a1ewka-gal4onok(PC-BSD)# pwd
/usr/ports/www/apache13
Установка из портов всегда будет происходить в /usr/local/. Причём возможен такой случай, что исполняемые файлы могут находиться и в /usr/local/bin и /usr/local/sbin, в зависимости от версии Apache-сервера. Одним словом, нам это не помешает. Собственно, пришли к самой установке. Тут необходимо выполнить три команды. 1 — make; 2 — make install; 3 — make clean; но можно выполнить: # make install clean и все три команды выполнятся автоматически, без остановок в ожидании ввода следущей команды. Поясним команды. make — сначала скачивает нужный файл, распаковывает архив, конфигурирует согласно параметрам. install — устанавливает ПО согласно конфигурации. clean — удаляет файлы, которые были созданы в процессе установки. Они никаким образом не повлияют на работу установленного ПО. Можно не удалять, но тем, у кого место на жёстком диске ограничено, советую выполнить все три команды(или разом одну). После выполнения команд видим строку: a1ewka-gal4onok(PC-BSD)# – это говорит о том, что система перешла в ожидании следущей команды, и Apache-сервер был успешно установлен. В ходе выполнения вышеописанных команд могут возникнуть ошибки. Я опишу методы их устранения в самом конце статьи, а пока будем условно считать, что установка прошла успешно.
Apache 2.x
Установка сервера Apache 2.x аналогична установке Apache 1.x. Выполним # whereis apache22. Получаем примерно такие строки:
a1ewka-gal4onok(PC-BSD)# whereis apache22
apache22: /usr/ports/www/apache22
Перейдём в каталог и установим порт
# cd /usr/ports/www/apache22
# make install clean
MySQL5
Повторяем поиск в портах данного приложения. Набираем и выполняем: # whereis mysql51-server. Получаю следущий ответ:
a1ewka-gal4onok(PC-BSD)# whereis mysql51-server
mysql51-server: /usr/ports/databases/mysql51-server
перехожу в эту директорию: # cd /usr/ports/databases/mysql51-server. Выполняю # make install clean. Дожидаемся окончания установки. Она немного длительная. На моей конфигурации ноутбука инсталляция этих трёх компонентов обходится за 30-40 минут.
PHP5.
Аналогично выполняем: # whereis php5 и получаем:
a1ewka-gal4onok(PC-BSD)# whereis php5
php5: /usr/ports/lang/php5
переходим теперь в эту директорию: # cd /usr/ports/lang/php5. Теперь маленькая особенность. Нам необходимо поставить PHP5 совместно с Apache. Чтобы Apache «понимал», что у нас есть PHP, и что мы хотим их совместно использовать, необходимо собрать модуль libphp5.so, о котором я подробно распишу при рассмотрении установки из исходников. Пока нам требуется знать данное. Что мы сейчас и сделаем. Выполняем команду: # make config. Появится что-то вроде таблички, где необходимо поставить крестики. Пользуясь клавишами, ставим пробелом крестик напротив Build Apache module и Enable zend multibyte support. Остальное оставляем по умолчанию. Клавишей TAB переходим на кнопку «Ok», нажимаем Enter. Далее выполняем: # make install clean, либо же все три команды по отдельности.
Apache 1.x
Установим Apache13. # pkg_add -f apache-1.3.39_2.tbz
Apache 2.x
Установим Apache 22. # pkg_add -f apache-2.2.6_2.tbz
PHP 5
Установим PHP 5. # pkg_add -f php5-5.2.5.tbz
MySQL 5
Установим MySQL 5. # pkg_add -f mysql-server-5.1.22.tbz
Посмотреть установленные пакеты можно командой # pkg_info. Увидим весь список пакетов. Если же интересует, например, только Apache, то пишем так: # pkg_info | grep apache. Удаляются пакеты тоже просто – командой: # pkg_delete -f имя_пакета. Ключ -f говорит о полной установке\удалению пакета, “не обращая” внимания на зависимости. Для просмотра дополнительных опций можно почитать: % man pkg_add. Мною перечисленных, считаю, вполне хватит.
# ./configure
# make
# make install
Этого достаточно, но тут можно познать все прелести UNIX-систем — очень гибкая установка приложений. Если дополнять команду # ./configure дополнительными параметрами, то можно очень оптимально сконфигурировать, а в дальнейшем установить то, или иное приложение. Параметр: –prefix=PREFIX указывает путь, куда необходимо устанавливать приложение. О дополнительных параметрах можно узнать, набрав: # ./configure –help. Если после установки программы скомпилированные фалы, модули, библиотеки не нужны, то выполняется команда: # make clean. Если же Вы ошиблись каким-либо параметром при установке, и программа уже установлена, то можно деинсталлировать её командой: # make uninstall.
Начну я с установки Apache версии 1.3. сразу стоит заметить, что установка Apache 1.x и Apache 2.x различается. По ходу статьи это различие будет наглядно представлено.
Apache 1.3
Скачал я русскую версию Apache13 по ссылке http://apache.lexa.ru/click?_URL=ftp://ftp.lexa.ru/pub/apache-rus/apache_1.3.41rusPL30.24.tar.gz. Выполняем следущие команды:
# tar -zxvf apache_1.3.41rusPL30.24.tar.gz
# cd apache_1.3.41rusPL30.24
# ./configure –prefix=/server –enable-module=so
# make
# make install
# make clean
Как я уже неоднократно описывал, можно для удобства записать все команды в одну:
# tar -zxvf apache_1.3.41rusPL30.24.tar.gz && cd apache_1.3.41rusPL30.24 && ./configure –prefix=/server –enable-module=so && make && make install && make clean
Apache 1.3 установлен. Разберёмся в его двух опциях конфигурации. –prefix=/server определяет директорию установки Apache. Если не указать её, то Apache мы бы нашли в /usr/bin. Но так как я обусловился устанавливать все программы в отдельную директорию, то применил данную опцию.
–enable-module=so — эта опция нужна для того, чтобы Apache имел возможность работы с модулями. Как уже было описано в установке из портов, эта опция пригодится нам для того, чтобы подтянуть PHP, чтобы Apache и PHP могли работать в связке. Я использовал основные параметры установки Apache, которых будет вполне достаточно для нормальной баботы http-сервера. О дополнительных можно узнать набрав: # ./configure –help.
–bindir=DIR — директория с исполняемыми файлами
–sbindir=DIR — директория для администратора с исполняемыми файлами
–libexecdir=DIR — директория с исполняемыми файлами установленых программ. Иначе говоря, там будет находиться модули, и, как позже увидим, там будет находиться модуль PHP
–datadir=DIR — директория для данных(только чтение —по умолчанию стоит такой атрибут на директорию)
–iconsdir=DIR — директория установленных иконок
–htdocsdir=DIR — директория страницы приветствия(проверки работы сервера)
–manualdir=DIR — директория с установленными «манами»
–logfiledir=DIR — директория с логами Apache
–add-module=FILE — служит для добавления при конфигурации какого-либо модуля
–enable-module=NAME — включает модуль
–disable-module=NAME — соответственно выключает модуль
Вот ещё основные опции. Но, указав –prefix=/server, вышеперечисленные нет смысла указывать, хотя было бы наиболее грамотно.. запустим наш сервер. В документации сказано запустить некоторый скрипт. Сделаем это:
# cd /server/bin
# ./apachectl start
У меня ответ выглядел следущим образом:
a1ewka-gal4onok(PC-BSD)# ./apachectl start [Sun Jul 13 02:46:22 2008] [alert] httpd: Could not determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName ./apachectl start: httpd started
Cлишком много нам пока непонятного, не так ли? Мы уберём лишние строки, когда я буду описывать настройку конфигурации сервера, а пока немного потерпим.. по последней строке можно судить о том, что сервер запустился. Ну, а кто не верит, выполняет команду: # ps -ax | grep httpd. Что я увидел у себя в ответ на эту команду:
a1ewka-gal4onok(PC-BSD)# ps -ax | grep httpd
53534 ?? Ss 0:00,01 /server/bin/httpd
53535 ?? I 0:00,00 /server/bin/httpd
53536 ?? I 0:00,00 /server/bin/httpd
53537 ?? I 0:00,00 /server/bin/httpd
53538 ?? I 0:00,00 /server/bin/httpd
53539 ?? I 0:00,00 /server/bin/httpd
60177 p2 S+ 0:00,00 grep httpd
Всё работает! Останавливается сервер командой: # ./apachectl stop.
a1ewka-gal4onok(PC-BSD)# ./apachectl stop
./apachectl stop: httpd stopped
Существует и команда перезапуска сервера: # ./apachectl restart
a1ewka-gal4onok(PC-BSD)# ./apachectl restart
./apachectl restart: httpd restarted
И для более «мягкого» перезапуска: # ./apachectl graceful
a1ewka-gal4onok(PC-BSD)# ./apachectl graceful
./apachectl graceful: httpd gracefully restarted
Apache 2.x
Ставится несколько иначе, но сильных различий нет. Скачиваем: http://apache.rinet.ru/dist/httpd/httpd-2.2.9.tar.gz. Выполняем:
# tar -zxvf httpd-2.2.9.tar.gz && cd httpd-2.2.9 && ./configure –prefix=/server –enable-so && make && make install
Как видим, отличие составляет лишь подключение модулей. Дополнительные опции одинаковы. Запуск и останов сервера Apache 2.2 точно такой же как и сервера Apache 1.3.
MySQL 5
Скачиваем архив программы http://www.mysql.ru/cgi-bin/download/mysql-5.0.18.tar.gz, сохраняем где-нибудь. Для работы MySQL нам потребуется новая группа и новый пользователь MySQL. Обращаю внимание на то, что если до установки MySQL из исходников MySQL ставился из PBI/портов/пакетов следуется пропустить добавление группы и пользователя MySQL. Мысленно принимаю, что до этого момента MySQL не ставился на систему. Создаём группу и пользователя MySQL:
# pw group add mysql
# pw user add mysql -s /usr/sbin/nologin -d /server/bin/mysql -g mysql
Всё, группу и пользователя добавили. Теперь ставим сам MySQL:
# tar -zxvf mysql-5.0.18.tar.gz
# cd mysql-5.0.18
# ./configure –prefix=/server –with-charset=cp1251 –with-extra-charset=all –with-mysqld=mysql –with-unix-socket-path=/tmp/mysql.sock
# make
# make install
# cp support-files/my-medium.cnf /server/mysql.cnf
# /server/mysql_install_db –user=mysql
# chown -R mysql:mysql /server/var
# make clean
Или же запишу снова всё в одной строке:
# pw group add mysql && pw user add mysql -s /usr/sbin/nologin -d /server/bin/mysql -g mysql && cd ../mysql-5.0.18 && ./configure –prefix=/server –with-charset=cp1251 –with-extra-charset=all –with-mysqld=mysql –with-unix-socket-path=/tmp/mysql.sock && make && make install && cp support-files/my-medium.cnf /server/mysql.cnf && make clean && cd /server/bin && /server/mysql_install_db –user=mysql && chown -R mysql:mysql /server/var && make clean
MySQL установлен. Дополнительные опции конфигурации.
–bindir=DIR; –sbindir=DIR; –libexecdir=DIR; –datadir=DIR; –mandir=DIR; эти команды выполняют те же самые действия, что и при установке Apache.
–with-low-memory — при установке использовать минимизированное количество оперативной памяти
–without-server — установить лишь MySQL-клиент(MySQL-сервер не устанавливается!)
–with-openssl=DIR — установить поддержку SSL
–without-man — не устанавливать мануал по MySQL
–without-docs — не устанавливать документацию
–with-big-tables — позволяет использовать большие таблицы(до 4.000.000.000 рядов на 32-битной платформе)
И это далеко не все параметры. Тех, что я указал в своей установке, вполне достаточно для работы сервера.
Опишу что делал. Ну, само собой, распаковка архива командой: # tar -zxvf mysql-5.0.18.tar.gz. Переходим в распакованную директорию, и начинаем конфигурировать. –prefix=/server – это уже понятно..
–with-charset=cp1251 — для того, чтобы MySQL понимал кодировку СР1251. При желании меняется на другие кодировки, например на –with-charset=koi8-r. –with-extra-charset=all — определение остальных кодировок на тот случай, когда кодировка по умолчанию в базе данных не присутствуется, применяется другая. –with-mysqld=mysql — для запуска «демона» с правами пользователя mysql, которого мы добавляли в систему перед установкой MySQL. ./mysql_install_db –user=mysql — запуск скрипта, который создаст рабочие базы данных. После выполнения скрипта, появится папка var в /server. –with-unix-socket-path=/tmp/mysql.sock — пусть сокет лежит вместе со всеми сокетами системы. В результате множества экспериментов я понял, что лучше сделать это именно так, иначе появляются проблемы с запуском MySQL. После этого можно копировать базу(ы) в server/var.
Дальше необходимо установить права на этот каталог для пользователя mysql:
# chown -R mysql:mysql /server/var
В процессе конфигурации был создан файл support-files/my-medium.cnf. Собственно, это и есть конфигурационный файл MySQL, содержимое которого я рассморю несколько позже. Теперь внимание, сначала дочитайте до конца об этом файле, а потом действуйте. В процессе множества установок, я заметил, что этот файл вызывает ошибку, и сервер MySQL не запускается. Не будет бедой, если вы не скопируете этот файл. Если в параметрах конфигурации указать где будет находиться сам MySQL-сервер, его сокет, то вполне файл может даже и отсутствовать..
Для удобства запуска\остановки MySQL-сервера, мною был несколько доработан один скрипт. Вот что получилось в итоге:
#!/bin/sh
NAME=”/server/bin/mysqld_safe”
case “$1″ in
start)
${NAME} &
echo “MySQL started…”
;;
stop)
killall `basename mysqld`
echo “MySQL stopped”
;;
*)
echo “”
echo “Usage: mysql.sh { start | stop }”
echo “”
;;
esac
сохраняю данный листинг в, например, my.sh. Этот файл тоже лучше будет перенести к серверу(на мой взгляд):
cp /home/a1ewka-gal4onok/Desktop/my.sh /server/bin/mysql.sh
теперь из /server/bin будет наиболее удобно запускать либо всё вместе, либо же по отдельности. Из той же директории и Apache заускается. Хотя, дело вкуса, можно и написать один скрипт, который и будет выполнять старт и Apache, и MySQL.
PHP 5
Для начала скачиваем архив с исходными кодами с php.net: http://ru.php.net/get/php-5.2.6.tar.gz/from/this/mirror
Выполняем:
# tar -zxvf php-5.2.6.tar.gz
# cd php-5.2.6
# ./configure –prefix=/server –with-apxs=/server/bin/apxs –with-mysql=/server
# make
# make install
# make clean
Хочется сразу отметить отличие установки РНР5 в связке с Apach1x и Apache2x. –with-apxs=/server/bin/apxs установки с Apache 1.x, а –with-apxs2=/server/bin/apxs — для Apache 2.x.
Опять же запишу всю команду в одну строку для удобства установки:
./configure –prefix=/server –with-apxs=/server/bin/apxs –with-mysql=/server –with-mysql-sock=/server/mysql.sock && make && make install && make clean
Дополнительные параметры конфигурации:
–bindir=DIR; –sbindir=DIR; –libexecdir=DIR; –datadir=DIR; –libdir=DIR; –mandir=DIR; –srcdir=DIR; – это мы уже разбирали.
–host=HOST — установка для HOST(например, 127.0.0.1 или localhost)
–with-apxs[=FILE] — связать с Apache1x
–with-apxs2[=FILE] — связать с Apache2x
–disable-cgi — отключить сборку CGI для РН?
–enable-safe-mode — использовать безопасный режим по умолчанию
–disable-ipv6 — отключить поддержку протокола Ipv6
–with-EXTENSION=[shared[,PATH]] — установить с дополнением
–with-openssl[=DIR] — установить с поддержкой SSL
–with-bz2[=DIR] — включить поддержку Bzip2
–enable-ftp — включить поддержку протокола FTP
–with-gd[=DIR] — собрать с GD-библиотекой
–with-jpeg-dir[=DIR]; –with-png-dir[=DIR]; –with-ttf[=DIR] — указываем путь jpeg-, png-, ttf- файлов для GD-библиотеки
–with-msql[=DIR] — поддержка баз данных mSQL
–with-mssql[=DIR] — поддержка баз данных MSSQL
–with-mysql[=DIR] — поддержка баз данных MySQL
–with-mysql-sock[=DIR] — учитывать сокет MySQL
Опять же, это не все параметры конфигурации.
Пришло время для оптимизации нашей установки связки. Ставить всё по отдельности крайне не хочется, а хочется, чтобы установка шла непрерывно. Поэтому все три архива, скрипт для запуска MySQL сохраняем в одной директории.
Установка связки Apache 1.x + PHP 5 + MySQL 5
Выполняем следующую длинную команду:
tar -zxvf apache_1.3.41rusPL30.24.tar.gz && tar -zxvf php-5.2.6.tar.gz && tar -zxvf mysql-5.0.18.tar.gz && cd apache_1.3.41rusPL30.24 && ./configure –prefix=/server –enable-module=so && make && make install && make clean && pw group add mysql && pw user add mysql -s /usr/sbin/nologin – d /server/bin/mysql -g mysql && cd ../ mysql-5.0.18 && ./configure –prefix=/server –with-mysqld-user=mysql –with-charset=cp1251 –with-extra-charset=all –with-unix-socket-path=/tmp/mysql.sock && make && make install && cp support-files/my-medium.cnf /server/mysql.cnf && make clean && cd ../php-5.2.6 && ./configure –prefix=/server –with-apxs=/server/bin/apxs –with-mysql=/server –with-mysql-sock=/tmp && make && make install && make clean && cd .. && cp my.sh /server/bin/mysql.sh && chown -R mysql:mysql /server/var && rm -rf apache_1.3.41rusPL30.24 && rm -rf mysql-5.0.18 && rm -rf php-5.2.6 && shutdown -r now
Установка связки Apache 2.x + PHP 5 + MySQL 5
Выполняем аналогичную(почти) команду:
tar -zxvf httpd-2.2.9.tar.gz && tar -zxvf php-5.2.6.tar.gz && tar -zxvf mysql-5.0.18.tar.gz && cd httpd-2.2.9 && ./configure –prefix=/server –enable-so && make && make install && make clean && pw group add mysql && pw user add mysql -s /usr/sbin/nologin -d /server/bin/mysql -g mysql && cd ../mysql-5.0.18 && ./configure –prefix=/server –with-mysqld-user=mysql –with-charset=cp1251 –with-extra-charset=all –with-unix-socket-path=/tmp/mysql.sock && make && make install && cp support-files/my-medium.cnf /server/mysql.cnf && make clean && cd ../php-5.2.6 && ./configure –prefix=/server –with-apxs2=/server/bin/apxs –with-mysql=/server –with-mysql-sock=/tmp make && make install && make clean && cd .. && cp my.sh /server/bin/mysql.sh && chown -R mysql:mysql /server/var && rm -rf httpd-2.2.9 && rm -rf mysql-5.0.18 && rm -rf php-5.2.6 && shutdown -r now
Apache 1.x
Если устанавливалось всё, как я описывал, то файл конфигурации Apache будет находиться в /server/conf/httpd.conf. Именно он единственный нам и понадобится. Править можно открыв файл в редакторе ee, или в Пуск-Система-Менеджер файлов(с root-привилегиями). Одним словом, правится файл от root-пользователя.
ServerRoot “/server” — наглядно нам показывается, что Apache-сервер поставлен туда, куда мы хотели, и куда ставили ![]()
PidFile /server/logs/httpd.pid — место, где будет храниться PID-файл при работе сервера
Timeout 300; KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
MinSpareServers 5
MaxSpareServers 10
StartServers 5
MaxClients 150
MaxRequestsPerChild 0 — всё оставляем как есть.
#Listen 3000
#Listen 12.34.56.78:80 — и это тоже. Используется для указания особого IP и номера порта, на котором будет работать Apache. Нам она не нужна. Всё держим в комментариях.
LoadModule php5_module libexec/libphp5.so — говорит о том, что PHP5 установился и прописал свой модуль в Apache.
Port 80 — порт, использующий Apache.
User a1ewka-gal4onok
Group a1ewka-gal4onok — поменял на себя, т.к. документы(мой локальный сайт находится в /home/a1ewka-gal4onok/localhost => права нужны пользователя a1ewka-gal4onok)
ServerAdmin a1ewka-gal4onok@a1ewka-gal4onok(pc-bsd) — вообще, тут пишется e-mail администратора
но можно и так оставить хост у меня — a1ewka-gal4onok(pc-bsd).
DocumentRoot “/home/a1ewka-gal4onok/localhost” — делаю таким. Указываю директорию, где находится локальный сайт. В принципе, можно оставить и значение по умолчанию которое, но придётся в /server/htdocs копировать файлы локального сайта.
Разберёмся с:
Options Indexes Includes
AllowOverride All
Возможные значения:
Includes – разрешить SSI (Server Side Includes);
Indexes – разрешить выдачу листинга каталога, если в нем нет файла index.html (или файла индекса, заданного директивой DirectoryIndex);
AllExecCGI – разрешить выполнение CGI-сценариев в данном каталоге и его поддереве;
FollowSymLinks – разрешить переходы по символическим ссылкам (создаваемым командой ln); – установить сразу все перечисленные режимы кроме MultiViews
MultiViews – разрешить поддержку многих языков; по умолчанию она отключена, и включать ее, как правило, не нужно;
Настройки по умолчанию вполне нормальны и подходят для работы сервера.
Находим блок с кучей комментариев, которые я опустил в статье:
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
Как видно, и тут я поменял рабочую директорию с моим локальным сайтом.
DirectoryIndex index.php
этот блок управляет приоритетом загружаемых индексных файлов. Например, вместо DirectoryIndex index.php я мог написать DirectoryIndex index.html index.php index.shtml. Что произойдёт в этом случае. Apache будет искать сначала в рабочей директории index.html, потом — index.php,и так далее. Если ничего найдено не будет, то выведется список файлов в рабочей директории, так как мы указывали Options Indexes Includes. Отмечу, что index.* можно переименовать в start.*. Кстати, это есть один из методов безопасности, о которой я буду вести речь в следущей статье.
AccessFileName .htaccess — так и оставляем.
Дальше всё оставляем по умолчанию, и добираемся до языков. Тут я оставил лишь Русский Язык, всё остальное закомментировал:
#AddLanguage cs .cz .cs
AddLanguage ru .ru
#AddLanguage zh-TW .zh-tw
и поменял кодировку(мой локальный сайт написан в кодировке cp1251):
AddCharset WINDOWS-1251 .cp-1251
LanguagePriority ru en da nl et fr de el it ja kr no pl pt pt-br ltz ca es sv tw
точно такой же приоритет языков, что и приоритет индексных файлов. Изменил на
LanguagePriority ru en de
Находим строчку: AddType application/x-tar .tgz, и после неё добавляем следующую строчку: AddType application/x-httpd-php .php. Она необходима для того, чтобы Apache смог запускать PHP-файлы.
Дальше я менял кодировки на мне нужную.
CharsetDefault cp1251
CharsetSourceEnc cp1251
CharsetDefault cp1251
На этом настройка Apache1x заканчивается, httpd.conf сохраняется.
Apache 2.x Настраивается абсолютно аналогичным образом, только кодировки не придётся править.
PHP 5
PHP настроен. Тут нам нечего править.
MySQL 5
Файл настройки my.cnf MySQL5 должен находиться в /server. При необходимости можно поправить, например, порт, или PID-файл и его размещение.
Установка из PBI-пакетов
Проблем не было. Если что-то не работает, то либо неправильно сконфигурирована та или иная программа, либо же PBI-пакет криво собран.
Установка из пакетов и коллекции портов
Очень часто замечал, что после деинсталляции, например, Apache заново он не особо хотел устанавливаться. Ссылался на мешающий ему пакет — apr_dbd_mysql.rev-57(в зависимости от того, что икак ставилось). Для начала удаляется этот файл, на который ругается, например, Apache из /usr/var/db/pkg; /usr/var/db/ports; /usr/ports/distfiles. Потом выполняется:
# make clean
# make distclean — для портов
и: # pkg_delete -f apache — для пакетов
Установка из исходных кодов
Все проблемы из-за неправильности написания опций при конфигурации. К статье также прилагаю файлы — архивы исходных кодов программ, которые я ставил, ошибок в конфигурации, компиляции и установки не возникало.