MD5 概念和用途

首先,说明下环境:

linux:fedora14;

IDE:eclipse;

python:python2.7

python框架:django

web服务器:apache

web服务器的python模块:mod_wsgi

写在前面:

之前用的windows下面的xampp,写的php后台,现在想转向linux下面的python,跟以前一样,选择apache和eclipse作为自己的开发工具。

eclipse的python配置, 参见之前的博客:http://blog.csdn.net/zy416548283/article/details/16955047

为什么选择框架? 不重复造轮子,,为什么选择django,使用的人最多,,为什么python2.7,跟python3不一样呢。。。为什么是apache呢,nginx没玩过,以后性能上如果有需求,再改吧~  而apache支持python,需要一个模块,mod_wsgi,之前自己也尝试配置mod_python,但是会遇到很多错误,mod_python已经停止维护了,所以,还是用mod_wsgi吧~

其实,这类文章,网上也有很多,照着弄,基本可以解决,也花费了我很多时间,我主要记录我的问题,和一些我的配置和理解,毕竟我也很菜~

(1)关于apache的配置的权限问题,总是出现一些问题:

没有访问权限403错误? 之前设置了目录的访问权限,但还是出现问题,这个时候,最有效的方式是去查看错误日志。我之前没有找到这个日志,然后尝试了手动编译apache的方法,发现竟然可以使用,但是修改了根目录之后又用不了,很是郁闷,根据错误日志,搜索到这个帖子:http://wiki.apache.org/httpd/13PermissionDenied ,解决方法就是把权限打开到root目录的下一级目录。这一步纠结了我好久的时间,所以说,日志对于解决问题相当地重要。

(2)File does not exist: /var/www/html/favicon.ico,就是找不到图标,关于这个图标的作用,参见:http://blog.csdn.net/avilifans/article/details/12972315 ,大概作用就是收藏的时候提供一个图标。

(3)加载mod_wsgi,并配置wsgi:

a. 首先改变网站的根目录,在httpd.conf中配置

DocumentRoot "/home/zy/www/lib108/src/lib108/"

b.当然要让其它人访问它,需要配置它的权限:

<Directory "/home/zy/www/lib108/src/lib108">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

c.我用的eclipse建的项目,所以是上面的结构。 上面这个配置,可以写在httpd.conf中,但是如果你的配置比较多的话,这样就会让文件显得比较臃肿,并且不方便修改。所以我们创建了一个文件wsgi.conf,把关于mod_wsgi的配置都放在这里。我目前的配置是:

LoadModule wsgi_module modules/mod_wsgi.so   #加载模块
WSGIScriptAlias / "/home/zy/www/lib108/src/lib108/conf/django.wsgi"

<Directory "/home/zy/www/lib108/src/lib108">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

Alias /media /usr/lib/python2.7/site-packages/django/contrib/admin/media
<Directory "/usr/lib/python2.7/site-packages/django/contrib/admin/media">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
 <Location "/media/">
    SetHandler None
</Location>
 <LocationMatch "\.(jpg|gif|png|txt|ico|pdf|css|jpeg)$">
    SetHandler None
</LocationMatch>

需要将这样一个文件,引入到httpd.conf中:

