Skip to content
Snippets Groups Projects
INSTALL.en.md 7.38 KiB
Newer Older
This procedure is meant for Ubuntu et Debian GNU/Linux 
# Necessary packages :
##  Ubuntu Trusty
apt-get install python-software-properties php5 php5-gd php5-imagick php5-xdebug php-pear php5-mysqlnd php5-xhprof graphviz apache2 mysql-server libapache2-mod-php5 git php5-mcrypt php5-curl yaz
## Debian Wheezy
apt-get install php5 php5-gd php5-imagick php5-xdebug php-pear php5-mysqlnd graphviz apache2 mysql-server libapache2-mod-php5 git php5-mcrypt php5-curl yaz
yaourt -S php php-gd php-imagick xdebug php-pear apache mariadb php-apache php-xhprof graphviz git
```

## CentOS
```
rpm -Uvh http://repo.webtatic.com/yum/el6/latest.rpm
llaffont's avatar
llaffont committed
yum install php54w php54w-gd php54w-pear php54w-mysql php54w-pecl-xdebug php54w-xml php54w-soap php54w-mbstring
llaffont's avatar
llaffont committed
You need to build Imagick extension from scratch

# Install PHPUnit (Account root / sudo):

```
  cd /usr/local/bin
  wget https://phar.phpunit.de/phpunit.phar
  mv phpunit.phar phpunit
# Downloading source code
git clone http://git.afi-sa.fr/afi/opacce.git opacce
Launch update.sh script
Laurent's avatar
Laurent committed

Laurent's avatar
Laurent committed
cd opacce
./update.sh
Laurent's avatar
Laurent committed


Patrick Barroca's avatar
Patrick Barroca committed
#  Apache webserver:
## Activate the following modules :
llaffont's avatar
llaffont committed
a2enmod headers rewrite php5
Modify /etc/httpd/conf/http.conf and add the line: 
Laurent's avatar
Laurent committed

```
LoadModule php5_module modules/libphp5.so
```

Activate mod_mpm_prefork (see https://wiki.archlinux.org/index.php/Apache_HTTP_Server#PHP).


Deactivate negotiation module which is in conflict with Zend Framework on index/index urls:
## Configure Apache
In Apache conf, delete indexes option (file list) and authorise .htaccess: 
Laurent's avatar
Laurent committed

llaffont's avatar
llaffont committed
<Directory /var/www/>
  Options FollowSymLinks
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>
Warning: For apache 2.4
llaffont's avatar
llaffont committed
<Directory /var/www/>
  Options FollowSymLinks
  AllowOverride All
  Require all granted
</Directory>
Patrick Barroca's avatar
Patrick Barroca committed
# Nginx webserver (experimental)

Using Nginx imply using PHP in PHP-FPM mode.

Recommaded configuration use 2 files.
This provides a mean to have factorised Bokeh configuration and a custom configuration for each Bokeh instance.

## Include file « bokeh.inc », store it for example in /etc/nginx/conf-enabled

```
# Include directives for Bokeh portal

location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
    expires 30d;
    log_not_found off;
}

location = /favicon.ico {
    log_not_found off;
    access_log off;
}

location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
}

# Deny access to sensitive files.
location ~ (\.inc\.php|\.tpl|\.sql|\.tpl\.php|\.db)$ {
    #deny all;
    return 403;
}

location ~ /(\.|\.htaccess|config\.(ini|php)) {
    #deny all;
    return 403;
}

# Path without redirection
location ~ /(xhprof_html|ckeditor|\.well-known) {
}

# Serve PHP
location ~ /cosmogramme/cosmozend {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    include fastcgi_params;
    #fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME    $document_root/cosmogramme/cosmozend/index.php;
    fastcgi_param  SCRIPT_NAME        /cosmogramme/cosmozend/index.php;
    fastcgi_buffer_size 128k;
    fastcgi_buffers 256 4k;
    fastcgi_busy_buffers_size 256k;
    fastcgi_temp_file_write_size 256k;
    fastcgi_intercept_errors on;
    fastcgi_pass bokeh-dock:9000;
}

