我在apache error.log中获得了大量的以下内容:
Current thread 0x00007fff730d2000 (most recent call first):
[Sat Apr 08 19:49:59.958559 2017] [core:notice] [pid 38953] AH00052: child pid 38968 exit signal Abort trap (6)
[Sat Apr 08 19:49:59.960853 2017] [wsgi:warn] [pid 38969] (13)Permission denied: mod_wsgi (pid=38969): Unable to stat Python home /Users/user/Documents/VirtualEnvs/securedash. Python interpreter may not be able to be initialized correctly. Verify the supplied path and access permissions for whole of the path.
Fatal Python error: Py_Initialize: unable to load the file system codec
ImportError: No module named 'encodings'
我已经根据google搜索的各种建议尝试了无数的文件系统权限和所有权组合,但到目前为止还没有任何工作。大约一个星期前我通过chmod -R 777 ~/
进行了这项工作,我不想再这样做了。一旦意识到这是一个坏主意,我修复了我的主目录的权限,并被其他东西分心。既然我已经重新开始工作了,我就无法再次运行该应用了。那么apache需要什么权限1.我的virtualenv和2. django项目本身?我还需要其他任何区域才能访问我错过的apache吗?谢谢!
编辑重新安装mod_wsgi并从头开始设置virtualenv:
$ which python3
/usr/local/bin/python3
$ virtualenv -p python3 secureDash
Running virtualenv with interpreter /usr/local/bin/python3
Using base prefix '/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5'
New python executable in /Users/user/Documents/VirtualEnvs/secureDash/bin/python3.5
Also creating executable in /Users/user/Documents/VirtualEnvs/secureDash/bin/python
Installing setuptools, pip, wheel...done.
(secureDash) user VirtualEnvs $ python --version
Python 3.5.2
(secureDash) user VirtualEnvs $ pip --version
pip 9.0.1 from /Users/user/Documents/VirtualEnvs/secureDash/lib/python3.5/site-packages (python 3.5)
$ ./configure --with-python=/usr/local/bin/python3
checking for apxs2... no
checking for apxs... /usr/sbin/apxs
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for prctl... no
checking Apache version... 2.4.18
configure: creating ./config.status
config.status: creating Makefile
$ make
./apxs -c -I/usr/local/opt/python3/Frameworks/Python.framework/Versions/3.5/include/python3.5m -DNDEBUG -Wc,-g -Wc,-O2 -Wc,'-arch x86_64' src/server/mod_wsgi.c src/server/wsgi_*.c -L/usr/local/opt/python3/Frameworks/Python.framework/Versions/3.5/lib -L/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/config-3.5m -arch x86_64 -lpython3.5 -ldl -framework CoreFoundation
./libtool --silent --mode=compile /usr/bin/cc -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -DDARWIN_10 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.Internal.sdk/usr/include/apr-1 -I/usr/include/apache2 -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -arch x86_64 -I/usr/local/opt/python3/Frameworks/Python.framework/Versions/3.5/include/python3.5m -DNDEBUG -c -o src/server/mod_wsgi.lo src/server/mod_wsgi.c && touch src/server/mod_wsgi.slo
./libtool --silent --mode=compile /usr/bin/cc -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -DDARWIN_10 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.Internal.sdk/usr/include/apr-1 -I/usr/include/apache2 -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -arch x86_64 -I/usr/local/opt/python3/Frameworks/Python.framework/Versions/3.5/include/python3.5m -DNDEBUG -c -o src/server/wsgi_apache.lo src/server/wsgi_apache.c && touch src/server/wsgi_apache.slo
./libtool --silent --mode=compile /usr/bin/cc -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -DDARWIN_10 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.Internal.sdk/usr/include/apr-1 -I/usr/include/apache2 -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -arch x86_64 -I/usr/local/opt/python3/Frameworks/Python.framework/Versions/3.5/include/python3.5m -DNDEBUG -c -o src/server/wsgi_buckets.lo src/server/wsgi_buckets.c && touch src/server/wsgi_buckets.slo
./libtool --silent --mode=compile /usr/bin/cc -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -DDARWIN_10 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.Internal.sdk/usr/include/apr-1 -I/usr/include/apache2 -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -arch x86_64 -I/usr/local/opt/python3/Frameworks/Python.framework/Versions/3.5/include/python3.5m -DNDEBUG -c -o src/server/wsgi_convert.lo src/server/wsgi_convert.c && touch src/server/wsgi_convert.slo
./libtool --silent --mode=compile /usr/bin/cc -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -DDARWIN_10 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.Internal.sdk/usr/include/apr-1 -I/usr/include/apache2 -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -arch x86_64 -I/usr/local/opt/python3/Frameworks/Python.framework/Versions/3.5/include/python3.5m -DNDEBUG -c -o src/server/wsgi_daemon.lo src/server/wsgi_daemon.c && touch src/server/wsgi_daemon.slo
./libtool --silent --mode=compile /usr/bin/cc -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -DDARWIN_10 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.Internal.sdk/usr/include/apr-1 -I/usr/include/apache2 -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -arch x86_64 -I/usr/local/opt/python3/Frameworks/Python.framework/Versions/3.5/include/python3.5m -DNDEBUG -c -o src/server/wsgi_interp.lo src/server/wsgi_interp.c && touch src/server/wsgi_interp.slo
./libtool --silent --mode=compile /usr/bin/cc -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -DDARWIN_10 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.Internal.sdk/usr/include/apr-1 -I/usr/include/apache2 -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -arch x86_64 -I/usr/local/opt/python3/Frameworks/Python.framework/Versions/3.5/include/python3.5m -DNDEBUG -c -o src/server/wsgi_logger.lo src/server/wsgi_logger.c && touch src/server/wsgi_logger.slo
./libtool --silent --mode=compile /usr/bin/cc -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -DDARWIN_10 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.Internal.sdk/usr/include/apr-1 -I/usr/include/apache2 -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -arch x86_64 -I/usr/local/opt/python3/Frameworks/Python.framework/Versions/3.5/include/python3.5m -DNDEBUG -c -o src/server/wsgi_memory.lo src/server/wsgi_memory.c && touch src/server/wsgi_memory.slo
./libtool --silent --mode=compile /usr/bin/cc -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -DDARWIN_10 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.Internal.sdk/usr/include/apr-1 -I/usr/include/apache2 -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -arch x86_64 -I/usr/local/opt/python3/Frameworks/Python.framework/Versions/3.5/include/python3.5m -DNDEBUG -c -o src/server/wsgi_metrics.lo src/server/wsgi_metrics.c && touch src/server/wsgi_metrics.slo
./libtool --silent --mode=compile /usr/bin/cc -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -DDARWIN_10 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.Internal.sdk/usr/include/apr-1 -I/usr/include/apache2 -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -arch x86_64 -I/usr/local/opt/python3/Frameworks/Python.framework/Versions/3.5/include/python3.5m -DNDEBUG -c -o src/server/wsgi_restrict.lo src/server/wsgi_restrict.c && touch src/server/wsgi_restrict.slo
./libtool --silent --mode=compile /usr/bin/cc -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -DDARWIN_10 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.Internal.sdk/usr/include/apr-1 -I/usr/include/apache2 -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -arch x86_64 -I/usr/local/opt/python3/Frameworks/Python.framework/Versions/3.5/include/python3.5m -DNDEBUG -c -o src/server/wsgi_server.lo src/server/wsgi_server.c && touch src/server/wsgi_server.slo
./libtool --silent --mode=compile /usr/bin/cc -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -DDARWIN_10 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.Internal.sdk/usr/include/apr-1 -I/usr/include/apache2 -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -arch x86_64 -I/usr/local/opt/python3/Frameworks/Python.framework/Versions/3.5/include/python3.5m -DNDEBUG -c -o src/server/wsgi_stream.lo src/server/wsgi_stream.c && touch src/server/wsgi_stream.slo
./libtool --silent --mode=compile /usr/bin/cc -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -DDARWIN_10 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.Internal.sdk/usr/include/apr-1 -I/usr/include/apache2 -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -arch x86_64 -I/usr/local/opt/python3/Frameworks/Python.framework/Versions/3.5/include/python3.5m -DNDEBUG -c -o src/server/wsgi_thread.lo src/server/wsgi_thread.c && touch src/server/wsgi_thread.slo
./libtool --silent --mode=compile /usr/bin/cc -DDARWIN -DSIGPROCMASK_SETS_THREAD_MASK -DDARWIN_10 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.Internal.sdk/usr/include/apr-1 -I/usr/include/apache2 -I/usr/include/apr-1 -I/usr/include/apr-1 -g -O2 -arch x86_64 -I/usr/local/opt/python3/Frameworks/Python.framework/Versions/3.5/include/python3.5m -DNDEBUG -c -o src/server/wsgi_validate.lo src/server/wsgi_validate.c && touch src/server/wsgi_validate.slo
./libtool --silent --mode=link /usr/bin/cc -o src/server/mod_wsgi.la -rpath /usr/libexec/apache2 -module -avoid-version src/server/wsgi_validate.lo src/server/wsgi_thread.lo src/server/wsgi_stream.lo src/server/wsgi_server.lo src/server/wsgi_restrict.lo src/server/wsgi_metrics.lo src/server/wsgi_memory.lo src/server/wsgi_logger.lo src/server/wsgi_interp.lo src/server/wsgi_daemon.lo src/server/wsgi_convert.lo src/server/wsgi_buckets.lo src/server/wsgi_apache.lo src/server/mod_wsgi.lo -L/usr/local/opt/python3/Frameworks/Python.framework/Versions/3.5/lib -L/usr/local/Cellar/python3/3.5.2_3/Frameworks/Python.framework/Versions/3.5/lib/python3.5/config-3.5m -arch x86_64 -lpython3.5 -ldl -framework CoreFoundation
$ sudo make install LIBEXECDIR=/usr/local/httpd/modules
Password:
./apxs -i -S LIBEXECDIR=/usr/local/httpd/modules -n 'mod_wsgi' src/server/mod_wsgi.la
/usr/share/httpd/build/instdso.sh SH_LIBTOOL='./libtool' src/server/mod_wsgi.la /usr/local/httpd/modules
./libtool --mode=install install src/server/mod_wsgi.la /usr/local/httpd/modules/
libtool: install: install src/server/.libs/mod_wsgi.so /usr/local/httpd/modules/mod_wsgi.so
libtool: install: install src/server/.libs/mod_wsgi.lai /usr/local/httpd/modules/mod_wsgi.la
libtool: install: install src/server/.libs/mod_wsgi.a /usr/local/httpd/modules/mod_wsgi.a
libtool: install: chmod 644 /usr/local/httpd/modules/mod_wsgi.a
libtool: install: ranlib /usr/local/httpd/modules/mod_wsgi.a
libtool: install: warning: remember to run `libtool --finish /usr/libexec/apache2'
chmod 755 /usr/local/httpd/modules/mod_wsgi.so
答案 0 :(得分:0)
我通过从符号链接的目录中删除我的项目来解决这个问题。正如我在上面的上一条评论中所提到的,我的项目位于我的iCloud目录中,所以我的所有机器都可以轻松访问它,直到我在github上完成项目。要更轻松地访问iCloud目录, 我设置了一个符号链接:
~/icloud -> Library/Mobile Documents/com~apple~CloudDocs/
过了一会儿,我注意到上面报告的错误中存在以下错误:
AH00037: Symbolic link not allowed or link target not accessible: /Users/user/icloud
所以,一旦我在github上获得了我的项目,我将其拉入~/projects
并将我的apache配置指向正确的位置并开始工作。
可能还有其他一些解决办法让apache遵循符号链接,但经过一些调查后,这似乎比将项目移动到apache可以遵循的常规目录更困难。