Blog of Khlebalin Dmitriy

(Дорогу осилит идущий…)

Web-сервер (FreeBSD + Apache2 + PHP +MySQL + ProDTPd + SVN + Trac) (часть 3).

Пришло время продолжить начатое здесь

https://khlebalin.wordpress.com/category/linux-and-unix/

 

Установка PhpMyAdmin

Для более удобной работы с MySQL сервером ставим PhpMyAdmin. Ставится он следующим образом:

cd /usr/ports/databases/phpmyadmin && make install clean && rehash

В появившемся диалоге оставляем все по умолчанию. После установки начинаем его немного настраивать.

Для начала перенесем рабочую директорию PhpMyAdmin из /usr/local/www в /usr/web:

mv /usr/local/www/phpMyAdmin /usr/web/

Далее создадим директорию conf

mkdir /usr/local/etc/apache22/conf

В нее поместим pma.conf со следующим содержанием:

Alias /phpmyadmin/ «/usr/web/phpMyAdmin/»

<Directory «/usr/web/phpMyAdmin/»>

Options none

AllowOverride Limit

Order Allow,Deny

Allow from all

Deny from none

</Directory>

И добавим в самый конец httpd.conf следующую строку:

Include etc/apache22/conf/*.conf

Далее идем по адресу http://ip_tachki/phpmyadmin/index.php и смотрим результат. Вводим логин root и пароль MySQL и попадаем в сам PhpMyAdmin.

Далее настраиваем PhpMyAdmin. Идем в /usr/web/phpMyAdmin, находим там config.inc.php и дописываем в него следующие строки:

$cfg[‘LeftFrameLight’] = true;

$cfg[‘LeftFrameDBTree’] = true;

$cfg[‘LeftFrameDBSeparator’] = ‘_’;

$cfg[‘LeftFrameTableSeparator’] = ‘__’;

$cfg[‘LeftFrameTableLevel’] = 1;

$cfg[‘LeftDisplayLogo’] = false;

$cfg[‘LeftDisplayServers’] = false;

$cfg[‘LeftPointerEnable’] = true;

$cfg[‘blowfish_secret’] = ‘test’;

В итоге я увидел следующую картинку:

Черт… Снова траблешутинг.

Немного покрутил файлы. Получил уже вот такое окно но все равно пока без результатно.

На всякий случай решил еще раз проверить, что сервер запущен:

Добавил в этот файл config.inc.php некие строки:

$i=0;
$i++;
$cfg[‘Servers’][$i][‘user’] = ‘root’;
$cfg[‘Servers’][$i][‘password’] = ‘mypassword’; // use here your password

Ребутнул сервак, но положительного результата это не принесло, появилось другое окно:

Копаю дальше: очистил кэш браузера все пропало но в базу все равно не пускает. Буду думать.

Установка ProFTPd

Устанавливаем:

cd /usr/ports/ftp/proftpd-mysql && make install clean && rehash

В появившемся диалоге выбираем:

  • MySQL
  • Quota
  • Ratio
  • Rewrite
  • Wrap

По окончании установки рихтуем proftpd.conf до такого состояния:

ServerName              «DEV.LOCAL FTP Server»

ServerType              standalone
DefaultServer           on
ServerAdmin             root@dev.local
Port                    21
Umask                   022
MaxInstances            30
User                    ftp
Group                   ftp
SQLAuthTypes            Plaintext
SQLAuthenticate         users
SQLConnectInfo          DB_NAME@localhost:3306 USER PASSWORD
SQLUserInfo             `users_table` `username` `password` `uid` `gid` \
                        `homedir` `shell`
RequireValidShell off
SQLLogFile      /var/log/proftpd.log
SQLLog          PASS            counter_login
SQLNamedQuery   counter_login   UPDATE "`last_login`=UNIX_TIMESTAMP(), \
                                `login_count`=`login_count`+1 WHERE \
                                `username`='%u'" `users_table`
SQLLog          ERR_PASS        counter_err
SQLNamedQuery   counter_err     UPDATE "`last_err_login`=UNIX_TIMESTAMP(), \
                                `err_login_count`=`err_login_count`+1 WHERE \
                                `username`='%U'" `users_table`
SQLLog          RETR,STOR               log_story_transfer
SQLNamedQuery   log_story_transfer      INSERT "'',\
                                        UNIX_TIMESTAMP(),'%u',\
                                        '%f', '%b', '%h', \
                                        '%a', '%m', '%T'" \
                                         `xfer_table`
SQLLOG          ERR_RETR,ERR_STOR,ERR_DELE,ERR_RMD,ERR_RNTO\
                                        log_err_modify
SQLNamedQuery   log_err_modify          INSERT "'',\
                                        UNIX_TIMESTAMP(),\
                                        '%u', '%f', '%h', \
                                        '%a', '%m'" `xfer_errors`
 
UseReverseDNS     off
IdentLookups      off
 
 
 
DefaultRoot            ~
 
<Directory ~>
AllowOverwrite          on
<Limit Write>
AllowAll
</Limit>
<Limit READ>
AllowAll
</Limit>
</Directory>
 
 
<Anonymous /usr/home/ftp>
User            ftp
Group           ftp
UserAlias       anonymous ftp
MaxClients      10      "Sorry, max %m users - try again later"
<Limit WRITE>
DenyAll
</Limit>
</Anonymous>

Далее идем в PhpMyAdmin, создаем в нем базу ftp и добавляем следующие таблицы и значения:

CREATE TABLE `users_table` (

  `unic_id` int(11) NOT NULL auto_increment,
  `username` varchar(20) NOT NULL,
  `password` varchar(20) NOT NULL,
  `groupname` varchar(24) NOT NULL,
  `uid` int(11) NOT NULL,
  `gid` int(11) NOT NULL,
  `homedir` varchar(50) NOT NULL,
  `shell` varchar(20) NOT NULL,
  `last_login` int(15) NOT NULL,
  `login_count` int(15) NOT NULL,
  `last_err_login` int(15) NOT NULL,
  `err_login_count` int(15) NOT NULL,
  PRIMARY KEY  (`unic_id`)
) ENGINE=MyISAM COMMENT='Таблица пользователей';
INSERT INTO `users_table` VALUES (1,'admin','123','admin',
1001,1001,'/usr/web','/sbin/nologin',0,0,0,0);
CREATE TABLE `xfer_errors` (
  `unic_id` int(32) NOT NULL auto_increment,
  `timestamp` int(15) NOT NULL,
  `user_name` varchar(64) NOT NULL,
  `file_and_path` tinytext NOT NULL,
  `client_name` varchar(127) NOT NULL,
  `client_IP` varchar(15) NOT NULL,
  `client_command` varchar(5) NOT NULL,
  PRIMARY KEY  (`unic_id`)
) ENGINE=MyISAM COMMENT='Таблица ошибок при работе';
CREATE TABLE `xfer_table` (
  `unic_id` int(32) NOT NULL auto_increment,
  `timestamp` int(15) NOT NULL,
  `user_name` varchar(64) NOT NULL,
  `file_and_path` tinytext NOT NULL,
  `bytes` int(15) NOT NULL default '0',
  `client_name` varchar(127) NOT NULL,
  `client_IP` varchar(15) NOT NULL,
  `client_command` varchar(5) NOT NULL,
  `send_time` varchar(9) NOT NULL default '0',
  PRIMARY KEY  (`unic_id`)
) ENGINE=MyISAM COMMENT='Таблица, чё приняли-передали';

Заводим в системе пользователя `ftp` командой `adduser`, после чего создаём файло для логов и даём на него права:

touch /var/log/proftpd.log

chown ftp:wheel /var/log/proftpd.log

Выставляем права на каталог ftp:

chown ftp:ftp /usr/web/ftp

Добавляем proftpd в автозагрузку и запускаем

echo ‘proftpd_enable=»YES»‘ >> /etc/rc.conf

service proftpd start

И проверяем работу, заходим на сервер от анонимуса и от пользователя админ.

P.S. Как выдергивать данные из MySQL для статистики – разберетесь сами…

Продолжение следует…

Всем удачи!!!

28.06.2011 Posted by | linux and unix | Комментарии к записи Web-сервер (FreeBSD + Apache2 + PHP +MySQL + ProDTPd + SVN + Trac) (часть 3). отключены