ホームページ バックエンド開発 Python チュートリアル 在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程

在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程

Jun 10, 2016 pm 03:14 PM
python

最近尝试把项目迁移到Python环境下,特别新装了一台干净的Debian系统,准备重新配置环境,上网找了一些运行Python Web的环境方案,最后敲定Nginx+uWSGI组合,Nginx用得比较多,熟练些;uWSGI据说性能不错,想尝试一下。

网上大部分教程都是要求到uWSGI官方网站下载源码包,然后通过编译的方式安装,比如对于一台新Debian系统,可以通过下面的命令安装:

apt-get update
apt-get upgrade
apt-get install build-essential psmisc
apt-get install python-dev libxml2 libxml2-dev
apt-get install python-setuptools
cd /opt/
wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar -zxvf uwsgi-latest.tar.gz
mv uwsgi-latest/ uwsgi/
cd uwsgi/
python setup.py install

ログイン後にコピー

还有一些配置我就不介绍了,大家可以参考Linode Library的《Deploy Python Code with WSGI using uWSGI and nginx on Debian 6 (Squeeze)》介绍。

今天要介绍的是利用APT源直接apt-get install安装配置我们所需要的环境,首先按惯例先安装MySQL和Nginx:

然后通过Debian Packages网站找到我们所需要的uWSGI在sid里,sid版里的东西表示仍在开发测试中,不是最终稳定版,不过对于我们测试来说是够用了,为了用sid里面的软件包,我们还需要修改我们的/etc/apt/sources.list源,添加deb http://ftp.tw.debian.org/debian sid main non-free contrib这一行,或者直接输入命令:

echo "deb http://ftp.tw.debian.org/debian sid main non-free contrib" >> /etc/apt/sources.list

ログイン後にコピー

配置过源列表后,我们就可以通过下面的命令安装了:

apt-get update
apt-get install uwsgi uwsgi-core uwsgi-plugin-python

ログイン後にコピー

安装完成后,配置文件按惯例放在了/etc/uwsgi里面,服务控制可以通过invoke-rc.d uwsgi后面跟命令参数来实现,不过这里有个小插曲我不得不提一下,安装时可能会报这样的错误:

The following packages have unmet dependencies: 
libc6-dev : Breaks: gcc-4.4 (< 4.4.6-4) but 4.4.5-8 is to be installed. 
E: Broken packages

ログイン後にコピー

看样子是依赖包gcc版本不匹配,我后来通过下面的方式解决了:

apt-get update
apt-get upgrade # 先尝试升级系统软件包
 
apt-get install libc6-dev

ログイン後にコピー

接下来就是安装django以及Python的MySQL支持,继续APT命令:

apt-get install python-django python-mysqldb

ログイン後にコピー

通过上面的步骤,Python环境应该安装到你的系统里了,切换到/usr/lib:

cd /usr/lib
ls -l | grep python

ログイン後にコピー

你可能会发现系统内被默认安装了几个版本的Python,比如我这里就安装有3个版本:

/usr/lib/python2.6
/usr/lib/python2.7
/usr/lib/python3

ログイン後にコピー

如何确定当前的Python默认版本呢?很容易,直接通过下面的命令就可以了:

python --version

ログイン後にコピー

大家知道django是安装到python目录下的site-packages下的,但是这几个python目录下都没有site-packages这个文件夹,其实我们可以先通过下面的命令定位一下:

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

ログイン後にコピー

上面的命令会在控制台上打印Python包路径,比如这里我们可能获得dist-packages这个目录,切换到这个目录你就会发现django在那儿啦。给django-admin.py加上权限,再做个符号连接,便于我们以后操作(我这里Django在Python2.7下):

chmod 777 /usr/lib/python2.7/dist-packages/django/bin/django-admin.py
ln -s /usr/lib/python2.7/dist-packages/django/bin/django-admin.py /usr/local/bin

ログイン後にコピー

记下Django所在的Python版本,然后通过下面的命令切换uwsgi的默认Python版本(一般不需要切换):

update-alternatives --config uwsgi-plugin-python

ログイン後にコピー

好啦,到这里基本上安装部分就介绍完了,下面讲解配置部分,首先建立我们项目的文件夹,比如说放在/home/user/www下,然后通过下面的命令创建名为mysite的Django项目:

