= bubbalog =Дневникът на моето стадо

SysCP хостинг контрол панел на FreeBSD 8.0

Friday 24.07.2009 22:23 EEST · Публикувано от в = FreeBSD =

Както вече споменах, скоро преминах на FreeBSD 8.0 и окрилен от смелата проба с чистоновата операционна система реших да се тествам и с нещо съвсем ново. В резултат  последните 2 седмици вечер в нас се води една доста епична борба по инсталирането, конфигурирането, запускането и овладяване на работата със SysCP хостинг контрол панела. Е, сега вече мога да се похваля, че от днес всичко вече е инсталирано и в работен режим, като малко по малко мисля да го превърна в работещ вариант.

Самия SysCP е панел с добри възможности соред мен и от няколкоседмичните ми тестове и проби – един добър инструмент за работа. Самата инсталация не е никак сложна, стига да се имат предвид няколкото подводни камъка с които се сблъсках при цялата процедура и които са описани тук. Предполага се, че имате вече готово и работещо FreeBSD, както и начални познания за работа със системата, настройки, работа с MySQL база данни, и понятие за работа и настройка на пощенски сървър. Заедно с инсталирането му на системата се инсталират и пощенските сървъри Dovecot и Postfix, както и ProFTP сървър, като всичко това е с поддръжка на SSL. Самото следващо упътване разбира се може да има допуснати грешки, но се надявам, ако някой намери такава да съощи, за да мога да я отстраня. Като начало, преди да започнете самата инсталация ще спомена, че най-добре е самата инсталация да се извърши на прясна, нова и чиста инсталация на FreeBSD. Пробвах доста варианти като начало, но винаги се стигаше до грешки, омазване и проблеми, а самото преинсталиране не е никак малко като време. Ето и самата последователност на инсталирането.

Въпреки, че на новото FreeBSD 8 RC1 нямаше никакви проблеми при инсталирането, не мога да не спомена следните 2 грешки (появили се при първите тестове на FreeBSD 8 Beta1) които може да избегнете ако се появят, като пачнете инсталацията на Postfix в портовете. Първата стъпка е да свалите от сайта на FreeBSD файловете Makefile и distinfo и да заместите с тях файловете, които са в /usr/ports/mail/postfix. В противен случай ще получите грешка, която ще спре инсталацията. Следващата грешка която ще спре инсталацията ви е

In file included from attr_clnt.c:77:
/usr/include/unistd.h:329: error: conflicting types for ‘closefrom’
./sys_defs.h:1395: error: previous declaration of ‘closefrom’ was here
*** Error code 1
Stop in /usr/ports/mail/postfix/work/postfix-2.6.2/src/util.
*** Error code 1
Stop in /usr/ports/mail/postfix/work/postfix-2.6.2.
*** Error code 1
Stop in /usr/ports/mail/postfix.
*** Error code 1

За да избегнете това редактирайте  /usr/include/unistd.h:

ее /usr/include/unistd.h

намерете и коментирайте ( с /* за начало и */ за край на коментара) реда

void   closefrom(int);

С това предварителната подготовка приключва и сте готови да започнете.

1. Инсталиране на SysCP

Отидете с директорията на SysCP:

#cd /usr/ports/sysutils/syscp/

и изпълнете следната команда:

#make all install clean

Ще последва една много дълга, неистова и мрачна процедура по инсталирането на всички нужни за панела компоненти, като в течение на което няколко пъти ще бъдете попитани за конфигурирането на някои от компонентите. Приемайте всичко както си е по подразбиране, с изключение на следните компоненти за които е нужно да се уверите, че са маркирани посочените опции и поддръжки:

Apache -> да се маркира опцията за MySQL
PHP -> да се маркира опцията за Apache
Dovecot-> да се маркират опциите за  SSL, POP3, LDA, и MYSQL
Postfix-> да се маркират опциите за DOVECOT, TLS, BDB, MYSQL, и VDA
ProFTPd-> да се маркират опциите за MYSQL, OPENSSL, и QUOTA

2. Конфигуриране на Apache

След като приключи инсталацията на всичко, отворете /usr/local/etc/apache22/httpd.conf и прибавете следните редове към файла:

