Merge branch 'master' into renameObjectKeyword

ldap
Cédric Bonhomme 2018-09-10 08:25:15 +02:00
commit 467c7690bc
6 changed files with 231 additions and 247 deletions

View File

@ -1,6 +1,21 @@
MONARC Changelog
================
## 2.7.1 (2018-09-07)
### Enhancement
- inform user which rights he has on each risk analysis (#131);
- display read/write access of the currently connected user on the home page (list of analysis) (#130);
- improvements to the statement of applicability (SOA) module (speed improvements);
- minor improvements to the home page.
### Fix
- impossible to download a report when user has no wright access (#133);
- name of columns of the evaluation scales are not displayed when a user has not write access (#132).
## 2.7.0 (2018-08-22)
### New

View File

@ -0,0 +1,187 @@
Installation on Ubuntu 16.04
============================
# 1. Install LAMP & dependencies
## Install the dependencies
sudo apt-get install vim zip unzip git gettext curl net-tools gsfonts curl
Some might already be installed.
## Install MariaDB
sudo apt-get install mariadb-client mariadb-server
# Secure the MariaDB installation
sudo mysql_secure_installation
Especially by setting a strong root password.
## Install Apache2
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 *:80>
ServerName monarc.localhost
DocumentRoot /var/lib/monarc/fo/public
<Directory /var/lib/monarc/fo/public>
DirectoryIndex index.php
AllowOverride All
Require all granted
</Directory>
SetEnv APPLICATION_ENV "development"
</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.service
# 2. Installation of MONARC
## MONARC code
Clone the repository and invoke `composer` using the shipped `composer.phar`:
cd /var/lib/monarc/
git clone https://github.com/monarc-project/MonarcAppFO.git fo
cd fo/
chown -R www-data data
chmod -R g+w data
php composer.phar self-update
php composer.phar install -o
The `self-update` directive is to ensure you have an up-to-date `composer.phar`
available.
### Backend
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.
### 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.
## Databases
### Change SQL Mode in my.cnf
[mysqld]
sql-mode = MYSQL40
### Create 2 databases
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;
* monarc_common contains models and data created by CASES;
* monarc_cli contains all client risk analyses. Each analysis is based on CASES
model of monarc_common.
### Initializes the database
mysql -u user monarc_common < db-bootstrap/monarc_structure.sql
mysql -u user monarc_common < db-bootstrap/monarc_data.sql
### Database connection
Create the configuration file:
sudo cp ./config/autoload/local.php.dist ./config/autoload/local.php
And configure the database connection:
return array(
'doctrine' => array(
'connection' => array(
'orm_default' => array(
'params' => array(
'host' => 'host',
'user' => 'user',
'password' => 'password',
'dbname' => 'monarc_common',
),
),
'orm_cli' => array(
'params' => array(
'host' => 'host',
'user' => 'user',
'password' => 'password',
'dbname' => 'monarc_cli',
),
),
),
),
);
# Update MONARC
## Install Grunt
sudo apt-get install nodejs
sudo apt-get install npm
sudo npm install -g grunt-cli
sudo ln -s /usr/bin/nodejs /usr/bin/node
Update MONARC:
./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.
# Create initial user
php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/MonarcFO/migrations/phinx.php
The username is *admin@admin.test* and the password is *admin*.

View File

@ -1,243 +0,0 @@
Installation on Ubuntu 17.04
============================
The master branch should always be working and it is recommended to install the
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
PHP & MySQL
-----------
Install PHP (version 7.0 recommended) with extensions : *xml*, *mbstring*,
*mysql*, *zip*, *unzip*, *mcrypt*, *intl*, *gettext* and *imagick*.
In __php.ini__, set:
* *upload_max_filesize* to 200M;
* *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)
Install MariaDB.
Installation of MONARC
----------------------
Clone the repository and invoke `composer` using the shipped `composer.phar`:
git clone https://github.com/monarc-project/MonarcAppFO.git ./monarc
cd monarc/
chown -R www-data data
chmod -R g+w data
php composer.phar self-update
php composer.phar install -o
(The `self-update` directive is to ensure you have an up-to-date `composer.phar`
available.)
![Arbo](pictures/arbo1.png "Arbo")
Databases
---------
Create 2 databases:
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;
Change SQL Mode in my.cnf:
[mysqld]
sql-mode = MYSQL40
There are 2 databases:
* monarc_common contains models and data created by CASES;
* monarc_cli contains all client risk analyses. Each analysis is based on CASES
model of monarc_common.
Populate the monarc_common database:
mysql -u user monarc_common < db-bootstrap/monarc_structure.sql
mysql -u user monarc_common < db-bootstrap/monarc_data.sql
API
---
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
----------
Repository for Angular at the root of the project:
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.
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(
'doctrine' => array(
'connection' => array(
'orm_default' => array(
'params' => array(
'host' => 'host',
'user' => 'user',
'password' => 'password',
'dbname' => 'monarc_common',
),
),
'orm_cli' => array(
'params' => array(
'host' => 'host',
'user' => 'user',
'password' => 'password',
'dbname' => 'monarc_cli',
),
),
),
),
);
Configuration
-------------
Create configuration file
sudo cp ./config/autoload/local.php.dist ./config/autoload/local.php
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 npm
sudo npm install -g grunt-cli
sudo ln -s /usr/bin/nodejs /usr/bin/node
Update MONARC
-------------
Play script (mandatory from the root of the project):
/bin/bash ./scripts/update-all.sh
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 first user:
php ./vendor/robmorgan/phinx/bin/phinx seed:run -c ./module/MonarcFO/migrations/phinx.php
The username is *admin@admin.test* and the password is *admin*.

View File

@ -1 +1 @@
{"major":2, "minor":7, "hotfix":0}
{"major":2, "minor":7, "hotfix":1}

View File

@ -1,6 +1,6 @@
{
"name": "MONARC",
"version": "2.7.0",
"version": "2.7.1",
"description": "MONARC Frontoffice App",
"private": true,
"repository": {

View File

@ -44,11 +44,36 @@ echo -e "\n--- Install base packages… ---\n"
apt-get -y install vim zip unzip git gettext curl > /dev/null
echo -e "\n--- Install MariaDB specific packages and settings… ---\n"
echo "mysql-server mysql-server/root_password password $DBPASSWORD_ADMIN" | debconf-set-selections
echo "mysql-server mysql-server/root_password_again password $DBPASSWORD_ADMIN" | debconf-set-selections
# echo "mysql-server mysql-server/root_password password $DBPASSWORD_ADMIN" | debconf-set-selections
# echo "mysql-server mysql-server/root_password_again password $DBPASSWORD_ADMIN" | debconf-set-selections
apt-get -y install mariadb-server mariadb-client > /dev/null
# Secure the MariaDB installation (especially by setting a strong root password)
systemctl restart mariadb.service > /dev/null
sleep 5
apt-get -y install expect > /dev/null
## do we need to spawn mysql_secure_install with sudo in future?
expect -f - <<-EOF
set timeout 10
spawn mysql_secure_installation
expect "Enter current password for root (enter for none):"
send -- "\r"
expect "Set root password?"
send -- "y\r"
expect "New password:"
send -- "${DBPASSWORD_ADMIN}\r"
expect "Re-enter new password:"
send -- "${DBPASSWORD_ADMIN}\r"
expect "Remove anonymous users?"
send -- "y\r"
expect "Disallow root login remotely?"
send -- "y\r"
expect "Remove test database and access to it?"
send -- "y\r"
expect "Reload privilege tables now?"
send -- "y\r"
expect eof
EOF
sudo apt-get purge -y expect > /dev/null 2>&1
echo -e "\n--- Installing PHP-specific packages… ---\n"
apt-get -y install php apache2 libapache2-mod-php php-curl php-gd php-mysql php-pear php-apcu php-xml php-mbstring php-intl php-imagick php-zip > /dev/null