Newer
Older
This procedure is meant for Ubuntu et Debian GNU/Linux
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
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
```
## ArchLinux
```
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
yum install php54w php54w-gd php54w-pear php54w-mysql php54w-pecl-xdebug php54w-xml php54w-soap php54w-mbstring
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
git clone http://git.afi-sa.fr/afi/opacce.git opacce
## Activate the following modules :
Modify /etc/httpd/conf/http.conf and add the line:
```
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:
```
a2dismod negotiation
```
In Apache conf, delete indexes option (file list) and authorise .htaccess:
<Directory /var/www/>
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Directory /var/www/>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
# 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;
}
```
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
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
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.
## 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)
ft_stopword_list = /dev/null
The stopword list can be set to a file in which you can define any word to be ignored.
Warning: If you have encoding problems, in Cosmogramme, you can force UTF8 like this:
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;
```
In the opacce directory, copy and configure
cp config.ini.default config.ini
touch local.php
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
Use the account compte admin/achanger
go to http://localhost/opacce/admin