У меня были те же проблемы и задокументирована моя установка шаг за шагом. Это довольно длинный: вы можете найти его на my blog.
Это поможет вам следующее:
- рабочая копия
- Джанго
- PIL
- изображений
- libjpeg
- MySQL
- мерзавец
- апач
- mod_wsgi
- easy_install
- пип
- Джанго-imagekit
- CDN хранения на CentOS 5,4
Установка Apache, MySQL, SQLite и другие пакеты разработчика
yum install httpd-devel mysql mysql-server
yum install mysql-client mysql-devel
yum install apr-devel sqlite3 sqlite-devel
yum install libjpeg libpng gcc make autoconf
yum install libxslt gettext zlib-devel
yum groupinstall "GNOME Desktop Environment"
yum groupinstall "Development Tools"
В этом учебнике предполагается, что вы используете MySQL для производства и лет u также может использовать SQLite для разработки. Если вы используете другую базу данных, такую как PostgreSQL, тогда вы должны установить эти файлы сейчас. Кроме того, обратите внимание, что это не единственные пакеты, которые вам понадобятся для вашего веб-сервера. Это следует считать минимальным, чтобы ваше приложение django работало.
Добавить пользователя
groupadd webmaster
useradd -c "username" -g webmaster -m -s /bin/bash username
passwd username
passw0rd
visudo
Возле линии 77, где он читает «корень ALL = (ALL) ALL добавить имя ALL = (ALL) ALL
Здесь вы можете изменить к вашему пользователю оставить учетную запись root как есть. Если вы обнаружите, что некоторые вещи не хотят работать, вы должны использовать команду Судо
Установка Python 2.6 наряду с Python 2.4
Хитрость, чтобы получить Python 2.6 работает на CentOS 5.4, не нарушая ничего для установки его по умолчанию по умолчанию Python 2.4. Не пытайтесь обновить свой Python 2.4 по умолчанию, потому что для важных модулей CentOS требуется 2.4. Для этого вы должны настроить python для установки в /opt/python2.6. Прежде чем сделать этот шаг, убедитесь, что у вас установлен yum sqlite-devel, потому что python будет искать файлы заголовков sqlite, чтобы построить модуль для него при компиляции python.
wget http://www.python.org/ftp/python/2.6.4/Python-2.6.4.tgz
tar -zxvf Python-2.6.4.tgz
cd Python-2.6.4
./configure --prefix=/opt/python2.6 --with-threads --enable-shared --with-zlib=/usr/include
make
make install
cd ~
После Python установлен в /opt/Python2.6 вам необходимо создать символические ссылки на него.
ln -s /opt/python2.6/lib/libpython2.6.so /usr/lib
ln -s /opt/python2.6/lib/libpython2.6.so.1.0 /usr/lib
ln -s /opt/python2.6/bin/python /usr/local/bin/python
ln -s /opt/python2.6/bin/python /usr/bin/python2.6
ln -s /opt/python2.6/lib/python2.6.so /opt/python2.6/lib/python2.6/config/
Запустите LDCONFIG, чтобы обновить ссылки на ваши общие библиотеки, а затем проверить вашу версию питона, чтобы убедиться, что теперь вы можете использовать 2.6. Кроме того, проверьте, есть ли какие-либо конфликты между Python 2.4 и 2.6 с помощью yum. Если у вас есть проблемы, дважды проверьте свои символические ссылки и убедитесь, что вы не конфликтуете с/usr/bin/python или /usr/bin/python2.4.
/sbin/ldconfig -v
python -V
yum info httpd
Установка Setuptools, расширение MySQL, и Django 1.1
Если вы ранее установили Setuptools, но вам нужно будет сделать еще раз для 2.6, так что пакеты установлены в /opt/python2.6. Чтобы использовать MySQL с Django, вам нужно будет загрузить, установить и установить расширение для него.
wget http://bit.ly/6E0DNN
chmod u+x setuptools-0.6c11-py2.6.egg
./setuptools-0.6c11-py2.6.egg --prefix=/opt/python2.6
wget http://bit.ly/6j4uID
tar -zxvf MySQL-python-1.2.3c1.tar.gz
cd MySQL-python-1.2.3c1
python setup.py build
python setup.py install
cd ..
wget http://www.djangoproject.com/download/1.1.1/tarball/
tar -zxvf Django-1.1.1.tar.gz
cd Django-1.1.1
python setup.py build
python setup.py install
cd ..
Настройка и установка mod_wsgi
Большинство сообщества Django использует WSGI как способ взаимодействовать с веб-сервером. Я также предпочитаю использовать его, потому что он быстро и очень легко настраивается. Этот учебник не будет заниматься настройкой вашего приложения для использования wsgi (однако я приведу пример в конце), но проект django имеет хороший учебник для этого. Обратите внимание, что этот шаг очень важен. Возможно, вы уже установили mod_wsgi с помощью yum, но вам нужно будет загрузить его и создать его с помощью вашего нового 2.6, чтобы он работал с вашим приложением.
wget http://modwsgi.googlecode.com/files/mod_wsgi-2.8.tar.gz
tar -zxvf mod_wsgi-2.8.tar.gz
cd mod_wsgi-2.8
./configure --with-python=/usr/local/bin/python
make
make install
cd ..
Затем вам нужно будет изменить Apache httpd.conf, чтобы загрузить модуль mod_wsgi. После этого будет завершена перезагрузка Apache.
vi /etc/httpd/conf/httpd.conf
LoadModule wsgi_module /usr/lib64/httpd/modules/mod_wsgi.so
line 787
AddHandler wsgi-script .wsgi
Убедитесь, что ваш Apache перезагружается после того, как модуль был загружен
/etc/init.d/httpd restart
Создайте отдельную папку для виртуальных хостов
Я люблю дом все мои ВХостов в отдельном каталоге
cd /etc/httpd/conf
mkdir vhosts
cd vhosts
vi mysite.com.conf
<VirtualHost 127.0.0.1>
ServerName localhost
ErrorLog /www/django_test1/mysite/logs/error_log
CustomLog /www/django_test1/mysite/logs/access_log combined
UseCanonicalName Off
Alias /media/ "/www/django_test1/mysite/media/"
<Directory "/www/django_test1/mysite/media">
Order allow,deny
Options Indexes
Allow from all
IndexOptions FancyIndexing
</Directory>
Alias /mediaadmin/ "/opt/python2.6/lib/python2.6/site-packages/django/contrib/admin/media/"
<Directory "/opt/python2.6/lib/python2.6/site-packages/django/contrib/admin/media">
Order allow,deny
Options Indexes
Allow from all
IndexOptions FancyIndexing
</Directory>
WSGIScriptAlias//www/django_test1/mysite.wsgi
WSGIDaemonProcess mysite processes=7 threads=1 display-name=%{GROUP}
WSGIProcessGroup mysite
WSGIApplicationGroup %{GLOBAL}
</VirtualHost>
Создайте свой файл mod_wsgi
Согласно нескольким запросам, которые я сделал онлайн, лучше всего оставить файл mod_wsgi в родительской папке приложения.
mkdir /www
cd /www
mkdir django_test1
cd django_test1
vi mysite.wsgi
#!/opt/python2.6/bin/python
import os, sys
sys.path.append('/www/django_test1/mysite')
sys.path.insert(0, '/www/django_test1')
sys.path.insert(0, '/www/django_test1/mysite')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
os.environ['PYTHON_EGG_CACHE'] = '/www/django_test1/mysite/.python-eggs'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
Сохраните файл
Создать каталог .python-яйца в MySite
mkdir .python-eggs
chmod -R 777 .python-eggs
http://mikecantelon.com/story/installing_django_on_centos_5
Запустите сервер MySQL
Установка PIL на CENTOS
http://athenageek.wordpress.com/2009/06/09/easy_install-pil-not-so-easy/
Установка PIP для того, чтобы использовать IMAGING
/opt/python2.6/bin/easy_install-2.6 pip
/opt/python2.6/bin/pip install http://effbot.org/downloads/Imaging-1.1.6.tar.gz
Установка GIT
http://www.bitsandpix.com/entry/git-installing-git-on-centos-5/
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
yum install git
Настройка MySQL с другим пользователем
mysql --user=root mysql
CREATE USER 'webdev'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'webdev'@'localhost'
IDENTIFIED BY 'password' WITH GRANT OPTION;
Создать проект Django
/opt/python2.6/bin/django-admin.py startproject mysite
Создать каталог журналов в проекте, так как это необходимо для mod_wsgi и апача
cd mysite
mkdir logs
Symlink папка админ СМИ
mkdir media
chmod -R 777 media
mkdir mediaadmin
ln -s /opt/python2.6/lib/python2.6/site-packages/django/contrib/admin/media /www/django_test1/mysite/mediaadmin/
Настройте свой /etc/httpd/conf/httpd.conf для включения базовых настроек проектов
ServerAdmin [email protected]
HostName appelvm01.centos
ServerName 127.0.0.1
DocumentRoot "/www/django_test1/mysite"
<Directory "/www/django_test1/mysite">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
включают VirtualHosts конфигурационные файлы
Include conf/vhosts/*.conf
добавить WSGISocketPrefix в httpd.conf конец файла
WSGISocketPrefix /var/run/wsgi
Убедитесь, имя хоста равно один в Apache конф/и т.д./HTTPD/конф/HTTPD.конф еще изменить, запустив
hostname "new_name"
давать разрешения
chcon -R -h -t httpd_sys_content_t /www/django_test1/mysite
я нашел это не был достаточно хорош, так что мне пришлось отключить SELinux
vi /etc/selinux/config
набор
SELINUX=disabled
Согласно блоге удалить ваши -Indexes http://www.thelinuxblog.com/apache-directory-index-forbidden-by-options-directive/
vi /etc/httpd/conf.d/welcome.conf
# -Indexes
Indexes
Настройка брандмауэра
sudo vi /etc/sysconfig/iptables-config
Убедитесь, что следующие переменные установлены на «да»: IPTABLES_SAVE_ON_STOP = "да" IPTABLES_SAVE_ON_RESTART = "да"
Открытые веб-порты:
sudo /sbin/iptables -I INPUT -p tcp -m state --state NEW,ESTABLISHED --dport 80 -j ACCEPT
sudo /sbin/iptables -I INPUT -p tcp -m state --state NEW,ESTABLISHED --dport 443 -j ACCEPT
Restart Iptables с: Судо/SBIN/услуги Iptables остановить Суда/SBIN/услуги Iptables начать Убедитесь, что правила все еще находятся в Перезапустите сервер тоже, чтобы убедиться, что установка взял..
Убедитесь, что MySQL и Apache всегда на после перезагрузки
/sbin/chkconfig --add httpd
/sbin/chkconfig --level 2345 httpd on
/sbin/chkconfig --list httpd
/sbin/chkconfig --add mysqld
/sbin/chkconfig --level 2345 mysqld on
/sbin/chkconfig --list mysqld
Установите юг через easy_install, чтобы обеспечить легкий миграции БД
/opt/python2.6/bin/easy_install-2.6 South
Установка Django-cumuls для хранения Rackspace/CDN
/opt/python2.6/bin/pip install django-cumulus
/opt/python2.6/bin/pip install -r http://bitbucket.org/richleland/django-cumulus/raw/0.3.3/requirements.txt
/opt/python2.6/bin/easy_install-2.6 django-imagekit
Вы должны теперь быть в состоянии пойти на ваш адрес ip-адреса, d вы должны увидеть экран приветствия!
С этого момента вы можете приступить к разработке своего приложения, вы должны иметь возможность включить автообнаружение администраторов и установить URL-адреса, чтобы вы могли получить доступ к разделу администрирования.
Пожалуйста, точнее о том, что шаги, которые вы предпринимаете, чтобы увидеть проблему и точно, какую трассировку ошибок вы видите. –