Og når jeg prøver å gå inn på HS etterpå så får jeg bare 502 Bad Gateway og må restarte HS-tjenesten for å få den opp igjen...
Hmm...
Jeg tror årsaken var at PHLocation sin egen HTTP-server også krever autentisering (det kan ikke slås av om man kjører på Linux, bare på Windows, i følge PHLocation userguide) og da skjer det noe i koblingen der. Så, da måtte jeg bare løse det på annet vis!
Jeg installerte PHP7.0 og satte opp en egen ngnix-server-sesjon for PHP på port 85:
server {
listen 85;
server_name php-nginx;
access_log /var/log/nginx/php_access.log;
error_log /var/log/nginx/php_error.log;
root /usr/local/HomeSeer/html-php;
index index.php;
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
Deretter la jeg til denne øverst i den andre server-sesjonen:
# Proxy for PHLocation-fence enters/exits
location ~* \/phl\.php {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:85 ;
add_header X-Whom phlocation;
expires -1;
}
Deretter laget jeg en PHP-fil /usr/local/HomeSeer/html-php/phl.php:
<?php
file_put_contents("dump.txt", print_r($_POST, true));
# Create a connection
$url = 'http://localhost:8000/phlgeofency';
$ch = curl_init($url);
# Setting our options
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($_POST));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "username:password");
# Get the response
$response = curl_exec($ch);
file_put_contents("dump.txt", print_r($response, true), FILE_APPEND);
curl_close($ch);
?>
(jeg laget også en "dump.txt" med chmod 777, bare for å logge litt for feilsøking)
I Geofency-appen la jeg så til https://mitt.domene.no/phl som web-hook, og vipps, så har jeg en kryptert forbindelse for Geofency også!