Операционная система должна быть свежеустановленной, без векового барахла. Настоятельно рекомендую обновить древо портов перед началом работ на сервере:
# portsnap fetch && portsnap extract
Установка программного обеспечения из портов
Не стоит забывать про диалоговые окна в процессе установки приложений и периодчески заглядывать в консоль, в которой происходит сборка.
# make install clean -C /usr/ports/textproc/libxml2 && make install clean -C /usr/ports/ftp/curl && make install clean -C /usr/ports/mail/cclient && make install clean -C /usr/ports/security/mcrypt && \ make install clean -C /usr/ports/databases/mysql50-server && make install clean -C /usr/ports/www/nginx && make install clean -C /usr/ports/ftp/vsftpd && make install clean -C /usr/ports/graphics/jpeg && \ make install clean -C /usr/ports/graphics/png && make install clean -C /usr/ports/www/oops && make install clean -C /usr/ports/net-mgmt/net-snmp && make install clean -C /usr/ports/devel/libltdl15 && \ make install clean -C /usr/ports/ftp/wget && make install clean -C /usr/ports/net/mpd && make install clean -C /usr/ports/devel/zziplib && make install clean -C /usr/ports/textproc/libxslt && \ make install clean -C /usr/ports/textproc/sablotron && make install clean -C /usr/ports/net/cvsup
Всяческие рулезы
# mkdir -p /home/mysql && chown mysql\: /home/mysql # wget http://kyxap.crimea.ua/rc/vimrc -O ~/.vimrc # wget http://kyxap.crimea.ua/rc/screenrc -O ~/.screenrc # mkdir -p /opt/etc/php5 && mkdir -p /opt/etc/php4
Предварительно стягиваем последнее древо исходных кодов FreeBSD:
# cat > /root/standart.cvsup << EOF *default host=cvsup13.us.FreeBSD.org *default base=/var/db *default prefix=/usr *default release=cvs tag=RELENG_6_2 *default delete use-rel-suffix *default compress src-all EOF # cvsup -g -L 2 /root/standart.cvsup
Включаем поддержку SASL2 по доке Аутентификация SMTP: штатный sendmail + SASL. Для установки дедикита надо выполнить п.1, п.2, п.3, п.5, п.7, п.8.
Если нам необходимо использовать apache-2.2.6
, то в файл /boot/loader.conf нам необходимо добавить строчку accf_http_load="YES"
.
Загружаем модуль:
# kldload accf_http
Включаем форвардинг пакетов:
# sysctl -w net.inet.ip.forwarding=1
Добавляем дефолтные опции для сервера в /etc/make.conf
# cat > /etc/make.conf << EOF BATCH=yes WITHOUT_X11=yes WITHOUT_FONTCONFIG=yes EOF
Добавление установленных демонов в список загружаемых сервисов + настройка демонов
Прописываем в /etc/rc.conf флаги для автозапуска нужных нам сервисов.
gateway_enable="YES" named_enable="YES" mysql_enable="YES" mysql_dbdir="/home/mysql" mysql_args="--skip-locking --skip-name-resolve -O max_connect_errors=500000 -O max_connections=1000" sendmail_enable="YES" vsftpd_enable="YES" mpd_enable="YES" oops_enable="YES"
В файле /usr/local/etc/vsftpd.conf должны содержаться следующие записи:
anonymous_enable=NO background=YES listen=YES local_enable=YES write_enable=YES local_umask=022 chroot_local_user=YES
Создаем дефолтные конфиги для mpd
:
cd /usr/local/etc/mpd; cp mpd.conf.sample mpd.conf; cp mpd.links.sample mpd.links; cp mpd.script.sample mpd.script; cp mpd.secret.sample mpd.secret;
В файле /etc/namedb/named.conf ищем строку listen-on { 127.0.0.1; };
и комментируем ее.
Установка APACHE из исходных кодов
Стягиваем в /opt/src необходимую версию apache отсюда
: http://www.apache.org/dist/httpd/
Распаковываем, заходим в директорию с исходными кодами, создаем файл MyConfig.sh, в который записываем следующие строки:
Для apache-1.3.x
#!/bin/sh OPTIM="-D_FILE_OFFSET_BITS=64 -DDEFAULT_LISTENBACKLOG=1024 -DHARD_SERVER_LIMIT=1024" ./configure --prefix=/opt/<apache-1.3.x> --enable-module=so --enable-module=rewrite --enable-module=ssl
Для apache-2.x
#!/bin/sh OPTIM="-D_FILE_OFFSET_BITS=64 -DDEFAULT_LISTENBACKLOG=1024 -DHARD_SERVER_LIMIT=1024" ./configure --prefix=/opt/<apache-2.x> --enable-so --enable-cgi --enable-rewrite --with-mpm=worker --with-expat=builtin
Компилируем, устанавливаем и создаем симлинку:
# sh MyConfig.sh # make # make install # ln -s /opt/apache-x.x.x /usr/local/apache
Установка PHP из исходных кодов
Стягиваем в /opt/src необходимую версию php
отсюда: http://museum.php.net/
Распаковываем, заходим в директорию с исходными кодами, создаем файл MyConfig.sh, в который записываем следующие строки:
(Для версии apache-1.x ключ –with-apxs, для версии apache-2.x ключ –with-apxs2)
Для php-4.x
#!/bin/sh CFLAGS="-DEAPI -O2" ./configure --prefix=/opt/php-4.x \ --with-apxs=/usr/local/apache/bin/apxs \ --with-config-file-path=/opt/etc/php4 \ --enable-calendar \ --enable-sysvsem \ --enable-sysvshm \ --enable-sysvmsg \ --enable-ftp \ --enable-track-vars \ --with-zip \ --with-mysql=/usr \ --enable-bcmath \ --with-bz2 \ --with-gd \ --with-jpeg-dir \ --with-zlib-dir \ --with-curl \ --enable-sockets \ --with-iconv \ --enable-mbstring \ --enable-mbregex \ --enable-ctype \ --enable-shmop \ --enable-wddx \ --with-imap \ --with-kerberos \ --with-freetype-dir \ --with-dom \ --with-dom-xslt \ --with-dom-exslt \ --with-xmlrpc \ --enable-xslt \ --with-xslt-sablot \ --with-expat-dir=/usr \ --enable-dbase \ --with-mime-magic \ --with-mhash \ --with-openssl \ --with-mcrypt \ --with-imap-ssl \ --enable-memory-limit
Для php-5.x
#!/bin/sh CFLAGS="-O2" ./configure --prefix=/opt/php-5.х \ --with-apxs2=/usr/local/apache/bin/apxs\ --enable-calendar \ --enable-sysvsem \ --enable-sysvshm \ --enable-sysvmsg \ --enable-ftp \ --with-mcrypt \ --with-mysql \ --with-mysqli \ --enable-bcmath \ --with-bz2 \ --with-gd \ --with-jpeg-dir \ --with-zlib-dir \ --with-curl \ --enable-sockets \ --with-iconv \ --enable-mbstring \ --enable-mbregex \ --enable-ctype \ --enable-shmop \ --enable-wddx \ --with-imap \ --with-freetype-dir \ --with-xmlrpc \ --enable-dbase \ --with-mime-magic \ --with-mhash \ --with-gettext \ --with-imap-ssl \ --with-pear \ --with-openssl \ --with-config-file-path=/opt/etc/php5
Компилируем, устанавливаем и создаем симлинку:
# sh MyConfig.sh # make # make install # ln -s /opt/php-x.x.x /usr/local/php
Если при make install ругается что
cp: libs/libphp5.so: No such file or directory
то делаем:
1. run your configure script as it is 2. Open the libtool file that is created in the php source directory 3. find the variable definition: deplibs_check_method= 4. edit it to read: deplibs_check_method="pass_all" 5. run make
В зависимости от версии php, делаем:
# cp /opt/src/php-x.x.x/php.ini-dist в /opt/etc/phpX
Запуск сервисов
# /etc/rc.d/sendmail restart # /etc/rc.d/named start # /usr/local/etc/rc.d/mysq-server start # /usr/local/etc/rc.d/oops start # /usr/local/etc/rc.d/vsftpd start # /usr/local/etc/rc.d/mpd start # /usr/local/apache/bin/apachectl start
Установка Zend Optimizer
Тянем архив:
# make fetch -C /usr/ports/devel/ZendOptimizer/ && mv /usr/ports/distfiles/ZendOptimizer-* /opt/src
Распаковываем, заходим в директорию и запускаем install-tty
.
Следуем инструкциям инсталлятора, в пути к рнр.ini
указываем значение переменной –with-config-file-path
из файла MyConfig.sh
.