вторник, 22 июня 2010 г.

WSGI - настройка интерфейса

Для работы с Django необходимы http-сервер Apache и модуль к нему - mod-wsgi. Модуль mod_wsgi пришел на смену mod_python и в настоящее время рекомендуется авторами Django как наиболее подходящее решение для использования в реальных условиях.

Установка mod_wsgi тривиальна:
apt-get install libapache2-mod-wsgi

Необходимо создать wsgi-обработчик. Для этого в своем django проекте я создал каталоги
/home/django-trunk/dtest1/apache - для mod.wsgi-обработчика
../logs - для лог файлов apache
../css - таблицы стилей
../js - скрипты
../medi - для прочих статических файлов

Содержимое файла mod.wsgi:
 import os, sys
sys.path.append('home/django-trunk')
os.environ['DJANGO_SETTINGS_MODULE'] = 'dtest1.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

Далее, чтобы код проекта отзывался на какой-либо URL-адрес, необходимо настроить виртуальный хост Apache. Необходимо создать новый файл /etc/apache2/sites-available/django-test1:
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName django-test1.local
   
    # статические файлы
    Alias /media/ "/home/django-trunk/dtest1/media/"
    <Location "/media">
        SetHandler None
    </Location>
   
    Alias /css/ "/home/django-trunk/dtest1/css/"
    <Location "/css">
        SetHandler None
    </Location>
   
    Alias /js/ "/home/django-trunk/dtest1/js/"
    <Location "/js">
        SetHandler None
    </Location>
   
    Alias /pics/ "/home/django-trunk/dtest1/pics/"
    <Location "/pics">
        SetHandler None
    </Location>
   
    <Directory /home/django-trunk/dtest1/apache>
        Order allow,deny
        allow from all
    </Directory>
   
    # wsgi - обработчик
    WSGIScriptAlias / /home/django-trunk/dtest1/apache/mod.wsgi
#    WSGIDaemonProcess django-test1 processes=2 maximum-requests=5 threads=1
#    WSGIProcessGroup django-test1
    ServerSignature On

    ErrorLog /home/django-trunk/dtest1/logs/error.log
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    #CustomLog "|/usr/sbin/rotatelogs /home/django-trunk/dtest1/logs/access.%y-%m-%d.log 86400" combined
    CustomLog /home/django-trunk/dtest1/logs/access.log combined
</VirtualHost>

Дальше стандартные действия
# включаем виртуальный хост
a2ensite django-test1
# рестарт Apache
/etc/init.d/apache2 restart
Не забыть сделать запись в c:\Windows\..\hosts

Apache - создание виртуального хоста

В каталоге /etc/apache2/sites-available находятся файлы конфигурации хостов, а в /etc/apache2/sites-enabled находятся символические ссылки на файлы конфигурации /etc/apache2/sites-available, включенных хостов. Для того чтобы создать виртуальный хост, нужно создать конфигурационный файл и при помощи утилиты a2ensite создать символическую ссылку. А отключить хост можно утилитой a2..site.

Сделаем упрощённую версию /etc/apache2/sites-available/default, чтобы иметь backup default и убрать лишнее из файлов настроек хостов (просто скопируем этот шаблон под другим именем - simple-default).

В дальнейшем и будем использовать simple-default в качестве шаблона для других хостов.

После некоторых изменений я получил файл с таким содержанием:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/test
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/test>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ServerName test
    ErrorLog /var/log/apache2/test-error.log
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
    CustomLog /var/log/apache2/test-access.log combined
</VirtualHost>


 
Перед тем как запустить apache, нужно включить нужные нам виртуальные хосты:
a2ensite test
Также чтобы можно было обратиться к хосту по имени, нужно добавить информацию о его адресе в c:\Windows\..\hosts

http://doc.3dn.ru/publ/14-1-0-63  - первоисточник

PostgreSql - установка и настройка

Советы стандартной установил postgresql из репозитория
apt-get install postgresql phpPgAdmin postgresql-client postgresql-contrib
У меня база уже была установлена при инсталляции ubuntu.

Далее в терминале заходим в консольный менеджер управления БД:
su postgres -c psql postgres

Должно отобразиться:
postgres=#

Прописываем свой пароль для встроенного администратора:
ALTER USER postgres WITH PASSWORD '123456';

Сразу создаю пользователя для администрирования через phpPgAdmin
CREATE USER имя_пользователя WITH PASSWORD '111' CREATEDB;
Теперь пользователь postgres в БД имеет наш пароль, но нужно еще изменить пароль в ОС (выполняем от суперпользователя):
passwd -d postgres
su postgres -c passwd

В файле /etc/phppgadmin/apache.conf добавляю настройку для доступа с любого ПК из локальной сети:
allow from 192.168.0.0/255.255.0.0 ::1/128

Для управления сервером БД используются стандартные команды:
/etc/rc.d/init.d/postgresql restart

понедельник, 21 июня 2010 г.

Установка Django

Для установки Django на ubuntu-server 10.04, я выбрал самый простой вариант - готовый пакет из депозитария. Также устанавливаю библиотеки python для работы с базами mysql, postgresql, а для apache модуль wsgi.
http://www.burdin.interwood.ru/ - хорошая статья по этой теме.

Вначале я установил и настроил postgresql и утилиты администрирования
apt-get install postgresql phpPgAdmin phpMyAdmin
(настройка postgresql описана отдельно)

apt-get install python-django python-mysqldb python-psycopg2 libapache2-mod-wsgi на одном сайте нашёл совет установить еще эти библиотеки:
apt-get install python-imaging python-docutils memcached

Чтобы убедиться, что Django нормально установлен, необходимо запустить интерпретатор Python и импортировать модуль django:
$ python -c "import django; print django.VERSION;"
(1, 1, 0, 'final', 0)

Следующий шаг - это выбор места, где будут создаваться проекты:
/home/django-tran/
или в стандартном месте
/usr/local/lib/python2.6/dist-packages/
Для удобства работы, этом каталоге я создаю ссылку на административную утилиту.
ln -s /usr/lib/python-dgango/bin/django-admin.py django-admin.py
Затем создаю проект для своего сайта:
./django-admin.py startproject dtest1
результат - создается каталог /home/django-trank/dtest1/ в котором будут находится файлы: __init__py, manage.py, setting.py, urls.py

понедельник, 17 мая 2010 г.

Delphi 10 установка старых компонент

В Delphi 10 при установки компонентов от Delphi 7 произошла ошибка:
Undeclared identifier 'TStringProperty'

Устаранил добавив в список uses модуль —  DesignEditors