Skip to content
La2Base
Home
DownloadsWikiForumFAQ
ruen
Sign up Login
HomeFilesWikiLogin
  • Home
  • Downloads
  • Wiki
  • FAQ
  • Contact Us
  • About
  • Rules
  • Privacy
  • Terms of Service

© 2026 la2base.com · All rights reserved

ruen
Forum/Помощь и Поддержка/[web] Unix Хостинг для Pts (manual)
Search

[web] Unix Хостинг для Pts (manual)

5 replies280 viewsCurrently viewing: 1
Александр
Александр

User

Участник

Posts: 33

На форуме с: 02/28/2007

Репутация: +32

Рейтинг: 0

· 03/18/2009, 05:18 AM

Добрый день уважаемые форумчане!
Бегал тут по форуму и видел достаточно большое количество постов, на тему как связать UNIX хостинг или Linux (без разницы) с базой данных MSSQL.
Пишу полный мануал - поднятия полноценного хостинг сервера под ОС FreeBSD, зыыы надейсь комунибудь пригодиться.

Что получим в окончательном варианте:
1. Полностью рабочий WEB сервер Apache с поддержкой многодоменности, и способный работать при больших нагрузках. (У меня держит до 1500 обращений и это не придел. п.с главное чтобы канал не подвёл.)
2. И главное разберёмся с настройкой коннектов к СУБД MSSQL с использованием Freetds
3. Сервер СУБД MYSQL

Кому нужно будет спецом по запросу потом напишу гайд по FTP DNS и прочей дряни))

ПО используемое в гайде:
1. Apache 2.2
3. PHP 5
4. FreeTDS

Почему я выбрал FreeBSD:
1. Ничего лишнего в отличии от винды и Linux, всё затачивается под себя.
2. Практичность
3. Гибкость системы
4. Никакого графического интерфейса!!! (На сервере они нам не вперлись т.к это резко снизит производительность.)
5. Обширное количество новых версий портов.
6. Удобная ось для крупного сервера.
7. Обширное количество фаерволов работающих на уровне ядра (сам юзаю IPFW)

Ну что решились поднимать? Тогда готовтесь потратить кучу времени и не одну кружку кофе))
В принципе с базовыми знаниями управления UNIX - Linux систем всё собирается за 2-3 часа.
Если у вас нет таких знаний и всёже хотите попробовать, то курим дружненько хендбук) тут: http://www.freebsd.org/doc/ru_RU.KOI8-R/bo...book/index.html - там всё понятно и красиво описано.
Качаем дистриб с FreeBSD версии 6х или 7х без разницы(Я выбрал 6.4, т.к в 7 версии забили практически на самый рульный фаервол вмире ipfw).
Скачать FreeBSD можно тут: http://www.freebsd.org/ru/where.html
Как установить чертёнка (FreeBSD) читаем тут: Установка FreeBSD(Официальная документация) или тут Установка FreeBSD(Пошаговая установка со скринами)

Я буду всё собирать из портов, т.к если использовать пакеты, мы можем столкнуться с кучей ошибок. (Пусть долго, зато надёжно)
После установки нам нужно обновить систему портов (сборник исходных кодов.)
Логинимся под root'м или юзером с правами на su
Редактируем /etc/make.conf

CODE
ee /etc/make.conf

в конец файла добавляем следующее (Чтобы собирать приложения без ИКСОВ):
CODE
WITHOUT_X11=yes

Устанавливаем CVSUP:
CODE
cd /usr/ports/net/cvsup-without-gui && make install clean && rehash

После установки CVSUP идём:
CODE
cd /usr/share/examples/cvsup

В каталоге /usr/share/examples/cvsup находится несколько примеров supfile.
CODE
globe# ls -l
total 36
-r--r--r-- 1 root wheel 1185 Nov 26 10:20 README
-r--r--r-- 1 root wheel 5334 Nov 26 10:20 cvs-supfile
-r--r--r-- 1 root wheel 2643 Nov 26 10:20 doc-supfile
-r--r--r-- 1 root wheel 2297 Nov 26 10:20 gnats-supfile
-r--r--r-- 1 root wheel 3821 Nov 26 10:20 ports-supfile
-r--r--r-- 1 root wheel 367 Nov 26 10:20 refuse
-r--r--r-- 1 root wheel 1955 Nov 26 10:20 refuse.README
-r--r--r-- 1 root wheel 3896 Nov 26 10:20 stable-supfile
-r--r--r-- 1 root wheel 3053 Nov 26 10:20 standard-supfile
-r--r--r-- 1 root wheel 2368 Nov 26 10:20 www-supfile