# SysCP Alias
Alias /syscp “/usr/local/www/syscp/”
<Directory “/usr/local/www/syscp”>
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Това ще позволи клиентите да достигат логина за контролния панел на техния хостинг директно от адрес http://adres.na.servera/syscp. Аз лично не харесах този подход, въпреки, че така е написано по дебелите книги. Просто си конфигурирах httpd.conf файла така, че Apache да отгваря на един домейн, който да отговаря само за връзка към контрол панела, а малко по-натам в самото конфигуриране на контрол панела се описват виртуалните хостове. Интересното е, че до сега не бях забелязал как Apache може да работи едновременно и с конфигуриран единичен хост от httpd.conf, и с виртуални хостове. До сега все си мислех, че или е на един хост, или е на виртуални хостове… но това са си мои терзания.

Прибавете също така и следните редове:

<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
</Files>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

редактирайте линията “DirectoryIndex” и прибавете index.php

Редактирайте скедния пазаж:

#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the “default” to be a very restrictive set of
# features.
#
<Directory />
AllowOverride None
Order deny,allow
Deny from all
</Directory>

Като промените предпоследния ред на “Allow from all”. В противен случай Apache няма да допусне никой да отвори сайт от сървъра ви.


3. Подготовка за стартиране

Първо спрете sendmail:

#/etc/rc.d/sendmail stop

Следващата стъпка е да добавите в /etc/rc.conf редове, които ще попречат на sensmail и още няколко други процеса да стартират при следващото зареждане на машината. Тук трябва да отбележа, че въпреки всичко sendmail пак си вършееше по системата няколко часа, неизвестно за мен как е стартирал и е предизвикан от една гршка в /etc/crontab… Но това е друга тема на разговор. А ето и нужните редове:

# Disable Sendmail
sendmail_enable=”NO”
sendmail_submit_enable=”NO”
sendmail_outbound_enable=”NO”
sendmail_msp_queue_enable=”NO”

Тук трябва да се има предвид, че sendmail_enable=”NO” няма на спре Sendmail  напълно. Той ще спре да получава конекции от други системи, но че остане  за да изпълнява някои специфични системни функции, като дневните доклади за състоянието на системата или някои грешки при изпълнението на скриптове например. За напъкното спиране тчрябва да използвате:

sendmail_enable=”NONE”

и да създадете (редактирате, ако вече съществува) файла /etc/periodic.conf, като прибавите/редактирате следните редове:

daily_clean_hoststat_enable=”NO”
daily_status_mail_rejects_enable=”NO”
daily_status_include_submit_mailq=”NO”
daily_submit_queuerun=”NO”

Тук е времето да направя една вметка. Реално е възможно, след инсталацията да подмените Sendmail с Postfix, за да продължите да получавате нормално дневните доклади. За целта е нужно да редактирате и промените файла /etc/mail/mailer.conf в следния вид:

# ORIGINAL ==============================
# $FreeBSD: src/etc/mail/mailer.conf,v 1.2.2.1 2002/04/09 02:00:56 gshapiro Exp
#
# Execute the “real” sendmail program, named /usr/libexec/sendmail/sendmail
#
#sendmail /usr/libexec/sendmail/sendmail
#send-mail /usr/libexec/sendmail/sendmail
#mailq /usr/libexec/sendmail/sendmail
#newaliases /usr/libexec/sendmail/sendmail
#hoststat /usr/libexec/sendmail/sendmail
#purgestat /usr/libexec/sendmail/sendmail
#
# AFTER POSTFIX =========================
# Execute the Postfix sendmail program, named /usr/local/sbin/sendmail
#
sendmail /usr/local/sbin/sendmail
send-mail /usr/local/sbin/sendmail
mailq /usr/local/sbin/sendmail
newaliases /usr/local/sbin/sendmail

