安装 LAMP 会修复 Django/MySQL 配置问题吗?

Would installing LAMP fix Django/MySQL config issues?

请问这个问题太笼统了,我好像在兜圈子。

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

在尝试这样做的过程中,我了解到我需要一个 webserver(现在似乎是 apache2)并且我需要创建一个 application 在它们之间进行交互。

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

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

当我通读 DjangoGurls 教程时,我发现它很容易理解,所以决定试一试,只需努力替代他们的 PythonAnywhere.com 部署示例,使用我自己的服务器.........卡住了。

我的 laptop/development 环境可以正常工作,但服务器端不正常。我知道这与 MySQL config/settings/permissions/path 有关,但我无法确定它。

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

然后我发现了 LAMP 增加了我的困惑,如果我一开始就知道这听起来很理想,但它不包括 Django 或 Python,而且我需要(我认为)PHP,这样我就可以使用 PHPMyAdmin 来管理 MySQL

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

编辑

我已经成功安装了 pymysql,当我尝试运行服务器时,我在 /etc/MySQL/my.cnf 上收到配置解析器错误 来自 /test_blog_app/blog pip 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)

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

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

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

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

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

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

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

中有Django数据

据我所知,Django现在正在使用MySQL数据库......

我现在必须解决如何正确配置 apache2,以便它可以为我服务 Django,而无需使用端口号。我四处寻找并尝试了各种 tutorials/commands,但还没有成功,因此 post 另一个问题。

最大建议 - 始终 检查此处教程(或答案)的日期,并始终尝试使用最新的。我在过时的教程中浪费了无数小时