location ~ (\.php$|/(cosmogramme|exploit/(test\.php|fpm-ping|fpm-status))) {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    include fastcgi_params;
    fastcgi_index  index.php;
    fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
    fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
    fastcgi_buffer_size 128k;
    fastcgi_buffers 256 4k;
    fastcgi_busy_buffers_size 256k;
    fastcgi_temp_file_write_size 256k;
    fastcgi_intercept_errors on;
    fastcgi_pass bokeh-dock:9000;
}
```
 
## Vhost file, adapt it to your needs (change URL_Bokeh, Path_Bokeh_Dir, Bokeh_Dir, …)

```
server {
    listen  80;
    index  index.php;
    server_name <URL_Bokeh>;
    root        <Path_Bokeh_Dir>/<Bokeh_Dir>;
    access_log  "<Path_Nginx_Log>/<URL_Bokeh>_access.log";
    error_log   "<Path_Nginx_Log>/<URL_Bokeh>_error.log";

    location / {
        try_files $uri $uri/ @rewrite;
    }

    # if the requested file exists, return it immediately
    if (-f $request_filename) {
        break;
    }

    location @rewrite {
        rewrite ^(.*)$ /index.php last;
    }

    include /etc/nginx/conf-enabled/bokeh.inc;
}
```
Patrick Barroca's avatar
Patrick Barroca committed
## Example content of etc/nginx/fastcgi_params
Patrick Barroca's avatar
Patrick Barroca committed
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REQUEST_SCHEME     $scheme;
fastcgi_param  HTTPS              $https if_not_empty;

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param  REDIRECT_STATUS    200;
```


# Configure PHP

In /etc/php5/apache2/php.ini (ArchLinux: /etc/php/php.ini), configure the following variables:
```
post_max_size = 10M
upload_max_filesize = 10M
error_reporting  =  E_ALL & ~E_NOTICE & ~E_DEPRECATED
```

Activate the following extensions if they are not already actived (they should be): 
```
php5enmod calendar curl gd gettext iconv mcrypt mysql pdo_mysql openssl soap imagick
```

On Archinux uncomment the corresponding lines.


# Write permission on directories
- userfiles hold all uploaded files and files harvested from digital resources.
- temp hold cache files, edit history and files generated by Bokeh.

Example:
```
chmod -R 777 opacce/userfiles
llaffont's avatar
llaffont committed
chmod -R 777 opacce/temp
Patrick Barroca's avatar
Patrick Barroca committed
If you don't want to give write permission to anybody, you must give it to the user who owns the PHP process at least.


# MySQL config

## Finalise the installation (ArchLinux)

See https://wiki.archlinux.org/index.php/MySQL#Installation


# Configuration

Edit /etc/mysql/my.cnf and add to the [mysqld] section the following line (in order to force fulltext indexation from the first letter) 
Laurent's avatar
Laurent committed

llaffont's avatar
llaffont committed
ft_min_word_len = 1
Restart mysql.
Warning: If you have encoding problems, in Cosmogramme, you can force UTF8 like this:
llaffont's avatar
llaffont committed
skip-character-set-client-handshake
character-set-server=utf8
Connect to mysql and import the database schema

```
mysql -uroot -ppass
mysql> create database opac;
mysql> connect opac;
mysql> source opacce/scripts/opac2.sql;
```

#  OPAC Config
In the opacce directory, copy and configure
llaffont's avatar
llaffont committed
cp config.ini.default config.ini
touch local.php
#  Cosmogramme Config
 In the cosmogramme folder, copy and configure

```
cp config.ref.php config.php 
```
  go to http://localhost/opacce/cosmogramme
 connnect with the account admin/achanger and click on the patch update link
# Connect to the opac
  Use the account compte admin/achanger
go to http://localhost/opacce/admin
# To run the tests:
llaffont's avatar
llaffont committed
cd opacce/tests/
phpunit