Permalink
Switch branches/tags
request_handler_with_pipes release-5.1.12 release-5.1.11 release-5.1.10 release-5.1.9 release-5.1.8 release-5.1.7 release-5.1.6 release-5.1.5 release-5.1.4 release-5.1.3 release-5.1.2 release-5.1.1 release-5.1.0 release-5.0.30 release-5.0.29 release-5.0.28 release-5.0.27 release-5.0.26 release-5.0.25 release-5.0.24 release-5.0.23 release-5.0.22 release-5.0.21 release-5.0.20 release-5.0.19 release-5.0.18 release-5.0.17 release-5.0.16 release-5.0.15 release-5.0.14 release-5.0.13 release-5.0.11 release-5.0.10 release-5.0.9 release-5.0.8 release-5.0.7 release-5.0.6 release-5.0.5 release-5.0.4 release-5.0.3 release-5.0.2 release-5.0.1 release-5.0.0.rc2 release-5.0.0.rc1 release-5.0.0.beta3 release-5.0.0.beta2 release-5.0.0.beta1 release-4.0.60 release-4.0.59 release-4.0.58 release-4.0.57 release-4.0.56 release-4.0.55 release-4.0.53 release-4.0.52 release-4.0.51 release-4.0.50 release-4.0.49 release-4.0.48 release-4.0.46 release-4.0.45 release-4.0.44 release-4.0.43 release-4.0.42 release-4.0.41 release-4.0.40 release-4.0.39 release-4.0.38 release-4.0.37 release-4.0.36 release-4.0.35 release-4.0.34 release-4.0.33 release-4.0.32 release-4.0.31 release-4.0.30 release-4.0.29 release-4.0.28 release-4.0.27 release-4.0.26 release-4.0.25 release-4.0.24 release-4.0.23 release-4.0.21 release-4.0.20 release-4.0.19 release-4.0.18 release-4.0.17 release-4.0.16 release-4.0.14 release-4.0.13 release-4.0.10 release-4.0.8 release-4.0.7 release-4.0.6 release-4.0.5 release-4.0.4 release-4.0.3 release-4.0.2
Nothing to show
Find file
85290de Jun 6, 2014
71 lines (42 sloc) 3.5 KB

Phusion Passenger Developer QuickStart

Watch the Developer QuickStart screencast

Phusion Passenger provides an easy and convenient development environment that contributors can use. The development environment is a 64-bit Ubuntu 14.04 virtual machine and contains everything that you need. The build toolchain is already setup, all dependencies are installed and web servers are preconfigured. You can start coding almost immediately. And because it's a virtual machine, it doesn't matter which host operating system you're using.

You use this development environment through Vagrant and VirtualBox. Vagrant is an extremely useful tool for managing virtual machines, while VirtualBox is virtualization software. Both tools are free and open source. Vagrant allows you to easily share a directory between the host OS and the VM. This means that you can use the editor on your host OS to edit source files, and compile inside the VM.

Getting started

  1. Install Vagrant.
  2. Install VirtualBox.
  3. Inside the Phusion Passenger source tree, run: vagrant up. This will spin up the VM and will set it up. This can take a while so feel free to grab a cup of coffee.
  4. Once the VM has been setup, login to it by running: vagrant ssh.

Workflow

The workflow is to:

  • Edit code on the host.
  • Use git commands on the host.
  • Compile in the VM.
  • Run tests in the VM.

The Phusion Passenger source code is located in /vagrant.

When you're done developing Phusion Passenger, you can shut down the VM by running vagrant halt. Next time you want to spin it up again, run vagrant up.

Starting and accessing Apache

Apache is installed, but it's not set up with Phusion Passenger by default. So you must first compile the Phusion Passenger Apache module:

cd /vagrant
rake apache2

Next, enable the Phusion Passenger module and restart Apache:

sudo a2enmod passenger
sudo service apache2 restart

You can now access Apache from the host on http://127.0.0.1:8000 through :8005. The VM has a sample Ruby Rack application configured on http://127.0.0.1:8001/. Visit that URL and see it in action. Its source code is located in dev/rack.test in the Phusion Passenger source tree.

Starting and accessing Nginx

The Nginx source code and binaries are located in /home/vagrant/nginx. If this is the first time you use Nginx in this VM, you must install it. Run:

cd /home/vagrant/nginx
rake bootstrap

Next, start Nginx by using a script that the development environment provides:

./start

You can now access Nginx from the host on http://127.0.0.1:8100 through :8105. The VM has a sample Ruby Rack application configured on http://127.0.0.1:8101/. Visit that URL and see it in action. Its source code is located in dev/rack.test in the Phusion Passenger source tree.

Running tests

Tests can be run immediately without any setup.

rake test:cxx
rake test:integration:apache2
rake test:integration:nginx

Further reading