ubuntu 下搭建开发LAMP环境(linux apache mysql python)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huxiaotong_exp/article/details/54379395

一 安装软件

1.1 linux

在VMware Ware中安装了unbuntu 16.04麒麟版本,安装了flash,开发用的pycharm

1.2 apache

编译安装httpd 2.4,网上各种教程一大把
1 下载httpd2.4
http://httpd.apache.org/download.cgi#apache24
2 官方编译安装文档
http://httpd.apache.org/docs/2.4/install.html
3 安装依赖apr and apr-util
下载apr apr-util
http://apr.apache.org/download.cgi
安装apr:

$ sudo ./configure 
$ sudo make 
$ sudo make install

安装apr-util:

$ sudo ./configure --with-apr=/usr/local/apr
$ sudo make 
$ sudo make install

4 安装pcre
sudo apt-get install libpcre3 libpcre3-dev

5 编译安装apache,这里工作模式设为prefork模式
./configure -prefix=/usr/local/apache2
–enable-module=share
–with-mpm=prefork
6 使用apachectl启动apahce

注意使用apahcectl,apache配置文件在/usr/local/xxx/conf/httpd.conf
apachectl 的命令选项参考官网手册:

$ apachectl start 
$ apachectl stop
$ apachectl restart 

修改配置文件服务器名以及监听端口,按上述命令启动apache
apache安装完成

1.3 mysql

在官网根据教程选择安装最新版本mysql
http://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/
- 下载apt仓库 http://dev.mysql.com/downloads/repo/apt/.
- 选择正确的linux版本
- 安装源

  shell> sudo dpkg -i /PATH/version-specific-package-name.deb
  • 更新源,安装mysql,安装过程中会让你输入root密码
shell> sudo apt-get update
shell> sudo apt-get install mysql-server
  • 启动、关闭服务
$ sudo service mysql status
$ sudo service mysql stop
$ sudo service mysql start
  • root 登陆mysql
$ mysql -u root -p

需要配置一下mysql以使能够远程连接mysql
http://www.linuxdiyf.com/linux/15206.html
主要是配置远程连接端口,以及远程连接权限
用 netstat 查看3306端口是否打开
netstat -an |grep mysql 3306
在/etc/mysql/mysql.conf.d/mysqld.cnf 中配置端口
将bind-address = 127.0.0.1注销​,保存退出后,重启mysql服务
用root登陆,以及修改权限,xxxxxx为密码

mysql>grant all privileges on *.* to 'root'@'%' identified by 'xxxxxx';
flush privileges;​

1.4 python

ubuntu 16.04 自带python 3.5.1,于是就直接用这个版本的python开发,但是需要安装pip3,以及django

$sudo apt-get install python3-pip
$sudo pip3 install django

二 安装配置mod_wsgi,此模块用于耦合python和apache

mod_wsgi官方参考文档
https://modwsgi.readthedocs.io/en/develop/user-guides/quick-installation-guide.html

1 下载安装mod_wsgi
下载:
https://github.com/GrahamDumpleton/mod_wsgi/releases
解压、编译、安装:
注意需要指定apx路径以及python路径

$ tar xvfz mod_wsgi-X.Y.tar.gz
$ ./configure --with-apxs=/usr/local/apache2/bin/apxs --with-python=/usr/bin/python3
$sudo make 
$sudo make install

安装完成后:
mod_wsgi安装

2 将mod_wsgi模块加载到apache
在前述apache安装说明中的配置文件中的模块配置节部分加入,

LoadModule wsgi_module modules/mod_wsgi.so

然后重启apache服务

$ sudo apachectl restart

至此环境搭建完毕,接下来为附加内容,将django部署到apache

三 创建新的django工程

1 已经下载了pycharm,利用IDE直接创建了一个新的django工程
2 使用的python3,连接mysql需要安装pymysql模块,并且在django工程中进行相关配置。

$ pip3 install pymysql
 DATABASES = {
     'default': {
         'ENGINE': 'django.db.backends.mysql', #数据库引擎
         'NAME': 'test',                       #数据库名
         'USER': 'root',                       #用户名
         'PASSWORD': 'root',                   #密码
         'HOST': '',                           #数据库主机,默认为localhost
         'PORT': '',                           #数据库端口,MySQL默认为3306
         'OPTIONS': {
             'autocommit': True,
         },
     }
 }

在站点的init.py文件中,我们添加如下代码:

import pymysql 
pymysql.install_as_MySQLdb()

3 同步数据库

python3 manage.py makemigrations
python3 manage.py migrate

4 收集静态文件,便于apache处理js、css等静态文件

python3 manage.py collectstatic

四、部署django到apache

参考自强学堂教程
http://www.ziqiangxuetang.com/django/django-deploy.html

1 在django中创建静态文件夹以及设置相关路径
collected_static文件夹:方便apache收集处理静态文件

$ python3 manage.py collectstatic

media用于存储媒体文件
django配置
在settings.py中添加配置:

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.10/howto/static-files/

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'collected_static')


MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

2 配置apache

$ sudo vim path/to/httpd.conf

监听8080端口

Listen 8080

添加如下配置节,具体含义可以参考官方手册

<VirtualHost *:8080>
    ServerName 127.0.0.1:8080
    ServerAdmin [email protected]

    #指定media文件夹URL别名
    Alias /media/ /home/xiaotong/project/smart_class/smart_class/media/
    #指定collected_static文件夹URL别名
    Alias /static/ /home/xiaotong/project/smart_class/smart_class/collected_static/
    #配置这两个文件夹的访问权限
    <Directory /home/xiaotong/project/smart_class/smart_class/media>
        Require all granted
    </Directory>
    <Directory /home/xiaotong/project/smart_class/smart_class/collected_static>
        Require all granted
    </Directory>
#指定django工程中wsgi.py的位置
    WSGIScriptAlias / /home/xiaotong/project/smart_class/smart_class/smart_class/wsgi.py
#使用virtualenv以及守护模式,需要
    # WSGIDaemonProcess ziqiangxuetang.com python-path=/home/tu/blog:/home/tu/.virtualenvs/blog/lib/python2.7/site-packages
    # WSGIProcessGroup ziqiangxuetang.com

    <Directory /home/huxiaotong/project/smart_class/smart_class/smart_class>
    <Files wsgi.py>
        Require all granted
    </Files>
    </Directory>
</VirtualHost>

3 在浏览器输入127.0.0.1:8080就可以访问了

猜你喜欢

转载自blog.csdn.net/huxiaotong_exp/article/details/54379395