# aptitude install supervisor
The following NEW packages will be installed:
python-medusa{a} python-meld3{a} supervisor
0 packages upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/290 kB of archives. After unpacking 1,552 kB will be used.
Do you want to continue? [Y/n/?] Y
Selecting previously deselected package python-medusa.
(Reading database ... 35128 files and directories currently installed.)
Unpacking python-medusa (from .../python-medusa_0.5.4+clean-2ubuntu1_all.deb) ...
Selecting previously deselected package python-meld3.
Unpacking python-meld3 (from .../python-meld3_0.6.5-3build1_amd64.deb) ...
Selecting previously …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 LNP [Linux Nginx Python] 堆栈(这甚至是一件事吗?呵呵),但我遇到了一些困难。
很多关于这样做的博客文章和文档似乎都围绕着使用 Upstart 来管理 uWSGI 进程,这很好,但我注意到使用 init.d 脚本安装的包和/etc/uwsgi/{apps-enabled,apps-available}. 很明显,有更好的方法来做到这一点。
我有一些配置文件(如下),但我似乎无法启动 uwsgi 进程,运行 init.d 脚本什么也不做,报告成功但无提示失败(甚至没有日志)。
当我直接执行 uWSGI 时,我得到了这个:
% sudo uwsgi -i /etc/uwsgi/apps-enabled/site.ini
tmp = /
[uWSGI] getting INI configuration from /etc/uwsgi/apps-enabled/site.ini
Run Code Online (Sandbox Code Playgroud)
/usr/lib/uwsgi/plugins/python27_plugin.so
同样值得注意的是,当我尝试访问该站点时抛出的错误:
% cat logs/error.log
2012/01/08 23:26:12 [crit] 9167#0: *13 connect() to unix://tmp/site.sock failed (2: No such file or directory) while connecting to upstream, client: 60.241.99.33, server: mysite.com, request: "GET / HTTP/1.1", upstream: "uwsgi://unix://tmp/site.sock:", host: "mysite.com"
Run Code Online (Sandbox Code Playgroud)
uWSGI 配置
% cat /etc/uwsgi/apps-enabled/config.ini
[uwsgi] …Run Code Online (Sandbox Code Playgroud) 我已经在我的 Ubuntu 10.04 上构建/安装了 Python 2.7,我刚刚看到 SSL 没有激活。
我必须重建 Python 吗?
如何使用 SSL 支持重建它并更新我当前的安装?
我不希望并行进行新安装。
尝试使用 oauth2:
>>> import oauth2
Run Code Online (Sandbox Code Playgroud)
回溯(最近一次调用最后一次):
文件“”,第 1 行,在
文件“/usr/local/lib/python2.7/site-packages/oauth2/ init .py”中,第 32 行,在 import httplib2
文件“/usr”中/local/lib/python2.7/site-packages/httplib2/ INIT py”为,线801,在类HTTPSConnectionWithTimeout(httplib.HTTPSConnection):
AttributeError的: '模块'对象没有属性'HTTPSConnection'
文档告诉你
HTTPS 支持仅在使用 SSL 支持编译套接字模块时可用。
所以我想激活 SSL 支持
尝试安装 pyOpenSSL
$ python setup.py build
Run Code Online (Sandbox Code Playgroud)
给这个
/usr/local/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'zip_safe'
warnings.warn(msg)
running build
running build_py
running build_ext
building 'OpenSSL.crypto' extension
gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC …Run Code Online (Sandbox Code Playgroud) 即使我按照官方说明进行操作,当我使用 uWSGI 启动 Django 测试站点时,也不会加载管理界面的 CSS 文件。例如http://localhost:8443/static/admin/css/base.css,如果我打开 CSS 文件的 URL,则会收到 404 错误。我搜索了本地文件,我猜它的路径是/usr/local/lib/python3.3/dist-packages/django/contrib/admin/static/admin/css/base.css; 所以我也尝试以 root 身份运行 uwsgi,但没有任何改变。
我使用没有问题python3 manage.py runserver。如果我打开http://localhost:8000/static/admin/css/base.css,文件将加载到浏览器中,并将样式应用于管理页面。
这是我在 bash 中执行的命令:
uwsgi --ini ~/.uwsgi/conf/django.ini --set-placeholder project_name=mysite --set-placeholder port=8443
Run Code Online (Sandbox Code Playgroud)
这是 django.ini 的内容:
[uwsgi]
module = %(project_name).wsgi:application
https = :%(port),/usr/local/nginx/conf/server.crt,/usr/local/nginx/conf/server.key,HIGH
strict = true
chdir = /home/marco/django-projects/%(project_name)
env = DJANGO_SETTINGS_MODULE=%(project_name).settings
socket = /home/marco/.uwsgi/%(project_name).socket
pidfile = /home/marco/.uwsgi/%(project_name).pid
daemonize = /home/marco/.uwsgi/%(project_name).log
master = true
enable-threads = true
harakiri = 20
max-requests = 5000
vacuum …Run Code Online (Sandbox Code Playgroud) 我使用 nginx 作为几个 Flask 应用程序的代理,使用 uwsgi 作为中间件。这是我的测试应用程序的 nginx 配置。
server {
listen 80;
server_name test.myapp.com www.test.myapp.com;
charset utf-8;
client_max_body_size 250M;
location / { try_files $uri @testapp; }
location @testapp {
include uwsgi_params;
uwsgi_pass unix:/tmp/testapp_uwsgi.sock;
}
location /forecaster/components/ {
alias /opt/test/client/app/components/;
}
Run Code Online (Sandbox Code Playgroud)
}
Run Code Online (Sandbox Code Playgroud)
我很确定 nginx 实际上并没有为静态文件提供服务,即使我注释掉了该location块,文件也是从某些东西中获取的。我在 nginx 日志中看到了 200 个,在 uWsgi 日志中也看到了 200 个。你怎么知道哪个是服务静态文件的?我想烧瓶应用程序也可以为他们服务?
/opt/test/client/app/components/ 肯定存在,并且对其他人可读。有什么方法可以强制 uwsgi 不处理这些请求?
为了测试 salt-stack,我想将一个配置文件复制到另一个远程(我正在本地主机中测试 master 和 minion)
/etc/salt/minion :
master: 127.0.0.1
file_roots:
base:
- /srv/salt/base
Run Code Online (Sandbox Code Playgroud)
/etc/salt/master:
interface: 0.0.0.0
Run Code Online (Sandbox Code Playgroud)
/srv/salt 树:
# tree srv/
srv/
??? salt
? ??? base
? ??? env
? ??? envpy.template
? ??? init.sls
??? top.sls
Run Code Online (Sandbox Code Playgroud)
和模板文件:
# cat /srv/salt/base/env/envpy.template
This is a test !
Run Code Online (Sandbox Code Playgroud)
这是初始化文件:
# cat /srv/salt/base/env/init.sls
/home/myHome/env.py:
file:
- managed
- source: salt://base/env/envpy.template
Run Code Online (Sandbox Code Playgroud)
最后是顶级文件:
# cat /srv/salt/top.sls
base:
'*':
- base.env
Run Code Online (Sandbox Code Playgroud)
运行盐highstate:
# salt '*' state.highstate
myHost:
----------
ID: states
Function: no.None
Result: False
Comment: …Run Code Online (Sandbox Code Playgroud) 我正在努力从源代码编译 python 2.7.9,并被建议在这里提出这个问题。
按照此处描述的步骤安装 python 2.7.9 时,发生了以下错误:
python make: *** [libinstall] Error 1
Run Code Online (Sandbox Code Playgroud)
我尝试重新安装以前版本的python:
sudo apt-get install --reinstall python2.7-dev
Run Code Online (Sandbox Code Playgroud)
安装正常进行。但是,现在,当尝试导入 hashlib 时,我得到以下信息:
Traceback (most recent call last):
File "./server.py", line 5, in <module>
import hashlib
File "/usr/lib/python2.7/hashlib.py", line 138, in <module>
_hashlib.openssl_md_meth_names)
AttributeError: 'module' object has no attribute 'openssl_md_meth_names'
Run Code Online (Sandbox Code Playgroud)
我也无法使用pip安装任何软件包,因为提供的唯一输出是:
Traceback (most recent call last):
File "/usr/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
ImportError: No module named pkg_resources
Run Code Online (Sandbox Code Playgroud)
我安装了python-setuptools …
我有带有官方 python-2.7 墨盒的可扩展 openshift 在线应用程序。默认情况下,一切都由 mod_wsgi 处理程序提供。如何配置我的应用程序和/或 Apache 以使用 Apache 而不是 python 后端在我的存储库中提供一些静态文件(如图像、css 和 javascript)?
我正在使用 apache 网络服务器和 mod_wsgi 将请求传输到 django。
$ apache2ctl -v
Server version: Apache/2.4.10 (Raspbian)
Server built: Sep 17 2016 16:40:43
Run Code Online (Sandbox Code Playgroud)
我正在使用这个 apache 站点来声明 django 应用程序:
ServerName example.com
DocumentRoot /srv/webapps/myapp
<Directory /srv/wepapps/myapp/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess example.com python-path=/srv/webapps/myapp:/usr/local/lib/python3.4/dist-packages:/usr/lib/python3/dist-packages
WSGIProcessGroup example.com
WSGIScriptAlias / /srv/webapps/myapp/mysite/wsgi.py
LogLevel warn
ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
Run Code Online (Sandbox Code Playgroud)
它工作得很好,但如果引发异常,它会显示错误 500,但我的example.com_error.log. 如果我将设置修改为 set Debug = True,我可以在 Web 浏览器中看到错误,但在我的 /var/log/apache2 文件中也可以看到错误。但我真的不想在我的生产环境中保留这个设置。
你知道为什么我必须Debug = True允许 django 写入系统日志吗?
在此先感谢您的回答,如果我在英语方面犯了一些错误,我深表歉意;-)
在 GCP 中启动一些小型虚拟机,并认为我会给 Ubuntu 20.04 LTS 最小的尝试。执行“apt update; apt upgrade”后,我可以安装像 Apache 这样的软件包,但使用 PIP 的运气为零:
root@ubuntu-rr58:/home/me# apt install python-pip
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package python-pip
Run Code Online (Sandbox Code Playgroud)
我已经验证了 Universe、Multiverse 和 Restricted 存储库可用:
root@ubuntu-rr58:~# grep ^deb /etc/apt/sources.list
deb http://us-central1.gce.archive.ubuntu.com/ubuntu/ focal main restricted
deb http://us-central1.gce.archive.ubuntu.com/ubuntu/ focal-updates main restricted
deb http://us-central1.gce.archive.ubuntu.com/ubuntu/ focal universe
deb http://us-central1.gce.archive.ubuntu.com/ubuntu/ focal-updates universe
deb http://us-central1.gce.archive.ubuntu.com/ubuntu/ focal multiverse
deb http://us-central1.gce.archive.ubuntu.com/ubuntu/ focal-updates multiverse
deb http://us-central1.gce.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse deb http://security.ubuntu.com/ubuntu focal-security …Run Code Online (Sandbox Code Playgroud) python ×10
ubuntu ×3
uwsgi ×3
debian ×2
django ×2
nginx ×2
apache-2.2 ×1
apache-2.4 ×1
apt ×1
aptitude ×1
flask ×1
installation ×1
linux ×1
logging ×1
mod-wsgi ×1
pip ×1
saltstack ×1
ssl ×1
static-files ×1
supervisord ×1
ubuntu-11.04 ×1
ubuntu-20.04 ×1