【问题标题】:Would installing LAMP fix Django/MySQL config issues?安装 LAMP 会修复 Django/MySQL 配置问题吗?
【发布时间】:2018-03-09 10:31:57
【问题描述】:

对不起,这个问题太笼统了,但我似乎在绕圈子。

我正在寻找构建/开发web 应用程序,使用 MySQL 数据库并将其托管在我的 RPi 上。

在尝试这样做时,我了解到我需要一个 webserver(现在似乎是 apache2)并且我需要创建一个 application 来在它们之间进行接口。

最初,我使用 Python 和 Qt 尝试构建一个应用程序作为界面,但发现事情并不简单,我曾经使用 Python/MySQL 连接器等

几周后,我把事情联系起来,然后考虑构建它。很明显,像 Flask 和 Django 这样的选项会因为框架而更适合这项任务。

我在阅读 DjangoGurls 教程时发现它很简单,所以决定试一试,只需要努力用我自己的替换他们的 PythonAnywhere.com 部署示例服务器…………卡住了。

我的笔记本电脑/开发环境可以正常运行,但服务器端运行不正常。我知道这与 MySQL config/settings/permissions/path 有关,但我无法确定。

有很多不同的教程和命令可以尝试,我已经数不清了,而且很多似乎已经过时了。

然后我发现 LAMP 让我更加困惑PHPMyAdmin 来管理 MySQL

是否可以在我已有的设备上安装 LAMP? 它会解决服务器端 MySQL 的问题吗?

编辑

我已经成功安装了 pymysql,当我尝试 runserver 时,/etc/MySQL/my.cnf 出现配置解析器错误 来自/test_blog_app/blogpip list 的输出如下(我不知道其中大部分是什么):

automationhat (0.0.4)
blinker (1.3)
blinkt (0.1.0)
Cap1xxx (0.1.3)
chardet (2.3.0)
click (6.6)
colorama (0.3.7)
cryptography (1.7.1)
drumhat (0.0.5)
enum34 (1.1.6)
envirophat (0.0.6)
ExplorerHAT (0.4.2)
Flask (0.12.1)
fourletterphat (0.0.2)
gpiozero (1.4.0)
idna (2.2)
ipaddress (1.0.17)
itsdangerous (0.24)
Jinja2 (2.8)
keyring (10.1)
keyrings.alt (1.3)
lxkeymap (0.1)
MarkupSafe (0.23)
mcpi (0.1.1)
microdotphat (0.1.3)
mote (0.0.3)
motephat (0.0.2)
numpy (1.12.1)
oauthlib (2.0.1)
phatbeat (0.0.2)
pianohat (0.0.5)
picamera (1.13)
picraft (1.0)
piglow (1.2.4)
pigpio (1.38)
Pillow (4.0.0)
pip (9.0.1)
pyasn1 (0.1.9)
pycrypto (2.6.1)
pygame (1.9.3)
pygobject (3.22.0)
pyinotify (0.9.6)
PyJWT (1.4.2)
PyMySQL (0.7.11)
pyOpenSSL (16.2.0)
pyserial (3.2.1)
pyxdg (0.25)
rainbowhat (0.0.2)
requests (2.12.4)
requests-oauthlib (0.7.0)
RPi.GPIO (0.6.3)
RTIMULib (7.2.1)
scrollphat (0.0.7)
scrollphathd (1.0.1)
SecretStorage (2.3.1)
sense-emu (1.0)
sense-hat (2.2.0)
setuptools (33.1.1)
simplejson (3.10.0)
six (1.10.0)
skywriter (0.0.7)
sn3218 (1.2.7)
spidev (3.0)
touchphat (0.0.1)
twython (3.4.0)
urllib3 (1.19.1)
Werkzeug (0.11.15)
wheel (0.29.0)