cd /home/user/www
django-admin.py startproject mysite

ログイン後にコピー

好了,这下/home/user/www目录下应该有个子文件夹名字叫mysite,我们需要丢个wsgi的配置文件到/home/user/www/mysite/里面去,配置文件命名为wsgi.py,内容如下:

接下来是修改uwsgi配置文件,先通过如下命令按照刚才的设置建立个配置文件:

cat > /etc/uwsgi/apps-enabled/www.ini << EOF
[uwsgi]
socket = /var/run/uwsgi/app/www/socket
chmod-socket = 666
limit-as = 256
processes = 6
max-request = 2000
memory-report = true
enable-threads = true
pythonpath = /home/user/www
chdir = /home/user/www/mysite
wsgi-file = /home/user/www/mysite/wsgi.py
EOF
 
# 重启uwsgi
invoke-rc.d uwsgi restart

ログイン後にコピー

注意上面的socket配置,这个在我机子上是这个路径,大家可以cd /var/run里面找下,然后配置正确,接下来建立Nginx配置文件:

cat > /etc/nginx/sites-enabled/www << EOF
server {
    listen  80;
    server_name localhost;
    location / {
        include uwsgi_params;
        uwsgi_pass unix:///var/run/uwsgi/app/www/socket;
    }
}
EOF

ログイン後にコピー

这里的uwsgi_pass依旧是上面我们找到的socket,注意一下server_name,这个是我们绑定的域名,通过nginx -s reload重新加载nginx。

好了,现在可以访问看看是不是成功了?如果出现502 Bad Gateway,可以检查一下uwsgi是否正常启动,通过ps aux | grep uwsgi看下进程列表,最后在检查下socket路径是否正确。

假如出现uWSGI Error:Python application not found这个问题,主要是路径配置问题,这点你可以查阅/var/log/uwsgi下面的日志文件,比如我就遇到过ImportError: No module named django.core.handlers.wsgi这个问题,实际上是wsgi.py里面路径配置不正确。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

DeepSeekをプログラムする方法 DeepSeekをプログラムする方法 Feb 19, 2025 pm 05:36 PM

DeepSeekはプログラミング言語ではなく、深い検索の概念です。 DeepSeekの実装には、既存の言語に基づいて選択が必要です。さまざまなアプリケーションシナリオでは、適切な言語とアルゴリズムを選択し、機械学習技術を組み合わせる必要があります。コードの品質、保守性、テストが重要です。適切なプログラミング言語、アルゴリズム、ツールをお客様のニーズに応じて選択し、高品質のコードを作成することにより、DeepSeekを正常に実装できます。

Deepseekapiにアクセスする方法-Deepseekapiアクセスコールチュートリアル Deepseekapiにアクセスする方法-Deepseekapiアクセスコールチュートリアル Mar 12, 2025 pm 12:24 PM

Deepseekapiアクセスと電話の詳細な説明:クイックスタートガイドこの記事では、Deepseekapiにアクセスして呼び出す方法を詳しく説明し、強力なAIモデルを簡単に使用するのに役立ちます。ステップ1:APIキーを取得して、DeepSeekの公式Webサイトにアクセスし、右上隅の「オープンプラットフォーム」をクリックします。一定数の無料トークン(API使用量を測定するために使用)が得られます。左側のメニューで、[apikeys]をクリックし、[Apikeyの作成]をクリックします。 Apikey(たとえば、「テスト」)に名前を付け、生成されたキーをすぐにコピーします。このキーは一度しか表示されないため、必ず適切に保存してください

Pi Coinのメジャーアップデート:Pi Bankが来ています! Pi Coinのメジャーアップデート:Pi Bankが来ています! Mar 03, 2025 pm 06:18 PM

Pinetworkは、革新的なモバイルバンキングプラットフォームであるPibankを立ち上げようとしています! Pinetworkは本日、Pibankと呼ばれるElmahrosa(Face)Pimisrbankのメジャーアップデートをリリースしました。これは、従来の銀行サービスと、フィアット通貨の原子交換と暗号通貨の原子交換を実現します(resuptocursisを使用するなど、聖職者のような聖職者など、 DC)。ピバンクの魅力は何ですか?見つけましょう!ピバンクの主な機能:銀行口座と暗号通貨資産のワンストップ管理。リアルタイムトランザクションをサポートし、生​​物種を採用します

