
Raspbian Stretch Lite(Debian Stretch 기반)에 mod_wsgi를 설치하려고 합니다.
문서에 따르면, 다음을 사용하여 Apache와 mod_wsgi를 설치했습니다.
sudo apt -y install apache2 apache2-dev
source ~/venv/bin/activate
pip3.6 install mod_wsgi
지금까지는 모든 것이 좋아 보입니다. 설치가 성공했는지 확인하기 위해 다음을 실행했습니다.
mod_wsgi-express start-server
하지만 오류가 발생했습니다.
apache2 (mod_wsgi-express): Syntax error on line 159 of /tmp/mod_wsgi-localhost:8000:1000/httpd.conf: Cannot load /home/pi/venv/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-arm-linux-gnueabihf.so into server: /home/pi/venv/lib/python3.6/site-packages/mod_wsgi/server/mod_wsgi-py36.cpython-36m-arm-linux-gnueabihf.so: undefined symbol: forkpty
그럼 내가 뭘 잘못했나요?
mod_wsgi 문서정의되지 않은 forkpty 오류에 대한 섹션이 있습니다., 그러나 이는 Fedora 및 소스에서 mod_wsgi 빌드에만 적용됩니다.
중요한 경우에는 다음을 사용하여 Python 3.6을 설치했습니다.
sudo apt -y install build-essential checkinstall libbz2-dev libc6-dev libgdbm-dev libncursesw5-dev libreadline-gplv2-dev libsqlite3-dev libssl-dev openssl tk-dev zlib1g-dev
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
tar xzvf Python-3.6.5.tgz
cd Python-3.6.5
./configure
make
sudo make altinstall
cd ..
sudo rm -r Python-3.6.5
rm Python-3.6.5.tgz
python3.6 -m venv ~/venv
source ~/venv/bin/activate
pip3.6 install --upgrade pip
pip3.6 install setuptools wheel
답변1
해결 방법
소스에서 설치하여 작동하게 했습니다. 참고하세요--파이썬 포함옵션.
pip3.6 uninstall mod_wsgi
wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.6.4.tar.gz
tar xzvf 4.6.4.tar.gz
cd mod_wsgi-4.6.4
./configure --with-python=/usr/local/bin/python3.6
make
sudo make install
cd ..
sudo rm -r mod_wsgi-4.6.4
rm 4.6.4.tar.gz
echo "LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so" | sudo tee /etc/apache2/mods-available/wsgi.load
echo "LogLevel wsgi:info" | sudo tee /etc/apache2/mods-available/wsgi.conf
sudo a2enmod wsgi
sudo service apache2 restart
이는 명령을 제공하지 않지만 mod_wsgi-express
작동하는 설치를 얻습니다.
기타 참고사항
- 처럼여기서 언급한
LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libutil.so
, /etc/apache2/envvars 끝에 추가하려고 시도했지만 이 수정 사항은 작동하지 않았습니다. - 를 사용하면
sudo apt install libapache2-mod-wsgi-py3
Python 3.6이 아닌 Python 3.5에서만 작동합니다.