Jusqu'à présent, j'ai organisé une visualisation des informations de localisation à l'aide de QGIS, mais comme il s'agit d'une méthode d'opération côté bureau, elle ne convient pas pour publier la version visualisée ou la télécharger conjointement avec d'autres. Cette fois, j'ai configuré WebGIS (QGIS-Server) pour partager la couche créée par QGIS, donc je laisserai le contenu sous forme de mémo.
[Environnement d'installation WebGIS] ・ Ubuntu20.04 LTS (sur GCP) ・ QGIS-Server 3.10.4 ・ Apache 2.4.41
・ Accédez à l'écran d'accueil de GCP et cliquez sur [Nouveau projet]. (Le navigateur est Chrome)
-Depuis que l'écran de création de projet s'ouvre, choisissez le "nom du projet" et cliquez sur [Créer].
-Cliquez sur [Compute Engine> VM Instance] dans le menu de navigation.
-Cliquez sur [Créer], entrez les informations suivantes, sélectionnez-les et cliquez sur [Créer].
<Le côté droit est la valeur de réglage actuelle> ● Nom: qgis-web-client2 ● Région: asia-northest1 (Tokyo) ● Zone: asia-east1-b
● Configuration de la machine Famille de machines: usage général Série: E2 Type de machine: e2-petit ● Disque de démarrage OS :Ubuntu Version: Ubuntu20.04 LTS Type de disque: disque persistant standard Taille: 10 Go
● Pare-feu Autoriser le trafic HTTP Autoriser le trafic HTTPS
● Mise en réseau (interface réseau) IP externe: créez une adresse IP
Décidez du nom de manière appropriée.
Les paramètres autres que ceux ci-dessus sont laissés par défaut
La création prendra un certain temps, mais une fois la création terminée, cliquez sur Connect- [SSH] pour ouvrir l'écran de la console.
A partir de là, connectez-vous en tant que root et exécutez. </ font> (Vous pouvez utiliser sudo
comme utilisateur de compte GCP par défaut, mais c'est un problème à chaque fois)
Mises à jour de l'outil de gestion des packages.
python
$ apt update
$ apt -y upgrade
Installation des packages requis.
python
$ apt install -y nano curl iputils-ping net-tools
python
$ apt install qgis-server
Vérifiez l'emplacement de stockage du fichier exécutable du serveur QGIS.
La documentation officielle dit / usr / lib / cgi-bin / qgis_mapserv.fcgi
.
python
$ find / -name 'qgis_mapserv.fcgi'
/usr/lib/cgi-bin/qgis_mapserv.fcgi
Essaye le.
python
$ /usr/lib/cgi-bin/qgis_mapserv.fcgi
"Loading native module /usr/lib/qgis/server/libdummy.so"
"Loading native module /usr/lib/qgis/server/libwcs.so"
"Loading native module /usr/lib/qgis/server/libwfs.so"
"Loading native module /usr/lib/qgis/server/libwfs3.so"
"Loading native module /usr/lib/qgis/server/libwms.so"
"Loading native module /usr/lib/qgis/server/libwmts.so"
QFSFileEngine::open: No file name specified
Content-Length: 54
Content-Type: text/xml; charset=utf-8
Server: Qgis FCGI server - QGis version 3.10.4-A Coruña
Status: 500
<ServerException>Project file error</ServerException>
À ce stade, il semble que l'on puisse juger que la réponse est normale si la réponse est telle que décrite ci-dessus.
python
###Création d'un dossier pour stocker les données du projet
$ mkdir /home/qgis/
$ mkdir /home/qgis/projects/
###Téléchargez les projets de formation.
$ wget https://github.com/qgis/QGIS-Training-Data/archive/master.zip -d
###Décompressez le fichier ZIP téléchargé. * "QGIS-Training-Data-2.Le répertoire 0 ”est créé.
$ unzip master.zip
###Copiez les données du didacticiel du fichier décompressé
$ cp -pr ./QGIS-Training-Data-master/exercise_data/qgis-server-tutorial-data/* /home/qgis/projects/
Vérifiez le contenu du répertoire de destination de la copie.
python
$ ls -l /home/qgis/projects/
total 13352
drwxrwxr-x 2 Icons
-rw-rw-r-- 1 README.md
drwxrwxr-x 2 Template
-rw-rw-r-- 1 naturalearth.sqlite
-rw-rw-r-- 1 world.qgs
-rw-rw-r-- 1 world3.qgs
#* L'affichage ci-dessus est partiellement omis.
-Apache installation et confirmation de démarrage -Dupliquer et éditer le fichier conf -Créez un hôte virtuel et associez le fichier de configuration à lire aux informations de l'hôte.
Installez les packages requis pour le serveur HTTP Apache.
python
$ apt install -y apache2 libapache2-mod-fcgid
Activez le module cgi
et accédez à l'URL http: //localhost/cgi-bin/qgis_mapserv.fcgi? SERVICE = WMS & VERSION = 1.3.0 & REQUEST = GetCapabilities
depuis un navigateur sur Ubuntu.
python
#Activation du module
$ a2enmod cgid
#Redémarrez Apache2
$ systemctl restart apache2
L'écran ci-dessous devrait être affiché sur le navigateur sur Ubuntu. (Pour le remodelage vers Ubuntu, reportez-vous ici ** [Connexion Bureau à distance à Ubuntu sur GCP] **)
cgid
n'est pas activé, il sera" Not Found ".Pour activer le module et définir l'alias dans la configuration du site
Créez qgis_demo.conf
dans / etc / apache2 / sites-available /
.
python
$ nano /etc/apache2/sites-available/qgis_demo.conf
/etc/apache2/sites-available/qgis_demo.conf
Créé avec le contenu suivant (voir document officiel)
-------------------------------------------------
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
# Tell QGIS Server instances to use a specific display number for xvfb
# necessary for printing, see below
FcgidInitialEnv DISPLAY ":99"
# Activate QGIS log (different from apache logs)
#Cette fois, ça va si ce n'est pas réglé
#FcgidInitialEnv QGIS_SERVER_LOG_FILE /var/log/qgis/qgisserver.log
FcgidInitialEnv QGIS_SERVER_LOG_LEVEL "0"
FcgidInitialEnv QGIS_SERVER_LOG_STDERR "1"
FcgidInitialEnv QGIS_DEBUG 1
# Add a default QGIS project
SetEnv QGIS_PROJECT_FILE /home/qgis/projects/world.qgs
# QGIS_AUTH_DB_DIR_PATH must lead to a directory writeable by www-data
#Cette fois, ça va si ce n'est pas réglé
#FcgidInitialEnv QGIS_AUTH_DB_DIR_PATH "/var/www/qgis-server/qgisserverdb/"
#FcgidInitialEnv QGIS_AUTH_PASSWORD_FILE "/var/www/qgis-server/qgisserverdb/qgis-auth.db"
<IfModule mod_fcgid.c>
# Longer timeout for WPS... default = 40
FcgidIOTimeout 120
FcgidMaxRequestLen 26214400
FcgidConnectTimeout 60
</IfModule>
# /usr/lib/cgi-bin/qgis_mapserv.Créez un alias pour le chemin fcgi.
<Location /qgisserver>
SetHandler fcgid-script
FcgidWrapper /usr/lib/cgi-bin/qgis_mapserv.fcgi virtual
Options +ExecCGI -MultiViews +FollowSymLinks
Require all granted
</Location>
</VirtualHost>
-------------------------------------------------
Extrayez le fichier de paramètres de site créé qgis_demo.conf
afin qu'il soit chargé au démarrage d'Apache.
python
#Supprimer le site par défaut une fois
$ a2dissite 000-default
#Extraire le fichier créé
$ a2ensite qgis_demo
Enabling site qgis.demo.
/ Etc / apache2 / sites-enabled / qgis.demo.conf
est créé comme lien symbolique vers / sites-available / qgis.demo.conf
.
(/ Etc / apache2 / sites-enabled / *. Conf
est exécuté lorsque apache
démarre.)python
###Activer le module
$ a2enmod fcgid
$ a2enconf serve-cgi-bin
###Redémarrez le service Apache
$ systemctl restart apache2
** Installation de xvfb
et enregistrement des services **
python
$ apt install -y xvfb
Xvfb
lui-même est un outil pour simuler l'entrée / sortie d'écran sur un système d'exploitation tel que Linux qui n'a pas d'affichage. Vous pouvez tester avec Chrome, Firefox, etc. sans préparer un environnement de bureau.[Xvfb] Création d'un fichier de service.
python
$ nano /etc/systemd/system/xvfb.service
/etc/systemd/system/xvfb.service
[Unit]
Description=X Virtual Frame Buffer Service
After=network.target
[Service]
ExecStart=/usr/bin/Xvfb :99 -screen 0 1024x768x24 -ac +extension GLX +render -noreset
[Install]
WantedBy=multi-user.target
Démarrez le service Xvfb
créé ci-dessus
python
$ systemctl enable xvfb.service
$ systemctl start xvfb.service
$ systemctl status xvfb.service
Redémarrez Apache
$ systemctl restart apache2
Accédez à l'URL suivante à partir du navigateur dans Ubuntu, et si un écran comme une carte s'ouvre, la configuration est terminée!
http://localhost/qgisserver?MAP=/home/qgis/projects/world.qgs&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=-432786,4372992,3358959,7513746&SRS=EPSG:3857&WIDTH=665&HEIGHT=551&LAYERS=countries&FORMAT=image/jpeg
Ensuite, je voudrais stocker le fichier qgs et essayer d'afficher les données Shape et PostgreSQL. (Tout d'abord, vous devrez peut-être configurer MAP, etc.)
Recommended Posts