Python的Web开发环境之CGI(一)--Ubuntu

Ubuntu下安装Python的Web环境

转自:https://www.digitalocean.com/community/tutorials/how-to-set-up-an-apache-mysql-and-python-lamp-server-without-frameworks-on-ubuntu-14-04

检查python的版本(Ubuntu自带了python运行环境)
python --version

默认是2.X的版本,如果想使用3.X的版本,可以先删掉 /usr/bin/python 的链接,然后链接到3.X版本的binary上
rm /usr/bin/python
ln -s /usr/bin/python3 /usr/bin/python

安装python的包管理器 pip

apt-get install python3-pip -y

安装MySQL服务器

apt-get install mysql-server -y

※安装过程会提示输入root用户的密码
※安装完成之后,可以运行 mysql_secure_installation 可以启动MySQL的安全配置向导(如果有需要)。
通过配置 ~/.my.cnf 文件,免密码登录MySQL服务器
vim ~/.my.cnf
[client]
user=root
password=rootadmin

安装python操作mysql数据库的库 pymysql

pip3 install pymysql

安装Apache服务器

apt-get install apache2 -y
a2dismod mpm_event #禁用多现成
a2enmod mpm_prefork cgi # 给予apache执行脚本的权限(必须),如果没有打开,这直接显示python文件的内容。

修改apache的配置文件

在/etc/apache2/sites-enabled/000-default.conf 文件中添加如下配置信息

<Directory /var/www/html>
    Options +ExecCGI
    DirectoryIndex index.py
</Directory>
AddHandler cgi-script .py

测试

root@ubuntu:/var/www/python# mysql
mysql> CREATE DATABASE example;
mysql> USE example;
mysql> CREATE TABLE numbers (num INT, word VARCHAR(20));

编辑测试文件/var/www/index.py,并赋予自行执行权限

#!/usr/bin/python

# Turn on debug mode.
import cgitb
cgitb.enable()

# Print necessary headers.
print("Content-Type: text/html")
print()

# Connect to the database.
import pymysql
conn = pymysql.connect(
    db='example',
    user='root',
    passwd='rootadmin',
    host='localhost')
c = conn.cursor()

# Insert some example data.
c.execute("INSERT INTO numbers VALUES (1, 'One!')")
c.execute("INSERT INTO numbers VALUES (2, 'Two!')")
c.execute("INSERT INTO numbers VALUES (3, 'Three!')")
conn.commit()

# Print the contents of the database.
c.execute("SELECT * FROM numbers")
print([(r[0], r[1]) for r in c.fetchall()])

赋予执行权限

chmod 755 index.py
测试在浏览器中输入 http://{host}/ 查看结果

添加对Apache对php脚本的执行,

apt-get install php5 -y 

即可

升级python的版本
#
sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update
sudo apt-get install python3.5
#
cd /usr/bin
sudo rm python
sudo ln -s python3.5 python

问题汇总
  1. malformed header from script ‘index.py’: Bad header
    ⇒解决办法:在python脚本文件开头添加 print("Content-Type: text/html; charset=utf-8\n")

2.不更改Apache的默认配置文件,新建文件/etc/apache2/sites-available/python.conf,添加如下内容:

<Directory /var/www/python>
    Options +ExecCGI
    DirectoryIndex index.py
</Directory>
AddHandler cgi-script .py

Alias /python "/var/www/python"

然后创建目录/var/www/python在该目录下编写Python脚本,通过http://{hostname}/python来访问

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值