2022年5月21日土曜日

django の設定 諸々

〇  settings.pyは

ALLOWED_HOSTS = ['公開用ドメイン名','localhost','127.0.0.1']

のようにしておくと、ローカルと公開用フォルダで同じファイルが使えて、便利

gitを公開用へのアップロードに用に使おうとしたが、いまいち細かい操作が心配なので、結局FTPを使うことにした。ただ、ローカルの内容は、gitで保管していくことにした。


〇urls.pyは

 上から順に照合していく

   path('admin/',admin.site.urls),

   path('',include('test.urls'),

  2行目のように何も指定しないなら、admin以外のどんな文字列も2つめに照合

〇 makemigrationsコマンドは アプリごとに

  python3 manage.py makemigrations (アプリ名)

〇 Xサーバでは、admin画面はcssが読み込めないとあるようだが

   http://liberal.triplearner.com/2021/05/09/django-xserver2/




wslでdjango その2

 wslをvscodeで使ってみる

VisualStudioCodeリモート開発拡張パックをサイトからインストール

Remote WSLのインストールを促される

左下に緑色のバックカラーのアイコンがあらわれるのでこれをクリック

*******

まだ、使い方がよくわかってないが

ターミナルは

sudo suで

conda acitivate (環境名)

が使えるようになるようだ


githubはtokenで最近、アクセス必要になった

githubサイトで、右上のメニューからsettigns>developer settigns>personal access tokenで取得できるようだ

2022年5月19日木曜日

xサーバにdjango その4

 manage.pyがあるディレクトリに.htaccessとindex.cgiを設置
仮想環境のパス確認は conda info -e 
この結果を参考に index.cgiを以下のように

#!/home/...仮想環境のパス.../python3.8
# coding: utf-8
import sys, os
import cgitb  #cgitbでトレースバックを生成する
sys.path.insert(0, '/home/....仮想環境のパス..../bin')
os.environ['DJANGO_SETTINGS_MODULE'] = 'プロジェクト名.settings'  
from wsgiref.handlers import CGIHandler
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application() 
CGIHandler().run(application)
注意!!!***先頭は最後pythonでなくpython3.8がいいようだった。
なお、全角スペースがなぜか入っていたりして、うまくいかないときあったので
サンプルからコピーしてきたとき、混じったのかも。

chmod 755 index.cgi

.htaccessは
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /ルートディレクトリに合わせる/index.cgi/$1 [QSA,L]
静的ファイルをまとめる
python manage.py collectstatic

ようやくxサーバでhttps:// ドメイン名 /adminが出るようになった。djangoが使えそう。

2022年5月17日火曜日

wslでdjango その1

 ローカルでもdjangoいれてみる
まずminicondaを入れてみる
 wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
 sh Miniconda3-latest-Linux-x86_64.sh
source .bashrc
プロンプトの色が見にくいので
dircolors -p > ~/.dircolors
34青を37白に
eval $(dircolors -b ~/.dircolors)を.bashrcに追記

condaで仮想環境に入ったら
conda install django==3.2
django-admin startproject helloworld
cd helloworld
python3 manage.py runserver
でhttp://127.0.0.1:8000/で確認できる

2022年5月16日月曜日

xサーバにdjango その3

minicondaを入れたが、勝手にbase環境に入らないように設定可(要再ログイン) 
 conda config --set auto_activate_base false
自動的にbase環境に入るように設定したい場合は
 conda config --set auto_activate_base true
conda create -n py38 python=3.8
で、pythonのバージョンを指定して環境を作成できる。
いっしょに、pipやopensslなども入れてくれるようだ。
環境の有効、無効の切り替えは
conda activate py38
conda deactivate
環境のリスト conda info -e
削除は いったん conda deactivateしてからconda remove --n py38 --all
conda install django==3.2
***Gitの準備 を参考にさせていただきました
サーバ上のホームページを設置するディレクトリ内  $ git init
$ git init --bare    作成する場所は、非公開ディレクトリに「プロジェクト名.git」という名前でディレクトリを作ってその中でこのコマンドを実行←ここが重要

「post-receive」というファイルを作って、ベアリポジトリのディレクトリ内の「hooks」というディレクトリの中に保存    ベアリポジトリにPushされたタイミングで自動的にこのファイルが実行   「post-receive」ファイルのパーミッションを「777」
#!/bin/sh
cd ~/[ドメイン名]/public_html/[プロジェクト名]
unset GIT_DIR
git pull origin master

本番リポジトリにリモートリポジトリの登録をしておきます。リモートリポジトリには、先程作ったベアリポジトリを指定します。
$ git remote add origin ~/[ドメイン名]/[プロジェクト名].git
一度登録したリモートリポジトリを変更したい場合は、以下のコマンド。
$ git remote set-url origin ~/[ドメイン名]/[プロジェクト名].git
登録内容を確認するには、以下のコマンド。
$ git remote -v
ローカルリポジトリにもリモートリポジトリとして、サーバのベアリポジトリを登録します。
#リモートリポジトリの登録(エックスサーバーの場合)
$ git remote add origin ssh://[サーバID]@[ドメイン名]:10022/home/[サーバID]/[ドメイン名]/[プロジェクト名].git

#ローカルリポジトリからリモートリポジトリへプッシュ
$ git push origin master

2022年5月15日日曜日

xサーバにdjango その2

 ということで curlの最新版を入れることに

その前にopensslも最新版にしたほうがいいらしい

$ wget http://www.openssl.org/source/openssl-1.1.1o.tar.gz
$ tar xvfz openssl-1.1.1o.tar.gz

$ cd openssl-1.1.1o

$ ./config shared --prefix=$HOME/opt/ssl --openssldir=$HOME/opt/ssl
$ make
$ make install

curlもアップデート インストール
$ wget https://curl.haxx.se/download/curl-7.80.0.tar.gz
$ tar zxvf curl-7.80.0.tar.gz
$ cd curl-7.80.0
$ ./configure --with-ssl=$HOME/opt/ssl --enable-libcurl-option -- prefix=$HOME/opt/curl
$ make
$ make install
$ export PATH=$HOME/opt/curl:$PATH
$ source .bashrc

ここで、Linuxbrewを入れようとすると、Homebrewを入れるよう促される。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
しかし、gitが新versionになっていない。

途中libで始まるライブラリがないといわれるので
cd ~/opt/curl/lib
ln -s $HOME/opt/ssl/lib/libssl.so.1.1 libssl.so.1.1
ln -s $HOME/opt/ssl/lib/libcrypto.so.1.1 libcrypto.so.1.1

export PATH=$HOME/opt/curl/bin:$PATH
source .bashrc
ようやくHomebrewインストールにこぎつけたが、「sudo を実行できません。」で結局だめでした

minicondaをinstall

$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
$ sh Miniconda3-latest-Linux-x86_64.sh
source .bashrc


export PATH=/home/******/miniconda3/bin:$PATH


xサーバーにdjango その1

 xサーバでdjangoが使えるようなので試してみた。が、設定はけっこう大変。

1 SSHをセット。サーバの管理画面からSSHをOnにして、秘密鍵等を取得。

2 SSHからLinuxbrewをインストールしようと試す。しかし、gitのバージョンが古いのでアップデートが必要。

その前にmsgfmtのインストール

$ mkdir local (~で)

$ cd tmp  
$ wget https://ftp.gnu.org/gnu/gettext/gettext-0.21.tar.gz
$ tar zxf gettext-0.21.tar.gz
$ rm gettext-0.21.tar.gz
$ cd gettext-0.21
$ ./configure --prefix=$HOME/local
$ make
$ make install
$ ~/local/bin/msgfmt --version    # msgfmt インストールしたバージョン確認
$ cd  ..
$ rm -rf gettext-0.21  
               

export PATH=$HOME/local/bin:$PATH
$ source .bashrc

ここでやっとgitのインストール
$ cd tmp 
$ wget https://www.kernel.org/pub/software/scm/git/git-2.30.0.tar.gz
$ tar zxf git-2.30.0.tar.gz
$ rm git-2.30.0.tar.gz
$ cd git-2.30.0
$ ./configure --prefix=$HOME/local
$ make all
$ make install
$ ~/local/bin/git --version   # git の確認
$ cd  ..
$ rm -rf git-2.30.0 

こんどは、curlのバージョンが古いと判明
その2へとつづく