J'ai essayé dur parce que je voulais utiliser un service de style Stack Overflow, mais cela a échoué. Si vous utilisez plutôt Question2Answer de PHP, vous réussirez sans trop d'effort.
Ce qui suit est un disque qui a fini en vain.
Je voulais exécuter un clone Stack Overflow sur le VPS CentOS de Sakura, j'ai donc essayé de mettre Shapado, qui est écrit en Rails et actif en développement, mais j'ai échoué, donc cette fois j'ai utilisé AskBot écrit dans le framework Python Django. J'ai décidé de l'utiliser. J'espère que l'installation réussira cette fois.
Apparemment, j'utilise pip
ou ʻeasy_install` pour l'installation, mais je ne le sais pas!
Quand je l'ai recherché, les deux semblaient être des commandes de gestion de paquets Python, mais arrêtez d'utiliser easy_install et d'autres noms qui pourraient être encourus. Puisque pip est une extension d'easy_install, il est préférable d'utiliser pip à moins qu'il n'y ait une raison spécifique.
Python a 2.7.3, mais il ne semble pas être inclus par défaut car rien ne sort même si je fais $ which pip
ou $ which easy_install
. Alors
$ wget http://peak.telecommunity.com/dist/ez_setup.py
$ sudo python ez_setup.py
$ sudo easy_install pip
Mettez easy_install et pip.
Maintenant que vous êtes prêt, installez Askbot.
$ sudo pip install askbot
Si vous pensez "Oh, c'est facile. Yahoi (= '▽` =) non "
Could not find a version that satisfies the requirement pytz (from askbot) (from versions: 2011h, 2010b, 2012f, 2010e, 2005m, 2011e, 2010l, 2011k, 2010e, 2009u, 2008c, 2006j, 2009f, 2005m, 2009j, 2009g, 2005k, 2010g, 2010h, 2007c, 2009i, 2007k, 2008g, 2008g, 2009j, 2007i, 2006g, 2008h, 2008i, 2009i, 2006p, 2009p, 2010k, 2007f, 2008i, 2009l, 2009i, 2008g, 2007d, 2010l, 2007k, 2007g, 2009g, 2007c, 2009n, 2009e, 2008c, 2007i, 2008a, 2010o, 2006g, 2009a, 2009p, 2009a, 2010l, 2007k, 2010h, 2007c, 2009r, 2006j, 2011c, 2011j, 2012h, 2009u, 2006g, 2009g, 2005r, 2010b, 2009n, 2009u, 2010g, 2005k, 2007i, 2006p, 2011b, 2013b, 2005k, 2005m, 2006p, 2005r, 2009r, 2009f, 2006j, 2009p, 2009n, 2009l, 2009j, 2008h, 2009e, 2009d, 2008b, 2010o, 2008b, 2008i, 2011k, 2009d, 2009a, 2009r, 2010k, 2010e, 2007f, 2008a, 2008a, 2009d, 2008h, 2012j, 2008b, 2009e, 2007f, 2010k, 2010g, 2011e, 2012h, 2011g, 2012g, 2011g, 2011c, 2013d, 2011e, 2011h, 2012j, 2011n, 2007d, 2012g, 2011j, 2008c, 2009f, 2013b, 2007g, 2005r, 2012c, 2012j, 2010b, 2009l, 2007g, 2012b, 2011c, 2011g, 2012c, 2011d, 2011d, 2012d, 2011k, 2012b, 2011n, 2012f, 2012f, 2010o, 2007d, 2012b, 2012c, 2011h, 2013d, 2013b, 2010h, 2011d, 2012d, 2011n, 2013d, 2011j, 2012g, 2012d, 2004b) Cleaning up... No distributions matching the version for pytz (from askbot)
J'étais en colère contre le message d'erreur étrangement long et bosselé.
Il semble que pip n'utilise que des packages stables par défaut.
$ sudo pip install --pre askbot
Ensuite, cela semble OK.
La recommandation semble être PostgreSQL. Puisque PostgreSQL est déjà inclus, installez uniquement les packages liés à Python
$ sudo pip install psycopg2
Puis
UnicodeDecodeError: 'ascii' codec can't decode
J'ai eu une erreur, alors quand je l'ai recherchée, il semble que je doive insérer python-devel.
$ sudo yum install python-devel
Après cela, j'ai réinstallé psycopg2 et cela a réussi.
psql -U username -d postgres
Connectez-vous avec
postgres=> create database database_no_namae with owner=username;
CREATE DATABASE
postgres=> alter user username with password 'himitsu_no_pass';
postgres=> \q
Créez une base de données pour Askbot et si vous n'avez pas décidé de mot de passe, définissez un mot de passe pour l'utilisateur.
Et ajoutez la description suivante en haut de pg_hba.conf
local database_no_namae username md5
Cependant, savoir où se trouve ce pg_hba.conf semble assez ennuyeux.
C'était dans / var / lib / pgsql / 9.2 / data / pg_hba.conf
dans mon environnement, mais il se peut que ce soit ailleurs.
Voir le lien de référence pour plus de détails.
Puis redémarrez postgresql
$ sudo /etc/init.d/postgresql-9.2 restart
……fatigué. Eh bien, c'est le début du réglage d'Askbot lui-même.
Tout d'abord, créez un répertoire pour mettre Askbot. Veillez à ne pas inclure «.» Pour le moment. (Parce qu'il viole la convention de nom de module de Python.)
Dans mon cas, je l'ai créé comme / home / username / apps / askbotnobasyo
.
Allez dans le répertoire que vous avez créé et cliquez sur $ askbot-setup
là.
Ensuite, un fichier de configuration sera créé, utilisez donc la commande d'installation collectstatic.
$ python manage.py collectstatic
Et initialisation de la base de données
$ python manage.py syncdb
Là encore, Type Error: Item in`
from list '' not a string` est sorti et j'étais sur le point de me briser le cœur.
J'ai trouvé des informations que je devrais mettre à jour vers la 1.4.2 dans le Deller qui dit que la version de Django est la 1.4, mais je ne sais même pas comment la mettre à jour ou même vérifier la version de Django.
$ python
Python 2.6.6 (r266:84292, Jul 10 2013, 22:48:45)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.get_version()
'1.5.2'
Si c'était au moins 1.4, j'aurais pu essayer la mise à jour ...
-- Temps écoulé --
Apparemment, la version 1.5 est trop récente pour être utilisée, alors passez à la version 1.4. Cependant, lorsque je l'ai recherché, il semble courant d'utiliser un module qui construit un environnement Python dans un répertoire spécifique appelé virtualenv, et seules les réponses basées sur cela sont données.
Puisqu'il n'y a aucune aide pour cela, je vais créer un environnement avec virtualenv et réinstaller Askbot là-bas. Installez d'abord virtualenv
$ sudo pip install virtualenv
Créez un environnement virtuel, activez l'environnement virtuel, puis installez Django 1.4.5
$ virtualenv askbotnobasyo
$ cd askbotnobasyo
$ . /bin/activate
$ pip install django==1.4.5
Créer un fichier d'initialisation pour askbot
$ askbot-setup
Il se termine lorsque vous répondez à ce qu'on vous demande. Et
$ python manage.py collectstatic
Ensuite, tous les fichiers statiques tels que .css et .js sont générés dans un dossier ...
... Non! !! C'est encore une erreur! Faux! !!
Après tout, arrêtons d'utiliser virtualenv. Il n'y a de toute façon qu'un seul environnement.
Alors échappez à virtualenv avec $ deactivate
.
J'ai utilisé virtualenv parce que je ne savais pas comment rétrograder Django, mais quand j'y ai pensé, j'ai remarqué que "désinstaller-> installer est ok."
$ sudo pip uninstall django
$ sudo pip install django==1.4.5
Alors créez un dossier de projet et passez-y
$ askbot-setup
$ python manage.py collectstatic
$ python manage.py syncdb
Jusqu'à présent, j'étais tombé sur une erreur, mais je l'ai finalement eue! !! !! Yay! !!
Tout d'abord, prenez un domaine et enregistrez le VPS de Sakura dans ce domaine. Si vous ne comprenez pas ici, veuillez vous référer à d'autres sites.
Donc, Nginx fonctionne déjà dans mon environnement, donc c'est fini. Pour le moment, définissez le domaine afin qu'il puisse accéder au serveur fonctionnant sur Nginx.
Il semble que pypi puisse être utilisé pour installer uWGSI. Je pense que la commande de pypi est pip.
$ sudo pip install uwgsi
Et bien sûr le UnicodeDecodeError qui revient
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 17: ordinal not in range(128)
Il semble que cela se produit parce que le package * -devel est manquant, mais si tel est le cas, veuillez écrire correctement le message d'erreur.
Il semble que uwgsi ait besoin de libevent-devel ainsi que de python-devel, alors mettez-le dans.
$ yum install libevent-devel
Donc, j'ai essayé $ sudo pip install uwgsi
, mais cela fonctionne toujours. Selon les informations sur d'autres sites, il y a aussi libxml2-devel
et python-pip
, alors essayez d'utiliser $ sudo yum install libxml2-devel python-pip
.
Finalement réussi avec le troisième $ sudo pip install uwsgi
!
Créez les paramètres Nginx /etc/nginx/site-available/example.com.conf avec
$ sudo ln -s /etc/nginx/site-available/example.com.conf /etc/nginx/site-enabled/exsample.com.conf
Ensuite, ouvrez le fichier de configuration avec $ sudo vi exsample.com.conf
server {
listen 80;
server_name exmaple.com;
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/exmaple.com.error.log info;
location / {
include uwsgi_params;
uwsgi_pass localhost:44863
#uwsgi_param UWSGI_PYHOME /path/to/your/virtualenv;
uwsgi_param UWSGI_SCRIPT wsgi; #this is the name of the script
uwsgi_param UWSGI_CHDIR /home/username/apps/appname;
}
location /m/ {
#use this for askbot <= 0.7.39
#alias /path/to/your/virtualenv/lib/python2.7/site-packages/askbot/skins/;
alias /home/username/apps/appname/static/;
autoindex off;
}
location /upfiles/ {
alias /home/username/apps/appname/askbot/upfiles/;
autoindex off;
}
location /admin/media {
alias /home/username/apps/appname/static/admin; #or path to admin media in <= 0.7.39
autoindex off;
}
}
Puis redémarrez avec $ sudo service nginx restart
. S'il y a une erreur dans les paramètres, une erreur se produira ici.
Renommez django.wsgi dans le dossier du projet en wsgi.py, puis démarrez uwsgi avec diverses options.
$ sudo uwsgi --chdir=/home/username/apps/appname \
--module='appname.wsgi:application' \
--env DJANGO_SETTINGS_MODULE=appname.settings \
--master --pidfile=/tmp/project-master.pid \
--socket=127.0.0.1:44863 \
--processes=5 \
--harakiri=20 \
--limit-as=128 \
--max-requests=5000 \
--vacuum --daemonize=/var/log/uwsgi/appname.log
python - Why is pip not listed in easy_install on CentOS 6? Where to get it? - Super User http://superuser.com/questions/407926/why-is-pip-not-listed-in-easy-install-on-centos-6-where-to-get-it
python - Could not find a version that satisfies the requirement pytz - Stack Overflow http://stackoverflow.com/questions/18230956/could-not-find-a-version-that-satisfies-the-requirement-pytz
Create database for Askbot — Askbot 0.7.48 documentation http://askbot.org/doc/create-database.html
virtualenv - How to install psycopg2 with "pip" on Python? - Stack Overflow http://stackoverflow.com/questions/5420789/how-to-install-psycopg2-with-pip-on-python
python - can't install psycopg2 on centos - Stack Overflow http://stackoverflow.com/questions/12908807/cant-install-psycopg2-on-centos
postgresql - How do I find the path to pg_hba.conf from the shell? - Ask Ubuntu http://askubuntu.com/questions/256534/how-do-i-find-the-path-to-pg-hba-conf-from-the-shell
Re: I need to know password for postgres http://www.postgresql.org/message-id/1029274812.1353.648.camel@linda
Trying AGAIN to install askbot on a clean server and getting TypeError - Askbot: Open Source Q&A Forum http://askbot.org/en/question/11071/trying-again-to-install-askbot-on-a-clean-server-and-getting-typeerror/
python - How to know what django version i use? is it 1.0, 1.1, or 1.2? - Stack Overflow http://stackoverflow.com/questions/4151788/how-to-know-what-django-version-i-use-is-it-1-0-1-1-or-1-2?answertab=votes#tab-top
On syncdb getting TypeError: Item in ``from list'' not a string - Askbot: Open Source Q&A Forum http://askbot.org/en/question/10153/on-syncdb-getting-typeerror-item-in-from-list-not-a-string/
Generics 3.0: Downgrade the pip installed package http://generics7.blogspot.jp/2013/05/downgrade-pip-installed-package.html
À propos de Python: VIRTUALENV aujourd'hui http://blog1.erp2py.com/2011/07/virtualenv.html
virtualenv 1.10.1 : Python Package Index https://pypi.python.org/pypi/virtualenv
How to leave a python virtualenv? - Stack Overflow http://stackoverflow.com/questions/990754/how-to-leave-a-python-virtualenv
How to Step by Step Deploy Askbot uWSGI Nginx on CentOS 6 64bit? - Askbot: Open Source Q&A Forum http://askbot.org/en/question/7829/how-to-step-by-step-deploy-askbot-uwsgi-nginx-on-centos-6-64bit/
How to deploy on nginx webserver using uwsgi? - Askbot: Open Source Q&A Forum http://askbot.org/en/question/7492/how-to-deploy-on-nginx-webserver-using-uwsgi/
python - 'ascii' codec can't decode error when use pip to install uwsgi - Stack Overflow http://stackoverflow.com/questions/17931726/ascii-codec-cant-decode-error-when-use-pip-to-install-uwsgi
Mémo de construction d'environnement Django + uWSGI + NGINX sur Ubuntu 12.04 | Un certain blog Vimmer http://shu-b10g.blogspot.jp/2012/08/django-uwsgi-nginx-on-ubuntu-1204.html
Recommended Posts