如何设置 Linux Apache Mysql Python 服务器
Apache、MySQL 和 Python 可以协同使用,从 Linux 系统托管和服务网站。这类软件被称为 LAMP 堆栈(Linux、Apache、MySQL、Python),尽管有时“P”表示 PHP,它可以作为 Python 的补充或替代品使用。 Apache 为网站提供服务,MySQL 在数据库中存储和检索信息,Python 可以生成 HTML 和相关代码供网站访问者查看。
在本教程中,我们将逐步介绍在 Linux 上安装 Apache、MySQL 和 Python。安装过程很简单,但 Apache 需要一些配置才能读取 Python 脚本,并且 MySQL 必须运行初始设置才能使用。我们将制作一个简单的“Hello World”Python 脚本,然后从 Web 浏览器访问它,以显示 Apache 正在按预期读取代码。
你知道吗?
Python 本身也可以用来托管网站。这不适合生产网站,但可用于生成仅供个人使用的非常快速的网站。请参阅我们的在 Linux 中配置简单 Web 服务器的教程,了解如何使用 Python 托管网站。
在本教程中您将学习:
如何在所有主要 Linux 发行版上安装 Apache、MySQL 和 Python
如何运行 MySQL 的首次设置
如何配置 Apache 读取 Python 文件
如何创建测试 Python 脚本并使用 Apache 托管它
安装 Apache、MySQL 和 Python
我们需要做的第一件事是为 Linux 系统准备适当的软件包。安装命令将根据您运行的 Linux 发行版而有所不同。
您可以使用下面适当的命令通过系统的包管理器安装 Apache、MySQL 和 Python。
要在 Ubuntu、Debian 和 Linux Mint 上安装 Apache、MySQL 和 Python:
$ sudo apt update
$ sudo apt install apache2 mariadb-server mariadb-client python3
要在 Fedora、CentOS、AlmaLinux、Red Hat 和 Rocky Linux 上安装 Apache、MySQL 和 Python:
$ sudo dnf install httpd mariadb-server python3
配置MySQL
我们应该做的第一件事就是准备好 WordPress 数据库。为此,我们首先需要对 MySQL 进行一些初始配置。首先,在终端中执行以下命令:
$ sudo mysql_secure_installation
将第一个响应留空并按 Enter 键。您应该对其余提示回复 y
(是),并在出现提示时配置 root 密码。此设置只需片刻即可完成。
配置阿帕奇
此时 Apache 应该已经安装并运行,可以通过打开浏览器并导航到系统上的环回地址 127.0.0.1
或只是 localhost
来验证这一点。
尽管 Apache 已经托管我们的网站(或缺少),但最佳实践是为我们的网站配置新的 Apache 虚拟主机文件。如果您想托管多个网站或更改网站目录的安装位置等,这将为您提供更大的灵活性。
使用以下命令将默认 Apache 配置复制到新文件中。我们将新的网站文件命名为
mysite.conf
:$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/mysite.conf
注意:在基于 RHEL 的系统上,
/etc/apache2
目录为/etc/httpd
。如有必要,调整命令。然后,使用 nano 或您喜欢的文本编辑器打开此文件:
$ sudo nano /etc/apache2/sites-available/mysite.conf
将
DocumentRoot
设置更改为我们计划安装您的 Python 网站的位置。我们只是使用mysite
作为目录名称。DocumentRoot /var/www/mysite
为
ServerName
创建设置并输入您网站的完全限定域名。如果没有,请将其保留为 localhost。ServerName your-site.com
在这些设置下面,我们需要添加以下行。这告诉 Apache 查找
index.py
(Python) 文件,并且 ExecCGI 行是必需的,以便 Apache 知道执行这些文件。<Directory /var/www/mysite> Options +ExecCGI DirectoryIndex index.py </Directory> AddHandler cgi-script .py
还为
www
前缀创建一个别名。如果您只使用本地主机,则没有必要。ServerAlias www.your-site.com
完成后,您的配置文件应如下所示。请注意,我们在配置中注释掉了别名行,因为我们仅在本地托管。
保存更改并退出文件。检查您的 Apache 配置是否有任何错误。然后,在 Apache 中启用该站点并禁用默认站点。
$ apachectl configtest $ sudo a2ensite mysite.conf $ sudo a2dissite 000-default.conf
然后,禁用
mpm_event
模块并启用mpm_prefork
和cgi
以便 Apache 可以执行我们的 Python 文件。$ sudo a2dismod mpm_event $ sudo a2enmod mpm_prefork cgi
最后,重新启动 Apache 以使新更改生效。
$ sudo systemctl restart apache2 OR: $ sudo systemctl restart httpd
制作一个Python网页
现在我们将制作一个简单的Python脚本,将其放在网站的目录中,然后导航到我们的网站,看看我们用Python制作的页面是否按预期显示。
创建必要的站点目录,以防它尚不存在:
$ sudo mkdir /var/www/mysite
在您喜欢的文本编辑器中创建以下文件:
$ sudo nano /var/www/mysite/index.py
粘贴以下代码,然后保存并退出文件:
#!/usr/bin/python3 print ("Content-Type: text/html") print() print ("<html><head>") print ("</head><body>") print ("Hello World!") print ("</body></html>")
配置正确的权限:
$ sudo chown -R www-data:www-data /var/www/mysite $ sudo chmod 755 /var/www/mysite/index.py
您现在可以导航到您的网站并看到 Apache 显示了我们的 Python 文件的内容:
结束语
在本教程中,我们了解了如何使用 Apache、MySQL 和 Python 在 Linux 系统上设置 Web 服务器。这使我们能够提供使用 Python 脚本编写的内容,同时在 MySQL 数据库中检索和存储信息。 Python 可以与 MySQL 交互并显示数据库中的信息,或者用于生成 HTML 和其他相关的 Web 代码。