Копируем stable-supfile и называем supfile
CODE
cp stable-supfile supfile
ee supfile


Ищем в файле:
CODE
*default host=CHANGE_THIS.FreeBSD.org

Меняем на:
CODE
*default host=cvsup6.ru.FreeBSD.org

Ищем и коментируем #:
CODE
src-all

Ищем и раскоментируем:
CODE
src-base
src-sys

Закрываем сохраняемся.
Запускаем процесс обновления сорсов и идём смотреть телик, курить и пить кофе:
CODE
cvsup -g -L 2 supfile

После обновления сорсов системы обновляем порты чтобы получить всё самое новое и горяченькое xDD:
CODE
portsnap fetch extract

На этом самые нудные процессы закончены.

Сборка ядра
Идём:
CODE
globe# cd /usr/src/sys/i386/conf/
globe# ls -l
total 64
-rw-r--r-- 1 root wheel 13 Jun 20 2005 .cvsignore
-rw-r--r-- 1 root wheel 372 Oct 28 2005 DEFAULTS
-rw-r--r-- 1 root wheel 10853 Jul 28 2008 GENERIC
-rw-r--r-- 1 root wheel 1741 Jan 14 2005 GENERIC.hints
-rw-r--r-- 1 root wheel 120 Feb 27 2003 Makefile
-rw-r--r-- 1 root wheel 35416 Dec 5 20:44 NOTES
-rw-r--r-- 1 root wheel 1811 Sep 13 2008 PAE
-rw-r--r-- 1 root wheel 322 Sep 18 2005 SMP
-rw-r--r-- 1 root wheel 3431 Apr 24 2008 XBOX


Копируем в WEBSRV и редактируем
CODE
cp GENERIC WEBSRV
ee WEBSRV

Ищем:
CODE
cpu I486_CPU
cpu I586_CPU
cpu I686_CPU
ident GENERIC


Приводим к такому виду:
CODE
machine i386
#cpu I486_CPU
#cpu I586_CPU
cpu I686_CPU
ident WEBSRV


Ищем:
CODE
options SCHED_4BSD # 4BSD scheduler
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
options INET6 # IPv6 communications protocols
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options MD_ROOT # MD is a potential root device
options NFSCLIENT # Network Filesystem Client
options NFSSERVER # Network Filesystem Server
options NFSLOCKD # Network Lock Manager
options NFS_ROOT # NFS usable as /, requires NFSCLIENT
options MSDOSFS # MSDOS Filesystem
options CD9660 # ISO 9660 Filesystem
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options GEOM_GPT # GUID Partition Tables.
options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
options COMPAT_FREEBSD5 # Compatible with FreeBSD5
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
options KTRACE # ktrace(1) support
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options ADAPTIVE_GIANT # Giant mutex is adaptive.


Приводим к такому виду:
CODE
options SCHED_4BSD # 4BSD scheduler
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
#options INET6 # IPv6 communications protocols
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
#options MD_ROOT # MD is a potential root device
#options NFSCLIENT # Network Filesystem Client
#options NFSSERVER # Network Filesystem Server
#options NFSLOCKD # Network Lock Manager
#options NFS_ROOT # NFS usable as /, requires NFSCLIENT
options MSDOSFS # MSDOS Filesystem
options CD9660 # ISO 9660 Filesystem
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options GEOM_GPT # GUID Partition Tables.
options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
options COMPAT_FREEBSD5 # Compatible with FreeBSD5
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
options KTRACE # ktrace(1) support
options SMP
options SUIDDIR
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options SHMMAXPGS=65536
options SEMMNI=40
options SEMMNS=240
options SEMUME=40
options SEMMNU=120
options MAXDSIZ=(1024UL*1024*1024)
options MAXSSIZ=(128UL*1024*1024)
options DFLDSIZ=(1024UL*1024*1024)
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options ADAPTIVE_GIANT # Giant mutex is adaptive.


Закрываем и сохраняем
Начинаем компилировать ядро системы:(Водим каждую комманду по очереди.)
CODE
cd /usr/src
make buildkernel KERNCONF=WEBSRV
make installkernel KERNCONF=WEBSRV
shutdown -r now

Пока собирается наше ядро идём снова пить хофе и смотреть телик.

После перезагрузки редактируюем файл для установки квоты.
Изменяем файл /etc/fstab так, чтобы раздел /usr монтировался с suiddir. Дополнительно отключаем запись времени последнего доступа к файлам; это дает некоторый выигрыш в производительности:
CODE
ee /etc/fstab

Ищем:
CODE
/dev/ad0s1f /usr ufs rw 2 2

Меняем на:
CODE
/dev/ad0s1f /usr ufs rw,suiddir,noatime 2 2

