Content
Howto install OpenProject-CE on CentOS 7 with Plesk 12.5 + Apache + Passenger
Added by Tai hei about 9 years ago
Hello peoples,
i installed OP on my Plesk server successfully and I want to share it with you.
Requirements
- Preinstalled Plesk (12.5+) for the Passenger support, but it shouldn’t be much different for older version, except that you have to install passenger on your own.
- SSH access to the server
Prepare Plesk
1. Install Passenger
- In Plesk: Tools & Settings > Plesk > Updates and Upgrades
- Add/Remove Components
- check/activate: Web hosting > Phusion Passenger server
- Continue
- Complete the installation
2. Activate Passenger
- In Plesk: Tools & Settings > General Settings > Apache Web Server
- check/activate passenger
- click ok
3. Create Domain (op.example.com)
- Create a standard domain without any special stuff
4. Create Database for OpenProject
- Go to the domain window and click database
- Add Database
- My settings
Database name: openproject Database user name: openproject Related Site: op.example.com New password: dbsecret Access control: Allow remote connections from any host
Install OpenProject-CE
log into the server via ssh
I used the packaged installer
sudo rpm --import https://rpm.packager.io/key echo "[openproject] name=Repository for opf/openproject application. baseurl=https://rpm.packager.io/gh/finnlabs/pkgr-openproject-community/centos7/stable/4.2 enabled=1" | sudo tee /etc/yum.repos.d/pkgr-openproject-community.repo sudo yum install openproject-ce
Configure OpenProject
openproject-ce configure
1. MySQL:
- resuse an exisitng database
- ip = 127.0.0.1
- MySQL port: 3306
- db_username = openproject
- db_password = dbsecret
- db_name = openproject
- FQDN = 127.0.0.1
- enable SSL: no
2. Apache
Skip: Apache is already installed from Plesk
3. Mail
Sendmail is configured with Plesk, so it works out of box, alternatively use smtp if you want to.
4. Email
admin@example.com
5. Memcached
Your choice. I have it installed
Configure Apache/Passenger
1. login as openproject user
sudo su openproject --login
2. add openproject binaries to $PATH
nano ~/.bash_profile
The OpenProject binaries must be first, because we need this ruby version.
PATH=/opt/openproject-ce/bin:$PATH:$HOME/.local/bin:$HOME/bin
3. save the file
4. exit
and re-login sudo su openproject --login
5. When you type env
the path should be set
6. Validate if your using the correct ruby version with ruby -v
It should be ruby 2.1.6p336 (2015-04-13 revision 50298) [x86_64-linux]
or simular.
If you get ruby 2.0.0p598 (2014-11-13) [x86_64-linux]
you forgot or set the path wrong.
7. cd /opt/openproject-ce/
8. passenger-install-apache2-module
should be successful
9. exit
10. Tell passenger to use the ruby version from OpenProject
sudo vi /etc/httpd/conf.d/passenger.conf
LoadModule passenger_module /usr/lib64/httpd/modules/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /usr/lib64/passenger/locations.ini #PassengerDefaultRuby /usr/bin/ruby PassengerDefaultRuby /opt/openproject-ce/bin/ruby </IfModule>
11. Get the app data
cat /etc/openproject-ce/conf.d/other
copy these settings somewhere, we need it later.
My looks like:
export DATABASE_URL="mysql2://openproject:dbsecret@127.0.0.1:3306/openproject" export RAILS_CACHE_STORE="file_store" export ATTACHMENTS_STORAGE_PATH="/var/db/openproject-ce/files" export HOST="127.0.0.1" export WEB_CONCURRENCY="1" export WEB_TIMEOUT="15" export SECRET_KEY_BASE="****" export SECRET_TOKEN="****"
12. Edit the Apache .conf for your domain
sudo vi /var/www/vhosts/system/op.example.com/conf/httpd.conf
13. Remove (or comment out with a ‘#’) the old DocumentRoot (for https (:443) and/or http(:80))
#DocumentRoot "/var/www/vhosts/example.com/op.example.com"
and add all following lines to your Virtual host’s (for https (:443) and/or http(:80)).
Set the environment values from your app data
SetEnv DATABASE_URL "mysql2://openproject:dbsecret@127.0.0.1:3306/openproject" SetEnv RAILS_CACHE_STORE "file_store" SetEnv ATTACHMENTS_STORAGE_PATH "/var/db/openproject-ce/files" SetEnv HOST "127.0.0.1" SetEnv WEB_CONCURRENCY "1" SetEnv WEB_TIMEOUT "15" SetEnv SECRET_KEY_BASE "****" SetEnv SECRET_TOKEN "****" # !!! Be sure to point DocumentRoot to 'public'! DocumentRoot /opt/openproject-ce/public <Directory /opt/openproject-ce/public> # This relaxes Apache security settings. AllowOverride all # MultiViews must be turned off. Options -MultiViews # Uncomment this if you're on Apache >= 2.4: Require all granted </Directory>
save the file
14. Restart Apache sudo service httpd restart
15. Enter the URL in your browser, press enter with your crossed fingers and hope for a response after 3-5 seconds.
Troubleshooting
Look at the error log from apache
sudo cat /var/log/httpd/error_log
I had a long fight with this error:
[ 2015-11-17 14:35:54.2553 11909/7fd33f1a0700 App/Implementation.cpp:303 ]: Could not spawn process for application /opt/openproject-ce: An error occured while starting up the preloader. Error ID: 21ceeba4 Error details saved to: /tmp/passenger-error-6p2Q06.html Message from application: Invalid DATABASE_URL (RuntimeError)
I’m not quite sure if you need heroku to fix this error.
If you get this error, try this:
mkdir ~/temp && cd ~/temp
wget https://toolbelt.heroku.com/install.sh
chmod +x install.sh
./install.sh
and restart Apache again.
Notes
I wrote this tutorial out of mind, i didn’t retried the installation. So, maybe i forgot something.
Just post your suggestions and error messages and I will try to update this How to.
Good Luck! It took me 3 days.
Replies (9)
Hi Tai,
thanks for this installation. I follow your instructions without error.
But when i am trying to open the website i get the following error.
We’re sorry, but something went wrong.
We’ve been notified about this issue and we’ll take a look at it shortly.
###########
i have try this also
gem install bundler
###########
in the logs i can only see this
[ 2016-01-29 23:39:55.5731 13781/7f3b52297700 age/Hel/Req/CheckoutSession.cpp:252 ]: [Client 1-1] Cannot checkout session because a spawning error occurred. The identifier of the error is 59d1dc27. Please see earlier logs for details about the error.
App 14052 stdout:
App 14052 stderr: —> Compiling passenger_native_support.so for the current Ruby interpreter…
App 14052 stderr:
App 14052 stderr: (set PASSENGER_COMPILE_NATIVE_SUPPORT_BINARY=0 to disable)
App 14052 stderr:
App 14052 stderr: Warning: compilation didn’t succeed. To learn why, read this file:
App 14052 stderr: /tmp/passenger_native_support-7vljef.log
App 14052 stderr: —> Downloading precompiled passenger_native_support.so for the current Ruby interpreter…
App 14052 stderr: (set PASSENGER_DOWNLOAD_NATIVE_SUPPORT_BINARY=0 to disable)
App 14052 stderr: Could not download https://oss-binaries.phusionpassenger.com/binaries/passenger/by_release/5.0.10/rubyext-ruby-2.1.6-x86_64-linux.tar.gz: The requested URL returned error: 404 Not Found
App 14052 stderr: Trying next mirror…
App 14052 stderr: Could not download https://s3.amazonaws.com/phusion-passenger/binaries/passenger/by_release/5.0.10/rubyext-ruby-2.1.6-x86_64-linux.tar.gz: The requested URL returned error: 403 Forbidden
App 14052 stderr: —> Continuing without passenger_native_support.so.
App 14052 stdout:
[ 2016-01-29 23:41:10.1722 13781/7f3b58152700 App/Implementation.cpp:303 ]: Could not spawn process for application /opt/openproject: An error occured while starting up the preloader.
Error ID: 32a70675
Error details saved to: /tmp/passenger-error-pXuEZH.html
Message from application: cannot load such file — bundler/setup (LoadError)
/opt/openproject/vendor/ruby-2.1.6/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require’
/opt/openproject/vendor/ruby-2.1.6/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55:in `require’
/usr/share/passenger/phusion_passenger/loader_shared_helpers.rb:399:in `activate_gem’
/usr/share/passenger/phusion_passenger/loader_shared_helpers.rb:277:in `block in run_load_path_setup_code’
/usr/share/passenger/phusion_passenger/loader_shared_helpers.rb:404:in `running_bundler’
/usr/share/passenger/phusion_passenger/loader_shared_helpers.rb:276:in `run_load_path_setup_code’
/usr/share/passenger/helper-scripts/rack-preloader.rb:99:in `preload_app’
/usr/share/passenger/helper-scripts/rack-preloader.rb:153:in `module:App’
/usr/share/passenger/helper-scripts/rack-preloader.rb:29:in `module:PhusionPassenger’
/usr/share/passenger/helper-scripts/rack-preloader.rb:28:in `
’
[ 2016-01-29 23:41:10.2794 13781/7f3b51896700 age/Hel/Req/CheckoutSession.cpp:252 ]: [Client 2-1] Cannot checkout session because a spawning error occurred. The identifier of the error is 32a70675. Please see earlier logs for details about the error.
I google now a lot but i cannot find any solution.
Can you or somebody help me? Do you have a tip?
Thanks
Ming
I had to do the following things in addition/different to the tutorial above for Ubuntu 14.04:
mandatorily install memcached
as openproject user
Put the database and secret key config in the .yml files instad of the apach config.
/opt/openproject/config/database.yml
(beware of the space between “password:” and “secret”!)
In the
/opt/openproject/config/secrets.yml
replace<%= ENV["SECRET_KEY_BASE"] %>
with your secret key base you got fromcat /etc/openproject/conf.d/other
I also installed nodejs, but hardly think it helped at any point.
Hi Lukas,
THANKS!!!
after doing your step for install i got the following issue
[ 2016-02-01 23:26:17.8005 4429/7f874351c700 App/Implementation.cpp:303 ]: Could not spawn process for application /opt/openproject: An error occured while starting up the preloader.
Error ID: 1da4dcf8
Error details saved to: /tmp/passenger-error-KnIG4d.html
Message from application: There was an error while trying to load the gem ‘autoprefixer-rails’. (Bundler::GemRequireError)
so nodejs is required
-> https://community.openproject.org/topics/5589
Hey Lukas, Tai,
everything wents fine except email. I cannot receive any emails. e.g. when i want to sent a test email via systemconfiguration -> Mail Notification. i receive the following error:
ArgumentError (Invalid :protocol option: “”)
Can you help me out here?
I have use the configuration with sendmail or smtp. Both error out with the same message. In the logfile of postfixx i cannot see anything.
Best Regards
Ming
Hey,
I had the same problem after the last update.
I fixed it by ‘saving’ the default configs in Administration -> System -> General.
Make sure that you set the correct protocol (http/https) with the correct hostname.
Hi,
lol, this was really easy and now i understand the error message.
Thanks a lot.
Br
Ming
It took me two hours :D
And I agree with you, this error message is quite useless.
;-)
Hi Tai hei,
i need help.
in the httpd Logfile when call my op.onlineplus.de
i tested your hint with the heroku tool, without success.
i cannot fix the database error “Invalid DATABASE_URL (RuntimeError)” :/