Enterprise Collaboration with Liferay
The Way of the Ray
Liferay is a powerful and easily customizable CMS that is ideal for community collaboration – once you get it configured.
Users on business networks often struggle to get increasingly heterogeneous infrastructures to work seamlessly. As proprietary software loses market share to more open technologies, infrastructure administrators must find ways to preserve ease of use across increasingly differing platforms. In addition to interoperability problems, each company must move forward to more collaborative environments in order to remain competitive and make the best use of its greatest (and largely untapped) asset – the ideas of its employees.
The Liferay CMS has been around for years and it keeps getting bigger and better. Many companies have implemented Liferay to address a whole spectrum of needs. From an e-commerce platform to a collaborative intranet portal, Liferay has the scalability and functionality built-in to deploy quickly and grow as the needs of the company grow.
Liferay Portal (Figure 1) provides your organization with a powerful portal for creating and managing content pages, message boards, and other collaboration tools. The Liferay CMS is not a 'silver bullet' that will solve every systematic transparency, communication, and collaboration issue for every company, but in my experience, Liferay is just about the best portal/content management system out there and a superb foundation for unifying and simplifying company communication.
The Liferay CMS comes with a large number of useful portlets – ready-made tools that let you tailor your Liferay site to the needs of your organization. But more importantly, Liferay makes it easy to bring together many different systems in one place. Departments can arrange and rearrange content in their own web space, relieving the sys admin from the duties of posting and arranging content for everyone in the organization.
So, why isn't everyone using Liferay? It is big, it is Java, and the documentation is a little intimidating. At more than 86MB (bundled with Tomcat), Liferay is one of the larger CMS packages out there. Because it is written in Java, extensibility might require some extra attention. Liferay has a steeper learning curve than the traditional CMS running on a LAMP box. The "Getting Started" documentation is easy enough to find, but because of the size of the Liferay project and the variety of configuration options, digesting it and getting started quickly is a daunting task.
Liferay supports a variety of complex configuration scenarios. In a typical scenario, a company might need an intranet site for all departments to contribute to, but access controls are necessary for preventing salespeople from rooting around in accounting's private documents and keeping HR from dropping new hire documentation in the middle of IT's web space. Different departments can use different aspects of Liferay for different things. The company will make use of the Iframe Portlet or the Web Proxy portlet to bring the web-management interfaces of several different systems like Nagios, Hobbit, or MRTG together under one roof.
The Message Boards portlet serves as a very basic help desk. Human Resources will use the Document Library portlet to post policy manuals. Sales and Marketing departments will use the Web Proxy portlet to pull in a sales dashboard report from the CRM system and the portlets related to Liferay's Journal Content portlet to store and disseminate press releases and information about product promotions.
Because Tomcat will not run on port 80 without root privileges, the configuration described in this article uses Apache HTTP server and mod_jk to serve Liferay on port 80 and allow for vhosting with other web-based applications existing on the same machine. Liferay comes set up to use a Hypersonic database, but this configuration doesn't work well for production use. In this example, I will use MySQL as the production database.
When you set up your Linux computer, make sure the system includes development tools, development libraries, and MySQL. Unless you need it, get rid of the GUI. If you decide to use the software firewall, make sure you leave ports 22, 80, and 8080 open. When the testing is complete, 8080 will be closed. If you are not familiar with manual firewall configuration, you can save some time by installing system-config-securitylevel.
Setting up MySQL
Your Liferay CMS will store and retrieve data from a back-end database system. In this case, configure the system so MySQL starts on boot. Enable the system with chkconfig mysqld on and check it with chkconfig --list mysqld. The numbers represent runlevels. The last command should produce output that indicates mysqld is set to run on runlevels 2,3,4, and 5. Log in to MySQL and create the Liferay database:
mysql -u root -p enter the password at the prompt create database lportal
Next, create the Liferay user account and give it all privileges on lportal.*.
The Liferay configuration described in this article requires Apache, Tomcat, and MySQL. Depending on your Linux distro, some of these components might already be running on your system, or you might have the option of setting up the component through your distro's package management system. Compatibility of the specific versions may vary. Alternatively, you can install the components from source code.
Buy this article as PDF
MSBuild is now just another GitHub project as Redmond continues its path to the light.
Malware could pass data and commands between disconnected computers without leaving a trace on the network.
New rules emphasize collegiality in coding.
Upstart lands in the dust bin as a new era begins for Linux.
HP's annual Cyber Risk report offers a bleak look at the state of IT.
But what do the big numbers really mean?
.NET Core execution engine is the basis for cross-platform .NET implementations.
The Xnote trojan hides itself on the target system and will launch a variety of attacks on command.
Spammers go low-volume, and 90% of IE browsers are unpatched.
Adobe scrambles to release patches for vulnerable Flash Player.