表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
とある割烹芸人の開発日誌 ~100日以内に割烹エディターをリリースする割烹芸人~  作者: とある割烹芸人まーくつーせかんど
β版への道
27/48

72日目 割烹芸人の実装3

ということで、いったんβ版完了。予定通りなんとかなりました。



ということで、とりあえず公開していきましょう。


これまでは単純に静的ファイルを配信していただけですが、今回は動的に配信するためにいくつかやることがあります。


ちなみに、本番環境に移すことをデプロイと言います。



ということで、ちゃっちゃとやっていきます。まずは必要な言語やアプリケーションインストールしていきます。



CentoOSにはデフォルトではPython 2だけが入っているので新しいDjangoを使うためにpython3をインストールします。


インストールはソースファイルからビルドする方法か、yumでのインストールがあるみたいですが、yumは最新版がない場合もあるのでソースからの方がよさそうですね。自分がいれようとしている3.8も現時点ではないようなのでソースファイルから頑張ってみます。


下準備として外部のパッケージをインストール


sudo yum install zlib-devel libffi-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libuuid-devel xz-devel

足りないものがあればあとでインストールしなおしてまたビルドすればいいとのこと。


今回はpython3.8.0をインストールします。


curl -O https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz

tar xf Python-3.8.0.tgz

cd Python-3.8.0

./configure

make

sudo make altinstall

インストールが終わったらパスを追加してpythonコマンドを使えるようにします。


sudo visudo

#以下を書き換え

Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin

Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

Python3.8と打ち込んでpythonのバージョンが出ればOKです。これでPythonが使えるようになりました。


作った。Djangoアプリケーションファイルの転送を行います。Gitでバージョン管理しているリモートリポジトリからクローンします。


事前に、作ったDjangoアプリケーションをGitHubなどのホスティングサイトにPushしておきます。


自分はBitbucketに非公開リポジトリを作ってます。


git cloneコマンドでサーバーにファイルをコピーします。



そこまで終わったらDjangoのインストールと設定ですね。


sudo pip3.8 install -r requirements.txt

事前にrequirements.txtを作っておいてそれをpipでまとめてインストールします。



次にSQLiteを最新版にします。コマンドを使おうとすると最新版じゃないと怒られるので……


sudo wget https://www.sqlite.org/2020/sqlite-autoconf-3310100.tar.gz

tar xvfz sqlite-autoconf-3310100.tar.gz


cd sqlite-autoconf-3310100

./configure --prefix=/usr/local

make

sudo make install

sudo find /usr/ -name sqlite3


cd


sudo mv /usr/bin/sqlite3 /usr/bin/sqlite3_old

sudo ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3


export LD_LIBRARY_PATH="/usr/local/lib"


sudo echo "/usr/local/lib" >> /etc/ld.so.conf.d/sqlite.conf

sudo ldconfig


これで多分大丈夫。/usr/local/libを追加するのがミソなよう。




終わったら作ったアプリのsettings.pyを開いて


ALLOWED_HOSTS = ["(ドメイン or IPアドレス)"]

にしておきます。DEBUG もFalseにしておきます。


静的ファイルを配信できるようにNginx用に設定をします。


STATIC_URL = '/static/' # これは元からあります。

STATIC_ROOT = '/usr/share/nginx/html/static'


MEDIA_URL = '/media/'

MEDIA_ROOT = '/usr/share/nginx/html/media'

フォルダも作ります。


sudo mkdir /usr/share/nginx/html/media

sudo mkdir /usr/share/nginx/html/static

あとはstaticファイルを集めてそこに転送します。


sudo python3.8 manage.py collectstatic

開発環境で記事などを作っていた場合はメディアファイルもコピーしておきます。メディアフォルダに入って


sudo cp * /usr/share/nginx/html/media



そうしたらあとはmigrateと、createsuperuser でスーパーユーザーを作成しておきます。


python3.8 manage.py migrate

python3.8 manage.py createsuperuser


それが終わったらNginxの設定です。ちょっと前のファイルを編集


location /static {

alias /usr/share/nginx/html/static;

}


location /media {

alias /usr/share/nginx/html/media;

}


location / {

proxy_pass http://127.0.0.1:8000;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_set_header Host $http_host;

proxy_redirect off;

proxy_set_header X-Forwarded-Proto $scheme;

}

}



最後にGunicornインストールして起動します。



Gunicornをインストールします。


sudo pip3.8 install gunicorn

プロジェクトフォルダに入って、



sudo gunicorn --bind 127.0.0.1:8000 project.wsgi:application

myblogはプロジェクト名です。各自のプロジェクト名にしてください。


でドメインにアクセス。



挿絵(By みてみん)



いえーい、できました。



はい、とりあえずこれでβ版リリースです。


あとは他の機能を追加してもう少し便利にしていきましょう。




あとはテンプレ作成機能やログイン、その他もろもろを時間の許す限り実装していきます。


ということで一旦β版リリースです。

取説は後で作ります。


URL:https://k-editor.com/



挿絵(By みてみん)


結構見切り発車でしたけど何とかなるものですね……


評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