{"id":10001,"date":"2021-08-10T23:39:01","date_gmt":"2021-08-10T20:39:01","guid":{"rendered":"https:\/\/kifarunix.com\/?p=10001"},"modified":"2024-03-18T19:15:51","modified_gmt":"2024-03-18T16:15:51","slug":"install-redmine-on-rocky-linux","status":"publish","type":"post","link":"https:\/\/kifarunix.com\/install-redmine-on-rocky-linux\/","title":{"rendered":"Install Redmine on Rocky Linux 8|Rocky Linux 9"},"content":{"rendered":"\n<p>This guide will take you through how to install&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/www.redmine.org\/\" target=\"_blank\">Redmine<\/a>&nbsp;on Rocky Linux 8|Rocky Linux 9. Redmine is a cross-platform as well as cross-database flexible project management web application.<\/p>\n\n\n\n<p>Redmine has quite a number of features that are described on&nbsp;<a href=\"https:\/\/www.redmine.org\/projects\/redmine\/wiki\/Features\" target=\"_blank\" rel=\"noreferrer noopener\">Redmine features page<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\"><h2>Table of Contents<\/h2><nav><ul><li><a href=\"#installing-redmine-on-rocky-linux-9-8\">Installing Redmine on Rocky Linux 9\/8<\/a><ul><li><a href=\"#create-redmine-system-user\">Create Redmine System User<\/a><\/li><li><a href=\"#install-apache-http-server\">Install Apache HTTP Server<\/a><\/li><li><a href=\"#install-maria-db-database-backend\">Install MariaDB Database Backend<\/a><\/li><li><a href=\"#create-redmine-database-and-database-user\">Create Redmine Database and Database User<\/a><\/li><li><a href=\"#download-and-install-redmine\">Download and Install Redmine<\/a><ul><li><a href=\"#install-required-dependencies\">Install Required Dependencies<\/a><\/li><li><a href=\"#install-ruby-on-rocky-linux-8-rocky-linux-9\">Install Ruby on Rocky Linux 8|Rocky Linux 9<\/a><\/li><li><a href=\"#download-and-install-redmine-1\">Download and Install Redmine<\/a><\/li><li><a href=\"#configure-redmine-database-connection-settings\">Configure Redmine Database Connection Settings<\/a><\/li><li><a href=\"#install-ruby-dependencies\">Install Ruby Dependencies<\/a><\/li><li><a href=\"#generate-secret-session-token\">Generate Secret Session Token<\/a><\/li><li><a href=\"#create-database-schema-objects\">Create Database Schema Objects<\/a><\/li><li><a href=\"#configure-file-system-permissions\">Configure FileSystem Permissions<\/a><\/li><\/ul><\/li><li><a href=\"#testing-redmine-installation\">Testing Redmine Installation<\/a><\/li><li><a href=\"#configure-apache-for-redmine\">Configure Apache for Redmine<\/a><ul><li><a href=\"#install-apache-passenger-module\">Install Apache Passenger Module<\/a><\/li><li><a href=\"#create-redmine-apache-configuration-file\">Create Redmine Apache Configuration file<\/a><\/li><\/ul><\/li><li><a href=\"#access-redmine-from-browser\">Access Redmine from Browser<\/a><\/li><li><a href=\"#reference\">Reference<\/a><\/li><li><a href=\"#other-rocky-linux-tutorials\">Other Rocky Linux tutorials<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"installing-redmine-on-rocky-linux-9-8\">Installing Redmine on Rocky Linux 9\/8<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"create-redmine-system-user\">Create Redmine System User<\/h3>\n\n\n\n<p>In this guide, we will install Redmine on&nbsp;<code>\/opt\/redmine<\/code>&nbsp;directory and run it as non-privileged redmine system user.<\/p>\n\n\n\n<p>As such, create a redmine system user&nbsp;<strong>(or any other non-privileged system user that Redmine will run as for that case)<\/strong>&nbsp;and assign the&nbsp;<code>\/opt\/redmine<\/code>&nbsp;as its home directory.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>useradd -r -m -d \/opt\/redmine redmine<\/code><\/pre>\n\n\n\n<p>Consult&nbsp;<code><strong>man useradd<\/strong><\/code>&nbsp;to learn what the options used above means.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"install-apache-http-server\">Install Apache HTTP Server<\/h3>\n\n\n\n<p>To install Apache HTTP server on Rocky Linux 8|Rocky Linux 9, simply execute;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>dnf install httpd<\/code><\/pre>\n\n\n\n<p>Start and enable Apache HTTP server to run on system boot;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>systemctl enable httpd --now<\/code><\/pre>\n\n\n\n<p>Next, since we will be using Apache as our HTTP server, add Apache to Redmine group.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>usermod -aG redmine apache<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"install-maria-db-database-backend\">Install MariaDB Database Backend<\/h3>\n\n\n\n<p>Redmine supports a number of database back-ends such as PostgreSQL, MySQL\/MariaDB, MSSQL. In this demo, we are using MariaDB 10.x.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dnf install mariadb-server<\/code><\/pre>\n\n\n\n<p>run the command below to start and enable MariaDB server on system boot;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl enable --now mariadb<\/code><\/pre>\n\n\n\n<p>Run initial MariaDB database secure script to remove default databases, test tables, disable remote root login;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mysql_secure_installation<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"create-redmine-database-and-database-user\">Create Redmine Database and Database User<\/h3>\n\n\n\n<p>Once the database backend is installed, login and create the database and database user for Redmine. Replace the database name accordingly.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>mysql -u root -p<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>create database <strong>redminedb<\/strong>;<\/code><\/pre>\n\n\n\n<p>Create and grant the user all privileges on the database created.&nbsp;<strong>Replace the database user and password accordingly<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>grant all on <strong>redminedb.*<\/strong> to <strong>redmineadmin@localhost<\/strong> identified by 'P@ssWorD';<\/code><\/pre>\n\n\n\n<p>Reload privileges tables and quit.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>flush privileges;\nquit<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"download-and-install-redmine\">Download and Install Redmine<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"install-required-dependencies\">Install Required Dependencies<\/h4>\n\n\n\n<p>Begin by installing the dependencies required to build Redmine. First install EPEL and enable the PowerTools repositories.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>dnf install epel-release -y<\/code><\/pre>\n\n\n\n<p>Rocky Linux 8<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>dnf config-manager --set-enabled powertools<\/code><\/pre>\n\n\n\n<p>On Rocky Linux 9, Powertools is known as crb;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dnf config-manager --set-enabled crb<\/code><\/pre>\n\n\n\n<p>Next, proceed to install the dependencies.<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>dnf install ruby-devel \\\n\trpm-build \\\n\twget \\\n\tlibxml2-devel \\\n\tvim \\\n\tmake \\\n\topenssl-devel \\\n\tautomake \\\n\tlibtool \\\n\tImageMagick \\\n\tImageMagick-devel \\\n\tmariadb-devel \\\n\tgcc \\\n\thttpd-devel \\\n\tlibcurl-devel \\\n\tgcc-c++ -y\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"install-ruby-on-rocky-linux-8-rocky-linux-9\">Install Ruby on Rocky Linux 8|Rocky Linux 9<\/h4>\n\n\n\n<p>Redmine also requires Ruby interpreter which can be installed by executing the command;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>dnf install ruby -y<\/code><\/pre>\n\n\n\n<p><a href=\"https:\/\/www.redmine.org\/projects\/redmine\/wiki\/RedmineInstall#Ruby-interpreter\" target=\"_blank\" rel=\"noreferrer noopener\">Redmine version 5.1 supports&nbsp;upto Ruby 3.1<\/a>&nbsp;as of this post update!<\/p>\n\n\n\n<p>Verify installed version.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>ruby -v<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>ruby 3.0.4p208 (2022-04-12 revision 3fa771dded) &#91;x86_64-linux]<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"download-and-install-redmine-1\">Download and Install Redmine<\/h4>\n\n\n\n<p>In order to install the latest version of Redmine, navigate to the&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/www.redmine.org\/projects\/redmine\/wiki\/Download\" target=\"_blank\">Download\u2019s page<\/a>&nbsp;and grab the latest stable release version.<\/p>\n\n\n\n<p>You can simply download and extract the Redmine tarball to the Redmine install directory,&nbsp;<code>\/opt\/redmine<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>VER=5.1.0<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -s https:\/\/www.redmine.org\/releases\/redmine-$VER.tar.gz | \\\nsudo -u redmine tar xz -C \/opt\/redmine\/ --strip-components=1<\/code><\/pre>\n\n\n\n<p>You should now have redmine files under&nbsp;<strong>\/opt\/redmine<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ls -alh \/opt\/redmine<\/pre>\n\n\n\n<pre class=\"scroll-box\"><code>total 188K\ndrwx------. 17 redmine redmine 4.0K Nov 12 19:51 .\ndrwxr-xr-x.  3 root    root      21 Nov 12 19:34 ..\ndrwxr-xr-x.  8 redmine redmine   97 Oct 31 00:50 app\n-rw-r--r--.  1 redmine redmine  863 Oct 31 00:50 appveyor.yml\n-rw-r--r--.  1 redmine redmine   18 Jan 23  2023 .bash_logout\n-rw-r--r--.  1 redmine redmine  141 Jan 23  2023 .bash_profile\n-rw-r--r--.  1 redmine redmine  492 Jan 23  2023 .bashrc\ndrwxr-xr-x.  2 redmine redmine   78 Oct 31 00:50 bin\ndrwxr-xr-x.  5 redmine redmine 4.0K Oct 31 00:50 config\n-rw-r--r--.  1 redmine redmine  129 Oct 31 00:50 config.ru\n-rw-r--r--.  1 redmine redmine  538 Oct 31 00:50 CONTRIBUTING.md\ndrwxr-xr-x.  3 redmine redmine   21 Oct 31 00:50 db\ndrwxr-xr-x.  2 redmine redmine  113 Oct 31 00:50 doc\ndrwxr-xr-x.  5 redmine redmine   58 Oct 31 00:50 extra\ndrwxr-xr-x.  2 redmine redmine   23 Oct 31 00:50 files\n-rw-r--r--.  1 redmine redmine 3.5K Oct 31 00:50 Gemfile\ndrwxr-xr-x.  2 redmine redmine   38 Oct 31 00:50 .github\n-rw-r--r--.  1 redmine redmine  823 Oct 31 00:50 .gitignore\n-rw-r--r--.  1 redmine redmine  694 Oct 31 00:50 .hgignore\ndrwxr-xr-x.  6 redmine redmine   85 Oct 31 00:50 lib\ndrwxr-xr-x.  2 redmine redmine   23 Oct 31 00:50 log\n-rw-r--r--.  1 redmine redmine   81 Oct 31 00:50 package.json\ndrwxr-xr-x.  2 redmine redmine   20 Oct 31 00:50 plugins\ndrwxr-xr-x.  8 redmine redmine 4.0K Oct 31 00:50 public\n-rwxr-xr-x.  1 redmine redmine  275 Oct 31 00:50 Rakefile\n-rw-r--r--.  1 redmine redmine  205 Oct 31 00:50 README.rdoc\n-rw-r--r--.  1 redmine redmine  56K Oct 31 00:50 .rubocop_todo.yml\n-rw-r--r--.  1 redmine redmine 5.3K Oct 31 00:50 .rubocop.yml\n-rw-r--r--.  1 redmine redmine   42 Oct 31 00:50 .stylelintignore\n-rw-r--r--.  1 redmine redmine 1009 Oct 31 00:50 .stylelintrc\ndrwxr-xr-x. 15 redmine redmine 4.0K Oct 31 00:50 test\ndrwxr-xr-x.  8 redmine redmine   95 Oct 31 00:50 tmp\ndrwxr-xr-x.  2 redmine redmine    6 Oct 31 00:50 vendor\n-rw-r--r--.  1 redmine redmine  51K Oct 31 00:50 yarn.lock\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"configure-redmine-database-connection-settings\">Configure Redmine Database Connection Settings<\/h4>\n\n\n\n<p>First switch to Redmine\u2019s user account.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>su - redmine<\/code><\/pre>\n\n\n\n<p>Rename the sample Redmine configuration.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>cp config\/configuration.yml{.example,}<\/code><\/pre>\n\n\n\n<p>Rename the sample dispatch CGI configuration file under the public folder as shown below;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>cp public\/dispatch.fcgi{.example,}<\/code><\/pre>\n\n\n\n<p>Rename the sample the database configuration file.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>cp config\/database.yml{.example,}<\/code><\/pre>\n\n\n\n<p>Next, open the database configure file for editing and and configure it to set the Redmine database connection details.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>vim config\/database.yml<\/code><\/pre>\n\n\n\n<p><strong>Replace the database name, database user and the password accordingly.<\/strong><\/p>\n\n\n\n<pre class=\"scroll-box\"><code>...\nproduction:\n  adapter: mysql2\n  database: redminedb\n  host: localhost\n  username: redmineadmin\n  password: \"P@ssWorD\"\n  # Use \"utf8\" instead of \"utfmb4\" for MySQL prior to 5.7.7\n  encoding: utf8mb4\n...\n<\/code><\/pre>\n\n\n\n<p>Save and exit the file.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"install-ruby-dependencies\">Install Ruby Dependencies<\/h4>\n\n\n\n<p>Next, install required Ruby dependencies. Note that this step should be executed as Redmine user created above. If you are still logged in as Redmine user, proceed. Otherwise, switch to redmine user.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>su - redmine<\/code><\/pre>\n\n\n\n<p>Install Bundler for managing gem dependencies.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>gem install bundler<\/code><\/pre>\n\n\n\n<p>Once the bundler installation is done, you can now install required gems dependencies.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bundle config set --local path 'vendor\/bundle'<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>bundle config set --local without 'development test'<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>bundle install<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"generate-secret-session-token\">Generate Secret Session Token<\/h4>\n\n\n\n<p>To prevent tempering of the cookies that stores session data, you need to generate a random secret key that Rails uses to encode them.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>bundle exec rake generate_secret_token<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"create-database-schema-objects\">Create Database Schema Objects<\/h4>\n\n\n\n<p>Create Rails database structure by running the command below;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>RAILS_ENV=production bundle exec rake db:migrate<\/code><\/pre>\n\n\n\n<p>Once the database migration is done, insert default configuration data into the database by executing;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>RAILS_ENV=production REDMINE_LANG=en bundle exec rake redmine:load_default_data<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"configure-file-system-permissions\">Configure FileSystem Permissions<\/h4>\n\n\n\n<p>Ensure that the following directories are available on Redmine directory,&nbsp;<strong>\/opt\/redmine.<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>tmp and tmp\/pdf<\/li>\n\n\n\n<li>public and public\/plugin_assets<\/li>\n\n\n\n<li>log<\/li>\n\n\n\n<li>files<\/li>\n<\/ul>\n\n\n\n<p>If they do not exist, simply create them and ensure that they are owned by the user used to run Redmine.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>for i in tmp tmp\/pdf public\/plugin_assets; do [ -d $i ] || mkdir -p $i; done<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>chown -R redmine:redmine files log tmp public\/plugin_assets<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>chmod -R 755 \/opt\/redmine\/<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"testing-redmine-installation\">Testing Redmine Installation<\/h3>\n\n\n\n<p>The setup of Redmine on Rocky Linux 8|Rocky Linux 9 is now done. You can test Redmine using WEBrick by executing the command below;<\/p>\n\n\n\n<p>You can now test Redmine using WEBrick by executing the command below;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>su - redmine<\/code><\/pre>\n\n\n\n<p>Add webrick to Gemfile;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo 'gem \"webrick\"' &gt;&gt; Gemfile<\/code><\/pre>\n\n\n\n<p>Install webrick gem and test the installation;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bundle install<\/code><\/pre>\n\n\n\n<pre id=\"block-cb556ad3-ebd1-450d-9c96-b5d3925e5d51\" class=\"wp-block-code\"><code>bundle exec rails server -u webrick -e production<\/code><\/pre>\n\n\n\n<p>Sample output;<\/p>\n\n\n\n<pre class=\"scroll-sz\"><code>=> Booting WEBrick\n=> Rails 6.1.7.6 application starting in production http:\/\/0.0.0.0:3000\n=> Run `bin\/rails server --help` for more startup options\n[2023-11-12 20:09:01] INFO  WEBrick 1.8.1\n[2023-11-12 20:09:01] INFO  ruby 3.0.4 (2022-04-12) [x86_64-linux]\n[2023-11-12 20:09:01] INFO  WEBrick::HTTPServer#start: pid=27883 port=3000\n<\/code><\/pre>\n\n\n\n<p>You can now access Redmine via the browser using the address,&nbsp;<code><strong>http:\/\/Server-IP:3000\/<\/strong><\/code>.<\/p>\n\n\n\n<p>Before that, open port 3000\/tcp on firewalld. Run the commands below as privileged user.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>firewall-cmd --add-port=3000\/tcp --permanent\nfirewall-cmd --reload<\/code><\/pre>\n\n\n\n<p>Once the port is opened, navigate to the browser and access Redmine. You should see a welcome page.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1901\" height=\"280\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/08\/redmine-webrick.png\" alt=\"\" class=\"wp-image-10012\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/08\/redmine-webrick.png?v=1628626525 1901w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/08\/redmine-webrick-768x113.png?v=1628626525 768w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/08\/redmine-webrick-1536x226.png?v=1628626525 1536w\" sizes=\"(max-width: 1901px) 100vw, 1901px\" \/><\/figure>\n\n\n\n<p>Click&nbsp;<strong>sign in<\/strong>&nbsp;at the top right corner and use the credentials:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>User<\/strong>:&nbsp;<code>admin<\/code><\/li>\n\n\n\n<li><strong>Password:<\/strong>&nbsp;<code>admin<\/code><\/li>\n<\/ul>\n\n\n\n<p>To stop Redmine foreground run, just press CTRL+C.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"configure-apache-for-redmine\">Configure Apache for Redmine<\/h3>\n\n\n\n<p>Once you have confirmed that Redmine is working fine after the testing, you need to configure Apache HTTP server for Redmine.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"install-apache-passenger-module\">Install Apache Passenger Module<\/h4>\n\n\n\n<p>Phusion Passenger is a web application server that can be used to server Redmine on production environments.<\/p>\n\n\n\n<p>You can install the Apache Passenger module on Rocky Linux 8|Rocky Linux 9 as follows;<\/p>\n\n\n\n<p>Install the passenger repo;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl --fail -sSLo \\\n\/etc\/yum.repos.d\/passenger.repo \\\nhttps:&#47;&#47;oss-binaries.phusionpassenger.com\/yum\/definitions\/el-passenger.repo<\/code><\/pre>\n\n\n\n<p>Install the module;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>yum install -y mod_passenger<\/code><\/pre>\n\n\n\n<p>When installed, it should be enabled by default.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>httpd -M | grep passenger<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>passenger_module (shared)<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"create-redmine-apache-configuration-file\">Create Redmine Apache Configuration file<\/h4>\n\n\n\n<p>Create Apache virtual host configuration for Redmine with the following content. Replace the server name accordingly. You can as well change the default port if you want.<\/p>\n\n\n\n<pre class=\"scroll-box\"><code>cat &gt; \/etc\/httpd\/conf.d\/redmine.conf &lt;&lt; 'EOL'\nListen 3000\n&lt;VirtualHost *:3000&gt;\n    ServerName redmine.kifarunix-demo.com\n    DocumentRoot \"\/opt\/redmine\/public\" \n\n    CustomLog logs\/redmine_access.log combined\n    ErrorLog logs\/redmine_error_log\n    LogLevel warn\n\n    &lt;Directory \"\/opt\/redmine\/public\"&gt;\n        Options Indexes ExecCGI FollowSymLinks\n        Require all granted\n        AllowOverride all\n    &lt;\/Directory&gt;\n&lt;\/VirtualHost&gt;\nEOL\n<\/code><\/pre>\n\n\n\n<p>Verify Apache configuration syntax.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>httpd -t<\/code><\/pre>\n\n\n\n<pre id=\"block-c82f069c-4bd4-4419-8840-134b3dac1631\" class=\"wp-block-preformatted\">Syntax OK<\/pre>\n\n\n\n<p>Once the installation and setup of Apache Passenger module is complete, restart Apache<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>systemctl restart httpd<\/code><\/pre>\n\n\n\n<p>Check if anything is listening on Port 3000.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>lsof -i :3000<\/code><\/pre>\n\n\n\n<pre class=\"scroll-sz\"><code>COMMAND   PID   USER   FD   TYPE DEVICE SIZE\/OFF NODE NAME\nhttpd   31382   root    6u  IPv6  78641      0t0  TCP *:hbci (LISTEN)\nhttpd   31420 apache    6u  IPv6  78641      0t0  TCP *:hbci (LISTEN)\nhttpd   31425 apache    6u  IPv6  78641      0t0  TCP *:hbci (LISTEN)\nhttpd   31426 apache    6u  IPv6  78641      0t0  TCP *:hbci (LISTEN)\n<\/code><\/pre>\n\n\n\n<p>That is awesome.<\/p>\n\n\n\n<p>If <strong><code>lsof<\/code><\/strong> command is not installed, install it as follows;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>yum install lsof -y<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"access-redmine-from-browser\">Access Redmine from Browser<\/h3>\n\n\n\n<p>Since we have already opened port 3000\/tcp on firewallD, you should be able to access Redmine web interface now.<\/p>\n\n\n\n<p>Replace the&nbsp;<strong>server-IP-or-Hostname<\/strong>&nbsp;accordingly.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>http:\/\/server-IP-or-Hostname:3000<\/code><\/pre>\n\n\n\n<p>Ensure the port is opened on the firewall.<\/p>\n\n\n\n<p>Default login credentials given above.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1393\" height=\"480\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/11\/redmine-login-page.png?v=1699822853\" alt=\"Install Redmine on Rocky Linux\" class=\"wp-image-19226\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/11\/redmine-login-page.png?v=1699822853 1393w, https:\/\/kifarunix.com\/wp-content\/uploads\/2023\/11\/redmine-login-page-768x265.png?v=1699822853 768w\" sizes=\"(max-width: 1393px) 100vw, 1393px\" \/><\/figure>\n\n\n\n<p>If you get the error below;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code><strong>We're sorry, but something went wrong.\nThe issue has been logged for investigation. Please try again later.<\/strong><\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"922\" height=\"588\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/08\/phusion-selinux-3.png\" alt=\"\" class=\"wp-image-10019\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/08\/phusion-selinux-3.png?v=1628627357 922w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/08\/phusion-selinux-3-768x490.png?v=1628627357 768w\" sizes=\"(max-width: 922px) 100vw, 922px\" \/><\/figure>\n\n\n\n<p>You need to sort your SELinux permissions.<\/p>\n\n\n\n<p>Phusion Passenger when not installed from the repositories does not come with SELinux&nbsp;policy modules and thus may not work well with SELinux enabled.<\/p>\n\n\n\n<p>To make this simple, just disable SELinux and reboot your system and then access Redmine again on browser.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>setenforce 0<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>sed -i 's\/=enforcing\/=disabled\/' \/etc\/selinux\/config<\/code><\/pre>\n\n\n\n<p>Otherwise if you want to keep SELinux running, generate a custom SELinux module for Phusion Passenger for any denied entry in&nbsp;<code>\/var\/log\/audit\/audit.log<\/code>&nbsp;and install it. For example;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>dnf install policycoreutils-python-utils<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>audit2allow -a -M passenger<\/code><\/pre>\n\n\n\n<p>This command generated a policy package that can be installed by running;<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>semodule -i passenger.pp<\/code><\/pre>\n\n\n\n<p><strong>Note that in this guide, SELinux is disabled and I haven\u2019t tried this method. It may or may not work. Good luck.<\/strong><\/p>\n\n\n\n<p>With SELinux issues fixed, login to Redmine using admin for both user and password.<\/p>\n\n\n\n<p>You are prompted to reset the password. Do reset and proceed to login to Redmine web interface.<\/p>\n\n\n\n<p>After login, reset the password and proceed to setup your Redmine profile on Rocky Linux 8|Rocky Linux 9.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1882\" height=\"816\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/08\/redmine-dashboard-2.png\" alt=\"\" class=\"wp-image-10022\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/08\/redmine-dashboard-2.png?v=1628627521 1882w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/08\/redmine-dashboard-2-768x333.png?v=1628627521 768w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/08\/redmine-dashboard-2-1536x666.png?v=1628627521 1536w\" sizes=\"(max-width: 1882px) 100vw, 1882px\" \/><\/figure>\n\n\n\n<p>Once your profile is setup, you can jump to new project.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1902\" height=\"695\" src=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/08\/project.png\" alt=\"\" class=\"wp-image-10020\" title=\"\" srcset=\"https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/08\/project.png?v=1628627416 1902w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/08\/project-768x281.png?v=1628627416 768w, https:\/\/kifarunix.com\/wp-content\/uploads\/2021\/08\/project-1536x561.png?v=1628627416 1536w\" sizes=\"(max-width: 1902px) 100vw, 1902px\" \/><\/figure>\n\n\n\n<p>That marks the end of our guide on how to install Redmine. You can now explore this awesome tool.<\/p>\n\n\n\n<p>Read more on how to use <a href=\"https:\/\/www.redmine.org\/projects\/redmine\/wiki\/Guide\" target=\"_blank\" rel=\"noreferrer noopener\">Redmine User Guide<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"reference\">Reference<\/h3>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/www.redmine.org\/projects\/redmine\/wiki\/RedmineInstall\" target=\"_blank\">Redmine Install<\/a><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"other-rocky-linux-tutorials\">Other Rocky Linux tutorials<\/h3>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-webmin-on-rocky-linux-8\/\" target=\"_blank\" rel=\"noreferrer noopener\">Install Webmin on Rocky Linux 8<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-and-configure-snmp-on-rocky-linux-8\/\" target=\"_blank\" rel=\"noreferrer noopener\">Install and Configure SNMP on Rocky Linux 8<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-apache-maven-on-rocky-linux-8\/\" target=\"_blank\" rel=\"noreferrer noopener\">Install Apache Maven on Rocky Linux 8<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/kifarunix.com\/install-and-configure-nfs-server-on-rocky-linux-8\/\" target=\"_blank\" rel=\"noreferrer noopener\">Install and Configure NFS Server on Rocky Linux 8<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This guide will take you through how to install&nbsp;Redmine&nbsp;on Rocky Linux 8|Rocky Linux 9. Redmine is a cross-platform as well as cross-database flexible project management<\/p>\n","protected":false},"author":3,"featured_media":10031,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_lock_modified_date":false,"footnotes":""},"categories":[121],"tags":[3948,3950,1172,3587,3949],"class_list":["post-10001","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-howtos","tag-install-redmine-on-rocky-linux-8","tag-installing-redmine-on-rocky-linux","tag-redmine","tag-rocky-linux-8","tag-rocky-linux-8-redmine","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-50","resize-featured-image"],"_links":{"self":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/10001"}],"collection":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/comments?post=10001"}],"version-history":[{"count":13,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/10001\/revisions"}],"predecessor-version":[{"id":21705,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/posts\/10001\/revisions\/21705"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media\/10031"}],"wp:attachment":[{"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/media?parent=10001"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/categories?post=10001"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kifarunix.com\/wp-json\/wp\/v2\/tags?post=10001"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}