• Get In Touch
January 16, 2017

How to Install dotProject on CentOS 7

Want your very own server? Get our 1GB memory, Xeon V4, 25GB SSD VPS for £10.00 / month.
Get a Cloud Server

The dotProject is a free and open source web-based multi user, multi language project management application. It is released under GPL so now you can deploy and use it for project management purposes for free.

Requirements

You don’t have to own any special kind of hardware to install dotProject on your server but it is recommended that you use a freshly created CentsOS server.

Updating System

Before installing dotProject on your CentOS server it is recommended that you update the system and to do so run following command as shown below.

yum -y update

Once the system is updated login to your system as the root user or non root user. Here we are using as root user but you can always switch between the root user and non root user using sudo command.

Installing Apache Web Server

We will need to install the Apache web server in order to install dotProject on our server so first install Apache and to do so follow the instructions below carefully.

Run the following command to install the Apache web server.

yum -y install httpd

Now you can start Apache and enable it to start at boot time, using the following commands.

systemctl start httpd.service
systemctl enable httpd.service

You can check the status of Apache web server using the following command.

systemctl status httpd

You should see following output:

[root@ip-172-31-13-86 ~]# systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2017-01-15 14:06:56 UTC; 35s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 10569 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─10569 /usr/sbin/httpd -DFOREGROUND
           ├─10570 /usr/sbin/httpd -DFOREGROUND
           ├─10571 /usr/sbin/httpd -DFOREGROUND
           ├─10572 /usr/sbin/httpd -DFOREGROUND
           ├─10573 /usr/sbin/httpd -DFOREGROUND
           └─10574 /usr/sbin/httpd -DFOREGROUND

Jan 15 14:06:56 ip-172-31-13-86 systemd[1]: Starting The Apache HTTP Server...
Jan 15 14:06:56 ip-172-31-13-86 systemd[1]: Started The Apache HTTP Server.
[root@ip-172-31-13-86 ~]#

Now we will have to remove apache’s default welcome page and to do so we will have edit the configuration file. Run below shown command:

nano /etc/httpd/conf.d/welcome.conf

You can use any text editor you want but here we are using nano text editor and if in case you don’t have nano then you can install it by usingyum install nano.

In the configuration file use # to comment out every line like shown below.

#
# This configuration file enables the default "Welcome" page if there
# is no default index page present for the root URL.  To disable the
# Welcome page, comment out all the lines below.
#
# NOTE: if this file is removed, it will be restored on upgrades.
#
#<LocationMatch "^/+$">
#    Options -Indexes
#    ErrorDocument 403 /.noindex.html
#</LocationMatch>
#
#<Directory /usr/share/httpd/noindex>
#    AllowOverride None
#    Require all granted
#</Directory>

#Alias /.noindex.html /usr/share/httpd/noindex/index.html
#Alias /noindex/css/bootstrap.min.css /usr/share/httpd/noindex/css/bootstrap.min.css
#Alias /noindex/css/open-sans.css /usr/share/httpd/noindex/css/open-sans.css
#Alias /images/apache_pb.gif /usr/share/httpd/noindex/images/apache_pb.gif
#Alias /images/poweredby.png /usr/share/httpd/noindex/images/poweredby.png


Save and exit the text editor.

Now we will have to prevent apache from displaying files in directories. Edit the configuration file as shown below.

nano /etc/httpd/conf/httpd.conf

Please find this line Options Indexes FollowSymLinks and replace it with Options FollowSymLinks.

Save the file exit from the text editor.

Now you’ll need modify the firewalld service and to do so run below given commands as shown below.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --reload

You should see result as success.

Install and Setup MySQL

To install MySQL, you will need to add the MySQL yum repository to your system, run the following command to do so.

rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

Once the repository is added, run the following command to install MySQL community server.

yum -y install mysql-community-server

Now you can start MySQL server and enable it to start at boot time like we have done before for Apache web server, using the following commands.

systemctl start mysqld
systemctl enable mysqld

You can check the status of MySQL using the following command.

systemctl status mysqld

You should see following result on your screen:

[root@ip-172-31-13-86 ~]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2017-01-15 14:18:06 UTC; 20s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
 Main PID: 10897 (mysqld)
   CGroup: /system.slice/mysqld.service
           └─10897 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid

Jan 15 14:17:55 ip-172-31-13-86 systemd[1]: Starting MySQL Server...
Jan 15 14:18:06 ip-172-31-13-86 systemd[1]: Started MySQL Server.
[root@ip-172-31-13-86 ~]#

During installation of MySQL, the installer automatically uses a random password for the MySQL root user, you can obtain the password using the following command.

grep 'temporary password' /var/log/mysqld.log
You will see the following output containing the current root password.

[root@ip-172-31-13-86 ~]# grep 'temporary password' /var/log/mysqld.log
2017-01-15T14:18:03.617150Z 1 [Note] A temporary password is generated for root@localhost: )/LT9!gX<hgy
[root@ip-172-31-13-86 ~]#

Now you can run the following command to harden the security of your MySQL server.

mysql_secure_installation

You will be asked about your current root password, enter the password obtained through the command above. Now it will prompt to change your root password, and provide y for all the questions asked.

Now create a database to store data for dotProject and to do so run this command.

mysql -u root -p

Now execute the following query to create a new database.

CREATE DATABASE dotproject_data;

The above query will create a database named dotproject_data. For the database you can use any name you prefer in the place of dotproject_data. Make sure that you use a semicolon at the end of each query as a MySQL query always ends with a semicolon. Once the database is created you can create a new user and grant the required permissions to the user for the database.