Следват редовете, които стартират всички ножни компоненти при зареждане на системата. Тук требва да се отбележи, че цялата тази работа може да работи съвсем чудесно и без named – за целта просто коментирайте реда му, ако смятате че няма да ви е нужен или ще ви пречи, както е и в моя случай (аз използвам друга система за DNS.

# Allowed Applications
apache22_enable=”YES”
mysql_enable=”YES”
named_enable=”YES”
dovecot_enable=”YES”
postfix_enable=”YES”
proftpd_enable=”YES”

Следващата стъпка е да се създаде нова база данни за работа на Postfix. И тук се появява един ,мого съществен проблем, над който се борих почити цяло денонощие, неописан в документацията по инсталиране, а решението намерих съвсем ненадейно. Работата е там, че нужният файл aliases.db вече съществува, но не е в /etc, а се намира в /etc/mail и за съжаление вече се ползва от Sendmail. Когато изпълните долонаписаните 2 команди те просто опресняват  aliases.db, но не го правят във формат годен за употреба от Postfix, както така и не го слагат на правилното място. Решението за да може да работи Postfix изобщо, просто изтрийте вече съществуващия /etc/mail/aliases.db и изпълнете следните 2 комади:

#/usr/bin/newaliases
#/usr/local/sbin/postmap /usr/local/etc/postfix/transport

С това основната инсталация на SysCP приключва. Разбира се, ако сте чели и някое оригинално английско ръководство, там ще се каже, че би трябвало сега всичко да е наред, но не е така.

4. След инсталационни доинсталирания/настройки

Въпреки всичко, колкото и да е автоматизирана цялата инсталация се оказа, че не всичко се инсталира заедно и на един път. За жалост се оказа, че след всичко няма инсталиран MySQL сървър. За да проверите дали има такъв – просто проверете дали съществува  /usr/local/etc/rc.d/mysql-server. Това просто е файлът от който стартира сървъра. Ако няма – изпълнете процедурата по инсталиране на MySQL сървър от тук, ако пък го има – просто го пропуснете и стартирайте вече готовата система:

#/etc/rc.d/named start
#/usr/local/etc/rc.d/mysql-server start
#/usr/local/etc/rc.d/postfix start
#/usr/local/etc/rc.d/apache22 start
#/usr/local/etc/rc.d/proftpd start

Сега вече бихте могли да започнете с основната конфигурация. Ако сте конфигурирали Apache по гореописания начин и сте прибалвили Alias блока на края, отворете контролния панел от адрес http://adres.na.servera/syscp или от адреса, както сте конфигурирали сървъра. Ще се отвори страница за първо стартиране, където трябва да въведете няколко настройки. Ако всичко излезе със статус OK, може да се логнете и да продължите с настройките. От страничното меню Server изберете Configuration. избирайте последователно отпадащите менюта съответната дистрибуция, сървис и демон, четете внимателно какво пише там и направете нужните корекции. Всичко което ви е нужно за конфигурирането на самите сървъри е написано доста подробно и лесно за разбиране, а единствената грешка (да, разбира се че не всичко е толкова лесно) която има е един досаден проблем от недоглеждане при конфигурацията на crontab – забравили са в примерния файл да опоменат от чие име трябва да се стартират скриптовете. Аз лично добавих да са от името на root и пасажа придоби следния вид

#
# Regular cron jobs for the syscp package
#
*/5 * * * *  root    /usr/local/bin/php -q /usr/local/www/syscp/scripts/cron_tasks.php
0 0 * * *root    /usr/local/bin/php -q /usr/local/www/syscp/scripts/cron_traffic.php
30 0 * * *root    /usr/local/bin/php -q /usr/local/www/syscp/scripts/cron_ticketarchive.php
0 1 * * *root    /usr/local/bin/php -q /usr/local/www/syscp/scripts/cron_used_tickets_reset.php
*/5 * * * *root    /usr/local/bin/php -q /usr/local/www/syscp/scripts/cron_autoresponder.php
*/5 * * * *root    /usr/local/bin/php -q /usr/local/www/syscp/scripts/cron_apsinstaller.php
*/30 * * * *root    /usr/local/bin/php -q /usr/local/www/syscp/scripts/cron_apsupdater.php

след което всичко заработи перфектно.

Ето че дойде и време да се заемете и с вече приятната работа. Ако всичко е протекло както трябва, вече може да се заемете с пробавянето на домейни, потребители, мейлове… абе изобщо дойде време за администриране на системата. Тук вече обаче нещата могат да се раздуят много, все пак пиша упутване как се инсталира SysCP, а не ръководство как се работи с него, затова оставямтази толкова приятна задачка на вас.

За да проверите дали Postfix работи и изпраща мейл може да използвате telnet по описания тук начин.

5. Инсталиране на Roundcube Webmail Client

Roundcube Webmail Client е прияттен, красив и функционален уебмейл клиент за пощенски сървър. Някои препоръчват и SquirrelMail за уебмейл клиент, който е доколкото знам доста по-функционален, но аз лично залагам повече на дизайна и на леката функционалност, като простата идея е, с пощенските сървъри да се работи основно през OutLook, Thunderbird или друг e-mail клиент, а уебмейла да се използва при случай, че не сте в офиса и просто ви е нужно да имате достъп до пощата си за да я проверите или изпратите писмо.

Самата инсталация както всичко друго става през портовете на FreeBSD. Отидете в директорията на Roundcube и инсталирайте от там:

#cd /usr/ports/mail/roundcube/

после конфигурирайте, като проверите дали опциите за SSL и MySQL са маркирани:

#make config

и инсталирайте

#make install clean

След края на инсталацията има малко настройки за доизкосуряване. Като начало трябва да прибавите една нова база данни към MySQL. Заменете следните неща с такива по ваше желание:

  • ime_na_bazata_danni – име на базата данни, която ще използвате за Roundcube
  • pritejatel – собственика, който ще има пълни права върху базата данни
  • parola – парола за собственика, ЗАГРАДЕНА е с ЕДИНИЧНИ кавички (‘хххх’)
#mysql -u root -p
mysql> create database ime_na_bazata_danni;
mysql> grant all privileges on ime_na_bazata_danni.* to pritejatel@localhost identified by ‘parola’;
mysql> flush privileges;
mysql> exit

Следва импортването на инициалната база данни, която идва с инсталацията:

#mysql – u root -p  ime_na_bazata_danni < /usr/local/www/roundcube/SQL/mysql.initial.sql

Редактирайте конфигурационния файл за връзка с базата данни:

#ee /usr/local/www/roundcube/config/db.inc.php

Променете на следния ред, като ползвате таблицата по-горе

$rcmail_config[‘db_dsnw’] = ‘mysql://pritejatel:parola@localhost/ime_na_bazata_danni’;

Редактирайте и конфигурационния файл на самия Roundcube:

#ee /usr/local/www/roundcube/config/main.inc.php

Намерете и променете следните редове както следва. Текста след # е само пояснение и няма защо да го пишете:

$rcmail_config[‘auto_create_user’] = TRUE;
$rcmail_config[‘default_host’] = ‘ssl://localhost:993’;
$rcmail_config[‘default_port’] = 993;
$rcmail_config[‘smtp_port’] = 465;
$rcmail_config[‘create_default_folders’] = TRUE;
$rcmail_config[‘default_charset’] = ‘UTF-8’;

редактирайте конфигурационния файл на Apache и добавете следния блок към края на файла:

#ee /usr/local/etc/apache22/httpd.conf
# Roundcube Alias
Alias /webmail “/usr/local/www/roundcube/”
<Directory “/usr/local/www/roundcube”>
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Рестартирайте Apache:

#/usr/local/etc/rc.d/apache22 graceful

С това конфигурацията на Roundcube приключва. Ако всичко е наред, би трябвало да може да отворите своя уебмейл клиент на адрес http://adres.na.servera/webmail и да се логнете (трябва разбира се да сте създали потребител, домейн и пощенска кутия от панела!) за да проверите дали всичко работи както хората – сиреч дали праща или поема поща.

6. Екстри

За черешката на тортата предлагам един начин да кустомизирате малко самия Roundcube. Не че не е достатъчно красив, но лично мен някакси ме дразни малко всичко, което може да се кустомизира, а си седи със заводските настройки… И така, да започнем. Първо свалете пакета със самата тема. Разархивирайте и копирайте по удобен за вас начин разархивираната папка в /usr/local/www/roundcube/skins. След това направете следните корекции на следните редове в /usr/local/www/roundcube/config/main.inc.php:

$rcmail_config[‘skin’] = ‘mvision2_en’;
$rcmail_config[‘list_cols’] = array(‘subject’, ‘from’, ‘date’, ‘attachment’);
$rcmail_config[‘preview_pane’] = TRUE;
Добавете допълнително следващия ред:
$rcmail_config[‘preview_pane_vertical’] = TRUE;

Ами това е, всичко останало е във ваши ръце. Забавлявайте се, работете… кой както намери за добре да използва това чудо. От мен – толкова… аз продължавам да дописвам натам други работи.

***

А ето и една полезна връзка, която може да помогне, ако имате някакви въпроси за някоя грешка… http://wiki.syscp.org/faq

Има един коментар за “SysCP хостинг контрол панел на FreeBSD 8.0”

  1. […] това е, може да прочетете за инсталиране и конфигуриране на SysCP , защото мисля, че опита си струва да се сподели и може […]

Остави коментар

Писането на кирилица е задължително!
Коментари, които не са на кирилица ще бъдат изтрити без предупреждение.
Всеки коментари съдържащи 1 или повече линка, ще бъдат публикувани след одобрение.