定量通貨取引ソフトウェア 定量通貨取引ソフトウェア Mar 19, 2025 pm 04:06 PM

この記事では、3つの主要な交換、Binance、OKX、およびgate.ioの定量的取引機能を調査し、定量的トレーダーが適切なプラットフォームを選択できるようにすることを目指しています。この記事では、最初に定量的取引の概念、利点、課題を紹介し、APIサポート、データソース、バックテストツール、リスク制御機能など、優れた定量的取引ソフトウェアが持つべき機能を説明します。その後、3つの交換の定量的取引機能を比較し、詳細に分析し、それぞれその利点と短所を指摘し、最終的にさまざまなレベルの経験の定量的トレーダーにプラットフォーム選択の提案を提供し、リスク評価と戦略的バックテストの重要性を強調しました。 あなたが初心者であろうと経験豊富な定量的トレーダーであろうと、この記事はあなたに貴重なリファレンスを提供します

Deepseek R1モデルをローカルに展開する方法-DeepseekローカルにR1モデルチュートリアルをインストールする Deepseek R1モデルをローカルに展開する方法-DeepseekローカルにR1モデルチュートリアルをインストールする Mar 12, 2025 pm 12:15 PM

DeepSeeKR1モデルローカル展開ガイド:データ分析と予測のロック解除潜在的なDeepSeekは強力なデータ分析と予測ツールであり、そのR1モデルはさまざまなアプリケーションシナリオに効率的かつ正確なモデルサポートを提供できます。このガイドでは、オンプレミス環境にdeepseekr1モデルを展開する方法に関する詳細な指示を提供して、迅速に開始し、そのパワーを活用するのに役立ちます。 DeepSeekR1モデルのローカル展開ステップの準備段階のシステム要件:ローカルマシンがDeepSeekの最小システム構成要件を満たしていることを確認してください(特定の要件については、公式のDeepSeekドキュメントを参照してください)。ソフトウェアのインストール:DeepSeekが提供するインストールパッケージをダウンロードしてインストールし、インストールガイドに従ってください

Pythonでコールを実装する方法-DeepseekPythonコールメソッドガイド Pythonでコールを実装する方法-DeepseekPythonコールメソッドガイド Mar 12, 2025 pm 12:51 PM

Deepseek Deep Learning Library Python Call Guide Deepseekは、さまざまなニューラルネットワークモデルの構築とトレーニングに使用できる強力なディープラーニングライブラリです。この記事では、Pythonを使用してDeepSeekを呼び出すためにDeep Learning Developmentを詳細に紹介します。 Python 1を使用してDeepseekを呼び出す手順。Python環境とPIPツールがインストールされていることを確認してください。次のコマンドを使用してDeepSeekをインストールします。PipinStallDeepSeek2をインポートします。

バイナンスアルファとは何ですか バイナンスアルファとは何ですか Mar 25, 2025 pm 03:39 PM

ANBI Alphaは、Binanceプラットフォームのプロのトレーダーや投資家向けのツールおよびサービス集約プラットフォームです。そのコア関数には、次のものが含まれます。1。戦略スクエアは、さまざまな取引戦略を結びつける。 2。カスタム取引戦略を許可する戦略ビルダー。 3.市場分析ツールを提供する高度なデータ分析。 4。専門的な投資家のニーズを満たすための機関レベルのサービス。

取引所を介してオプションヘッジ命令を送信できる交換 取引所を介してオプションヘッジ命令を送信できる交換 Mar 28, 2025 pm 03:27 PM

2024年の時点で、トレーディング端末を介してオプションヘッジングの指示を直接送信するサポートをサポートする主流の暗号通貨交換:1。デリビットは、デルタヘッジやガンマスカルピングなどの高度な戦略をサポートし、Webバージョン/APIワンクリックヘッジを提供します。 2。OKXは、ボラティリティヘッジと戦略の組み合わせツール、およびWeb/アプリに組み込みのヘッジパネルをサポートしています。 3. Binanceは保護ヘッジをサポートし、手動またはAPIの組み合わせ位置を必要とします。 4。CME、標準オプションを提供し、ブローカーを通じてアクセスを必要とする。 5。Ledgerx、専門レベルのヘッジツールを提供し、機関の認証を必要とします。

See all articles