CREATE USER 'dotproject_user'@'localhost' IDENTIFIED BY 'StrongPassword';

The above query will create a user with username dotproject_user. You can use any preferred username instead of dotproject_user. Replace StrongPassword with a strong password.

Now provide the appropriate privileges to your database user over the database you have created. Run the following query to do so.

GRANT ALL PRIVILEGES ON dotproject_data.* TO 'dotproject_user'@'localhost';

Now run the following query to immediately apply the changes on the database privileges.

FLUSH PRIVILEGES;
Now you can exit from MySQL prompt using following command.
exit

Install and Configure PHP

Run following command to install PHP and its required components as shown below.

yum install php php-gd php-mbstring php-mysqli php-curl php-ldap php-xsl php-xml php-cli php-pear

Now you’ll have to modify PHP settings in php.ini file using any text editor here we are using nano text editor.

nano /etc/php.ini

Please find this line ;date.timezone = and replace it with date.timezone = Asia/Kolkata (Asia/Kolkata isthe timezone value of our server you’ll have to enter timezone value of your server).

Please find this line session.auto_start = 0 and replace it with session.auto_start = 1 now save the file and exit text editor.

You’ll have to restart your apache and mysql server to put changes into effect so run below given command to do so.
systemctl restart httpd mysqld

Downloading dotProject

Download the dotProject using wget command on your system if in case you don’t have already installed wget package on your system then you can install it using yum install wget

Run this command to download dotProject on your server.

cd ~

wget http://downloads.sourceforge.net/project/dotproject/dotproject/dotProject%20Version%202.1.8/dotproject-2.1.8.tar.gz

Now extract the downloaded file and to do so run following command.

tar -zxvf dotproject-2.1.8.tar.gz

Run below given commands to change proper ownership.

chown -R apache: dotproject/
mv dotproject/* /var/www/html/

Web Access of dotProject

You’ll have to access dotProject in your favorite web browser to complete the installation process so please visit http://yourserverIP from your favorite web browser and you’ll see a web page like this:

HP_NO_IMG/data/uploads/users/744ed2f1-2baa-42b2-b09d-ad15a2ae3934/1598263030.png” alt=” ” />

We recommend that you review all of the details shown on your screen and finally click on Start Installation button on the top.
HP_NO_IMG/data/uploads/users/744ed2f1-2baa-42b2-b09d-ad15a2ae3934/1814619504.png” alt=” ” />

Next, provide full database details and finally click on install db & write cfg on right hand side at the bottom which is recommended.

The next screen you’ll see like this so please click on Login and Configure the dotProject System Environment.

HP_NO_IMG/data/uploads/users/744ed2f1-2baa-42b2-b09d-ad15a2ae3934/1108767215.png” alt=” ” />

Now enter a default username and password to login to the dotProject system menu.

HP_NO_IMG/data/uploads/users/744ed2f1-2baa-42b2-b09d-ad15a2ae3934/2053249013.png” alt=” ” />

HP_NO_IMG/data/uploads/users/744ed2f1-2baa-42b2-b09d-ad15a2ae3934/652004333.png” alt=” ” />

Security Cleanup

For security purposes, you should change the password immediately and to do so follow below given instructions carefully.

  • Find the menu on the web interface.
  • Click the menu item “User Admin => Login Name”.
  • Under “admin”, Click the link on the right hand side.
  • Under “change password”, input a new password twice in the pop-up window.
  • Click the button “submit”, then close the pop-up window.
Want your very own server? Get our 1GB memory, Xeon V4, 25GB SSD VPS for £10.00 / month.
Get a Cloud Server

Share this Article!

Related Posts

Node.js Authentication – A Complete Guide with Passport and JWT

Node.js Authentication – A Complete Guide with Passport and JWT

Truth be told, it’s difficult for a web application that doesn’t have some kind of identification, even if you don’t see it as a security measure in and of itself. The Internet is a kind of lawless land, and even on free services like Google’s, authentication ensures that abuses will be avoided or at least […]

Node.js and MongoDB: How to Connect MongoDB With Node

Node.js and MongoDB: How to Connect MongoDB With Node

MongoDB is a document-oriented NoSQL database, which was born in 2007 in California as a service to be used within a larger project, but which soon became an independent and open-source product. It stores documents in JSON, a format based on JavaScript and simpler than XML, but still with good expressiveness. It is the dominant […]

Using MySQL with Node.js: A Complete Tutorial

Using MySQL with Node.js: A Complete Tutorial

Although data persistence is almost always a fundamental element of applications, Node.js has no native integration with databases. Everything is delegated to third-party libraries to be included manually, in addition to the standard APIs. Although MongoDB and other non-relational databases are the most common choice with Node because if you need to scale an application, […]

Node.Js Vs Django: Which Is the Best for Your Project

Node.Js Vs Django: Which Is the Best for Your Project

Django and NodeJs are two powerful technologies for web development, both have great functionality, versatile applications, and a great user interface. Both are open source and can be used for free. But which one fits your project best? NodeJs is based on JavaScript, while Django is written in Python. These are two equally popular technologies […]

Nodejs Vs PHP:  Which Works Best?

Nodejs Vs PHP: Which Works Best?

Before getting into the “battle” between Node.js and PHP we need to understand why the issue is still ongoing. It all started with the increased demand for smartphone applications, their success forcing developers to adapt to new back-end technologies that could handle a multitude of simultaneous requests. JavaScript has always been identified as a client-side […]