昨日[サーバー](https://cloud.tencent.com/product/cvm?from=10680)が新しい管理者アカウントを開設し、弱いパスワードが使用されたためにハッキングが発生し、sshはログインできませんでした。システムを再インストールする以外に方法はありませんでした。幸い、重要な情報はなく、サーバーは稼働していました。バスAPIとブログ、システムは午前中に再インストールされ、環境が再構築され、記録されました。
サーバーは[TencentCloud](https://cloud.tencent.com/product/cvm?from=10680)、システムはubuntu18.04、python2とpython3が付属しています。私のプロジェクトはpython3に基づいているため、直接使用できます。
1. 依存関係をインストールする
sudo apt install python3-pip
sudo apt install build-essential python-dev python-setuptools
sudo apt install build-essential python3-dev python3-setuptools
**2. virtualenv **をインストールします
Virtualenvは、仮想python環境を作成するために使用されます。これにより、Pythonアプリケーションごとに独立した開発環境を作成して、相互に影響を与えないようにすることができます。Virtualenvは次のことができます。
pip3 install virtualenv
インストールが成功したかどうかを確認します
virtualenv --version
インストールは成功しました。次に使用します。私のプロジェクトはapiサービスです。プロジェクトファイルを/ optの下に置き、ファイル名はbusAPIで、すべてのプロジェクトファイルをそこに置きます。
venvという名前の仮想環境をインストールし、プロジェクトディレクトリに入る必要があります。
virtualenv venv
新しいvenvディレクトリがプロジェクトディレクトリに作成されます。このディレクトリには、pythonを実行する基本環境用のツール、手順、およびパッケージが含まれています。次に、環境を有効にします。
source venv/bin/activate
単語(venv)は、activateコマンドを呼び出した後、コマンド文字の前に表示されます。非アクティブ化することで仮想環境を終了できます。
3. インストールプロジェクトの依存関係(Flaskフレームワーク)
私のプロジェクトファイルはディレクトリにアップロードされましたが、プロジェクトの依存関係はまだインストールされていません。依存関係、私の依存関係ファイルをインストールしてください
Requirements.txtファイルに配置されています。
pip install -r requirements.txt
この方法で依存ファイルをインストールする方が便利です。依存関係が少ない場合は、1つずつインストールできます。
**4. uWSGI **をインストールして構成します
この時点で、uWSGIを仮想環境に直接インストールしました
pip install uwsgi
プロジェクトのルートディレクトリに新しいconfig.iniファイルを作成します
vim config.ini
ドキュメントの内容
[ uwsgi]
# uwsgiの起動時に使用されるアドレスとポートソケット=127.0.0.1:8001
# Webサイトディレクトリchdirをポイントします=/opt/busAPI/
# pythonスタートアッププログラムファイルwsgi-file = run.py
# pythonプログラムの開始に使用される呼び出し可能なアプリケーション変数名= app
# プロセッサの数=4
# スレッド=2
# ステータス検出アドレス統計=127.0.0.1:9191
コメントはすでに明らかです。callable= appこのアプリはrun.pyプログラムファイルの変数であり、この変数のタイプはFlaskのアプリケーションクラスであることを説明してください。
テストを実行できます
uwsgi config.ini
ただし、これはコマンド起動の一形態にすぎません。サーバーから起動してバックグラウンドサービスとして実行するには、オペレーティング環境が実際に必要です。したがって、次に、uwsgiを起動するための別のツールをインストールする必要があります。
5. スーパーバイザーのインストール
sudo apt-get install supervisor
スーパーバイザーのグローバル構成ファイルの場所は次のとおりです。
/etc/supervisor/supervisor.conf
通常の状況では、変更を加える必要はありません。新しい* .confファイルを追加し、** / etc / supervisor / conf.d / **の下に置くだけで、新しいファイルを作成します。 busAPIプロジェクト(名前:busAPI.conf)の開始に使用されるuwsgiのスーパーバイザー構成:
[ program:busAPI]
# コマンド入力コマンドの開始=/opt/busAPI/venv/bin/uwsgi /opt/busAPI/config.ini
# コマンドプログラムが配置されているディレクトリ=/opt/busAPI#コマンドuserを実行するユーザー名=root autostart=trueautorestart=true
# ログアドレスstdout_logfile=/var/log/uwsgi_supervisor.log
# サービス開始
sudo service supervisor star
# サービスの終了
sudo service supervisor stop
# ステータスを確認する
sudo service supervisor status
**6. Nginx **をインストールします
sudo apt-get install nginx
Nginxを構成し、デフォルトファイルを変更します
/etc/nginx/sites-available/default
デフォルトはポート80です。アップルレットはhttpsである必要があるため、ここでは80を使用しませんでした。そこで、ポート443を構成し、Nginxを再起動しました。
sudo service nginx restart
Nginxサービスコマンド
# 起動
sudo service nginx start
# やめる
sudo service nginx stop
# リブート
sudo service nginx restart
# ステータスを確認する
sudo service nginx status
7. 総括する
プロセスを最初から記録し、途中で多くのピットに遭遇しましたが、最終的には操作は成功しました。要約すると、将来的に見つけるのに便利です。
より質の高いコンテンツについては、【ユースコーダー】にご注目ください。
Recommended Posts