I’ll be doing a series of articles on PHP applications over the next few weeks and months. As a preface to these, some background is necessary.
PHP is a general-purpose scripting language that was inked with Web development in mind, and it produces dynamic web pages. PHP pages are interpreted on the fly using a processor module in the web server. Furthermore, PHP has a CLI and can also be used in standalone fashion.
While Linux ( and other forms of Unix ) has been the primary platform for development and execution of PHP, Microsoft has recently put some effort into supporting PHP on their Windows Server platform.
There are some complete application stacks available, like WAMP ( Windows ) and XAMPP ( Cross-platform ) which make deploying PHP for development purposes, easier. Note, these are not necessarily recommended for production purposes. Most Linux distributions include the LAMP stack by default and are the primary recommended platform for production.
Because of the FOSS nature of PHP, it has been a very popular development environment for web-based applications over the last 10 years. And as a result, there are some very important web applications that are written using this language. I’ll be covering a number of these over the next period. If you need information on any not covered here, please drop me a pm, and I’ll include it/them in my future articles.
From the home page:
MantisBT is a free popular web-based bugtracking system (feature list). It is written in the PHP scripting language and works with MySQL, MS SQL, and PostgreSQL databases and a webserver. MantisBT has been installed on Windows, Linux, Mac OS, OS/2, and others. Almost any web browser should be able to function as a client. It is released under the terms of the GNU General Public License (GPL).
While Mantis’ primary purpose is for bug-tracking, it makes a very good all-purpose ticketing system. Installation is along the lines of most PHP apps – copy the distribution files to your web server, un-archive them and point your browser to the url where the files are. Run through a short installation process and you’re good to go. As with all ticketing systems, notifications of ticket creation, changes and/or updates are sent via email, so it’s a good idea to use a robust SMTP server for this purpose.
Mantis has the concept of projects, which can be implemented together with an access control list, to limit/allow access to sets of tickets by differing people. Projects can be included within other projects to create a hierarchical system, and ACLs can be set at any level.
A user starts by reporting a new issue, starting the workflow process ( acknowledge, confirm and assign ) and adding notes to the ticket. Once a ticket is created, it can be assigned to other users, monitored for updates ( ie. other users get notification of updates ) and moved to different projects. You can use attachments with your tickets as well as tags, making the searching of tickets a doddle. Mantis does have a full-text search engine too ( includes save search ability ) for when you need a heavy duty search mechanism.
Mantis uses the idea of relationships to link tickets to one another. Tickets that have relationships, will show these in the form of links ( to the related tickets ) allowing you to ‘hop’ from one ticket to the other. URLs in ticket notes are automatically hyper-linked for you as well. The ticket history/audit trail is kept at the bottom of each ticket, additional custom fields can be created and used within tickets, and tickets can be marked as private ( for your own eyes ). Breadcrumb links are used for historical navigation and and there’s a quick jump box if you know the ticket ID.
Mantis is typically used together with MySQL as the underlying DB however it also works with PostgreSQL. As with all db-based applications, you should do regular backups using a tool appropriate to your DB. On Linux, and with MySQL, automysqlbackup makes an excellent backup tool, has innodb tables support, and includes incremental and auto backup rotation.
All in all, Mantis is a fairly full featured bug tracker although perhaps not so much as Bugzilla, but I find it easier to use. Mantis is a great ticketing application that has continuous development, good performance and can be molded to fit your needs.