Updated install instructions.
parent
4b66e25ed3
commit
5a1f8bea15
|
@ -1,75 +1,138 @@
|
||||||
|
============================
|
||||||
Installation on Ubuntu 17.04
|
Installation on Ubuntu 17.04
|
||||||
============================
|
============================
|
||||||
|
|
||||||
The master branch should always be working and it is recommended to install the
|
The master branch should always be working and it is recommended to install the
|
||||||
project using this one.
|
project using this one.
|
||||||
|
|
||||||
If you have already installed MONARC and want to upgrade to a later version, you
|
|
||||||
can use the provided script:
|
|
||||||
|
|
||||||
$ ./scripts/update-all.sh
|
|
||||||
$ sudo systemctl restart apache2
|
|
||||||
|
|
||||||
# Install the dependencies: (some might already be installed)
|
# 1. Install LAMP & dependencies
|
||||||
sudo apt-get install curl git openssl sudo zip
|
|
||||||
|
|
||||||
PHP & MySQL
|
## Install the dependencies
|
||||||
-----------
|
|
||||||
|
|
||||||
Install PHP (version 7.0 recommended) with extensions : *xml*, *mbstring*,
|
sudo apt-get install vim zip unzip git gettext curl net-tools gsfonts curl
|
||||||
*mysql*, *zip*, *unzip*, *mcrypt*, *intl*, *gettext* and *imagick*.
|
|
||||||
|
|
||||||
# Install PHP and dependencies
|
Some might already be installed.
|
||||||
sudo apt-get install libapache2-mod-php php php-cli php-zip php-json php-mysql php-mbstring php-imagick php-xml php-mcrypt php-intl
|
|
||||||
|
|
||||||
In __php.ini__, set:
|
## Install MariaDB (a MySQL fork/alternative)
|
||||||
|
|
||||||
* *upload_max_filesize* to 200M;
|
sudo apt-get install mariadb-client mariadb-server
|
||||||
* *post_max_size* to 50M;
|
|
||||||
* *memory_limit* to 512M (snapshots of important risk analysis requires more
|
|
||||||
memory).
|
|
||||||
|
|
||||||
Install Apache and enable mods: *rewrite*, *ssl* (with a2enmod)
|
# Secure the MariaDB installation
|
||||||
|
|
||||||
Install MariaDB.
|
sudo mysql_secure_installation
|
||||||
|
|
||||||
sudo service mysql stop && sudo apt-get install mariadb-client mariadb-server
|
Especially by setting a strong root password.
|
||||||
# Secure the MariaDB installation (especially by setting a strong root password) if it hasn't been asked during the setup process.
|
|
||||||
sudo mysql_secure_installation
|
|
||||||
|
|
||||||
Installation of MONARC
|
## Install Apache2
|
||||||
----------------------
|
|
||||||
|
|
||||||
# Go to your www directory eg: /var/www/html
|
sudo apt-get install apache2 apache2-doc apache2-utils
|
||||||
|
|
||||||
|
## Enable modules, settings, and default of SSL in Apache
|
||||||
|
|
||||||
|
sudo a2dismod status
|
||||||
|
sudo a2enmod ssl
|
||||||
|
sudo a2enmod rewrite
|
||||||
|
sudo a2enmod headers
|
||||||
|
|
||||||
|
## Apache Virtual Host
|
||||||
|
|
||||||
|
<VirtualHost 127.0.0.1:80>
|
||||||
|
ServerName monarc.localhost
|
||||||
|
DocumentRoot /var/lib/monarc/fo/public
|
||||||
|
SetEnv APPLICATION_ENV "development"
|
||||||
|
<Directory /path/to/monarc/public>
|
||||||
|
DirectoryIndex index.php
|
||||||
|
AllowOverride All
|
||||||
|
Require all granted
|
||||||
|
</Directory>
|
||||||
|
</VirtualHost>
|
||||||
|
|
||||||
|
|
||||||
|
## Install PHP and dependencies
|
||||||
|
|
||||||
|
sudo apt-get install php apache2 libapache2-mod-php php-curl php-gd php-mcrypt php-mysql php-pear php-apcu php-xml php-mbstring php-intl php-imagick php-zip
|
||||||
|
|
||||||
|
## Apply all changes
|
||||||
|
|
||||||
|
sudo systemctl restart apache2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# 2. Installation of MONARC
|
||||||
|
|
||||||
|
## MONARC code
|
||||||
|
|
||||||
Clone the repository and invoke `composer` using the shipped `composer.phar`:
|
Clone the repository and invoke `composer` using the shipped `composer.phar`:
|
||||||
|
|
||||||
git clone https://github.com/monarc-project/MonarcAppFO.git ./monarc
|
cd /var/lib/monarc/fo
|
||||||
|
git clone https://github.com/monarc-project/MonarcAppFO.git
|
||||||
cd monarc/
|
cd monarc/
|
||||||
chown -R www-data data
|
chown -R www-data data
|
||||||
chmod -R g+w data
|
chmod -R g+w data
|
||||||
php composer.phar self-update
|
php composer.phar self-update
|
||||||
php composer.phar install -o
|
php composer.phar install -o
|
||||||
|
|
||||||
(The `self-update` directive is to ensure you have an up-to-date `composer.phar`
|
The `self-update` directive is to ensure you have an up-to-date `composer.phar`
|
||||||
available.)
|
available.
|
||||||
|
|
||||||
![Arbo](pictures/arbo1.png "Arbo")
|
![Arbo](pictures/arbo1.png "Arbo")
|
||||||
|
|
||||||
|
|
||||||
Databases
|
### Backend
|
||||||
---------
|
|
||||||
Create 2 databases:
|
The backend is not directly modules of the project but libraries.
|
||||||
|
You must create modules with symbolic links to libraries.
|
||||||
|
|
||||||
|
Create two symbolic links:
|
||||||
|
|
||||||
|
mkdir module
|
||||||
|
cd module/
|
||||||
|
ln -s ./../vendor/monarc/core MonarcCore
|
||||||
|
ln -s ./../vendor/monarc/frontoffice MonarcFO
|
||||||
|
|
||||||
|
There are 2 parts:
|
||||||
|
|
||||||
|
* MonarcFO is only for front office;
|
||||||
|
* MonarcCore is common to the front office and to the back office.
|
||||||
|
|
||||||
|
|
||||||
|
![Arbo](pictures/arbo2.png "Arbo")
|
||||||
|
|
||||||
|
|
||||||
|
### Frontend
|
||||||
|
|
||||||
|
The frontend is an AngularJS application.
|
||||||
|
|
||||||
|
mkdir node_modules
|
||||||
|
cd node_modules
|
||||||
|
git clone https://github.com/monarc-project/ng-client.git ng_client
|
||||||
|
git clone https://github.com/monarc-project/ng-anr.git ng_anr
|
||||||
|
|
||||||
|
There are 2 parts:
|
||||||
|
|
||||||
|
* one only for front office: ng_client;
|
||||||
|
* one common for front office and back office: ng_anr.
|
||||||
|
|
||||||
|
|
||||||
|
![Arbo](pictures/arbo3.png "Arbo")
|
||||||
|
|
||||||
|
|
||||||
|
## Databases
|
||||||
|
|
||||||
|
### Create 2 databases
|
||||||
|
|
||||||
CREATE DATABASE monarc_cli DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
|
CREATE DATABASE monarc_cli DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
|
||||||
CREATE DATABASE monarc_common DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
|
CREATE DATABASE monarc_common DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
|
||||||
|
|
||||||
Change SQL Mode in my.cnf:
|
### Change SQL Mode in my.cnf
|
||||||
|
|
||||||
[mysqld]
|
[mysqld]
|
||||||
sql-mode = MYSQL40
|
sql-mode = MYSQL40
|
||||||
|
|
||||||
|
### Initializes the databases
|
||||||
|
|
||||||
There are 2 databases:
|
There are 2 databases:
|
||||||
|
|
||||||
* monarc_common contains models and data created by CASES;
|
* monarc_common contains models and data created by CASES;
|
||||||
|
@ -82,88 +145,14 @@ Populate the monarc_common database:
|
||||||
mysql -u user monarc_common < db-bootstrap/monarc_data.sql
|
mysql -u user monarc_common < db-bootstrap/monarc_data.sql
|
||||||
|
|
||||||
|
|
||||||
API
|
### Database connection
|
||||||
---
|
|
||||||
|
|
||||||
The project is composed of 2 parts:
|
|
||||||
|
|
||||||
* an API in charge of retrieving data;
|
|
||||||
* an interface which displays data.
|
|
||||||
|
|
||||||
The API is not directly modules of the project but libraries.
|
|
||||||
You must create modules with symbolic links to libraries.
|
|
||||||
Create 2 symbolic links in the root of project directory:
|
|
||||||
|
|
||||||
mkdir module
|
|
||||||
cd module/
|
|
||||||
ln -s ./../vendor/monarc/core MonarcCore
|
|
||||||
ln -s ./../vendor/monarc/frontoffice MonarcFO
|
|
||||||
|
|
||||||
There are 2 parts:
|
|
||||||
|
|
||||||
* one only for front office;
|
|
||||||
* one common for front office and back office (private project).
|
|
||||||
|
|
||||||
It is developed with Zend framework 2.
|
|
||||||
|
|
||||||
![Arbo](pictures/arbo2.png "Arbo")
|
|
||||||
|
|
||||||
|
|
||||||
Interfaces
|
Create configuration file:
|
||||||
----------
|
|
||||||
|
|
||||||
Repository for Angular at the root of the project:
|
sudo cp ./config/autoload/local.php.dist ./config/autoload/local.php
|
||||||
|
|
||||||
mkdir node_modules
|
And configure the database connection:
|
||||||
cd node_modules
|
|
||||||
git clone https://github.com/monarc-project/ng-client.git ng_client
|
|
||||||
git clone https://github.com/monarc-project/ng-anr.git ng_anr
|
|
||||||
|
|
||||||
There are 2 parts:
|
|
||||||
* one only for front office: ng_client;
|
|
||||||
* one common for front office and back office: ng_anr.
|
|
||||||
|
|
||||||
It is developed with Angular framework version 1.
|
|
||||||
|
|
||||||
![Arbo](pictures/arbo3.png "Arbo")
|
|
||||||
|
|
||||||
|
|
||||||
Web Server Setup
|
|
||||||
----------------
|
|
||||||
|
|
||||||
### PHP CLI Server
|
|
||||||
|
|
||||||
The simplest way to get started if you are using PHP 5.4 or above is to start
|
|
||||||
the internal PHP cli-server in the root directory:
|
|
||||||
|
|
||||||
php -S 0.0.0.0:8080 -t public/ public/index.php
|
|
||||||
|
|
||||||
This will start the cli-server on port 8080, and bind it to all network
|
|
||||||
interfaces.
|
|
||||||
|
|
||||||
Note: The built-in CLI server is **for development only**.
|
|
||||||
|
|
||||||
### Apache Setup
|
|
||||||
|
|
||||||
To setup Apache, setup a virtual host to point to the public/ directory of the
|
|
||||||
project and you should be ready to go! It should look something like below:
|
|
||||||
|
|
||||||
<VirtualHost 127.0.0.1:80>
|
|
||||||
ServerName monarc.localhost
|
|
||||||
DocumentRoot /path/to/monarc/public
|
|
||||||
SetEnv APPLICATION_ENV "development"
|
|
||||||
<Directory /path/to/monarc/public>
|
|
||||||
DirectoryIndex index.php
|
|
||||||
AllowOverride All
|
|
||||||
Require all granted
|
|
||||||
</Directory>
|
|
||||||
</VirtualHost>
|
|
||||||
|
|
||||||
|
|
||||||
Database connection
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
Create file `config/autoload/local.php`:
|
|
||||||
|
|
||||||
return array(
|
return array(
|
||||||
'doctrine' => array(
|
'doctrine' => array(
|
||||||
|
@ -189,21 +178,10 @@ Create file `config/autoload/local.php`:
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
Configuration
|
|
||||||
-------------
|
|
||||||
|
|
||||||
Create configuration file
|
# Update MONARC
|
||||||
|
|
||||||
sudo cp ./config/autoload/local.php.dist ./config/autoload/local.php
|
## Install Grunt
|
||||||
|
|
||||||
Update connection information to *local.php* and *global.php*.
|
|
||||||
|
|
||||||
Configuration files are stored in cache.
|
|
||||||
If your changes have not been considered, empty cache by deleting file in
|
|
||||||
/data/cache
|
|
||||||
|
|
||||||
Install Grunt
|
|
||||||
-------------
|
|
||||||
|
|
||||||
sudo apt-get install nodejs
|
sudo apt-get install nodejs
|
||||||
sudo apt-get install npm
|
sudo apt-get install npm
|
||||||
|
@ -212,38 +190,15 @@ Install Grunt
|
||||||
|
|
||||||
|
|
||||||
Update MONARC
|
Update MONARC
|
||||||
-------------
|
|
||||||
|
|
||||||
Play script (mandatory from the root of the project):
|
./scripts/update-all.sh
|
||||||
|
|
||||||
/bin/bash ./scripts/update-all.sh
|
This script will retrieve the updates from the last stable release of MONARC,
|
||||||
|
execute the database migration scripts and compile the translations.
|
||||||
This script will retrieve the updates from the last stable release of MONARC.
|
|
||||||
|
|
||||||
It uses others shell scripts. You may need to change the access rights of those
|
|
||||||
scripts.
|
|
||||||
|
|
||||||
Before updating MONARC it is advised to configure database backup. For that you
|
|
||||||
just need to create a file _data/backup/credentialsmysql.cnf_:
|
|
||||||
|
|
||||||
[client]
|
|
||||||
host = localhost
|
|
||||||
user = sql-monarc-user
|
|
||||||
password = your-password
|
|
||||||
socket = /var/run/mysqld/mysqld.sock
|
|
||||||
[mysql_upgrade]
|
|
||||||
host = localhost
|
|
||||||
user = sql-monarc-user
|
|
||||||
password = your-password
|
|
||||||
socket = /var/run/mysqld/mysqld.sock
|
|
||||||
basedir = /usr
|
|
||||||
|
|
||||||
If this file is not present, a warning message will be displayed during the
|
|
||||||
upgrade.
|
|
||||||
|
|
||||||
|
|
||||||
Create Initial User and Client
|
# Create initial user
|
||||||
------------------------------
|
|
||||||
|
|
||||||
Create first user:
|
Create first user:
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue