{"id":8807,"date":"2022-11-20T09:05:04","date_gmt":"2022-11-20T08:05:04","guid":{"rendered":"https:\/\/myoceane.fr\/?p=8807"},"modified":"2023-11-27T03:59:08","modified_gmt":"2023-11-27T02:59:08","slug":"django-launch-wsgi-in-apache-server","status":"publish","type":"post","link":"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/","title":{"rendered":"[Django] Launch WSGI in Apache Server"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p style=\"text-align: justify;\">Django \u662f\u4e00\u500b\u4ee5 Python \u70ba\u57fa\u5e95\u958b\u767c\u7db2\u7ad9\u670d\u52d9\u7684\u6846\u67b6\uff0c\u8fd1\u5e74\u4f86\u8d8a\u4f86\u8d8a\u591a\u958b\u767c\u4eba\u54e1\u4f7f\u7528 Python \u8a9e\u8a00\uff0c\u6240\u4ee5\u8981\u5207\u5165\u7db2\u7ad9\u6216\u8005\u662f API \u7684\u958b\u767c\uff0cDjango \u6703\u662f\u4e00\u500b\u5f88\u597d\u7684\u9078\u64c7\uff0c\u4e4b\u524d\u6ab8\u6aac\u7238\u521d\u5b78 Django \u5beb\u904e\u4e00\u7bc7\u521d\u6dfa\u7684<a href=\"https:\/\/myoceane.fr\/index.php\/django-%e7%94%a8-python-%e5%af%ab%e7%b6%b2%e9%a0%81%ef%bc%9f\/\">\u4ecb\u7d39\u6587<\/a>\uff0c\u5f8c\u4f86\uff0c\u771f\u6b63\u5728\u9032\u5165 Production \u968e\u6bb5\u7684\u6642\u5019\u9047\u5230\u4e00\u4e9b\u554f\u984c\uff0c\u672c\u7bc7\u7d00\u9304\u5728\u90e8\u7f72 Django \u5230 Apache Server \u4e0a\u7684\u6642\u5019\u9047\u5230\u7684\u6311\u6230\u3002<\/p>\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>\u90e8\u7f72 Django \u5efa\u8b70\u4f7f\u7528 WSGI<\/p><cite>\u5728\u5b78\u7fd2 Django \u7684\u6642\u5019\uff0c\u6700\u5feb\u901f\u5be6\u6e2c\u7684\u65b9\u6cd5\u662f\u5229\u7528 python3 manage.py runserver \u7684\u6307\u4ee4\u555f\u52d5 Django\uff0c\u4f46\u662f\u4e00\u65e6\u9032\u5165 Production\uff0c\u4f7f\u7528 Apache WSGI \u6a21\u7d44\u90e8\u7f72 Django \u5c07\u53ef\u4ee5\u4eab\u53d7<a href=\"https:\/\/dzone.com\/articles\/a-detailed-study-of-wsgi-web-server-gateway-interf-1#:~:text=Advantages%20of%20Using%20WSGI&amp;text=You%20can%20actually%20change%20the,that%20runs%20the%20WSGI%20servers.\">\u6587\u7ae0<\/a>\u4e2d\u63d0\u5230\u7684 Flexibility, Scalibility, Speed, Simple, Middleware Reuse \u7684\u597d\u8655\u3002<\/cite><\/blockquote>\n\n\n<h4>\u524d\u7f6e\u4f5c\u696d\uff1a\u5b89\u88dd Apache \u6a21\u7d44 mod_wsgi<\/h4>\n<p style=\"text-align: justify;\">\u5728\u900f\u904e Python Django \u555f\u52d5\u7db2\u9801\u670d\u52d9\u4e4b\u524d\uff0c\u5728\u9810\u8a08\u8981\u5b89\u88dd\u7db2\u9801\u7684\u4f3a\u670d\u5668\u4e0a\uff0c\u9700\u8981\u5b89\u88dd Apache \u7684 mod_wsgi \u6a21\u7d44\uff0c\u4ee5 CentOS \u70ba\u4f8b\uff0c\u53ef\u4ee5\u5229\u7528\u4ee5\u4e0b\u7684\u6307\u4ee4\u5b89\u88dd\uff1a<\/p>\n<pre class=\"lang:bash\">yum install httpd-devel<\/pre>\n<p style=\"text-align: justify;\">\u5982\u679c\u6c92\u6709\u5b89\u88dd\u5c31\u76f4\u63a5\u5728 Python \u5167\u90e8\u5b89\u88dd mod-wsgi \u5957\u4ef6\u7684\u8a71\uff0c\u6703\u6536\u5230\u4ee5\u4e0b\u7684\u932f\u8aa4\u8a0a\u606f\uff1a<\/p>\n<pre class=\"lang:bash\">[pipenv.exceptions.InstallError]: Collecting mod-wsgi==4.9.3 (from -r \/tmp\/pipenv-gjcpkpa8-requirements\/pipenv-ga6ba_n2-hashed-reqs.txt (line 17))\n[pipenv.exceptions.InstallError]:   Downloading mod_wsgi-4.9.3.tar.gz (497 kB)\n[pipenv.exceptions.InstallError]:      \u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501 497.2\/497.2 kB 39.9 MB\/s eta 0:00:00\n[pipenv.exceptions.InstallError]:   Preparing metadata (setup.py): started\n[pipenv.exceptions.InstallError]:   Preparing metadata (setup.py): finished with status 'error'\n[pipenv.exceptions.InstallError]: error: subprocess-exited-with-error\n[pipenv.exceptions.InstallError]:\n[pipenv.exceptions.InstallError]:   \u00d7 python setup.py egg_info did not run successfully.\n[pipenv.exceptions.InstallError]:   \u2502 exit code: 1\n[pipenv.exceptions.InstallError]:   \u2570\u2500&gt; [6 lines of output]\n[pipenv.exceptions.InstallError]:       Traceback (most recent call last):\n[pipenv.exceptions.InstallError]:         File \"&lt;string&gt;\", line 2, in &lt;module&gt;\n[pipenv.exceptions.InstallError]:         File \"&lt;pip-setuptools-caller&gt;\", line 34, in &lt;module&gt;\n[pipenv.exceptions.InstallError]:         File \"\/tmp\/pip-install-ydeem11k\/mod-wsgi_f7d0a10c54d04a8d8b13a43f3d8e0c1f\/setup.py\", line 88, in &lt;module&gt;\n[pipenv.exceptions.InstallError]:           raise RuntimeError('The %r command appears not to be installed or '\n[pipenv.exceptions.InstallError]:       RuntimeError: The 'apxs' command appears not to be installed or is not executable. Please check the list of prerequisites in the documentation for this package and install any missing Apache httpd server packages.\n[pipenv.exceptions.InstallError]:       [end of output]<\/pre>\n<p>\u5b89\u88dd\u5b8c httpd-devel \u9084\u662f\u6703\u9047\u5230\u4ee5\u4e0b\u7684\u932f\u8aa4\u8a0a\u606f\uff0c\u53ef\u80fd\u662f Python \u5728\u5b89\u88dd\u7684\u6642\u5019\u54ea\u908a\u6709\u554f\u984c\uff0c\u9700\u8981\u91cd\u65b0 Compile Python \u7684\u7a0b\u5f0f\u3002<\/p>\n<pre class=\"lang:bash\">[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(abstract.o): relocation R_X86_64_32S against symbol `_Py_NotImplementedStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(boolobject.o): relocation R_X86_64_32S against symbol `_Py_FalseStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(bytearrayobject.o): relocation R_X86_64_32 against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(bytesobject.o): relocation R_X86_64_32 against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(call.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(capsule.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(exceptions.o): relocation R_X86_64_32S against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(genericaliasobject.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(fileobject.o): relocation R_X86_64_32 against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(floatobject.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(frameobject.o): relocation R_X86_64_32 against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(iterobject.o): relocation R_X86_64_32 against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(listobject.o): relocation R_X86_64_32 against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(longobject.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(dictobject.o): relocation R_X86_64_32S against `.text.hot' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(memoryobject.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(methodobject.o): relocation R_X86_64_32 against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(moduleobject.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(object.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(obmalloc.o): relocation R_X86_64_32S against `.bss' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(picklebufobject.o): relocation R_X86_64_32 against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(rangeobject.o): relocation R_X86_64_32 against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(setobject.o): relocation R_X86_64_32S against `.data' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(sliceobject.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(structseq.o): relocation R_X86_64_32 against `.data' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(tupleobject.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(typeobject.o): relocation R_X86_64_32 against symbol `PyBaseObject_Type' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(unicodeobject.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(unicodectype.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(weakrefobject.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(_warnings.o): relocation R_X86_64_32 against `.data' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(ceval.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(codecs.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(compile.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(errors.o): relocation R_X86_64_32 against `.data' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(future.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(getargs.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(getversion.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(import.o): relocation R_X86_64_32S against symbol `PyDict_Type' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(importdl.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(initconfig.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(marshal.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(modsupport.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(mystrtoul.o): relocation R_X86_64_32S against symbol `_Py_ctype_table' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(pathconfig.o): relocation R_X86_64_32S against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(peephole.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(preconfig.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(pyhash.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(pylifecycle.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(pymath.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(pystate.o): relocation R_X86_64_32 against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(pythonrun.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(pytime.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(bootstrap_hash.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(symtable.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(sysmodule.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(thread.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(traceback.o): relocation R_X86_64_32 against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(getopt.o): relocation R_X86_64_32S against `.rodata.str4.4' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(pystrtod.o): relocation R_X86_64_32S against symbol `_Py_ctype_tolower' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(pystrhex.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(dtoa.o): relocation R_X86_64_32S against `.bss' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(formatter_unicode.o): relocation R_X86_64_32S against symbol `_Py_ctype_table' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(fileutils.o): relocation R_X86_64_32S against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(dynload_shlib.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(getpath.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(gcmodule.o): relocation R_X86_64_32 against symbol `_Py_FalseStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(posixmodule.o): relocation R_X86_64_32S against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(errnomodule.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(pwdmodule.o): relocation R_X86_64_32 against `.data' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(_sre.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(_codecsmodule.o): relocation R_X86_64_32 against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(_weakref.o): relocation R_X86_64_32 against symbol `_PyWeakref_RefType' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(_functoolsmodule.o): relocation R_X86_64_32 against `.data' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(_operator.o): relocation R_X86_64_32S against `.data' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(_collectionsmodule.o): relocation R_X86_64_32 against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(_abc.o): relocation R_X86_64_32 against `.data' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(itertoolsmodule.o): relocation R_X86_64_32S against `.data' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(atexitmodule.o): relocation R_X86_64_32 against `.text' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(signalmodule.o): relocation R_X86_64_32S against `.bss' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(_stat.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(timemodule.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(_threadmodule.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(_localemodule.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(_iomodule.o): relocation R_X86_64_32 against `.data' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(iobase.o): relocation R_X86_64_32 against symbol `_Py_FalseStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(fileio.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(bytesio.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(bufferedio.o): relocation R_X86_64_32 against `.data' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(textio.o): relocation R_X86_64_32 against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(stringio.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(faulthandler.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(_tracemalloc.o): relocation R_X86_64_32 against `.text' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(_peg_parser.o): relocation R_X86_64_32 against `.data' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(symtablemodule.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(xxsubtype.o): relocation R_X86_64_32 against `.data' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(getbuildinfo.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(acceler.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(grammar1.o): relocation R_X86_64_32S against symbol `_PyParser_TokenNames' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(token.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(peg_api.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(parsetok.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(tokenizer.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(accu.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(bytes_methods.o): relocation R_X86_64_32S against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(cellobject.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(classobject.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(codeobject.o): relocation R_X86_64_32S against symbol `PyTuple_Type' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(complexobject.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(descrobject.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(enumobject.o): relocation R_X86_64_32 against `.data' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(genobject.o): relocation R_X86_64_32 against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(funcobject.o): relocation R_X86_64_32S against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(interpreteridobject.o): relocation R_X86_64_32 against `.data' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(odictobject.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(namespaceobject.o): relocation R_X86_64_32S against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(Python-ast.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(ast.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(ast_opt.o): relocation R_X86_64_32S against symbol `PyFrozenSet_Type' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(ast_unparse.o): relocation R_X86_64_32S against symbol `PyFloat_Type' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(bltinmodule.o): relocation R_X86_64_32S against symbol `PyFilter_Type' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(context.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(getcompiler.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(getcopyright.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(getplatform.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(hamt.o): relocation R_X86_64_32S against symbol `_PyHamt_BitmapNode_Type' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(hashtable.o): relocation R_X86_64_32S against hidden symbol `_Py_hashtable_get_entry_generic' can not be used when making a shared object\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(structmember.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(parser.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(pegen.o): relocation R_X86_64_32 against symbol `_Py_NoneStruct' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(parse.o): relocation R_X86_64_32 against `.text' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(parse_string.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: \/usr\/local\/lib\/libpython3.9.a(myreadline.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC\n[pipenv.exceptions.InstallError]:       \/usr\/bin\/ld: final link failed: Nonrepresentable section on output\n[pipenv.exceptions.InstallError]:       collect2: error: ld returned 1 exit status\n[pipenv.exceptions.InstallError]:       error: command '\/usr\/bin\/gcc' failed with exit code 1\n[pipenv.exceptions.InstallError]:       [end of output]\n[pipenv.exceptions.InstallError]:\n[pipenv.exceptions.InstallError]:   note: This error originates from a subprocess, and is likely not a problem with pip.\n[pipenv.exceptions.InstallError]:   ERROR: Failed building wheel for mod-wsgi\n[pipenv.exceptions.InstallError]: ERROR: Could not build wheels for mod-wsgi, which is required to install pyproject.toml-based projects<\/pre>\n<p>\u76f4\u63a5\u653e\u4e0a\u6210\u529f\u5728 CentOS 7 \u90e8\u7f72 Django \u7684 Apache \u8a2d\u5b9a\uff1a<\/p>\n<h4>httpd.conf \u8a2d\u5b9a\uff1a<\/h4>\n<p>\u7531\u65bc WSGI \u662f\u900f\u904e python3.6 \u5b89\u88dd\u7684\uff0c\u6240\u4ee5\u8a18\u5f97\u8981\u627e\u5230\u76f8\u5c0d\u61c9\u7684 moduel \u4f4d\u7f6e\u5c07\u5176\u52a0\u5165\u5230 httpd.conf \u4e2d\u3002\u00a0<\/p>\n<pre class=\"lang:bash\">LoadModule wsgi_module \"\/usr\/lib64\/httpd\/modules\/mod_wsgi-py36.cpython-36m-x86_64-linux-gnu.so\"<\/pre>\n<h4>vhosts \u88e1\u7684 hostname.conf \/ hostname.ssl.conf \u8a2d\u5b9a\uff1a<\/h4>\n<p style=\"text-align: justify;\">\u7531\u65bc\u540c\u4e00\u500b Apache Server \u901a\u5e38\u53ef\u4ee5\u90e8\u7f72\u591a\u500b\u7db2\u7ad9\u670d\u52d9\uff0c\u6240\u4ee5\u6211\u5011\u5728 \/usr\/local\/apache\/conf.d\/vhosts \u8cc7\u6599\u593e\u4e0b\u9762\u65b0\u589e\u5169\u500b\u6a94\u6848\uff0c\u9451\u65bc\u5b89\u5168\u6027\uff0c\u6211\u5011\u53ea\u6253\u7b97\u958b\u653e https\uff0c\u56e0\u6b64\u5728 hostname.conf \u6211\u5011\u53ea\u586b\u5beb\u91cd\u65b0\u5c0e\u5411\u7684\u8a2d\u5b9a\u5982\u4e0b\uff1a<\/p>\n<pre class=\"lang:bash\">&lt;VirtualHost xxx.xxx.xxx.xxx:80&gt;\n\tServerName hostname\n\tRedirect \/ https:\/\/hostname\/\n&lt;\/VirtualHost&gt;<\/pre>\n<p>\u4e3b\u8981\u7684\u8a2d\u5b9a\u90fd\u843d\u5728 hostname.ssl.conf \u88e1\u9762\uff1a<\/p>\n<pre class=\"lang:bash\">&lt;VirtualHost xxx.xxx.xxx.xxx:443&gt;\n\n    ServerName hostname\n    ServerAlias www.hostname\n    ServerAdmin xxx@gmail.com\n    DocumentRoot \/home\/username\/public_html\/django-project\n    UseCanonicalName Off\n\n    CustomLog \/usr\/local\/apache\/domlogs\/hostname.bytes bytes\n    CustomLog \/usr\/local\/apache\/domlogs\/hostname.log combined\n    ErrorLog \/usr\/local\/apache\/domlogs\/hostname.error.log\n\n    WSGIDaemonProcess django-project python-path=\/root\/.local\/share\/virtualenvs\/python36-PwlmGYJW\/lib\/python3.6\/site-packages\n    WSGIScriptAlias \/ \/home\/username\/public_html\/django-project\/django-project\/wsgi.py\n\n    IncludeOptional \"\/usr\/local\/apache\/conf\/userdata\/username\/hostname\/*.conf\"\n\n    SSLEngine on\n    SSLCertificateFile \/etc\/pki\/tls\/certs\/hostname.cert\n    SSLCertificateKeyFile \/etc\/pki\/tls\/private\/hostname.key\n    SSLCertificateChainFile \/etc\/pki\/tls\/certs\/hostname.bundle\n    SetEnvIf User-Agent \".*MSIE.*\" nokeepalive ssl-unclean-shutdown\n\n    Alias \/static \/home\/username\/public_html\/django-project\/django-project\/static\/\n    &lt;Location \"\/static\"&gt;\n            SetHandler None\n    &lt;\/Location&gt;\n\n    WSGIProcessGroup %{GLOBAL}\n    WSGIApplicationGroup %{GLOBAL}\n    WSGIPassAuthorization On\n\n    &lt;Location \"\/secret\"&gt;\n        AuthType Basic\n        AuthName \"Top Secret\"\n        Require valid-user\n        AuthBasicProvider wsgi\n        WSGIAuthUserScript \/home\/username\/public_html\/django-project\/django-project\/wsgi.py\n    &lt;\/Location&gt;\n\n    &lt;Directory \"\/home\/username\/public_html\/django-project\/django-project\"&gt;\n\t&lt;Files wsgi.py&gt;\n            Require all granted\n        &lt;\/Files&gt;\n    &lt;\/Directory&gt;\n\n&lt;\/VirtualHost&gt;<\/pre>\n<h5>\u5099\u8a3b(\u4ee5\u4e0a\u5c55\u793a\u7684\u7bc4\u4f8b\u6709\u5e7e\u500b\u5047\u8a2d\u524d\u63d0)\uff1a<\/h5>\n<ol>\n<li>\u4f7f\u7528\u8005\u7684 django project \u662f\u5229\u7528\u4ee5\u4e0b\u7684\u6307\u4ee4\u5275\u5efa\u5728 \/home\/username\/public_html \u7684\u8def\u5f91\u4e0a\u9762\uff0c\u5982\u679c\u5229\u7528 django-admin \u5275\u5efa\u7684\u5c08\u6848 wsgi.py \u6703\u88ab\u81ea\u52d5\u5275\u5efa\u5728 django-project\/django-project \u7684\u8def\u5f91\u4e0a\u3002\n<pre class=\"lang:bash\">django-admin startproject django-project<\/pre>\n<\/li>\n<li>django \u6703\u7528\u5230\u7684\u76f8\u95dc\u6a21\u7d44\u662f\u5229\u7528 pipenv \u5b89\u88dd\u5728\u00a0<\/li>\n<li>\u6709\u95dc SSL \u7684\u6a94\u6848\u653e\u5728 \/etc\/pki\/tls\/certs\/ \u4e4b\u4e0b<\/li>\n<\/ol>\n<h5>WSGIPassAuthorization On \u8a18\u5f97\u958b\u555f !!<\/h5>\n<p>\u6ab8\u6aac\u7238\u4e00\u958b\u59cb\u9019\u500b property \u6c92\u6709\u8a2d\u5b9a\u5230\uff0c\u7d50\u679c\u5c31\u662f\u4e00\u76f4\u6c92\u6709\u8fa6\u6cd5\u901a\u904e Django \u539f\u751f\u7684\u8a8d\u8b49\u6a5f\u5236\u8a8d\u8b49\uff0c\u5361\u8d85\u4e45\u3002<\/p>\n\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"498\" src=\"https:\/\/myoceane.fr\/wp-content\/uploads\/2022\/11\/\u622a\u5716-2022-11-20-\u4e0b\u53484.01.59-1024x498.png\" alt=\"\" class=\"wp-image-8818\" srcset=\"https:\/\/myoceane.fr\/wp-content\/uploads\/2022\/11\/\u622a\u5716-2022-11-20-\u4e0b\u53484.01.59-1024x498.png 1024w, https:\/\/myoceane.fr\/wp-content\/uploads\/2022\/11\/\u622a\u5716-2022-11-20-\u4e0b\u53484.01.59-300x146.png 300w, https:\/\/myoceane.fr\/wp-content\/uploads\/2022\/11\/\u622a\u5716-2022-11-20-\u4e0b\u53484.01.59-768x374.png 768w, https:\/\/myoceane.fr\/wp-content\/uploads\/2022\/11\/\u622a\u5716-2022-11-20-\u4e0b\u53484.01.59-1536x748.png 1536w, https:\/\/myoceane.fr\/wp-content\/uploads\/2022\/11\/\u622a\u5716-2022-11-20-\u4e0b\u53484.01.59-2048x997.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Django \u662f\u4e00\u500b\u4ee5 Python \u70ba\u57fa\u5e95\u958b\u767c\u7db2\u7ad9\u670d\u52d9\u7684\u6846\u67b6\uff0c\u8fd1\u5e74\u4f86\u8d8a\u4f86\u8d8a\u591a\u958b\u767c\u4eba\u54e1\u4f7f\u7528 Python \u8a9e\u8a00\uff0c\u6240\u4ee5\u8981\u5207\u5165\u7db2\u7ad9\u6216\u8005\u662f API \u7684\u958b\u767c\uff0cDjango \u6703\u662f\u4e00\u500b\u5f88\u597d\u7684\u9078\u64c7\uff0c\u4e4b\u524d\u6ab8\u6aac\u7238\u521d\u5b78 Django \u5beb\u904e\u4e00\u7bc7\u521d\u6dfa\u7684\u4ecb\u7d39\u6587\uff0c\u5f8c\u4f86\uff0c\u771f\u6b63\u5728\u9032\u5165 Production \u968e\u6bb5\u7684\u6642\u5019\u9047\u5230\u4e00\u4e9b\u554f\u984c\uff0c\u672c\u7bc7\u7d00\u9304\u5728\u90e8\u7f72 Django \u5230 Apache Server \u4e0a\u7684\u6642\u5019\u9047\u5230\u7684\u6311\u6230\u3002<\/p>\n","protected":false},"author":1,"featured_media":8818,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[176,8],"tags":[1576,19,1575],"class_list":["post-8807","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","category-website","tag-apache","tag-python","tag-wsgi"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Django] Launch WSGI in Apache Server - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane<\/title>\n<meta name=\"description\" content=\"Django \u662f\u4e00\u500b\u4ee5 Python \u70ba\u57fa\u5e95\u958b\u767c\u7db2\u7ad9\u670d\u52d9\u7684\u6846\u67b6\uff0c\u8fd1\u5e74\u4f86\u8d8a\u4f86\u8d8a\u591a\u958b\u767c\u4eba\u54e1\u4f7f\u7528 Python \u8a9e\u8a00\uff0c\u6240\u4ee5\u8981\u5207\u5165\u7db2\u7ad9\u6216\u8005\u662f API \u7684\u958b\u767c\uff0cDjango \u6703\u662f\u4e00\u500b\u5f88\u597d\u7684\u9078\u64c7\uff0c\u4e4b\u524d\u6ab8\u6aac\u7238\u521d\u5b78 Django \u5beb\u904e\u4e00\u7bc7\u521d\u6dfa\u7684\u4ecb\u7d39\u6587\uff0c\u5f8c\u4f86\uff0c\u771f\u6b63\u5728\u9032\u5165 Production \u968e\u6bb5\u7684\u6642\u5019\u9047\u5230\u4e00\u4e9b\u554f\u984c\uff0c\u672c\u7bc7\u7d00\u9304\u5728\u90e8\u7f72 Django \u5230 Apache Server \u4e0a\u7684\u6642\u5019\u9047\u5230\u7684\u6311\u6230\u3002\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Django] Launch WSGI in Apache Server - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane\" \/>\n<meta property=\"og:description\" content=\"Django \u662f\u4e00\u500b\u4ee5 Python \u70ba\u57fa\u5e95\u958b\u767c\u7db2\u7ad9\u670d\u52d9\u7684\u6846\u67b6\uff0c\u8fd1\u5e74\u4f86\u8d8a\u4f86\u8d8a\u591a\u958b\u767c\u4eba\u54e1\u4f7f\u7528 Python \u8a9e\u8a00\uff0c\u6240\u4ee5\u8981\u5207\u5165\u7db2\u7ad9\u6216\u8005\u662f API \u7684\u958b\u767c\uff0cDjango \u6703\u662f\u4e00\u500b\u5f88\u597d\u7684\u9078\u64c7\uff0c\u4e4b\u524d\u6ab8\u6aac\u7238\u521d\u5b78 Django \u5beb\u904e\u4e00\u7bc7\u521d\u6dfa\u7684\u4ecb\u7d39\u6587\uff0c\u5f8c\u4f86\uff0c\u771f\u6b63\u5728\u9032\u5165 Production \u968e\u6bb5\u7684\u6642\u5019\u9047\u5230\u4e00\u4e9b\u554f\u984c\uff0c\u672c\u7bc7\u7d00\u9304\u5728\u90e8\u7f72 Django \u5230 Apache Server \u4e0a\u7684\u6642\u5019\u9047\u5230\u7684\u6311\u6230\u3002\" \/>\n<meta property=\"og:url\" content=\"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/\" \/>\n<meta property=\"og:site_name\" content=\"\u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane\" \/>\n<meta property=\"article:published_time\" content=\"2022-11-20T08:05:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-27T02:59:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/myoceane.fr\/wp-content\/uploads\/2022\/11\/\u622a\u5716-2022-11-20-\u4e0b\u53484.01.59.png\" \/>\n\t<meta property=\"og:image:width\" content=\"2880\" \/>\n\t<meta property=\"og:image:height\" content=\"1402\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"\u6ab8\u6aac\u7238\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6ab8\u6aac\u7238\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"24 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/\"},\"author\":{\"name\":\"\u6ab8\u6aac\u7238\",\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b\"},\"headline\":\"[Django] Launch WSGI in Apache Server\",\"datePublished\":\"2022-11-20T08:05:04+00:00\",\"dateModified\":\"2023-11-27T02:59:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/\"},\"wordCount\":101,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b\"},\"image\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/myoceane.fr\/wp-content\/uploads\/2022\/11\/\u622a\u5716-2022-11-20-\u4e0b\u53484.01.59.png\",\"keywords\":[\"Apache\",\"Python\",\"WSGI\"],\"articleSection\":[\"Python\",\"Website\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/\",\"url\":\"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/\",\"name\":\"[Django] Launch WSGI in Apache Server - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane\",\"isPartOf\":{\"@id\":\"https:\/\/myoceane.fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/myoceane.fr\/wp-content\/uploads\/2022\/11\/\u622a\u5716-2022-11-20-\u4e0b\u53484.01.59.png\",\"datePublished\":\"2022-11-20T08:05:04+00:00\",\"dateModified\":\"2023-11-27T02:59:08+00:00\",\"description\":\"Django \u662f\u4e00\u500b\u4ee5 Python \u70ba\u57fa\u5e95\u958b\u767c\u7db2\u7ad9\u670d\u52d9\u7684\u6846\u67b6\uff0c\u8fd1\u5e74\u4f86\u8d8a\u4f86\u8d8a\u591a\u958b\u767c\u4eba\u54e1\u4f7f\u7528 Python \u8a9e\u8a00\uff0c\u6240\u4ee5\u8981\u5207\u5165\u7db2\u7ad9\u6216\u8005\u662f API \u7684\u958b\u767c\uff0cDjango \u6703\u662f\u4e00\u500b\u5f88\u597d\u7684\u9078\u64c7\uff0c\u4e4b\u524d\u6ab8\u6aac\u7238\u521d\u5b78 Django \u5beb\u904e\u4e00\u7bc7\u521d\u6dfa\u7684\u4ecb\u7d39\u6587\uff0c\u5f8c\u4f86\uff0c\u771f\u6b63\u5728\u9032\u5165 Production \u968e\u6bb5\u7684\u6642\u5019\u9047\u5230\u4e00\u4e9b\u554f\u984c\uff0c\u672c\u7bc7\u7d00\u9304\u5728\u90e8\u7f72 Django \u5230 Apache Server \u4e0a\u7684\u6642\u5019\u9047\u5230\u7684\u6311\u6230\u3002\",\"breadcrumb\":{\"@id\":\"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/#primaryimage\",\"url\":\"https:\/\/myoceane.fr\/wp-content\/uploads\/2022\/11\/\u622a\u5716-2022-11-20-\u4e0b\u53484.01.59.png\",\"contentUrl\":\"https:\/\/myoceane.fr\/wp-content\/uploads\/2022\/11\/\u622a\u5716-2022-11-20-\u4e0b\u53484.01.59.png\",\"width\":2880,\"height\":1402,\"caption\":\"WSGI_django_deployment\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/myoceane.fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Django] Launch WSGI in Apache Server\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/myoceane.fr\/#website\",\"url\":\"https:\/\/myoceane.fr\/\",\"name\":\"M-Y-Oceane \u60f3\u65b9\u6d89\u6cd5\u3002\u91cf\u74f6\u5916\u7684\u5929\u7a7a\",\"description\":\"\u60f3\u65b9\u6d89\u6cd5, France, Taiwan, Health, Information Technology\",\"publisher\":{\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/myoceane.fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b\",\"name\":\"\u6ab8\u6aac\u7238\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6cc678684664f8ad45a8d56a6630b183?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6cc678684664f8ad45a8d56a6630b183?s=96&d=mm&r=g\",\"caption\":\"\u6ab8\u6aac\u7238\"},\"logo\":{\"@id\":\"https:\/\/myoceane.fr\/#\/schema\/person\/image\/\"},\"url\":\"https:\/\/myoceane.fr\/index.php\/author\/johnny5584767gmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Django] Launch WSGI in Apache Server - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane","description":"Django \u662f\u4e00\u500b\u4ee5 Python \u70ba\u57fa\u5e95\u958b\u767c\u7db2\u7ad9\u670d\u52d9\u7684\u6846\u67b6\uff0c\u8fd1\u5e74\u4f86\u8d8a\u4f86\u8d8a\u591a\u958b\u767c\u4eba\u54e1\u4f7f\u7528 Python \u8a9e\u8a00\uff0c\u6240\u4ee5\u8981\u5207\u5165\u7db2\u7ad9\u6216\u8005\u662f API \u7684\u958b\u767c\uff0cDjango \u6703\u662f\u4e00\u500b\u5f88\u597d\u7684\u9078\u64c7\uff0c\u4e4b\u524d\u6ab8\u6aac\u7238\u521d\u5b78 Django \u5beb\u904e\u4e00\u7bc7\u521d\u6dfa\u7684\u4ecb\u7d39\u6587\uff0c\u5f8c\u4f86\uff0c\u771f\u6b63\u5728\u9032\u5165 Production \u968e\u6bb5\u7684\u6642\u5019\u9047\u5230\u4e00\u4e9b\u554f\u984c\uff0c\u672c\u7bc7\u7d00\u9304\u5728\u90e8\u7f72 Django \u5230 Apache Server \u4e0a\u7684\u6642\u5019\u9047\u5230\u7684\u6311\u6230\u3002","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/","og_locale":"en_US","og_type":"article","og_title":"[Django] Launch WSGI in Apache Server - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane","og_description":"Django \u662f\u4e00\u500b\u4ee5 Python \u70ba\u57fa\u5e95\u958b\u767c\u7db2\u7ad9\u670d\u52d9\u7684\u6846\u67b6\uff0c\u8fd1\u5e74\u4f86\u8d8a\u4f86\u8d8a\u591a\u958b\u767c\u4eba\u54e1\u4f7f\u7528 Python \u8a9e\u8a00\uff0c\u6240\u4ee5\u8981\u5207\u5165\u7db2\u7ad9\u6216\u8005\u662f API \u7684\u958b\u767c\uff0cDjango \u6703\u662f\u4e00\u500b\u5f88\u597d\u7684\u9078\u64c7\uff0c\u4e4b\u524d\u6ab8\u6aac\u7238\u521d\u5b78 Django \u5beb\u904e\u4e00\u7bc7\u521d\u6dfa\u7684\u4ecb\u7d39\u6587\uff0c\u5f8c\u4f86\uff0c\u771f\u6b63\u5728\u9032\u5165 Production \u968e\u6bb5\u7684\u6642\u5019\u9047\u5230\u4e00\u4e9b\u554f\u984c\uff0c\u672c\u7bc7\u7d00\u9304\u5728\u90e8\u7f72 Django \u5230 Apache Server \u4e0a\u7684\u6642\u5019\u9047\u5230\u7684\u6311\u6230\u3002","og_url":"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/","og_site_name":"\u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane","article_published_time":"2022-11-20T08:05:04+00:00","article_modified_time":"2023-11-27T02:59:08+00:00","og_image":[{"width":2880,"height":1402,"url":"https:\/\/myoceane.fr\/wp-content\/uploads\/2022\/11\/\u622a\u5716-2022-11-20-\u4e0b\u53484.01.59.png","type":"image\/png"}],"author":"\u6ab8\u6aac\u7238","twitter_card":"summary_large_image","twitter_misc":{"Written by":"\u6ab8\u6aac\u7238","Est. reading time":"24 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/#article","isPartOf":{"@id":"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/"},"author":{"name":"\u6ab8\u6aac\u7238","@id":"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b"},"headline":"[Django] Launch WSGI in Apache Server","datePublished":"2022-11-20T08:05:04+00:00","dateModified":"2023-11-27T02:59:08+00:00","mainEntityOfPage":{"@id":"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/"},"wordCount":101,"commentCount":0,"publisher":{"@id":"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b"},"image":{"@id":"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/#primaryimage"},"thumbnailUrl":"https:\/\/myoceane.fr\/wp-content\/uploads\/2022\/11\/\u622a\u5716-2022-11-20-\u4e0b\u53484.01.59.png","keywords":["Apache","Python","WSGI"],"articleSection":["Python","Website"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/","url":"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/","name":"[Django] Launch WSGI in Apache Server - \u60f3\u65b9\u6d89\u6cd5 - \u91cf\u74f6\u5916\u7684\u5929\u7a7a M-Y-Oceane","isPartOf":{"@id":"https:\/\/myoceane.fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/#primaryimage"},"image":{"@id":"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/#primaryimage"},"thumbnailUrl":"https:\/\/myoceane.fr\/wp-content\/uploads\/2022\/11\/\u622a\u5716-2022-11-20-\u4e0b\u53484.01.59.png","datePublished":"2022-11-20T08:05:04+00:00","dateModified":"2023-11-27T02:59:08+00:00","description":"Django \u662f\u4e00\u500b\u4ee5 Python \u70ba\u57fa\u5e95\u958b\u767c\u7db2\u7ad9\u670d\u52d9\u7684\u6846\u67b6\uff0c\u8fd1\u5e74\u4f86\u8d8a\u4f86\u8d8a\u591a\u958b\u767c\u4eba\u54e1\u4f7f\u7528 Python \u8a9e\u8a00\uff0c\u6240\u4ee5\u8981\u5207\u5165\u7db2\u7ad9\u6216\u8005\u662f API \u7684\u958b\u767c\uff0cDjango \u6703\u662f\u4e00\u500b\u5f88\u597d\u7684\u9078\u64c7\uff0c\u4e4b\u524d\u6ab8\u6aac\u7238\u521d\u5b78 Django \u5beb\u904e\u4e00\u7bc7\u521d\u6dfa\u7684\u4ecb\u7d39\u6587\uff0c\u5f8c\u4f86\uff0c\u771f\u6b63\u5728\u9032\u5165 Production \u968e\u6bb5\u7684\u6642\u5019\u9047\u5230\u4e00\u4e9b\u554f\u984c\uff0c\u672c\u7bc7\u7d00\u9304\u5728\u90e8\u7f72 Django \u5230 Apache Server \u4e0a\u7684\u6642\u5019\u9047\u5230\u7684\u6311\u6230\u3002","breadcrumb":{"@id":"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/#primaryimage","url":"https:\/\/myoceane.fr\/wp-content\/uploads\/2022\/11\/\u622a\u5716-2022-11-20-\u4e0b\u53484.01.59.png","contentUrl":"https:\/\/myoceane.fr\/wp-content\/uploads\/2022\/11\/\u622a\u5716-2022-11-20-\u4e0b\u53484.01.59.png","width":2880,"height":1402,"caption":"WSGI_django_deployment"},{"@type":"BreadcrumbList","@id":"https:\/\/myoceane.fr\/index.php\/django-launch-wsgi-in-apache-server\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/myoceane.fr\/"},{"@type":"ListItem","position":2,"name":"[Django] Launch WSGI in Apache Server"}]},{"@type":"WebSite","@id":"https:\/\/myoceane.fr\/#website","url":"https:\/\/myoceane.fr\/","name":"M-Y-Oceane \u60f3\u65b9\u6d89\u6cd5\u3002\u91cf\u74f6\u5916\u7684\u5929\u7a7a","description":"\u60f3\u65b9\u6d89\u6cd5, France, Taiwan, Health, Information Technology","publisher":{"@id":"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/myoceane.fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/myoceane.fr\/#\/schema\/person\/4a4552fb8c27693083d465e12db7658b","name":"\u6ab8\u6aac\u7238","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/myoceane.fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6cc678684664f8ad45a8d56a6630b183?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6cc678684664f8ad45a8d56a6630b183?s=96&d=mm&r=g","caption":"\u6ab8\u6aac\u7238"},"logo":{"@id":"https:\/\/myoceane.fr\/#\/schema\/person\/image\/"},"url":"https:\/\/myoceane.fr\/index.php\/author\/johnny5584767gmail-com\/"}]}},"amp_enabled":false,"_links":{"self":[{"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/posts\/8807","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/comments?post=8807"}],"version-history":[{"count":28,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/posts\/8807\/revisions"}],"predecessor-version":[{"id":9989,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/posts\/8807\/revisions\/9989"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/media\/8818"}],"wp:attachment":[{"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/media?parent=8807"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/categories?post=8807"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/myoceane.fr\/index.php\/wp-json\/wp\/v2\/tags?post=8807"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}