Overview
TRAC is a lightweight software project management system with its own wiki, which adheres to the BSD open source Protocol's open source software. The project homepage is https://trac.edgewall.org, and the source code is mirrored on GitHub git://github.com/edgewall/trac.git
TRAC can run a standalone server and run the server with the following line of commands. If there is only one TRAC instance, this is a way to meet the requirements.
TRACD Path/to/trac--port=8080
Trac can also be run using Apache, which is implemented by loading the MOD_WSGI module to run the Python Web server. This article mainly describes the configuration of TRAC on Ubuntu systems.
Assuming the software has been installed, Mysql-python, Trac (v1.2) and related dependencies are also successfully installed via PIP. Also assume that the TRAC instance is demo installed on/opt/trac/demo, deploy file to/opt/trac-deploy
Software preparation
[Email protected]:~$ lsb_release-aNo LSB modules is available. Distributor id:ubuntudescription: 16.10Release: 16.10codename: Yakkety
- Python2.7/pip/mysql5.7/apache2
[Email protected]:~$ python-v2.7.13zhongw@s1: ~$ mysql-vMySQL for Linux (i686) using editline wrapperzhongw@s1: ~$ pip-V 9.0.1 from/home/zhongw/.local/lib/python2.7/site-packages (python 2.7) Zhongw@s1: ~$/usr/local/apache2/bin/apachectl-vServer version:apache/2.4.25 (Unix) Server built: 15:51:58
server:apache/2.4.25 (Unix) mod_wsgi/4.5.15 python/2.7
Compiling MOD_WSGI
Apache, MySQL, and Python can all be installed through Apt-get, but Mod_wsgi need to be installed from source code.
Find the source code for the latest released version of Mod_wsgi from GitHub Https://github.com/GrahamDumpleton/mod_wsgi
The version that this article uses is 4.5.15
[Email protected]:~/mod_wsgi-4.5.15$./configure--with-apxs=/usr/local/apache2/bin/apxs--with-python=/usr/local/ bin/pythonchecking forgcc ... gccchecking whether the C compiler works ... yeschecking forC compilerdefaultoutput file name ... a.outchecking forsuffix of executables...checking whether we is cross compiling ... nochecking forsuffix of object files ... ochecking whether we are using the GNU C compiler ... yeschecking whether GCC accepts-g ... yeschecking forgcc option to accept ISO C89 ... none neededchecking forprctl ... yeschecking Apache version ...2.4.25configure:creating./config.statusconfig.status:creating Makefile
- Run make command to compile Mod_wsgi
If there is a compilation problem, refer to the official document to solve, the common is not found Python.h and other issues, the official detailed description.
[Email protected]:~/mod_wsgi-4.5.15$sudo make install/usr/local/apache2/bin/apxs-i-S libexecdir=/usr/local/apache2/modules-n ' Mod_wsgi ' src/server/mod_wsgi.la/usr/local/apache2/build/instdso.sh sh_libtool= '/usr/local/apr/build-1/libtool ' src/server/mod_wsgi.la/usr/local /apache2/Modules/usr/local/apr/build-1/libtool--mode=install Install src/server/mod_wsgi.la/usr/local/apache2/modules/libtool:install:install src/server/.libs/mod_wsgi.so/usr/local/apache2/modules/mod_wsgi.solibtool:install:install src/server/.libs/mod_wsgi.lai/usr/local/apache2/modules/mod_wsgi.lalibtool:install:install src/server/.libs/mod_wsgi.a/usr/local/apache2/modules/Mod_wsgi.alibtool:install:chmod644/usr/local/apache2/modules/Mod_wsgi.alibtool:install:ranlib/usr/local/apache2/modules/Mod_wsgi.alibtool:finish:PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/sbin"Ldconfig-n/usr/local/apache2/Modules----------------------------------------------------------------------Libraries have been installedinch: /usr/local/apache2/ModulesIfYou ever happen to want to link against installed librariesincha given directory, Libdir, you must either use Libtool, andspecify the full pathname of the library, or use the ' -llibdir ' flag during linking and DoAt least one of the following:-add Libdir to the ' ld_library_path ' environment variable during execution-add Libdir to the ' Ld_run_path ' environment variable during linking-Use the '-wl,-rpath-WL,LIBDIR ' linker flag-Your system administrator add Libdir to '/etc/ld.so.conf ' See all operating system documentation about shared libraries forMore information, such as the LD (1) and ld.so (8) manual pages.----------------------------------------------------------------------chmod755/usr/local/apache2/modules/Mod_wsgi.sozhongw@s1: ~/mod_wsgi-4.5.15$
The Mod_wsgi.so module is already installed in the Apache modules directory.
Verify the Mod_wsgi module
[Email protected]:/usr/local/apache2/modules$ ldd mod_wsgi.so linux-gate.so.1 = (0xb7735000 ) Libpython2. 7.so.1.0 =/usr/local/lib/libpython2.7.so.1.0 (0xb74ba000) libpthread.so. 0 =/lib/i386-linux-gnu/libpthread.so.0 (0xb749d000) libc.so. 6 =/lib/i386-linux-gnu/libc.so.6 (0xb72e1000) libdl.so. 2 =/lib/i386-linux-gnu/libdl.so.2 (0xb72dc000) libutil.so. 1 =/lib/i386-linux-gnu/libutil.so.1 (0xb72d8000) libm.so. 6 =/lib/i386-linux-gnu/libm.so.6 (0xb7282000) /lib/ld-linux.so.2 (0x80065000)
Configure httpd.conf
1. Add support for MOD_WSGI in the location of the loading module
LoadModule Wsgi_module modules/mod_wsgi.so
2. Using Apache's htpasswd to generate a password file, TRAC uses the generated password file to manage the user.
Htpasswd-c/opt/trac.htpasswd adminnew password:re- for user admin
3. Add directory and VirtualHost configuration
<Directory/opt/trac-deploy/cgi-bin>Wsgiapplicationgroup%{GLOBAL} <ifmodule mod_authz_core.c>Require All granted </ifmodule></directory><virtualhost*:80>ServerName localhost documentroot"/opt/trac-deploy/htdocs"Wsgiscriptalias//opt/trac-deploy/cgi-bin/Trac.wsgi <locationmatch"/login">authtype Basic AuthName"Trac"AuthUserFile/opt/trac.htpasswd Require Valid-User </locationmatch></virtualhost>
Browse TRAC after restarting service
Ubuntu Install Apache + mod_wsgi + Trac + Python 2.7