Перезагружаемся
CODE
shutdown -r now

Проверяем:
CODE
mount | grep /usr
/dev/ad0s1f on /usr (ufs, local, noatime, suiddir, soft-updates)


Сборка и настройка ПО:

Установка mc:
CODE
cd /usr/ports/misc/mc && make -DWITH_SLANG install clean


Установка bash
CODE
cd /usr/ports/shells/bash
make install clean
ln -s /usr/local/bin/bash /bin/bash

Ставим для пользователя root оболочку bash по умолчанию
CODE
chsh -s /usr/local/bin/bash root

Перезагружаемся
CODE
shutdown -r now


Установка сервера MySQL
CODE
cd /usr/ports/databases/mysql51-server
export WITH_CHARSET=cp1251
export WITH_XCHARSET=all
export BUILD_OPTIMIZED=yes
make install clean

После установки сервера указываем в /etc/rc.conf
CODE
mysql_enable="YES"

Записываем файл конфигурации MySQL /var/db/mysql/my.cnf
CODE
[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set=cp1251

[mysqld]
bind-address = 127.0.0.1
port = 3306
socket = /tmp/mysql.sock
skip-character-set-client-handshake
default-character-set=cp1251
skip-locking

key_buffer = 32M
max_allowed_packet = 16M
table_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 16M
thread_concurrency = 8
max_connections = 128
max_user_connections = 126
log-slow-queries
log
binlog_ignore_db = mysql
expire_logs_days = 5
max_binlog_size = 400M
# Если нет необходимости в работе по сети, включаем опцию skip-networking
#skip-networking
log-bin = mysql-bin
server-id = 1

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[isamchk]
key_buffer = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

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

Проверяем работоспособность:
CODE
ps axw | grep mysql

780 con- I 0:00.01 /bin/sh /usr/local/bin/mysqld_safe
--defaults-extra-file=/var/db/mysql/my.cnf --user=mysql --datadir=/var/db/mysql --pid-file=/v
862 con- S 107:52.92 /usr/local/libexec/mysqld --defaults-extra-file=/var/db/mysql/my.cnf
--basedir=/usr/local --datadir=/var/db/mysql --pid-file=/va
7861 p0 S+ 0:00.00 grep mysql


Задаем пароль для MySQL root:
CODE
mysql -uroot

mysql> GRANT ALL ON *.* TO 'root'@'localhost' IDENTIFIED BY 'ВАШ ПАРОЛЬ';
mysql> GRANT ALL ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY 'ВАШ ПАРОЛЬ';


Устанавливаем Apache22:
CODE
cd /usr/ports/www/apache22/
make install clean

В появившемся окне снимаем крестик с IPV6, всё остальное оставляем без изменений.
Добавляем в /etc/rc.conf
CODE
apache22_enable="YES"

Запускаем индейца Apache
CODE
apachectl start


Установка php5
CODE
cd /usr/ports/lang/php5
make install clean

В появившемся окне выставляем всё в соответствии с приведённым ниже:
CODE

+--------------------------------------------------------------------+
¦ Options for php5 5.2.9
¦ +----------------------------------------------------------------+
¦ ¦ [X] CLI Build CLI version
¦ ¦ [X] CGI Build CGI version
¦ ¦ [X] APACHE Build Apache module
¦ ¦ [ ] DEBUG Enable debug
¦ ¦ [X] SUHOSIN Enable Suhosin protection system
¦ ¦ [X] MULTIBYTE Enable zend multibyte support
¦ ¦ [ ] IPV6 Enable ipv6 support
¦ ¦ [ ] MAILHEAD Enable mail header patch
¦ ¦ [X] REDIRECT Enable force-cgi-redirect support (CGI only)
¦ ¦ [X] DISCARD Enable discard-path support (CGI only)
¦ ¦ [ ] FASTCGI Enable fastcgi support (CGI only)
¦ ¦ [X] PATHINFO Enable path-info-check support (CGI only)
¦ ¦
¦ ¦
¦ ¦
+-+----------------------------------------------------------------+-+
¦ [ OK ] Cancel
+--------------------------------------------------------------------+


Установка php5-extensions
CODE
cd /usr/ports/lang/php5-extensions/
make install clean

В появившемся окне добавляем модули: DBA, DBASE, FILEINFO, FTP, GD, GETTEXT, MBSTRING, MCRYPT, MHASH, MSSQL(Собственно этот модуль и отвечает за коннект к MSSQL вместе с ним соберётся пакет FREETDS, выбирать обязательно.), MYSQL, MYSQLI(Этот модуль нужен большенству новых скриптов и CMS систем в том числе и DLE), SNMP(Модуль для работы с протоколом SNMP полезный протокол мониторинга за серверами.) SOCKETS, всё остальное оставляем по умолчанию.

Пока ставятся модули к PHP-5 копируем исходный файл конфигурации и подгоняем под себя.
CODE
cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini


После того как закончилась установка модулей копируем и редактируем freetds.conf.dist
CODE
cd /usr/local/etc/
cp freetds.conf.dist freetds.conf
mcedit freetds.conf


В конец файла добавляем:
CODE

[MyServer2k]
host = xxx.xxx.xxx.xxx # IP сервера MSSQL 2x
port = 1433 # Порт на котором висит сервис MSSQL
client charset = CP1251 # Кодировка
tds version = 8.0

Сохраняем закрываем.
На этом настройка PHP завершена, теперь он готов к коннекту с MSSQL.

Настройка Apache 2

CODE
cd /usr/local/etc/apache22/
mcedit ee httpd.conf

Ищем:
CODE
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>

Меняем на:
CODE
<IfModule dir_module>
DirectoryIndex index.php index.php3 index.phps index.html
</IfModule>


Ищем:
CODE
<IfModule mime_module>
TypesConfig etc/apache22/mime.types
#AddType application/x-gzip .tgz
#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
#AddHandler cgi-script .cgi
#AddHandler type-map var
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
</IfModule>

Заменяем на:
CODE
<IfModule mime_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
TypesConfig etc/apache22/mime.types
#AddType application/x-gzip .tgz
#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
#AddHandler cgi-script .cgi
#AddHandler type-map var
#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
</IfModule>

Закрываем сохраняем:

Создаём файл виртуального хоста:
CODE
cd /usr/local/etc/apache22/Includes/
touch myhost.conf
ee myhost.conf

Добавляем в него:
CODE

<VirtualHost *:80>

AddDefaultCharset windows-1251


DocumentRoot "/usr/local/www/data"
ServerName myhost.ru
ServerAlias www.myhost.ru
ServerAdmin [email protected]

<Directory "/usr/local/www/data">

Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all

</Directory>
</VirtualHost>

Закрываем, сохраняемся.

Создаём папку корневой каталог для сайта "data"
CODE
mkdir /usr/local/www/data
chown www:www /usr/local/www/data


Создаём файл для проверки с phpinfo
CODE
touch /usr/local/www/data/index.php
ee /usr/local/www/data/index.php

Вставляем в него следующий код для проверки:
CODE
<?php
phpinfo();

?>


Перезагружаем Apache
CODE
apachectl restart


Всё открываем браузер и ломимся на_http://myhost.ru
Собственно на этом всё) Пользуйтесь, пишите ваши вопросы, будет свободное время отвечу.