Include conf.d/*.conf

这个是将conf.d目录下所有的*.conf文件都引入进来,我的文件是放在这个目录下的,如果你的不是放在这里,你需要再使用一个include把你的配置文件引入进来。

(4)安装命令,并配置wsgi到django:

a. 安装apache服务器:

yum install httpd

b.安装mod_wsgi:

好像命令行安装的,自带了这个模块,手动编译的apache,同样需要手动编译这个模块,编译的时候可能会遇到这个错误:mod_wsgi.c Python.h:没有那个文件或目录,,解决方法:yum install python-devel,安装apache的apxs扩展。

c. wsgi到django的配置文件django.wsgi,在第三步的配置文件中,会用到这个文件,我的是:

import os
import sys
import django.core.handlers.wsgi

sys.path.append(r‘/home/zy/www/lib108/src/‘)
#sys.path.append(os.path.dirname(os.path.dirname(__file__)))
os.environ[‘DJANGO_SETTINGS_MODULE‘] = ‘lib108.settings‘
os.environ[‘PYTHON_EGG_CACHE‘] = ‘/tmp/.python-eggs‘

application = django.core.handlers.wsgi.WSGIHandler()

5. css的样式丢失的问题:

使用chrome的F12可以发现问题,文件找不到,需要配置下admin这个东西,具体配置,在第三步的那个配置文件中,关于media的路径问题,使用:

python
import django
django.__file__

可以找到对应的django路径进去研究下,就清楚了。

这样设置之后,需要在django的项目中的settings中,做配置:

MEDIA_ROOT = ‘/usr/lib/python2.7/site-packages/django/contrib/admin/media‘
MEDIA_URL = ‘/media/‘

这样,可以轻松解决css样式丢失的问题。

其它小问题:

(1)Address already in use: make_sock: could not bind to address 80 [resolved],使用:sudo fuser -k -n tcp 80

(2)eclipse写html,用对应插件,参见:http://blog.csdn.net/shanliangliuxing/article/details/8571832

(3)Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock,没有安装mysql-server,跟windows好大的区别,windows用别人提供好的界面,根本没有这些概念~ mysql的初步使用和安装,参见:http://blog.csdn.net/tianlesoftware/article/details/7001808

(4)pyc是什么文件,编译好的二进制文件,不用公开源码,参见:http://blog.csdn.net/sislcb/article/details/4002414

写在后面:

果然用linux搞东西,就会遇到各种问题,慢慢解决和积累吧~

希望这次搞东西,可以学的更深一点,比如数据库/python这些~

先大概看下django,然后直接着手搭建教研室的网站搭建,先实现一个工作去向的统计功能~

参考资料:

http://www.cnblogs.com/compass/articles/2125605.html

http://www.cnblogs.com/compass/archive/2011/09/28/2194460.html

http://my.oschina.net/HankCN/blog/137539

http://blog.csdn.net/a657941877/article/details/8953233

MD5 概念和用途,布布扣,bubuko.com

时间: 2025-01-13 16:17:04

MD5 概念和用途的相关文章

MD5 概念与用途

MD5概念: MD5这是message-digest algorithm 5(信息-摘要算法)缩写.用于加密和解密技术上,它能够说是文件的"数字指纹".不论什么一个文件,不管是可运行程序.图像文件.暂时文件或者其它不论什么类型的文件,也不管它体积多大.都有且仅仅有一个独一无二的MD5信息值,而且假设这个文件被改动过,它的MD5值也将随之改变. 因此,我们能够通过对照同一文件的MD5值.来校验这个文件是否被"篡改"过. MD5文件传输: 当我们下载了一个软件以后,假设

DNS的概念,用途,DNS查询的实现算法

1.DNS的概念,用途 DNS是由解析器以及域名服务器组成的. 域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器. DNS使用TCP与UDP端口号都是53,主要使用UDP,服务器之间备份使用TCP. 域名到IP地址的解析过程的要点如下: 当某一个应用进程需要主机名解析为IP地址时,该应用进程就调用解析程序,并成为DNS的一个客户,把待解析的域名放在DNS请求报文中,以UDP用户数据报方式发给本地域名服务器. 本地域名服务器在查找域名后,把对应的IP

关于逆元的概念、用途和可行性的思考(附51nod 1013 和 51nod 1256)

[逆元的概念] 逆元和单位元这个概念在群中的解释是:  逆元是指数学领域群G中任意一个元素a,都在G中有唯一的逆元a',具有性质a×a'=a'×a=e,其中e为该群的单位元. 群的概念是:  如果独异点(幺半群)中每一个元素都有逆元,那么这个独异点(幺半群)叫做群. 独异点(幺半群):  有单位元的半群. 半群:  可结合的代数系统.即 ,有 . 代数系统:我的理解是代数系统包含一个数的集合A和至少一个运算规则,所有的运算都是封闭的,不会产生不在A集合中的数. 我们知道的实数集合R和加减乘除等一

arguments.callee概念和用途

argument代表当前函数的参数数组 arguments.callee表示引用当前正在执行的函数,或者说是调用arguments.callee的函数对象的引用,它给匿名函数提供了一种自我引用的方式.. var aa = function() { alert(aa === arguments.callee);}aa(); 执行上述代码,可以看到alter出来的结果是true,注意,此处用的是“===”,就是说方法aa与arguments.callee对象类型和值都相等. 上面讲述了概念,下面讲a

LXC学习实践(1)LXC的概念和用途

1.LXC是什么? LXC是Linux containers的简称,是一种基于容器的操作系统层级的虚拟化技术,Sourceforge上有LXC这个开源项目. 2.LXC能做什么? LXC和Linux内核特性结合,可以为进程提供虚拟执行环境,一个虚拟的执行环境就是一个容器,容器的资源限定管理和隔离控制还要依赖Linux内核特性. LXC本身只提供用户空间,和Linux内核特性结合,可以为容器绑定特定的cpu,分配cpu时间.IO时间,限制内存大小(包括内存和是swap空间),控制device访问,

SSH基本概念和用途

一.SSH是什么 简单的说,SSH是一种网络协议,主要用于客户端与远程主机的安全链接和交互. 二.常见用法1.客户端与远程主机的安全链接命令如下: $ ssh -p 2222 [email protected] 解释如下:-p 2222 :指定端口号2222user :登陆用户名host :远程主机地址 安全链接的过程是:1.远程主机端收到客户端的登陆请求时先发送自己的公钥给客户端2.客户端用拿到的公钥加密用户名和密码,然后发送给远程主机3.远程主机用自己的密钥解密收到的用户名和密码,然后校验用

Android-Service概念和用途

MD5加密和RSA加密

1.MD5加密  MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),MD5算法的使用不需要支付任何版权费用. MD5的功能:     ①.输入任意长度的信息,经过处理,输出为128位的信息(数字指纹):    ②.不同的输入得到的不同的结果(唯一性):    ③.根据128位的输出结果不可能反推出输入的信息(不可逆),也就是只能加密,不能解密:  MD5的用途:     1.防止被篡改:    1)比如发送一个电子文档,发送前,我先得到MD5的

MD5是什么,怎么用着怪怪的

写作目的 通常我们在使用加密算法时,都是直接调用一个方法,比如Base64,直接把待加密的字符串给加密好了.对于某些使用公私钥的算法,最多再传入一段公钥即可.但是在使用MD5算法的时候,总是需要用到一个叫做Digest的东西,然后再经过一段有些神秘的代码把二进制转十六进制,才能获得想要的MD5"加密"后的结果. 我在之前用到MD5加密时,对此感到疑惑,但是仅仅把别人写好的代码拿来用,并未深究原因,知其然而不知其所以然.所以抽时间搞清楚了原因,并写下这篇文章作为记录. MD5根本不是加密