在Arch Linux web服务器上,如何Install Python 3.7

・5 分钟阅读

前提条件

  • 运行最新Arch Linux的服务器(请参见本文 )
  • 运行的web服务器Apache或Nginx
  • sudo访问:
    • 需要作为root运行的命令以#开头,作为root运行命令的推荐方法是作为常规用户使用sudo对每个命令进行前缀,
  • 安装了文本编辑器,并熟悉它,如vi,vim,nano,emacs或类似的编辑器,

在web服务器上安装Python 3.7

在Apache上

不幸的是,不支持在同一个系统上同时运行两个版本的Apache模块(对于python 2.x和3.x ),但是,一般这不是问题。

要使用python 3.x :


# pacman -S mod_wsgi

通过编辑启用Apache mod wsgi module /etc/httpd/conf/httpd ,conf ,并且在loadmodule 命令列表的末尾添加以下内容:


LoadModule wsgi_module modules/mod_wsgi.so

在Nginx上

要使用python 3.x :


# pacman -S uwsgi-plugin-python

测试python

在适当的目录中,使用以下内容创建test.py


#-*- coding: utf-8 -*-
def wsgi_app(environment, start_response):
 import sys
 output = sys.version.encode('utf8')
 status = '200 OK'
 headers = [('Content-type', 'text/plain'),
 ('Content-Length', str(len(output)))]
 start_response(status, headers)
 yield output

application = wsgi_app

在Apache上

/etc/httpd/conf/httpd.conf添加到末尾,或者如果运行多个主机,请编辑相应的配置文件,然后添加适当的<VirtualHost>块:


WSGIScriptAlias /wsgi_app /srv/http/test.py

重启apache:


# systemctl restart httpd

在网络浏览器中,请访问 http://YOUR-SERVER-WEB-ADDRESS-OR-IP/wsgi_app ,你会看到一个带有python和GCC版本的测试页面。

删除刚刚创建的test.py测试文件,并删除Apache配置中的WSGIScriptAlias

重启apache:


# systemctl restart httpd

在Nginx上

创建有以下内容的文件/etc/uwsgi/wsgi_app.ini


[uwsgi]
socket = /run/uwsgi/wsgi_app.sock
uid = http
gid = http
plugins = python
chdir = /usr/share/nginx/html/
wsgi-file=test.py
callable = application

启动用户定义服务wsqi_app


# systemctl start uwsgi@wsgi_app

允许Nginx通过编辑/etc/nginx/nginx.conf来使用uWSGI,对于要测试的每个服务器块,添加以下内容,或者,如果正在使用虚拟主机,请编辑主机文件的每个配置:


location ~ wsgi_app {
 root /usr/share/nginx/html/;
 include uwsgi_params;
 uwsgi_pass unix:/run/uwsgi/wsgi_app.sock;
}

重新启动Nginx:


# systemctl restart nginx

在网络浏览器中,请访问 http://YOUR-SERVER-WEB-ADDRESS-OR-IP/wsgi_app ,你会看到一个带有python和GCC版本的测试页面。

删除刚刚创建的test.py文件,以及刚刚添加到/etc/nginx/nginx.conf中的wsgi_app的位置块。

重新启动Nginx:


# systemctl restart nginx

停止服务wsgi_app


# systemctl stop uwsgi@wsgi_app

删除刚才创建的/etc/uwsgi/wsgi_app.initest.py测试文件。

讨论
Xajhqffl profile image