This guide aims to help you install the following dependencies, required for OpenPaaS to run on your machine:
- ElasticSearch v6.3.2
- MongoDB v2.6.5
- Redis 3.x
- RabbitMQ 3.6.x
To avoid these steps, you can get those dependencies running in containers, using docker & docker-compose. Have a look at Step 2 of the recommended installation process!
Download and install ElasticSearch 6.3.2 deb package from elastic website
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.deb
sudo dpkg -i elasticsearch-6.3.2.deb
Pin the version to avoid unwanted updates
echo "elasticsearch hold" | sudo dpkg --set-selections
Create a symlink to your elastic search bin somewhere in your path if this was not done during the previous step (alternatively, you can add /usr/share/elasticsearch/bin/ to your path)
sudo ln -s /usr/share/elasticsearch/bin/elasticsearch /usr/bin/elasticsearch
Config dir may have not been created (when in a sysV system)
sudo ln -s /etc/elasticsearch /usr/share/elasticsearch/config
Import GPG key
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
Create list file for mongoDB
echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
Update apt cache
sudo apt-get update
Install mongoDB 2.6.5
sudo apt-get install -y mongodb-org=2.6.5 mongodb-org-server=2.6.5 mongodb-org-shell=2.6.5 mongodb-org-mongos=2.6.5 mongodb-org-tools=2.6.5
Pin current version to avoid updates (lastest version in this repository is 2.6.9 but this may vary)
echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-org-shell hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections
Note for Ubuntu 16.04:
In order to properly launch MongoDB as a service on Ubuntu 16.04, we additionally need to create a unit file called mongodb.service
describing the service inside /etc/systemd/system
:
sudo nano /etc/systemd/system/mongodb.service
In mongodb.service
, paste in the following contents:
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
[Install]
WantedBy=multi-user.target
sudo apt-get install redis-server
Follow sabre installation instructions.
If you also working on esn-sabre and you do not want to have to rebuild linagora/esn-sabre and restart docker-compose each time you change the code, you can run the following command. However if you edit the composer.json, you will have to rebuild the image.
ESN_HOST=<YOUR_ESN_IP> ESN_SABRE_PATH=/path/to/esn-sabre ESN_PATH=$PWD docker-compose -f ./docker/dockerfiles/dev/docker-compose-sabre-dev.yml up
If you also need to modify library code for debugging purpose, you will need to install composer in order to build the esn-sabre dependencies on your machine and not inside docker. On ubuntu that will be
sudo apt-get install composer
Then you will need to fetch the esn-sabre dependencies:
cd /path/to/esn-sabre
composer install --ignore-platform-reqs
Now, when you edit the esn-sabre dependencies, changes are reflected inside the container.
If you want to watch log of Sabre, you can do it with the following command:
docker exec -it dev_sabre_1 tail -f /var/log/nginx/error.log
where dev_sabre_1
is the container name that run Sabre, you can check it with:
docker ps
The image dev_sabre_1
has xdebug installed on it. Here is a small tutorial on how to use it with PhpStorm and Visual Studio Code:
- Install the extension Php Debug
- Go to the Debug view (on the left panel:
Ctrl + Shift + D
) - Add a new configuration:
{
"name": "Listen for XDebug",
"type": "php",
"request": "launch",
"port": 9000,
"pathMappings": {"/var/www": "${workspaceRoot}"}
}
- On PhpStorm go to
File -> Settings -> Languages & Frameworks -> PHP -> Debug
. Check that those parameters are the same:- Xdebug:
- Debug port: 9000
- Xdebug:
- Still on the Settings window:
Languages & Frameworks -> PHP -> Servers
. Add a new server with those parameters:- Name: sabre-dev
- Host: localhost
- Port: 8001
- Debugger: Xdebug
- Check Use path mappings:
- Project Files:
- File/Directory: you sabre local path
- Absolute path on the server: /var/www
- Project Files:
- Go to
Run -> Edit Configurations...
. Add a newPhp Remote Debug
configuration with those parameters:- Name: sabre-debug
- Servers: sabre-dev
- Ide key(session id): debug