【问题讨论】:

    标签: python mysql django web-deployment lamp


    【解决方案1】:

    我不建议将 LAMP 堆栈用于您想要实现的目标。您已经选择了 python 作为您的编程语言,并选择了 django 作为您的应用程序的框架。

    现在您需要面对系统管理员部分。在阅读有关 MySQL 的信息时,您经常阅读 phpmyadmin - 这是一个基于 PHP 的数据库服务器的图形用户界面。如果你想使用它,你需要 PHP,没错,但你也可以使用其他工具来维护你的 MySQL 数据库。例如。名为mysqlMySQL Workbench 的命令行客户端,您可以安装在桌面上。

    当您开始深入研究数据库的世界时,会发现很多东西。但不要犹豫。官方文档有一个相当不错的getting started 部分。您只需要知道如何启动/停止服务器以及如何管理用户和权限。 Django 通常会处理所有其他事情。当然,更深入地了解 SQL 和数据库服务器是很有用的——但最初并不需要它,而且有很多开发人员所了解的知识比我上面描述的要多。

    您也可以在您的 RPi 上使用 sqlite - 它是一个基于文件的数据库,可以很好地与 django 配合使用,并且非常易于维护。如果您不期望高负载和大量数据,它通常应该非常适合您的需求。并且无需安装和维护您的数据库服务器。

    最后但同样重要的是,您需要一个为您的 django 应用程序提供服务的网络服务器。在开发 django 时,它提供了一个内置服务器,让您的生活变得轻松。但是在服务器(或 RPi)上安装应用程序时,您应该选择一个真正的服务器。对于 python 项目,我更喜欢 nginx + uwsgi。但是你当然可以使用好的旧 apache2。 django documentation 是开始配置的好地方。

    【讨论】:

    • 感谢您的回复。我已经很好地浏览了文档,完成了几个 udemy 课程,遵循了一些 digitalocean 教程,基本上从头开始进行了新安装,但我仍然得到:django.core.exceptions.ImproperlyConfigured:加载 MySQLdb 模块时出错:没有名为“MySQLdb”的模块。你安装了 mysqlclient 还是 MySQL-python?失去求生的意志!是否不可能在 RPi 上安装 Django 和 MySQL 之类的?我需要在 SQLite3 上使用 MySQL 的原因是两个有多个“用户”写入它。
    • 看起来你错过了 mysql 的 python 绑定。我建议使用mysqlclient - IMO 更容易设置。 github 页面上的 README 告诉您如何在操作系统中安装 lib 本身和必要的二进制文件。
    • 我一直在尝试安装它,但没有成功。这是我重新开始之前遇到的同样的问题
    • 如果您在最初的问题中添加有关错误的详细信息会很好。相关资料:你用的是virtualenv吗?在您的环境中时pip list 的输出是什么(没有 virtualenv,只需运行它)。您要使用哪个 python 版本。添加错误的完整堆栈跟踪。加上您可能需要知道的任何其他内容。 :)
    • 我没有使用 virtualenv,虽然我想在某个阶段。我必须将点子列表添加到 OP,因为这里列出的时间太长了。 Python3 将是首选。我已经安装了 pymysql,但我现在遇到了 etc/MySQL/my.cnf 的配置解析器错误
    【解决方案2】:

    问题是,安装 LAMP 能否解决我的 MySQL/Django 配置问题,答案是否定的。在顶部安装 LAMP 会使事情变得更加复杂。

    1 - 安装了 PyMySQL 而不是 MySQLdb(主要是因为我正在努力安装其他任何东西。
    2 - 使用 my.cnf 文件(根据各种指南)设置 MySQL,经过一些调整和修复拼写错误,这似乎可以运行。
    3 - 检查 MySQL,相关 db/table 中有 Django 数据

    据我所知,Django 现在使用的是 MySQL 数据库……

    我现在必须弄清楚如何正确配置 apache2,以便它可以为我服务 Django,而无需使用端口号。我已经四处寻找并尝试了各种教程/命令,但还没有成功,所以将发布另一个问题。

    最重要的建议 - 始终在此处查看教程(或答案)的日期,并始终尝试使用最新的。在过时的教程之后,我损失了无数小时

    【讨论】:

      猜你喜欢
      • 2015-07-28
      • 2015-01-08
      • 1970-01-01
      • 1970-01-01
      • 2020-06-11
      • 2021-04-05
      • 2016-04-08
      • 1970-01-01
      • 2022-12-13
      相关资源
      最近更新 更多