タイトルに「CentOS 7にpython3.5のmod_wgsiをインストールするには」とありますか?
$ pip3.5 install mod_wgsiが機能しませんでした
Collecting mod_wgsi
Could not find a version that satisfies the requirement mod_wgsi (from versions: )
No matching distribution found for mod_wgsi
Sudo yum install libapache2-mod-wsgi-py3も失敗しました:
Loaded plugins: fastestmirror, product-id, search-disabled-repos, subscription-manager
This system is not registered with Subscription Management. You can use subscription-manager to register.
Loading mirror speeds from cached hostfile
* base: mirror.daniel-jost.net
* epel: mirrors.n-ix.net
* extras: mirror.daniel-jost.net
* ius: mirror.amsiohosting.net
* remi: mirror.23media.de
* remi-php56: mirror.23media.de
* remi-safe: mirror.23media.de
* updates: mirror.daniel-jost.net
No package libapache2-mod-wsgi-py3 available.
Error: Nothing to do
CentOS 7でpython3.5を使用してApache2.4 + mod_wsgiを実行する方法についての提案は大歓迎です!
すでにIUSリポジトリが有効になっているようです。 SCLフープを飛ばさなくても、通常のパッケージをインストールするだけで済みます。
yum install python35u-mod_wsgi
これは標準のファイルシステムの場所を使用して、標準のApache HTTPD 2.4で動作します。
/etc/httpd/conf.modules.d/10-wsgi-python3.5.conf
/usr/lib64/httpd/modules/mod_wsgi_python3.5.so
Carl's answer を試してみましたが、問題は解決しませんでした。インストールしたバージョンでは、インストール後にいくつかの追加の構成手順が必要であることがわかりました。
mod_wsgi
アップグレードをインストールする前に、Apacheのmodules
フォルダーを確認しました。
$ ls -l /lib64/httpd/modules
[...]
-rwxr-xr-x. 1 root root 172800 Oct 30 22:44 mod_wsgi.so
次に、SCLリポジトリをインストールし、mod_wsgi
のどのバージョンが利用可能かを調べました。
$ Sudo yum install -q -y centos-release-scl
[...]
$ yum search mod_wsgi
[...]
koschei-frontend.noarch : Web frontend for koschei using mod_wsgi
mod_wsgi.x86_64 : A WSGI interface for Python web applications in Apache
python27-mod_wsgi.x86_64 : A WSGI interface for Python web applications in Apache
python33-mod_wsgi.x86_64 : A WSGI interface for Python web applications in Apache
rh-python34-mod_wsgi.x86_64 : A WSGI interface for Python web applications in Apache
rh-python35-mod_wsgi.x86_64 : A WSGI interface for Python web applications in Apache
rh-python36-mod_wsgi.x86_64 : A WSGI interface for Python web applications in Apache
viewvc-httpd-wsgi.noarch : ViewVC configuration for Apache/mod_wsgi
[...]
Python 3.6を使用しているため、一致するバージョンをインストールしてApacheを再起動しました。
$ Sudo yum install -q -y rh-python36-mod_wsgi
[...]
$ Sudo systemctl restart httpd
悲しいことに、それは問題を解決しませんでした。 Apacheのmodules
フォルダを見ると、何も変わっていません。おかしい!
$ ls -l /lib64/httpd/modules
[...]
-rwxr-xr-x. 1 root root 172800 Oct 30 22:44 mod_wsgi.so
それで、何がインストールされましたか?
$ rpm -ql rh-python36-mod_wsgi
/opt/rh/httpd24/root/etc/httpd/conf.modules.d/10-rh-python36-wsgi.conf
/opt/rh/httpd24/root/usr/lib64/httpd/modules/mod_rh-python36-wsgi.so
/opt/rh/rh-python36/root/usr/share/doc/rh-python36-mod_wsgi-4.5.18
/opt/rh/rh-python36/root/usr/share/doc/rh-python36-mod_wsgi-4.5.18/CREDITS.rst
/opt/rh/rh-python36/root/usr/share/doc/rh-python36-mod_wsgi-4.5.18/LICENSE
/opt/rh/rh-python36/root/usr/share/doc/rh-python36-mod_wsgi-4.5.18/README.rst
必要なファイルをインストールしましたが、便利な場所にはありませんでした。 README.rst
ファイルからのヒントを使用して、適切な場所にコピーしました。
Sudo cp /opt/rh/httpd24/root/usr/lib64/httpd/modules/mod_rh-python36-wsgi.so /lib64/httpd/modules
Sudo cp /opt/rh/httpd24/root/etc/httpd/conf.modules.d/10-rh-python36-wsgi.conf /etc/httpd/conf.modules.d
Sudo systemctl restart httpd
これで正しいバージョンのmod_wsgi
ができました。私のDjangoアプリはApacheの下で実行されます。
Rh-python35-mod_wsgiパッケージを提供するrh-python35ソフトウェアコレクションを確認しましたか?
SCLの詳細については、以下を参照してください。
私は python 3.6 のSCLパッケージを使用します(ただし、以下の3.5を自由に置き換えてください)。
始めること:
yum install centos-release-scl
yum install rh-python36 rh-python36-mod_wsgi
SCLパッケージhttpd24-httpd
とmod_wsgiファイルをそのインストールに配置します。そのインストールを使用し、ベースCentOS httpd
パッケージをではなくインストールすることをお勧めします。執筆時点では、CentOS 7の場合、httpd
パッケージは2.4.6であり、httpd24-httpd
パッケージは2.4.37です。
次に、以下を使用してvirtualenvを作成します。
/opt/rh/rh-python36/root/usr/bin/python -m venv /path/to/venv36
source /path/to/venv36/bin/activate
pip install ...
これで、サイトの構成を/opt/rh/httpd24/root/etc/httpd/conf.d/mysite.conf
、これには次のようなものを含めることができます:
<VirtualHost *:80>
LoadModule wsgi_module modules/mod_wsgi.so
ErrorLog /var/log/httpd24/mysite-err.log
CustomLog /var/log/httpd24/mysite.log combined
# recommended way of setting Django_SETTINGS_MODULE http://stackoverflow.com/a/25496668/3189
WSGIProcessGroup mysite.settings.production
WSGIDaemonProcess mysite.settings.production python-path=/path/to/mysite/:/path/to/venv36/lib/python3.6/site-packages
WSGIScriptAlias / /path/to/mysite/wsgi.py process-group=mysite application-group=%{GLOBAL}
</VirtualHost>
ここで、SCL Apacheを次のように起動します。
systemctl start httpd24-httpd
そして、あなたのサイトは機能しているはずです。