Als ich versuchte, es auf einem Mac zu installieren, war es etwas anders, machen Sie sich also eine Notiz
Wenn ich zuerst die Abhängigkeit von mod_wsgi von macports überprüfe, ...
$ port info mod_wsgi
Warning: port definitions are more than two weeks old, consider using selfupdate
mod_wsgi @3.3 (www, python)
Variants: python24, python25, [+]python26, python27, python31, universal
Description: The mod_wsgi module is written in C code directly against the internal Apache and Python application programming interfaces. As such, for
hosting WSGI applications in conjunction with Apache it has a lower memory overhead and performs better than existing WSGI adapters for
mod_python or alternative FASTCGI/SCGI/CGI based solutions.
Homepage: http://www.modwsgi.org/
Library Dependencies: apache2, python26
Platforms: darwin
License: Apache
Maintainers: [email protected]
Python3.3 ist nicht in den Abhängigkeiten enthalten. Mit anderen Worten, um wsgi mit python3.3 auszuführen, funktioniert mod_wsgi möglicherweise nicht mit Macports. Erstellen und installieren Sie es wie bei Sakura VPS selbst.
(python33)
$ wget http://modwsgi.googlecode.com/files/mod_wsgi-3.4.tar.gz
$ tar zxvf mod_wsgi-3.4.tar.gz
$ cd mod_wsgi-3.4
$ ./configure --with-apxs=/opt/local/apache2/bin/apxs --with-python=/opt/local/bin/python3.3
checking Apache version... 2.2.22
configure: creating ./config.status
config.status: creating Makefile
$ make
(Abkürzung)
$ sudo make install
(Abkürzung)
$
Bis zur Installation scheint es kein Problem zu geben. Jedoch……
(LoadModule httpd.Hinzugefügt zu conf)
$ sudo /opt/local/apache2/bin/apachectl -S
httpd: Syntax error on line 119 of /opt/local/apache2/conf/httpd.conf: Cannot load /opt/local/apache2/modules/mod_wsgi.so into server: dlopen(/opt/local/apache2/modules/mod_wsgi.so, 10): Symbol not found: __Py_FalseStruct\n Referenced from: /opt/local/apache2/modules/mod_wsgi.so\n Expected in: flat namespace\n in /opt/local/apache2/modules/mod_wsgi.so
mod_wsgi.so kann nicht geladen werden. Als ich Google ausprobierte, fand ich es hier.
Provide the output from running:
otool -L /usr/libexec/apache2/mod_wsgi.so
$ otool -L /opt/local/apache2/modules/mod_wsgi.so
/opt/local/apache2/modules/mod_wsgi.so:
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 635.21.0)
/opt/local/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.1.0)
/opt/local/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
Es sieht so aus, als würde mod_wsgi.so Python 2.7 betrachten. Beim Lesen der gefundenen Seite scheint Framework deaktiviert zu sein ...
Machen Sie den Python-Pfad vorerst zum vollständigen Pfad von Macports
(python33)$ ./configure --with-apxs=/opt/local/apache2/bin/apxs --with-python=/opt/local/Library/Frameworks/Python.framework/Versions/3.3/bin/python3.3 --disable-framework
checking Apache version... 2.2.22
configure: creating ./config.status
config.status: creating Makefile
$ make
(Abkürzung)
$ sudo make install
(Abkürzung)
$
(LoadModule httpd.Hinzugefügt zu conf)
$ otool -L /opt/local/apache2/modules/mod_wsgi.so
/opt/local/apache2/modules/mod_wsgi.so:
/opt/local/Library/Frameworks/Python.framework/Versions/3.3/Python (compatibility version 3.3.0, current version 3.3.0)
/opt/local/lib/libintl.8.dylib (compatibility version 10.0.0, current version 10.1.0)
/opt/local/lib/libiconv.2.dylib (compatibility version 8.0.0, current version 8.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 635.21.0)
$ sudo /opt/local/apache2/bin/apachectl -S
(Abkürzung)
Syntax OK
Diesmal erkannte er es richtig.
Recommended Posts