Talk:Dotproject

http://guyver-nk.livejournal.com/134007.html  установка dotProject в ubuntu 8.04 dotProject это такой бизнес софт. Кому нужно - знает. Эта запись посвещена корректному и безопасному способу установки в Ubuntu 8.04.3 LTS.

1. Качаем файл dotproject_2.1.3.tar.gz.

2. Создадим папку для программы. sudo mkdir /home/dotproject sudo chown -R www-data:www-data /home/dotproject

3. Извлечем содержимое архива удобным вам способом в эту папку. (В момент написание в архиве путь BigBlueHat-dotproject-527fa57/dotproject/)

4. Создадим базу MySQL. (считаем что mysql уже установлен и мы знаем пароль root-а ;) ) sudo mysql -u root -p mysql> create database dotproject; mysql> GRANT ALL ON dotproject.* TO dpuser@localhost IDENTIFIED BY 'dppass'; mysql> flush privileges;

5. Создадим алиас для apache.(считаем что у нас установлен и настроен apache2 +  libapache2-mod-php5 + php5-mysql ;) )

Создадим файл /etc/apache2/conf.d/dotproject со следующим содержимым Alias /dp /home/dotproject  Options FollowSymLinks ExecCGI AllowOverride None Order allow,deny Allow from all DirectoryIndex index.html index.php AddHandler cgi-script .cgi AddDefaultCharset Off php_flag display_errors off php_admin_flag file_uploads on php_flag magic_quotes_gpc off php_flag magic_quotes_runtime off php_flag register_globals off php_flag short_open_tag on php_value session.auto_start 1 # ключевое требование дотпроджекта - смотреть мануалы 
 * 1) ****начало файла *****
 * 1) *****конец файла*****

6. Перегружаем апач /etc/init.d/apache2 reload

7. Заходим по ссылке http://ваш.сервер/dp/install/index.php Смотрим все ли впорядке. Если вы сделали все как написано выше и у вас корректно натсроены и установлены пхп муська и апач - то все должно быть нормально. Жмем Start Instalation Пропишем данные для подключения к базе mysql которые мы создали до этого. Жмем install db & write config Если все хорошо жмем Login and Configure the dotProject System Environment Заходим как admin - passwd

8. Далее установим руссификацию. Качаем ее отсюда - http://www.dotproject.net/index.php?name=CmodsDownload&file=index&req=viewsdownload&sid=26&orderby=dateD Распаковываем в /home/dotproject/locales/ Назначем владельца папки и вложеных файлов на www-data chown -R www-data:www-data ru Затем в настройказ заходим в System Configuration и выставляем локаль ru

9. Решаем проблему с отображением названий дней недели и месяцев в календаре. Создадим патч файл rus-ptch213.diff следующего содержимого (внимание патч идет на версию 2.1.3) 1589c1589,1590 <            if ($locale_char_set != 'iso-8859-1') { --- >            $Date_Calc_months[$i] = mb_convert_encoding($Date_Calc_months[$i], $locale_char_set,"utf-8"); > /*           if ($locale_char_set != 'iso-8859-1') { 1592c1593 <            } --- >             }*/ 1616c1617,1618 <            if ($locale_char_set != 'iso-8859-1') { --- >            $Date_Calc_weekdays[$i] = mb_convert_encoding($Date_Calc_weekdays[$i], $locale_char_set, "utf-8"); > /*           if ($locale_char_set != 'iso-8859-1') { 1619c1621 <            } --- >             }*/

применяем этот патч на файл /home/dotproject/lib/PEAR/Date/Calc.php

patch /home/dotproject/lib/PEAR/Date/Calc.php rus-ptch213.diff

Теперь у нас отображаются корректно названия дней недели и месяцев. 

http://www.linux.org.ru/forum/general/3930146  Перенес dotproject с машины на машину (с etch на lenny). до этого dotproject работал с utf-8. теперь все что он читает из базы выглядит знаками вопроса. скрипт дампа в utf-8. база в utf-8. апач отдает "Content-Type" content="text/html;charset=UTF-8".

в my.cnf:

[mysqld] default_character_set = utf8 character_set_server = utf8 init_connect = 'SET NAMES utf8'

show variables


 * character_set_client | utf8 |
 * character_set_connection | utf8 |
 * character_set_database | utf8 |
 * character_set_filesystem | binary |
 * character_set_results | utf8 |
 * character_set_server | utf8 |
 * character_set_system | utf8 |

вообще говоря, все конфиги (apache, php, mysql) я скопировал один к одному. Если создавать новую запись на русском - в браузере нормально выглядит, в mysql select - нечитаемая херня (с точки зрения utf8). Что этой твари еще надо? k0l0b0k ** (03.08.2009 17:31:55) ← 	sed + multiline Русификация BackTrack 3 	→ НАУЧИ КОМПЬЮТЕР ВАРИТЬ КОФЕ управление электрическими цепями с компьютера под Linux устройства для любительской автоматизации; весь софт под GPL http://www.unicontrollers.com/products/unc001

сообщения отсортированы в порядке возрастания даты их написания [#] Re: Кодировка в dotproject

Дамп, часом, не от пользователя с привилегией SUPER делается?

По-хорошему, строки

default_character_set = utf8 character_set_server = utf8 init_connect = 'SET NAMES utf8'

нужно помещать в секцию [client]

А еще лучше делать SET NAMES utf8 при коннекте к БД. sjinks * (03.08.2009 23:09:47) [#] Ответ на: Re: Кодировка в dotproject от sjinks 03.08.2009 23:09:47 k0l0b0k (фотография) Re: Кодировка в dotproject

>Дамп, часом, не от пользователя с привилегией SUPER делается?

а если да? (не помню честно от кого дамп делался, скорее всего от root)

>По-хорошему, строки default_character_set = utf8 character_set_server = utf8 init_connect = 'SET NAMES utf8' нужно помещать в секцию [client]

default_character_set = utf8 в [client] стоит... остальные вроде как серверные директивы. на всяк случай вписал - безрезультатно.

>А еще лучше делать SET NAMES utf8 при коннекте к БД.

а init_connect = 'SET NAMES utf8' это не оно? при каждом новом подключении выполняет SET NAMES utf8

тут дело в dotproject думаю, не в mysql. k0l0b0k ** (04.08.2009 7:17:42) [#] Ответ на: Re: Кодировка в dotproject от k0l0b0k 04.08.2009 7:17:42 Re: Кодировка в dotproject

> а если да? (не помню честно от кого дамп делался, скорее всего от root)

Если да, то в этом баг. MySQL игнорирует init_connect для пользователей с привилегией SUPER. В результате character_set_client может быть не тем, что Вы ожидаете.

Оффтопик, но дамп базы лучше делать при помощи mysqldump.

> остальные вроде как серверные директивы

Да, не заметил :-[ Я на SHOW VARIABLES посмотрел.

> а init_connect = 'SET NAMES utf8' это не оно?

"It is still necessary for applications to configure their connection using SET NAMES or equivalent after they connect, as described previously. You might be tempted to start the server with the --init_connect="SET NAMES 'utf8'" option to cause SET NAMES to be executed automatically for each client that connects. However, this will yield inconsistent results because the init_connect value is not executed for users who have the SUPER privilege."

-- http://dev.mysql.com/doc/refman/5.1/en/charset-applications.html 