提供通过CVMFS存储库上载和分发软件的接口。
stfc_stratum_uploader的Python项目详细描述
##上传程序
[![生成状态](https://travis ci.org/mknapik/uploader.png)(https://travis ci.org/mknapik/uploader)
##先决条件
+**python**2.7.3
+**[virtualenv](http://www.virtualenv.org/en/latest/)**1.7.1.2-
使用PIP或从分发包安装。
``bash
sudo pip install virtualenv
````
<;!---
+**virtualenvwrapper**4.1.1
``bash
sudo pip安装virtualenvwrapper
source/usr/local/bin/virtualenvwrapper.sh
````
-->;
+**postgresql**9.1.9
+apache**httpd**2.2.22
一个环境变量:
``bash
export-app-dir=/var/www/t1student0.esc.rl.ac.uk
````
使用正确的"chmod"创建空数据库文件:
``bash
触摸$app-dir/db/uploader.sqlite3
chmod 600$app-dir/db/uploader.sqlite3
```
2。设置"db"目录安全性:
``bash
chmod 770$app_dir/db
chgrp www data$app_dir/db
````
postgresql
1。登录到"psql":
``bash
su postgres-c psql
````
2。创建新的数据库用户"django"(也可以使用现有的数据库用户):
``sql
create user django with password'password';
````
3。使用已创建的所有者创建新的数据库"上载程序":
``sql
create database uploader with owner=django;
```
virtualenv
1。为项目创建新的"virtualenv"。您可以选择从中读取"httpd"的任何位置。如果使用postgresql,则添加"--系统站点包"选项。
`` bash
virtualenv/opt/venv/uploader
````
2。激活已创建的"virtualenv"(必须对每个要使用任何python命令的终端窗口执行此操作)
``bash
source/opt/venv/uploader/bin/activate
````
web应用程序
>1。拿到申请表。这个应用程序可以放在任何地方,但我们将使用`/var/www/t1student0.esc.rl.ac.uk`.
+解压缩'uploader.tar.gz`:
``bash
`mkdir$app dir
tar xvf uploader.tar.gz--剥离组件1-c$app dir
```
`+或使用` git`:
``` bash
git克隆https://github.com/mknapik/uploader.git$app-dir
```
3。使用"pip"安装应用程序依赖项。
1。确保您刚刚激活了"virtualenv"。
2.使用以下方法之一安装依赖项:
+provided bundle
``bash
pip install production.pybundle
````
+或从Internet下载包
``bash
`pip install-rrequirements.txt
```
配置上传程序
1。打开"archer/settings/production.py",并设置数据库连接凭据
+sqlite3:
``python
databases={
'default':{
'engine':'django.db.backends.sqlite3',
'名称':'%s/db/uploader.sqlite3'%common.project戡root,
'用户':'',
'密码':'',
'主机':'',
'端口':'',
},
}
````
+postgresql:
`` python
数据库={
'默认值':{
'引擎':'django.db.backends.postgresql_psycopg2',
'名称':'上载程序',
'用户':DJango',
"密码":"密码",
"主机":"本地主机",通过域套接字的本地主机为空,通过TCP的本地主机为"127.0.0.1"。
"端口":",默认设置为空字符串。
},
}
````
>2.打开"archer/settings/common.py"并设置目录路径。
2.更改"secret_key"(仅限生产):
`` python
secret_key='apksigo!7nco7y2biavj=0fxd0b3@2的uh4gth!ax6*rb29fq=w'
```
9。根据需要定制:
1.将"project_root"设置为应用程序目录(`$app_dir`):
``python
project_root='/var/www/t1student0.esc.rl.ac.uk/'
```
1。设置"host name":
``python
hostname=get_host_name()
```
1。修改"media_root"以设置文件系统上上载文件的位置:
`` python
`保存用户上载文件的目录的绝对文件系统路径。
示例:"/var/www/example.com/media/"
media_root=join(project_root,‘uploads/’)
```
2.修改"media_root"以设置上载文件的URL:
``处理从media_root提供的媒体的python
请确保使用
尾随斜杠。
示例:"http://example.com/media/"、"http://media.example.com/"
media悻url='http://t1student0.esc.rl.ac.uk/uploads/'
``
3。将"static_root"修改为…
``` python
`应将静态文件收集到的目录的绝对路径。
不要自己将任何内容放入此目录;将静态文件存储在应用程序的"static/"子目录和static files目录中。
将"static_url"修改为…
`` python
`静态文件的url前缀。
示例:"http://example.com/static/","http://static.example.com/"
static_url='/static/'
```
9。…
httpd
1。确保"mod_wsgi"已安装并启用。
+检查"mod_wsgi"是否可用:
``bash
apache2ctl-m grep wsgi
````
+如果"mod_wsgi"不存在,请从分发包安装它
+确保"mod_wsgi"已启用:
+使用'a2enmod':
```bash
a2enmod wsgi
`````
+或者如果'a2enmod'不可用,只需创建符号链接:
``bash
`cd/etc/apache2/mods enabled
ln-s../mods available/wsgi.load
ln-s../mods available/wsgi.conf
````
2.将"httpd.uploader.conf"链接到"httpd"的"可用站点"
``bash
ln-s$app-dir/httpd.uploader.conf/etc/apache2/sites-available/uploader.conf
```
3。设置证书的路径:
1。设置主机证书
2。设置主机私钥
3。设置证书目录的路径
``apache
sslcertificatefile/path/hostcert.pem
sslcertificatekeyfile/path/hostkey.pem
sslcertificatepath/path/certificates
```
3。设置正确的"wsgipythonpath"。它应该像`$app_dir:$venv_dir/lib/$python_version/site package`.
4.如果使用的路径与本指南中不同,请通过更改路径来调整此站点的配置。
1。…<Br/>5。启用站点
+使用"a2ensite":
``` bash
a2ensite uploader.conf
```
+或ir`a2ensite`不可用,只需创建符号链接:
```bash
cd/etc/apache2/sites enabled
ln-s../sites available/uploader.conf
```
6。为"media"、"uploads"和"cvmfs"目录设置正确的"chmod"和"chown"。
…
数据库可以用"manage.py"初始化:
1。创建数据库结构:
``` bash
django_configuration=production python manage.py syncdb
django_configuration=production python manage.py migrate
```
2。加载示例数据:
`` bash
django_configuration=production python manage.py load data fixtures/auth.json
django_configuration=production python manage.py loaddata fixtures/custom_au auth.json
django_configuration=production python manage.pyloaddata fixtures/guardian.json
django_configuration=production python manage.py loaddata fixtures/projects.json
django_configuration=production python manage.py sync_perms
`````
``development
dev.pybundle-r requirements.txt
```
2.0版("许可证");
除非符合许可证的要求,否则您不得使用此文件。
您可以在http://www.apache.org/licenses/license-2.0
http://www.apache.org/licenses/license-2.0
根据许可证进行分发是在"按原样"的基础上进行的,
无任何明示或暗示的保证或条件。
请参阅许可证,以了解管辖许可权的特定语言和许可证下的限制。
[![生成状态](https://travis ci.org/mknapik/uploader.png)(https://travis ci.org/mknapik/uploader)
##先决条件
+**python**2.7.3
+**[virtualenv](http://www.virtualenv.org/en/latest/)**1.7.1.2-
使用PIP或从分发包安装。
``bash
sudo pip install virtualenv
````
<;!---
+**virtualenvwrapper**4.1.1
``bash
sudo pip安装virtualenvwrapper
source/usr/local/bin/virtualenvwrapper.sh
````
-->;
+**postgresql**9.1.9
+apache**httpd**2.2.22
一个环境变量:
``bash
export-app-dir=/var/www/t1student0.esc.rl.ac.uk
````
使用正确的"chmod"创建空数据库文件:
``bash
触摸$app-dir/db/uploader.sqlite3
chmod 600$app-dir/db/uploader.sqlite3
```
2。设置"db"目录安全性:
``bash
chmod 770$app_dir/db
chgrp www data$app_dir/db
````
postgresql
1。登录到"psql":
``bash
su postgres-c psql
````
2。创建新的数据库用户"django"(也可以使用现有的数据库用户):
``sql
create user django with password'password';
````
3。使用已创建的所有者创建新的数据库"上载程序":
``sql
create database uploader with owner=django;
```
virtualenv
1。为项目创建新的"virtualenv"。您可以选择从中读取"httpd"的任何位置。如果使用postgresql,则添加"--系统站点包"选项。
`` bash
virtualenv/opt/venv/uploader
````
2。激活已创建的"virtualenv"(必须对每个要使用任何python命令的终端窗口执行此操作)
``bash
source/opt/venv/uploader/bin/activate
````
web应用程序
>1。拿到申请表。这个应用程序可以放在任何地方,但我们将使用`/var/www/t1student0.esc.rl.ac.uk`.
+解压缩'uploader.tar.gz`:
``bash
`mkdir$app dir
tar xvf uploader.tar.gz--剥离组件1-c$app dir
```
`+或使用` git`:
``` bash
git克隆https://github.com/mknapik/uploader.git$app-dir
```
3。使用"pip"安装应用程序依赖项。
1。确保您刚刚激活了"virtualenv"。
2.使用以下方法之一安装依赖项:
+provided bundle
``bash
pip install production.pybundle
````
+或从Internet下载包
``bash
`pip install-rrequirements.txt
```
配置上传程序
1。打开"archer/settings/production.py",并设置数据库连接凭据
+sqlite3:
``python
databases={
'default':{
'engine':'django.db.backends.sqlite3',
'名称':'%s/db/uploader.sqlite3'%common.project戡root,
'用户':'',
'密码':'',
'主机':'',
'端口':'',
},
}
````
+postgresql:
`` python
数据库={
'默认值':{
'引擎':'django.db.backends.postgresql_psycopg2',
'名称':'上载程序',
'用户':DJango',
"密码":"密码",
"主机":"本地主机",通过域套接字的本地主机为空,通过TCP的本地主机为"127.0.0.1"。
"端口":",默认设置为空字符串。
},
}
````
>2.打开"archer/settings/common.py"并设置目录路径。
2.更改"secret_key"(仅限生产):
`` python
secret_key='apksigo!7nco7y2biavj=0fxd0b3@2的uh4gth!ax6*rb29fq=w'
```
9。根据需要定制:
1.将"project_root"设置为应用程序目录(`$app_dir`):
``python
project_root='/var/www/t1student0.esc.rl.ac.uk/'
```
1。设置"host name":
``python
hostname=get_host_name()
```
1。修改"media_root"以设置文件系统上上载文件的位置:
`` python
`保存用户上载文件的目录的绝对文件系统路径。
示例:"/var/www/example.com/media/"
media_root=join(project_root,‘uploads/’)
```
2.修改"media_root"以设置上载文件的URL:
``处理从media_root提供的媒体的python
请确保使用
尾随斜杠。
示例:"http://example.com/media/"、"http://media.example.com/"
media悻url='http://t1student0.esc.rl.ac.uk/uploads/'
``
3。将"static_root"修改为…
``` python
`应将静态文件收集到的目录的绝对路径。
不要自己将任何内容放入此目录;将静态文件存储在应用程序的"static/"子目录和static files目录中。
将"static_url"修改为…
`` python
`静态文件的url前缀。
示例:"http://example.com/static/","http://static.example.com/"
static_url='/static/'
```
9。…
httpd
1。确保"mod_wsgi"已安装并启用。
+检查"mod_wsgi"是否可用:
``bash
apache2ctl-m grep wsgi
````
+如果"mod_wsgi"不存在,请从分发包安装它
+确保"mod_wsgi"已启用:
+使用'a2enmod':
```bash
a2enmod wsgi
`````
+或者如果'a2enmod'不可用,只需创建符号链接:
``bash
`cd/etc/apache2/mods enabled
ln-s../mods available/wsgi.load
ln-s../mods available/wsgi.conf
````
2.将"httpd.uploader.conf"链接到"httpd"的"可用站点"
``bash
ln-s$app-dir/httpd.uploader.conf/etc/apache2/sites-available/uploader.conf
```
3。设置证书的路径:
1。设置主机证书
2。设置主机私钥
3。设置证书目录的路径
``apache
sslcertificatefile/path/hostcert.pem
sslcertificatekeyfile/path/hostkey.pem
sslcertificatepath/path/certificates
```
3。设置正确的"wsgipythonpath"。它应该像`$app_dir:$venv_dir/lib/$python_version/site package`.
4.如果使用的路径与本指南中不同,请通过更改路径来调整此站点的配置。
1。…<Br/>5。启用站点
+使用"a2ensite":
``` bash
a2ensite uploader.conf
```
+或ir`a2ensite`不可用,只需创建符号链接:
```bash
cd/etc/apache2/sites enabled
ln-s../sites available/uploader.conf
```
6。为"media"、"uploads"和"cvmfs"目录设置正确的"chmod"和"chown"。
…
数据库可以用"manage.py"初始化:
1。创建数据库结构:
``` bash
django_configuration=production python manage.py syncdb
django_configuration=production python manage.py migrate
```
2。加载示例数据:
`` bash
django_configuration=production python manage.py load data fixtures/auth.json
django_configuration=production python manage.py loaddata fixtures/custom_au auth.json
django_configuration=production python manage.pyloaddata fixtures/guardian.json
django_configuration=production python manage.py loaddata fixtures/projects.json
django_configuration=production python manage.py sync_perms
`````
``development
dev.pybundle-r requirements.txt
```
2.0版("许可证");
除非符合许可证的要求,否则您不得使用此文件。
您可以在http://www.apache.org/licenses/license-2.0
http://www.apache.org/licenses/license-2.0
根据许可证进行分发是在"按原样"的基础上进行的,
无任何明示或暗示的保证或条件。
请参阅许可证,以了解管辖许可权的特定语言和许可证下的限制。