Escolar Documentos
Profissional Documentos
Cultura Documentos
150 (Cloud
priv)
1re ETAPE : DEPLOIEMENT SERVEUR WEB NGINX +SERVEUR WEB
MYSQL+PHP
https://decatec.de/home-server/owncloud-9-auf-ubuntu-server-16-04-lts-mit-nginx-mariadb-php-7und-lets-encrypt/
Notes:
a. aprs linstallation de Ubuntu il faut affecter une adresse rseau
statique :
sudo nano /etc/network/interfaces
P a g e 1 | 25
b. vrifier si le SSH est actif sur le serveur afin de pouvoir y accder via
Putty.
OpenSSH est une version libre de la famille d'outils du protocole Secure Shell (SSH) pour
le contrle distance ou le transfert des fichiers entre les ordinateurs.
P a g e 2 | 25
Reboot
P a g e 3 | 25
nano /etc/network/interfaces
Adresse Ip Statique
auto eth0
iface eth0 inet static
address 192.168.178.20
netmask 255.255.255.0
network 192.168.178.0
broadcast 192.168.178.255
gateway 192.168.178.1
dns-nameservers 192.168.178.1
Programme installation
Installation NGINX
Pour obtenir plus tard afficher aucun avertissement lors de l'installation du serveur Web,
la cl des rfrentiels nginx doit tre connue du systme :
sudo -s
wget -O - http://nginx.org/keys/nginx_signing.key | apt-key add -
P a g e 4 | 25
Remarque: Ces lignes assurent que la version Mainline de nginx est utilis. La ligne
principale reprsente la branche de dveloppement en cours et est considr comme
stable. Il est galement toujours la branche de dveloppement stable. Ceci est une
fourche de la branche de dveloppement de la canalisation principale, mais il nest pas
ncessairement plus stable que la ligne principale (voir nginx blog). Une autre
contribution du blog de nginx recommande explicitement l'utilisation de la branche
mainline.
Ctrlx
P a g e 5 | 25
O
Entree
Aprs avoir ajout les dpts, l'installation relle de nginx suit:
apt-get update
apt-get install nginx
nginx est configur aprs l'installation de telle sorte qu'un soi-disant. Page par dfaut est
active. Ceci peut tre vu dans l'appel avec le navigateur (voir ci-dessus). Parce que cette
page par dfaut est uniquement destine tester l'installation de nginx initiale, il peut
tre dsactiv.
Pour cela, vous supprimez simplement le fichier etc / nginx / sites-enabled / default /:
cd /etc/nginx/sites-enabled
ls (pour vrifier lexistance de default)
rm/etc/nginx/sites-enabled/default
La page par dfaut va donc cependant pas perdu car il est encore dans le / etc / nginx /
sites-disponible pour le moment (mais est plus charg par nginx).
Prparation de la structure de rpertoire
Tout d'abord, les rpertoires pour le Crypter et ownCloud Let tre appliques. La proprit
devrait quand les internautes sont (www-data):
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
----Country Name (2 letter code) [AU]:DZ
State or Province Name (full name) [Some-State]:ALGER
Locality Name (eg, city) []:ALGER
Organization Name (eg, company) [Internet Widgits Pty Ltd]:DIVINDUS
Organizational Unit Name (eg, section) []:OU
Common Name (e.g. server FQDN or YOUR name) []:cloud.divindus.dz
Email Address []:useradmin@divindus.dz
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: laisser vide (facultatif)
An optional company name []: laisser vide (facultatif)
Puis gnrer la cl prive de lautorit de certification (ici nous faisons nous-mme office
dautorit de certification car nous voulons nous-mme signer notre certificat). On choisit
dquiper cette cl dune passphrase (option -des3) :
sudo openssl genrsa -des3 -out ca.key 2048
Gnrer le certificat de la CA, dune dure de validit de 3650 jours :
sudo openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
De la mme manire, renseigner les infos :
Country Name (2 letter code) [AU]: DZ
State or Province Name (full name) [Some-State]:ALGER
P a g e 8 | 25
sites-available : qui contient les fichiers de configuration pour chaque site (par exemple
1 fichier pour owncloud, 1 fichier pour votre site perso). Cela permet de constituer des
VirtualHosts. Les fichiers stockes ici ne sont pas automatiquement pris en compte.
sites-enabled : contient des liens symboliques vers les fichiers de sites-available. Une
fois le lien symbolique ajout, le fichier est pris en compte et le site est activ.
Crer un nouveau fichier pour Owncloud :
cd /etc/nginx/sites-available
sudo nano owncloud
Puis entrer les paramtres suivants (il sagit des paramtres prconiss dans la
documentation ownCloud pour Nginx) en les adaptant :
upstream php-handler {
#server 127.0.0.1:9000;
server unix:/var/run/php/php7.0-fpm.sock;
}
server {
listen 80;
server_name cloud.divindus.dz;
# enforce https
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name cloud.divindus.dz;
ssl_certificate /etc/nginx/ssl/owncloud.crt;
ssl_certificate_key /etc/nginx/ssl/priv.key;
# Add headers to serve security related headers
add_header Strict-Transport-Security "max-age=15768000;
includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
# Path to the root of your installation
root /var/www/;
# set max upload size
client_max_body_size 10G;
fastcgi_buffers 64 4K;
# Disable gzip to avoid the removal of the ETag header
gzip off;
# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;
index index.php;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
rewrite ^/.well-known/carddav /remote.php/carddav/ permanent;
rewrite ^/.well-known/caldav /remote.php/caldav/ permanent;
P a g e 1 0 | 25
# The following 2 rules are only needed for the user_webfinger app.
# Uncomment it if you're planning to use this app.
#rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
#rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json
last;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
location / {
rewrite ^/remote/(.*) /remote.php last;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ =404;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_param modHeadersAvailable true; #Avoid sending the security
headers twice
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
}
# Adding the cache control header for js and css files
# Make sure it is BELOW the location ~ \.php(?:$|/) { block
location ~* \.(?:css|js)$ {
add_header Cache-Control "public, max-age=7200";
# Add headers to serve security related headers
add_header Strict-Transport-Security "max-age=15768000;
includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
# Optional: Don't log access to assets
access_log off;
}
# Optional: Don't log access to other assets
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|swf)$ {
access_log off;
}
P a g e 1 1 | 25
}
Ctrl x
Oui
Entree
Crer un lien symbolique afin dactiver la configuration effectue puis redmarrer Nginx :
sudo ln -s /etc/nginx/sites-available/owncloud /etc/nginx/sitesenabled/owncloud
sudo service nginx restart
Installtion PHP
sudo apt-getupdate
# enforce https
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name cloud.divindus.dz;
ssl_certificate /etc/nginx/ssl/owncloud.crt;
ssl_certificate_key /etc/nginx/ssl/priv.key;
# Add headers to serve security related headers
add_header Strict-Transport-Security "max-age=15768000;
includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
# Path to the root of your installation
root /var/www/owncloud;
# set max upload size
client_max_body_size 10G;
fastcgi_buffers 64 4K;
# Disable gzip to avoid the removal of the ETag header
gzip off;
# Uncomment if your server is build with the ngx_pagespeed module
# This module is currently not supported.
#pagespeed off;
index index.php;
error_page 403 /core/templates/403.php;
error_page 404 /core/templates/404.php;
rewrite ^/.well-known/carddav /remote.php/carddav/ permanent;
rewrite ^/.well-known/caldav /remote.php/caldav/ permanent;
# The following 2 rules are only needed for the user_webfinger app.
# Uncomment it if you're planning to use this app.
#rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
#rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json
last;
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ ^/(build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) {
deny all;
}
P a g e 1 3 | 25
location / {
rewrite ^/remote/(.*) /remote.php last;
rewrite ^(/core/doc/[^\/]+/)$ $1/index.html;
try_files $uri $uri/ =404;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_param modHeadersAvailable true; #Avoid sending the security
headers twice
fastcgi_pass php-handler;
fastcgi_intercept_errors on;
}
# Adding the cache control header for js and css files
# Make sure it is BELOW the location ~ \.php(?:$|/) { block
location ~* \.(?:css|js)$ {
add_header Cache-Control "public, max-age=7200";
# Add headers to serve security related headers
add_header Strict-Transport-Security "max-age=15768000;
includeSubDomains; preload;";
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
# Optional: Don't log access to assets
access_log off;
}
# Optional: Don't log access to other assets
location ~* \.(?:jpg|jpeg|gif|bmp|ico|png|swf)$ {
access_log off;
}
}
P a g e 1 4 | 25
P a g e 1 5 | 25
Il est dfini ici non serveur HTTPS. Nanmoins, la connexion est chiffre en
utilisant le protocole HTTPS, parce que l'hte de la passerelle fournit pour le
chiffrement.
Avec server_name les domaines sont indiqus (ou adresses IP) auquel le serveurbloc correspondant doivent ragir. Dans notre cas, cela se limite l'adresse
127.0.0.1 locale. Accessibilit sur Internet (owncloud9tutorial.goip.de/owncloud)
est nouveau fix sur l'hte de la passerelle.
Les instructions ncessaires pour une scurit accrue de proxy_set_header. Sans
ces entres, mises en garde dans la zone d'administration de ownCloud
apparaissent plus tard. Dans de nombreux tutoriels ces en-ttes sont spcifies
par add_header. Dans notre cas, cela ne fonctionne pas parce que le trafic gr
par un proxy (passerelle hte). Par consquent, les en-ttes sont spcifies par
proxy_set_header.
Le gestionnaire de PHP (qui est seul responsable de ownCloud dans ce cas)
comprend en plus des instructions qui sont importantes pour ownCloud, et
d'autres paramtres qui remplacent les variables dans le fichier php.ini
(fastcgi_param php_value). Une seule fastcgi_param dclaration de php_value doit
exister, car cette drogation contraire mutuellement. Si plusieurs paramtres
passer PHP (comme cela est le cas ici), ils doivent tre facilement spars par un
saut de ligne.
Pour passer l'hte virtuel pour ownCloud pointu, un lien symbolique est cr
nouveau:
lns/etc/nginx/sites-available/owncloud /etc/nginx/sites-enabled/cloud.divindus.dz (a
verifier)
Maintenant, le serveur Web doit tre redmarr afin que la nouvelle configuration est
galement charg. Les tests de commande mentionns prcdemment cette
configuration d'abord. Si quelque chose ne devrait pas voter (par exemple, en raison
d'une faute de frappe), cela est indiqu ici.
Sudo nginx -t : Pour la vrification de la syntaxe
STOP : 17h33
PHP configuration
Avec la configuration de la plus paisse nginx Brocken est maintenant fait! Avant qu'il va
maintenant l'installation proprement dite de ownCloud, encore PHP et la base de
donnes MariaDB doivent tre configurs.
P a g e 1 6 | 25
PHP est utilis par FPM (FastCGI Process Manager). Il est dans un (performance) possibilit
de communication entre le serveur web et PHP. FPM dfinit un pool de threads qui sont
fournis sur le traitement des demandes. La piscine est configur dans le fichier suivant:
Sudo nano /etc/php/7.0/fpm/pool.d/www.conf
Ici vous recherchez l'entre environnement passe variables comme LD_LIBRARY_PATH.
TOUTES LES VARIABLES $ sont tirs de l'environnement actuel. Voici les commentaires
supprimer (virgule) pour toutes les entres qui commencent par env. Sans ce
changement ownCloud recevra plus tard un avertissement dans la zone d'administration
qu'il n'y a pas de variables d'environnement sont dfinies.
open_basedir = /var/www/:/tmp/:
Restreint l'accs de PHP aux Webroot- et le rpertoire temporaire. Cela permet PHP
d'accder autrement tout fichier sur le systme ou le changer.
Outre FPM PHP peut galement tre accessible via la ligne de commande. Cela est
ncessaire plus tard pour l'emploi ownCloud-cron. Par consquent, en plus de la
P a g e 1 7 | 25
configuration du FPM, la configuration CLI doit tre ajuste, tant donn que ces
paramtres ne peuvent tre dfinis sur une machine virtuelle :
sudo service php7.0-fpm restart
MySQL installation
Owncloud installation
cd /var/www
sudo wget https://download.owncloud.org/community/owncloud-9.0.2.tar.bz2
P a g e 1 8 | 25
mysql -u root -p
Enter password:
mysql> quit
http://cloud.divindus.corporation:82/owncloud/
P a g e 2 0 | 25
https://192.168.1.216/owncloud/
P a g e 2 1 | 25
/var/owncloud_data
owncloud
(voir ci-
P a g e 2 3 | 25
P a g e 2 4 | 25
/var/www/owncloud/themes/divindus/core/css
ls
//Copier styles.css dans /var/www/owncloud/themes/divindus/core/css via filezilla ou
Notes importantes
1. Pour rinistialiser mot de passe de ladministrateur de Owncloud :
2. Maintenance :
P a g e 2 5 | 25