CentOS7 + Apache2 + Python3 + Django を試す

投稿者: | 2024年2月10日

CentOS7 + Apache2 + Python3 + Django を試す方法を前回と違う方法でやってみました。

CentOS7上でDjangoアプリをApache2上で動かします。

  1. Apache2をインストールします。
    $ sudo su -
    # yum install -y httpd httpd-devel
    # systemctl start httpd
    # systemctl status -l httpd
    # systemctl enable httpd
    # systemctl is-enabled httpd
    
  2. gcc をインストールします。
    # yum install -y gcc
    
  3. python3 をインストールします。
    # yum install -y python3 python3-devel
    
  4. django をインストールします。
    # pip3 install django
    
  5. django アプリケーションをつくります。
    # cd /var/www/
    # django-admin startproject mysite
    # cd mysite
    # python3 manage.py makemigrations
    # python3 manage.py migrate
    ここで、sqlite3のバージョンが古いためにエラーが出た場合は、末尾に書いた手順で
    sqlite3を最新化します。
    # python3 manage.py runserver
    
  6. curlコマンドで django アプリケーションにアクセスし、正しく動作することを確認します。
    # curl http://localhost:8000/
    
  7. mod_wsgi をインストールします。
    # pip3 install mod_wsgi
    # find / -name mod_wsgi
    /usr/local/lib64/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so
    # cp -p /usr/local/lib64/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so /etc/httpd/modules/
    # cd /etc/httpd/conf.d/
    # vi django.conf
    -----
    LoadModule wsgi_module modules/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so
    
    WSGIScriptAlias / /var/www/mysite/mysite/wsgi.py
    WSGIPythonPath /var/www/mysite/
    
    <Directory /var/www/mysite/mysite>
        <Files wsgi.py>
            Require all granted
        </Files>
    </Directory>
    -----
    
  8. Apacheを再起動して設定を反映します。
    # systemctl restart httpd
    # systemctl status -l httpd
    
  9. curlコマンドで django アプリケーションにアクセスし、正しく動作することを確認します。
    # curl http://localhost/mysite
    

sqlite3 の最新化方法

  1. 下記サイトにアクセスして最新のソースのURLを取得します。
    https://www.sqlite.org/download.html
    
  2. ダウンロードして、makeしてインストールします。
    $ curl https://www.sqlite.org/2019/sqlite-autoconf-3300100.tar.gz -O
    $ tar zxvf sqlite-autoconf-3300100.tar.gz
    $ cd sqlite-autoconf-3300100
    $ ./configure
    $ make
    $ sudo make install
    $ sudo find /usr/ -name sqlite3
    /usr/bin/sqlite3
    /usr/lib64/python2.7/sqlite3
    /usr/lib64/python3.6/sqlite3
    /usr/local/bin/sqlite3
    /usr/local/lib64/python3.6/site-packages/django/db/backends/sqlite3
    $ /usr/local/bin/sqlite3  --version
    3.30.1 2019-10-10 20:19:45 18db032d058f1436ce3dea84081f4ee5a0f2259ad97301d43c426bc7f3df1b0b
    $ /usr/bin/sqlite3 --version
    3.7.17 2013-05-20 00:56:22 118a3b35693b134d56ebd780123b7fd6f1497668     
    $ sqlite3 --version
    3.30.1 2019-10-10 20:19:45 18db032d058f1436ce3dea84081f4ee5a0f2259ad97301d43c426bc7f3df1b0b
    $ sudo mv /usr/bin/sqlite3 /usr/bin/sqlite3_old
    $ sudo ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
    $ sudo vi /etc/ld.so.conf.d/sqlite3.conf
    -----
    /usr/local/lib
    -----
    $ sudo ldconfig
    

参考

  • https://qiita.com/dekosuke-menti/items/e416f198980c0fd6e75b
  • https://qiita.com/rururu_kenken/items/8202b30b50e3bfa75821
  • http://tetsuyai.hatenablog.com/entry/20111201/1324792477
  • https://docs.djangoproject.com/ja/3.0/intro/tutorial01/

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です