Сделать видимым всё что скрыто, не проблема, занать бы как))

0
H
hellEVIL_TEAM

User

Бывалый

Posts: 292

На форуме с: 03/28/2008

Репутация: +129

Рейтинг: 0

· 03/18/2009, 05:57 AM

А нафига Mysql тогда ставить?

0
Александр
Александр

User

Участник

Posts: 33

На форуме с: 02/28/2007

Репутация: +32

Рейтинг: 0

· 03/18/2009, 06:17 AM

hellEVIL_TEAM: А нафига Mysql тогда ставить?


Можно ещё и Постгресс замутить)) А форумы и прочее ты тоже будешь ставить на MSSQL уд. хост?

Я лично MySQL и PGSQL юзаю для хранения пользователей хостинга, e-mail сервера, ftp и vpn. + Баз для сайтов, и хранение квот.

Сделать видимым всё что скрыто, не проблема, занать бы как))

0
iZen
iZen

User

Участник

Posts: 80

На форуме с: 01/23/2009

Репутация: +44

Рейтинг: 0

· 03/19/2009, 05:22 AM

Вопрос есть, а не проще сделать на perl`e XML-RPC сервер, и повесить его хоть на яву хоть на птс(sybase, odbc), а вызывать с веб-морды хоть через php, хоть через javascript?

0
Александр
Александр

User

Участник

Posts: 33

На форуме с: 02/28/2007

Репутация: +32

Рейтинг: 0

· 03/19/2009, 08:08 AM

izen: Вопрос есть, а не проще сделать на perl`e XML-RPC сервер, и повесить его хоть на яву хоть на птс(sybase, odbc), а вызывать с веб-морды хоть через php, хоть через javascript?

А смысл в том какой? Теже яйца только в профиль. Для чего извращаться если можно подключить библиотеку напрямую?

Сделать видимым всё что скрыто, не проблема, занать бы как))

0
Topic is closed for replies