0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

さくらのレンタルサーバーでPython3.13.1とDjango5.1を使う

Last updated at Posted at 2025-01-06

概要

さくらのレンタルサーバーでPython3.13.1を動かした。その手順と課題を述べる。

現状と課題

さくらのレンタルサーバーのPython、OpenSSLのバージョンは以下の通りである。

2025年1月6日時点でのバージョン
パッケージ バージョン Path/Dir
Python 3.8.12 /usr/bin/python3
OpenSSL 1.1.1k-FreeBSD /usr
1.0.2k-dev /usr/local

OpenSSLは2つのバージョンがインストールされている。Python3.10以降ではOpenSSL1.1.1が必要なので/usrのOpenSSLを使えば良いはず。

ところが、Python3.13.1を--with-openssl=/usrで./configureしてもOpenSSLが古いと怒られる

% ./configure --prefix=$HOME/.local --with-openssl=/usr
...
checking for stdlib extension module _ssl... missing
checking for stdlib extension module _hashlib... missing
... 
%
config.log
...
configure:28287: checking whether OpenSSL provides required ssl module APIs
configure:28320: gcc -pthread -o conftest  -I/usr/include   -L/usr/lib  conftest
.c -lintl -ldl  -lutil -lssl -lcrypto >&5
conftest.c:470:10: error: #error "OpenSSL >= 1.1.1 is required"
...

この原因はつかめていないが、とりあえずPython3.13.1を動かしたい。

解決方法

OpenSSLの最新バージョン3.4.0をホームディレクトリ下にインストールし、これを使ってPythonを構築したので、以下その手順を述べる。

OpenSSLのインストール

% wget https://github.com/openssl/openssl/releases/download/openssl-3.4.0/openssl-3.4.0.tar.gz
% tar xvpzf openssl-3.4.0.tar.gz
% cd openssl-3.4.0
% ./config --prefix=$HOME/.local --openssldir=/etc/ssl
% make
% make install_sw

さくらのレンタルサーバーが提供する証明書を利用してHTTPS化する場合は、--openssldir=/etc/sslが必要である。これについては、下の記事を参考にさせていただきました。

Python3.13.1のインストール

% wget https://www.python.org/ftp/python/3.13.1/Python-3.13.1.tgz
% tar xvpzf Python-3.13.1.tgz
% cd Python-3.13.1
% ./configure --prefix=$HOME/.local --with-openssl=$HOME/.local --with-openssl-rpath=auto
% make
% make install

--with-open-ssl-rpath=autoを追加。autoのときは--with-opensslに従う。これを指定しないと、CGIで起動したときにlibssl.so、libcrypto.soへのパスが通らないため、認証系のモジュールを使うとAttributeErrorが発生する。(2025年1月8日追記)

ここではOpenSSL3.4.0を用いたが、さくらのレンタルサーバーと同じ1.1.1kをホームディレクトリ下にインストールし、これを利用しても同様にインストールできた。しかし、すでにサポート期間が切れているのでどうせなら最新の3.4.0をインストールしといたほうが良い。なお、さくらのレンタルサーバーのOpenSSL1.1.1kを使うとなぜエラーとなるのかはいまだにわかっていない。謎すぎる。

Django5.1のインストール

% pip3 install django

まとめ

さくらのレンタルサーバーのPythonは古く、最新のDjangoやFlaskなどを使うことができない。ところが、さくらのレンタルサーバーのOpenSSLではバージョンが古いため最新のPythonをインストールすることができない。そこで、OpenSSLの最新版をホームディレクトリ下にインストールし、これを使って最新のPythonを構築しインストールした。

参考

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?