В данной статейке постараюсь описать процедуру установки 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
| Пн | Вт | Ср | Чт | Пт | Сб | Вс |
|---|---|---|---|---|---|---|
| « Янв | ||||||
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | ||||