anaconda(miniconda)+nginx+uwsgi導入Djangoサイト問題整理


仮想環境はpyenvの方案を採用し、以下のリンクは比較的に完備している.覚えやすいのは下手な筆頭に及ばないが,覚えておくといつも間違いない.
https://blog.csdn.net/Net_div/article/details/103701592
いくつかの間違いを記録して、後であちこち探しに行かないでください.
linuxについて理解できないコードの小学生として、minicondaを使わないことをお勧めします.ありがとうございます!
環境を説明する.
        :   Ubuntu16.0.4
	python  :Python3.6.5
	Django  :2.0.2
	mysql:5.7.28-0ubuntu0.16.04.2 (Ubuntu)
	    :  anaconda--     miniconda ,    
	uwsgi:2.0.18
	nginx:nginx/1.10.3 (Ubuntu)

問題1:conda環境でuwsgiをインストールする
参照リンク:https://blog.csdn.net/xiefeisd/article/details/89486934
  • nginxを先に閉じるか、まったく開いていないか、これを閉じるのは不要な他のエラーを少なくするためです
  • .
  • 仮想環境でpip install uwsgiを採用するとエラーが発生し、接続で紹介されているのはgccバージョンが異なるためです.
  • インストールの問題を解決し、conda install-c conda-forge uwsgi
  • 現在のchanelにこのpkgがなければ、-cパラメータを加えて見つけることができます.conda-forgeは分かりません.32ビットを指定するか64ビットを指定するか
  • です.
    質問2:uwsgs loading shared libraries:libicui 18 n.so.58異常処理
    参照リンク:https://www.cnblogs.com/shanguanghui/p/8994919.html
    (py3) [root@localhost ~] uwsgi
    uwsgi: error while loading shared libraries: libicui18n.so.58: cannot open shared object file: No such file or directory
    

    そこでuwsgiのアドレスを表示し、LDDを使用して欠落したパケットを表示します.
    (py3) [root@localhost ~] which uwsgi
    /root/anaconda3/envs/py3/bin/uwsgi
    
    (py3) [root@localhost ~] ldd /root/anaconda3/envs/py3/bin/uwsgi
        linux-vdso.so.1 =>  (0x00007ffc14fc7000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ff6b0347000)
        libm.so.6 => /lib64/libm.so.6 (0x00007ff6b0045000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007ff6afe40000)
        libpcre.so.1 => /lib64/libpcre.so.1 (0x00007ff6afbde000)
        libxml2.so.2 => /lib64/libxml2.so.2 (0x00007ff6af874000)
        libz.so.1 => /lib64/libz.so.1 (0x00007ff6af65d000)
        liblzma.so.5 => /lib64/liblzma.so.5 (0x00007ff6af437000)
        libicui18n.so.58 => not found
        libicuuc.so.58 => not found
        libicudata.so.58 => not found
        libutil.so.1 => /lib64/libutil.so.1 (0x00007ff6af233000)
        librt.so.1 => /lib64/librt.so.1 (0x00007ff6af02a000)
        libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007ff6aedf3000)
        libc.so.6 => /lib64/libc.so.6 (0x00007ff6aea30000)
        /lib64/ld-linux-x86-64.so.2 (0x00005634c289c000)
        libfreebl3.so => /lib64/libfreebl3.so (0x00007ff6ae82c000)
    
  • lddによって発見され、そのうちnot foundは3つ、つまり3つが東にないことが分かった.元の博文の紹介によると、彼に補充した.
  • linuxソフトで接続する方法で、anaconda/libの下でこれらのバッグがありますが、私が最初に採用したのはminicondaの問題が大きくなって、このいくつかのものは全然ありません.きっと他の方法がシステムに補完されていることを知っていますが、ええ、私は料理を比較して、できません.anaconda 3
  • に再インストールするしかありません.
  • もう一つの問題はソフト接続の目標位置であり、各システムが異なると推定され、私の位置は/lib/x86_64-linux-gnu/libicudata.so.58の下にある.完全にlib/ディレクトリの下で見ることができます
  • (py3) [root@localhost ~] ln -s /root/anaconda3/lib/libicui18n.so.58 /lib64/libicui18n.so.58
    (py3) [root@localhost ~] ln -s /root/anaconda3/lib/libicuuc.so.58 /lib64/libicuuc.so.58
    (py3) [root@localhost ~] ln -s /root/anaconda3/lib/libicudata.so.58 /lib64/libicudata.so.58
    

    再度lddを使用して補完済みかどうかを確認する.原文の中の后ろの问题は私は现れていないで、先にコードして后ろの间违いを防止します.これは再lddの結果です
    (py3) [root@localhost ~]# ldd /root/anaconda3/envs/py3/bin/uwsgi
    /root/anaconda3/envs/py3/bin/uwsgi: /lib64/./libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /lib64/libicui18n.so.58)
    /root/anaconda3/envs/py3/bin/uwsgi: /lib64/./libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /lib64/libicui18n.so.58)
    /root/anaconda3/envs/py3/bin/uwsgi: /lib64/./libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /lib64/libicuuc.so.58)
    /root/anaconda3/envs/py3/bin/uwsgi: /lib64/./libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /lib64/libicuuc.so.58)
    

    これはCXXABIが欠落していることを示しています.など、stringsコマンドを使用して結果を次のように表示します.
    [root@localhost lib64]# strings /usr/lib64/libstdc++.so.6|grep CXXABI
    CXXABI_1.3
    CXXABI_1.3.1
    CXXABI_1.3.2
    CXXABI_1.3.3
    CXXABI_1.3.4
    CXXABI_1.3.5
    CXXABI_1.3.6
    CXXABI_1.3.7
    CXXABI_TM_1
    

    確かにCXXABIはありません1.3.8 CXXABI_1.3.9のようなものは、anaconda 3のlibstdc++.so.6は/lib 64の下、libstdc++に移動する.so.6はlibstdc++.so.6.0.24のソフトチェーン(lib 64でll libstc*を見ることができます)、確かにanconda 3の高バージョンの高copyを過去にします.
     libstdc++.so.6.0.24   /lib64   。
      cp libstdc++.so.6.0.24 /lib64/
         libstdc++.so.6    。
      rm -rf libstdc++.so.6
           。
      ln -s libstdc++.so.6.0.24 libstdc++.so.6
                 。
    

    これで問題2は解決した.