比较起在windows环境下安装,ubuntu环境下要简单许多,因为许多程序包都是可以apt-get命令来安装,我的所有安装过程也都是用了apt包里面的文件。以下是安装步骤。
一,配置安装apache+mysql+php5+phpmyadmin
一,统一将所需要使用的环境包全部安装,之后再配置环境。如果想删除文件使用apt-get autoremove
这些软件包都可以在http://packages.ubuntu.com/里面搜索得到相关信息
命令如下:
sudo apt-get install apache2 # 安装apache2服务器
sudo apt-get install mysql-server # 安装mysql服务器
由于使用phpMyAdmin进行数据库的管理,所以需要安装以下程序
sudo apt-get install php5-common # 安装php5程序通用文件
sudo apt-get install php5-gd # 安装php5的gd图像处理库
sudo apt-get install php5-mysql # 安装php5的mysql模块
sudo apt-get install libapache2-mod-php5 #apache中的php5模块
sudo apt-get install php5-mcrypt # php5的mcrypt模块
sudo apt-get install phpMyAdmin # 数据库管理程序
1,安装apache2服务器sudo apt-get install apache2
#检查是否安装成功,打开浏览器输入localhost
2,安装mysql-server服务器sudo apt-get install mysql-server
3,安装php5-common sudo apt-get install php5-common
4,安装php5-gd模块sudo apt-get install php5-gd
5,安装php5-mysql模块sudo apt-get install php5-mysql
6,安装libapache2-mod-php5 sudo apt-get install libapache2-mod-php5
7,安装php5-mcrypt sudo apt-get install php5-mcrypt
8,安装myphpadmin sudo apt-get install phpMyAdmin
是否创建一个数据库以放置数据库配置信息
设置配置密码
设置phpmyadmin连接MySQL的密码
设置数据库管理员密码
选择数据库服务器
二,配置服务器,保证apache2+php5+Mysql+phpmyadmin的正常运行
1,配置php5
sudo gedit /etc/php5/apache2/php.ini
容许 mysql 和 gd 模块,反省 文件最后是否包含下面的代码,如果没有添加上。(默认是在配置文件最后有添加的,反省 一下以防万一)
extension=mysql.so
extension=gd.so
2,配置apache2
编辑 Apache 配置文件:
sudo gedit /etc/apache2/apache2.conf
3,配置 mysql,让它支撑 其它客户端造访 ,如果你不需要 就不用修正 。
sudo gedit /etc/mysql/my.cnf
查找文件
skip-networking # 如果不注释掉就只能让本机使用。
修正 为
#skip-networking
保存 并关闭文件。
重新启动 mysql
sudo /etc/init.d/mysql restart
4,运行、收场和重启Apache应用如下命令运行 Apache:
sudo /usr/sbin/apache2ctl start
要收场 Apache,应用 :
sudo /usr/sbin/apache2ctl stop
最后,重启 Apache,履行 如下命令:
sudo /usr/sbin/apache2ctl restart
注:如果这些命令提醒
[email protected]:~$ sudo /usr/sbin/apache2ctl stop
apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
则找到[email protected]:~$ sudo gedit /etc/apache2/apache2.conf
在其后添加ServerName 127.0.0.1
5,测试php5的安装状态
sudo gedit /var/www/testphp.php
在上述文件中插入下面这行代码:
<?php phpinfo(); ?>
在浏览器里输入http://localhost/testphp.php
6,配置phpmyadmin,因为默认的phpmyadmin是安装到/usr/share/phpmyadmin,所以需要建立/var/www软连接。当然,你可以直接将文件复制到/var/www/目录下
cd /var/www/
sudo ln -s /usr/share/phpmyadmin
浏览网页:http://localhost/phpmyadmin/
到这里,apache+Mysql+php5+phpmyadmin已经成功,下一步,进入Django的搭建。
二,配置安装Django环境
一,首先安装python的MySQLdb模块
先导入需要的库
sudo apt-get install python-all-dev
sudo apt-get install libmysqlclient15-dev
sudo apt-get install zlib1g-dev
1,python-all-dev sudo apt-get install python-all-dev
2, libmysqlclient15-dev sudo apt-get install libmysqlclient15-dev
3,zlib1g-dev sudo apt-get install zlib1g-dev
二,安装apache的python mod
sudo apt-get install apache2 libapache2-mod-python
三,然后安装mysqldb模块
sudo apt-get install python-mysqldb
三,安装配置Django
一,安装django文件
有两种安装方法,
1,sudo apt-get install libapache2-mod-python python-django
2,直接从官方下载安装。
这里我就是用第二种方法,有官方正式发布版和开发版本,这里我下的是开发版本,因为有最新的版本。
cd ~/
svn co http://code.djangoproject.com/svn/django/trunk/ django_src
# svn 默认是不安装的,所以现安装svn,
sudo apt-get install subversion
最新的django包就以django_src文件夹名保存到了/home/用户/ 目录下
Python将不认Django除非其装在’site-packages’文件夹下,所以我们将建立软链接来连接Python和Django。
二,创建链接
python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
sudo ln -s `pwd`/django_src/django YOUR-DIR/django
sudo cp ~/django_src/django/bin/django-admin.py /usr/local/bin
用第一个命令找出’site-packages’目录。
python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
第二个命令创立链接。
sudo ln -s `pwd`/django_src/django YOUR-DIR/django
第三个命令拷贝django-admin.py文件到/usr/local/bin 这样就可以随时使用django-admin.py而不用每次都打完全路径了。
sudo cp ~/django_src/django/bin/django-admin.py /usr/local/bin
三,创建django基本文件
1,创建基本文件夹,当然也可以直接进入目录右键新建文件夹
cd ~/
mkdir django_projects
mkdir django_templates
mkdir django_media
2,创立一些链接,好让apache知道media的存放位置,因Django默认不存放媒体文件,所以媒体文件和css之类的文件都需要放入media目录下。也为Django更好的链接多媒体文件,第二个链接是用来链接django_admin的媒体文件
cd /var/www
sudo ln -s ~/django_media media
sudo ln -s ~/django_src/django/contrib/admin/media admin_media
四,创立一个Django工程
cd ~/django_projects
django-admin.py startproject myproject
编辑myproject里面的setting.py文件。红色均为我自己的配置,可以根据自己的配置更改
1,
ADMINS = (
# (‘LiuSai’, ‘[email protected]‘), 填写站长信息
)
MANAGERS = ADMINS
2,
DATABASE_ENGINE = ‘mysql’ # ‘postgresql’, ‘mysql’, ‘sqlite3′ or ‘ado_mssql’.
DATABASE_NAME = ‘myproject’ # Or path to database file if using sqlite3.
DATABASE_USER = ‘root’ # Not used with sqlite3.
DATABASE_PASSWORD = ‘admin’ # Not used with sqlite3.
DATABASE_HOST = ” # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = ” # Set to empty string for default. Not used with sqlite3.
3,
ADMIN_MEDIA_PREFIX = ‘/admin_media/’
4,
ROOT_URLCONF = ‘myproject.urls’
5,
INSTALLED_APPS = (
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.sites’,
‘django.contrib.admin’,
)
五,创建一个管理员数据库。它会自动生成一个管理员数据表格到刚刚定义的即自己在phpmyadmin里创建的数据库中。
django-admin.py syncdb
六,创建一个url.py链接,使浏览器可以访问admin
七,配置apache2
sudo nano /etc/apache2/httpd.conf
打开后插入如下代码
MaxRequestsPerChild 1 # 这里设置的目的是为了更改django代码后不用重启apache服务器
<location "/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE myproject.settings
PythonPath "['/home/liusai/django_projects'] + sys.path" # 这里是存放django_projects的目录
</location>
<location "/media">
SetHandler None
</location>
<location "/admin_media">
SetHandler None
</location>
<location "/phpmyadmin">
SetHandler None
</location>
<locationmatch ".(jpg|gif|png)$">
SetHandler None
</locationmatch>
八,重启apache。输入网址
sudo /etc/init.d/apache2 restart
注意,这里我的提示是
[email protected]:~$ sudo /etc/init.d/apache2 start
* Starting web server apache2 Syntax error on line 5 of /etc/apache2/httpd.conf:
Invalid command ‘PythonHandler’, perhaps misspelled or defined by a module not included in the server configuration
[fail]
一般情况下不会出现这个问题,出现这个问题的原因是因为默认中/etc/apache2/mods-enabled/ 目录中应该有一个mod_python.load文件,文件内容为
LoadModule python_module /usr/lib/apache2/modules/mod_python.so
这里我们就直接将其添加进http.conf文件,当然也可以创建mod_pyton.load文件
六,测试。大功告成
这是因为没有创建admin,把url.py的 (r’^admin/’, include(‘django.contrib.admin.urls’)), 注释掉就会出现下图。