В данной статейке постараюсь описать процедуру установки DA на VPS от KeyWeb.ru.

Конфигурация VPS: 512Mb RAM, 30Gb HDD, Fedora Core 5.

После получения VPS оказалось что на ней нет даже yum'а (установщик приложений), обнаружилось это при попытке установить Midnight Commander'а (удобный файловый менеджер).

Шаг 1: установка yum

нашли нужные RPM-пакеты yum для нашей Fedora Core 5 и установили их:

cd ./tmp
wget ftp://rpmfind.net/linux/fedora/core/5/i386/os/Fedora/RPMS/python-urlgrabber-2.9.8-2.noarch.rpm
wget ftp://rpmfind.net/linux/fedora/core/5/i386/os/Fedora/RPMS/python-sqlite-1.1.7-1.2.i386.rpm
wget ftp://rpmfind.net/linux/fedora/core/5/i386/os/Fedora/RPMS/python-elementtree-1.2.6-4.2.1.i386.rpm
wget ftp://rpmfind.net/linux/fedora/core/updates/5/i386/yum-2.6.1-0.fc5.noarch.rpm
rpm -Uvh *.rpm

собственно этого было достаточно, все заработало как надо, после чего поставили Midnight Commander при помощи только что установленного yum'а:

yum install mc

Шаг 2: установка DA

тут все весьма тривиально:

wget http://www.directadmin.com/setup.sh
chmod 755 setup.sh
./setup.sh

разумеется указываем при этом свои Сlient ID и License ID номера, а также hostname...

далее следуем инструкциям которые будут выдаваться в процессе установки...

мы же ставили стандарные версии ПО: Апач + PHP4 + MySQL4, правда потом, по настоянию знакомого, все же установили новые линейки версий PHP5+MySQL5, об этом мы раскажем ниже...

если что-то прошло несовсем корректно, то после установки возможно придется вручную указать имя сетевого интерфейса (в случае с VPS сетевой интерфейс будет не eth0, а что-то в стиле venet0), данный параметр можно изменить в файле:

/usr/local/directadmin/conf/directadmin.conf,

строка:

ethernet_dev=eth0:devicename

Шаг 3: установка MySQL5
процедура тоже весьма проста:

cd ./tmp
wget http://files.directadmin.com/services/all/mysql/MySQL-client-5.0.37-0.i386.rpm
wget http://files.directadmin.com/services/all/mysql/MySQL-devel-5.0.37-0.i386.rpm
wget http://files.directadmin.com/services/all/mysql/MySQL-server-5.0.37-0.i386.rpm
wget http://files.directadmin.com/services/all/mysql/MySQL-shared-5.0.37-0.i386.rpm
rpm -Uvh MySQL-*-5.0.37-0.i386.rpm
service mysqld restart

Шаг 4: установка PHP5
тут стояла уже более сложная задача - так как была необходимость скомпилировать PHP с определенными либами:

cd /usr/local/directadmin/customapache
wget http://files.directadmin.com/services/customapache/php-5.2.4.tar.gz

далее в MC (MidnightCommander) открываем файл build и заменяем строку:
PHP_VER=4.4.4
на
PHP_VER=5.2.4

также мы подправили скрипт configure.php:

./configure --with-apxs \
--with-curl \
--with-curl-dir=/usr/local/lib \
--with-gd \
--with-gd-dir=/usr/local \
--with-gettext \
--with-jpeg-dir=/usr/local/lib \
--with-kerberos \
--with-mcrypt \
--with-mhash \
--with-mysql=/usr \
--with-pear \
--with-png-dir=/usr/local/lib \
--with-xml \
--with-zlib \
--with-zlib-dir=/usr/local/lib \
--with-zip \
--with-openssl \
--enable-bcmath \
--enable-calendar \
--enable-ftp \
--enable-magic-quotes \
--enable-sockets \
--enable-track-vars \
--enable-mbstring \
--enable-memory-limit \
--enable-gd-native-ttf \
--with-freetype-dir=/usr/lib \
--with-iconv \
--enable-pdo=shared \
--with-pdo-sqlite=shared \
--with-sqlite=shared \
--with-pdo-mysql=shared,/usr

после чего приступили к сборке:

./build clean
./build php n

после чего подкорректировали файл /etc/httpd/conf/httpd.conf:
- LoadModule php4_module modules/libphp4.so => LoadModule php5_module modules/libphp5.so
- AddModule mod_php4.c => AddModule mod_php5.c
- =>

так же установили за одно и ZendOptimizer:

cd ./tmp
wget http://files.directadmin.com/services/customapache/ZendOptimizer-3.3.0-linux-glibc21-i386.tar.gz
tar zxf http://files.directadmin.com/services/customapache/ZendOptimizer-3.3.0-linux-glibc21-i386.tar.gz

после чего перешли при помощи MC в создавшуюся папку и запустили install, далее следуя инструкциям на экране...

после чего скорректировали файл /usr/local/Zend/etc/php.ini - выключили потенциально опасные строки при помощи параметра disable_function, у нас получилась строка:
disable_functions = system,shell_exec,exec,escapeshellarg,escapeshellcmd,shell_exec, passthru,popen,proc_open,proc_close,pcntl_exec,link,symlink,apache_child_terminate, posix_kill,proc_terminate,posix_mkfifo,php_uname,ssh,ssh_exec,ssh2,posix_setpgid, posix_getpwuid,posix_getgrgid,posix_kill,ssh2_exec,pcntl_exec,ini_restore,ioctl

далее перезагрузили Apache:

service httpd restart

Шаг 5: конфигурирование MySQL
файла /etc/my.cnf мы не нашли, разумеется решили создать сами, предварительно остановив MySQL-сервис:

service mysqld stop

далее отредактировали my.cnf файл, так чтобы он удовлетворял нашим требованям:

[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
default-character-set = cp1251

# MySQL сервер
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 1M
max_allowed_packet = 1M
table_cache = 512
sort_buffer_size = 1024K
read_buffer_size = 512K
read_rnd_buffer_size = 1024K
net_buffer_length = 8K
myisam_sort_buffer_size = 16M
init-connect = "SET NAMES cp1251"
character-set-server = cp1251
collation-server = cp1251_general_ci
max_user_connections=100
set-variable = max_connections=250
safe-show-database

[mysqldump]
quick
max_allowed_packet = 8M
default-character-set = cp1251

[mysql]
default-character-set = cp1251

после чего запустили MySQL сервис:

service mysql start