diff --git a/Dockerfile b/Dockerfile index f61fe3c49c69ad49eff14fb683f9a5ecf6f6c9a5..9e1e01693133bf909817d115fcb3a81a29ab84fe 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,50 +1,59 @@ -FROM nginx +FROM alpine:3.9.5 -RUN apt -y update && apt -y install php-fpm \ +RUN apk add --update \ + nginx \ + tzdata \ ca-certificates \ - cron \ + dcron \ zip \ - php7.3-common \ - php7.3-curl \ - php7.3-mbstring \ - php7.3-sqlite3 \ - php7.3-mysql \ - php7.3-xml \ - php7.3-zip \ - php7.3-redis \ - php7.3-gd \ - redis-server - -RUN sed -i 's/listen.owner = www-data/listen.owner = nginx/g' /etc/php/7.3/fpm/pool.d/www.conf && \ - sed -i 's/listen.group = www-data/listen.group = nginx/g' /etc/php/7.3/fpm/pool.d/www.conf && \ - sed -i 's/pm.max_children = 5/pm.max_children = 100/g' /etc/php/7.3/fpm/pool.d/www.conf && \ - sed -i 's/pm.start_servers = 2/pm.start_servers = 25/g' /etc/php/7.3/fpm/pool.d/www.conf && \ - sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 5/g' /etc/php/7.3/fpm/pool.d/www.conf && \ - sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 25/g' /etc/php/7.3/fpm/pool.d/www.conf && \ - sed -i 's/user = www-data/user = nginx/g' /etc/php/7.3/fpm/pool.d/www.conf && \ - sed -i 's/group = www-data/group = nginx/g' /etc/php/7.3/fpm/pool.d/www.conf && \ - sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php/7.3/fpm/php.ini && \ - rm /var/log/nginx/access.log && ln -s /dev/null /var/log/nginx/access.log && \ - rm /var/log/nginx/error.log && ln -s /dev/stdout /var/log/nginx/error.log && \ - mkdir /html - -# Set correct timezone -RUN ln -fs /usr/share/zoneinfo/Europe/Berlin /etc/localtime && dpkg-reconfigure -f noninteractive tzdata - -# Add Cronjob for Laravel -RUN (crontab -l ; echo "* * * * * php /html/artisan schedule:run >> /dev/null 2>&1") | crontab + redis \ + php7 \ + php7-fpm \ + php7-common \ + php7-curl \ + php7-mbstring \ + php7-sqlite3 \ + php7-pdo_mysql \ + php7-pdo_sqlite \ + php7-dom \ + php7-simplexml \ + php7-tokenizer \ + php7-zip \ + php7-redis \ + php7-gd \ + php7-json \ + php7-pcntl \ + && rm -rf /var/cache/apk/* WORKDIR /html -EXPOSE 80 + +RUN sed -i 's/user = nobody/user = nginx/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/group = nobody/group = nginx/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/pm.max_children = 5/pm.max_children = 100/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/pm.start_servers = 2/pm.start_servers = 5/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 5/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 25/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/user = www-data/user = nginx/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/group = www-data/group = nginx/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php7/php.ini && \ + echo "daemonize yes" >> /etc/redis.conf && \ + ln -s /dev/null /var/log/nginx/access.log && \ + ln -s /dev/stdout /var/log/nginx/error.log && \ + cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime && \ + echo "Europe/Berlin" > /etc/timezone && \ + (crontab -l ; echo "* * * * * php /html/artisan schedule:run >> /dev/null 2>&1") | crontab - COPY config/nginx.conf /etc/nginx/nginx.conf COPY config/nginx-default.conf /etc/nginx/conf.d/default.conf COPY --chown=root:nginx . /html +WORKDIR /html +EXPOSE 80 + CMD chown -R root:nginx storage/logs/metager bootstrap/cache && \ chmod -R g+w storage/logs/metager bootstrap/cache && \ - /etc/init.d/cron start && \ - /etc/init.d/php7.3-fpm start && \ - /etc/init.d/nginx start && \ - /etc/init.d/redis-server start && \ - su -s /bin/bash -c 'php artisan requests:fetcher' nginx + crond -L /dev/stdout && \ + nginx && \ + php-fpm7 -D && \ + redis-server /etc/redis.conf && \ + su -s /bin/sh -c 'php artisan requests:fetcher' nginx diff --git a/Dockerfile.dev b/Dockerfile.dev new file mode 100644 index 0000000000000000000000000000000000000000..25241f728ff96ca8192d2d45bc7066764f141029 --- /dev/null +++ b/Dockerfile.dev @@ -0,0 +1,55 @@ +FROM alpine:3.9.5 + +RUN apk add --update \ + nginx \ + tzdata \ + ca-certificates \ + dcron \ + zip \ + redis \ + php7 \ + php7-fpm \ + php7-common \ + php7-curl \ + php7-mbstring \ + php7-sqlite3 \ + php7-pdo_mysql \ + php7-pdo_sqlite \ + php7-dom \ + php7-simplexml \ + php7-tokenizer \ + php7-zip \ + php7-redis \ + php7-gd \ + php7-json \ + php7-pcntl \ + && rm -rf /var/cache/apk/* + +WORKDIR /html + +RUN sed -i 's/user = nobody/user = nginx/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/group = nobody/group = nginx/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/pm.max_children = 5/pm.max_children = 100/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/pm.start_servers = 2/pm.start_servers = 5/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 5/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 25/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/user = www-data/user = nginx/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/group = www-data/group = nginx/g' /etc/php7/php-fpm.d/www.conf && \ + sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/g' /etc/php7/php.ini && \ + echo "daemonize yes" >> /etc/redis.conf && \ + ln -s /dev/null /var/log/nginx/access.log && \ + ln -s /dev/stdout /var/log/nginx/error.log && \ + cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime && \ + echo "Europe/Berlin" > /etc/timezone && \ + (crontab -l ; echo "* * * * * php /html/artisan schedule:run >> /dev/null 2>&1") | crontab - + +WORKDIR /html +EXPOSE 80 + +CMD chown -R root:nginx storage/logs/metager bootstrap/cache && \ + chmod -R g+w storage/logs/metager bootstrap/cache && \ + crond -L /dev/stdout && \ + nginx && \ + php-fpm7 -D && \ + redis-server /etc/redis.conf && \ + su -s /bin/sh -c 'php artisan requests:fetcher' nginx diff --git a/app/Console/Commands/RequestFetcher.php b/app/Console/Commands/RequestFetcher.php index 9b986603af972b57e341d7327218940608b28bec..6a52264417a4326b744a4a596c808fe65eba7610 100644 --- a/app/Console/Commands/RequestFetcher.php +++ b/app/Console/Commands/RequestFetcher.php @@ -50,9 +50,6 @@ class RequestFetcher extends Command */ public function handle() { - $pids = []; - - pcntl_async_signals(true); pcntl_signal(SIGINT, [$this, "sig_handler"]); pcntl_signal(SIGTERM, [$this, "sig_handler"]); pcntl_signal(SIGHUP, [$this, "sig_handler"]); @@ -114,9 +111,6 @@ class RequestFetcher extends Command } finally { curl_multi_close($this->multicurl); } - foreach ($pids as $tmppid) { - \pcntl_waitpid($tmppid, $status, WNOHANG); - } } private function getCurlHandle($job) diff --git a/app/Http/Controllers/AdminInterface.php b/app/Http/Controllers/AdminInterface.php index d0b4664fece70baba754309f5333736434528707..4cbd7e9adbd43d5887de8d0e3ff1b86644c2ef93 100644 --- a/app/Http/Controllers/AdminInterface.php +++ b/app/Http/Controllers/AdminInterface.php @@ -77,7 +77,7 @@ class AdminInterface extends Controller private function getSearchEngineNames() { $url = config_path() . "/sumas.xml"; - $xml = simplexml_load_file($url); + $xml = \simplexml_load_file($url); $sumas = $xml->xpath("suma"); $names = array(); diff --git a/app/Http/Controllers/Assoziator.php b/app/Http/Controllers/Assoziator.php index f7163585e765e9009b5408a2fad0b2fd040f9966..b4a7d686dbaaf71e194d27d4f17d958b7fda643c 100644 --- a/app/Http/Controllers/Assoziator.php +++ b/app/Http/Controllers/Assoziator.php @@ -42,7 +42,7 @@ class Assoziator extends Controller } $response = preg_replace("/^<\?.*\?>/s", "<?xml version=\"1.0\" encoding=\"UTF-8\"?>", $response); - $content = simplexml_load_string($response); + $content = \simplexml_load_string($response); $words = []; diff --git a/app/Http/Controllers/FokiLoader.php b/app/Http/Controllers/FokiLoader.php index 5b1a06713d667e43f9c96dac55545ccdf73a0f26..a71e69729d7858f67c32903d44e25e109cd8c1c5 100644 --- a/app/Http/Controllers/FokiLoader.php +++ b/app/Http/Controllers/FokiLoader.php @@ -15,7 +15,7 @@ class FokiLoader $sumaFile = config_path() . "/sumas.xml"; } - $xml = simplexml_load_file($sumaFile); + $xml = \simplexml_load_file($sumaFile); $sumas = $xml->xpath("suma"); $foki = []; diff --git a/app/Http/Controllers/MetaGerSearch.php b/app/Http/Controllers/MetaGerSearch.php index 191cbd0cf174d5513f5b547f82f571582555b949..59c6bde3fa5dbd07ae1179426f59035af921d3af 100644 --- a/app/Http/Controllers/MetaGerSearch.php +++ b/app/Http/Controllers/MetaGerSearch.php @@ -253,7 +253,7 @@ class MetaGerSearch extends Controller $tips_text = file_get_contents($tipserver); $tips = []; try { - $tips_xml = simplexml_load_string($tips_text); + $tips_xml = \simplexml_load_string($tips_text); $tips_xml->registerXPathNamespace('mg', 'http://metager.de/tips/'); $tips_xml = $tips_xml->xpath('mg:tip'); diff --git a/app/Models/Quicktips/Quicktips.php b/app/Models/Quicktips/Quicktips.php index 2022b26b2d6976f6046979d28b04af4d4a3c3914..06306dcde031b42f5b8b3f9cfd208d8e7a0f7680 100644 --- a/app/Models/Quicktips/Quicktips.php +++ b/app/Models/Quicktips/Quicktips.php @@ -86,7 +86,7 @@ class Quicktips { $quicktips_raw = preg_replace("/\r\n/si", "", $quicktips_raw); try { - $content = simplexml_load_string($quicktips_raw); + $content = \simplexml_load_string($quicktips_raw); if (!$content) { return; } diff --git a/app/Models/XmlSearchengine.php b/app/Models/XmlSearchengine.php index f0bd0cc37072b28e0e709b75c95a179d5cd0bb06..9cf973399a92dd4a5fcde54e3a637f88d843862e 100644 --- a/app/Models/XmlSearchengine.php +++ b/app/Models/XmlSearchengine.php @@ -9,7 +9,7 @@ abstract class XmlSearchengine extends Searchengine public function loadresults($results) { try { - $resultsXml = simplexml_load_string($results); + $resultsXml = \simplexml_load_string($results); $this->loadXmlResults($resultsXml); } catch (\Exception $e) { Log::error($e->getMessage()); diff --git a/app/Models/parserSkripte/BASE.php b/app/Models/parserSkripte/BASE.php index 64f7a0321a7f90b7b45b5fea9985fdb5f22fc4c1..c47dee3d8b3ce6bb5b744a6ad49e27b1f6373e26 100644 --- a/app/Models/parserSkripte/BASE.php +++ b/app/Models/parserSkripte/BASE.php @@ -18,7 +18,7 @@ class BASE extends Searchengine { $result = preg_replace("/\r\n/si", "", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } @@ -33,7 +33,7 @@ class BASE extends Searchengine $title = $attribute; break; case 'dclink': - $link = $attribute; + $link = $attribute; $anzeigeLink = $link; break; case 'dcdescription': @@ -49,7 +49,7 @@ class BASE extends Searchengine $link, $anzeigeLink, $descr, - $this->engine->{"display-name"},$this->engine->homepage, + $this->engine->{"display-name"}, $this->engine->homepage, $this->counter ); } diff --git a/app/Models/parserSkripte/Blogsearch.php b/app/Models/parserSkripte/Blogsearch.php index a97f217c8960df4b790943626aec6e2465f2a301..83689ffcd439ffac4c9482b9b1c8ad4b48e7cedf 100644 --- a/app/Models/parserSkripte/Blogsearch.php +++ b/app/Models/parserSkripte/Blogsearch.php @@ -18,17 +18,17 @@ class Blogsearch extends Searchengine { $result = preg_replace("/\r\n/si", "", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } $results = $content->xpath('//xml/docs/doc'); foreach ($results as $result) { - $title = $result->{"title"}->__toString(); - $link = $result->{"url"}->__toString(); + $title = $result->{"title"}->__toString(); + $link = $result->{"url"}->__toString(); $anzeigeLink = $link; - $descr = $result->{"content"}->__toString(); + $descr = $result->{"content"}->__toString(); $this->counter++; $this->results[] = new \App\Models\Result( $this->engine, @@ -36,7 +36,7 @@ class Blogsearch extends Searchengine $link, $anzeigeLink, $descr, - $this->engine->{"display-name"},$this->engine->homepage, + $this->engine->{"display-name"}, $this->engine->homepage, $this->counter ); } diff --git a/app/Models/parserSkripte/Ebay.php b/app/Models/parserSkripte/Ebay.php index b9ea1351fab8e885f4a3268d86662a7ef6e37c6a..848e01a75d484cb5c102f836dcb630f4946a51f4 100644 --- a/app/Models/parserSkripte/Ebay.php +++ b/app/Models/parserSkripte/Ebay.php @@ -18,7 +18,7 @@ class Ebay extends Searchengine { $result = preg_replace("/\r\n/si", "", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } diff --git a/app/Models/parserSkripte/Ecoshopper.php b/app/Models/parserSkripte/Ecoshopper.php index 6555361f3bda488933981c8c2bd2b754aff0b015..818d55cf7fa39a1f57411fdf65cf27fcafe4316d 100644 --- a/app/Models/parserSkripte/Ecoshopper.php +++ b/app/Models/parserSkripte/Ecoshopper.php @@ -18,16 +18,16 @@ class Ecoshopper extends Searchengine { $result = preg_replace("/\r\n/si", "", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } $results = $content->xpath('//response/result[@name="response"]/doc'); foreach ($results as $result) { - $result = simplexml_load_string($result->saveXML()); - $title = $result->xpath('//doc/str[@name="artikelName"]')[0]->__toString(); - $link = $result->xpath('//doc/str[@name="artikelDeeplink"]')[0]->__toString(); + $result = \simplexml_load_string($result->saveXML()); + $title = $result->xpath('//doc/str[@name="artikelName"]')[0]->__toString(); + $link = $result->xpath('//doc/str[@name="artikelDeeplink"]')[0]->__toString(); $anzeigeLink = parse_url($link); if (isset($anzeigeLink['query'])) { parse_str($anzeigeLink['query'], $query); @@ -49,10 +49,10 @@ class Ecoshopper extends Searchengine $link, $anzeigeLink, $descr, - $this->engine->{"display-name"},$this->engine->homepage, + $this->engine->{"display-name"}, $this->engine->homepage, $this->counter, ['partnershop' => false, - 'image' => $image] + 'image' => $image] ); } } catch (\Exception $e) { diff --git a/app/Models/parserSkripte/Exalead.php b/app/Models/parserSkripte/Exalead.php index 399b888e5351fddd82d40a490bcbf387771a620a..a500dc750e7aecb7db0915d06d89a549a1018321 100644 --- a/app/Models/parserSkripte/Exalead.php +++ b/app/Models/parserSkripte/Exalead.php @@ -18,7 +18,7 @@ class Exalead extends Searchengine { $result = preg_replace("/\r\n/si", "", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } diff --git a/app/Models/parserSkripte/Flickr.php b/app/Models/parserSkripte/Flickr.php index 1292867d01e57c993b6729e0b0151e2418bc5d9d..c04724e09dc50dcfdb9060673140b5e7ace7df02 100644 --- a/app/Models/parserSkripte/Flickr.php +++ b/app/Models/parserSkripte/Flickr.php @@ -18,7 +18,7 @@ class Flickr extends Searchengine { $result = preg_replace("/\r\n/si", "", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } @@ -53,7 +53,7 @@ class Flickr extends Searchengine { $result = preg_replace("/\r\n/si", "", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } diff --git a/app/Models/parserSkripte/Kelkoo.php b/app/Models/parserSkripte/Kelkoo.php index 03796a476fe7d54b914863a7d5f0049c5c28f8a4..75380f558bf80dc0fe2214b57f5dd339ed437c8b 100644 --- a/app/Models/parserSkripte/Kelkoo.php +++ b/app/Models/parserSkripte/Kelkoo.php @@ -18,14 +18,13 @@ class Kelkoo extends Searchengine $this->hash = md5($this->engine->host . $this->getString . $this->engine->port . $this->name); } - public function loadResults($result) { $result = preg_replace("/\r\n/si", "", $result); # delete namespace, allowing easier xpath access $result = str_replace('xmlns="urn:yahoo:prods"', '', $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } @@ -40,23 +39,22 @@ class Kelkoo extends Searchengine $results = $content->xpath('/ProductSearch/Products/Product/Offer'); foreach ($results as $result) { - $result = simplexml_load_string($result->saveXML()); + $result = \simplexml_load_string($result->saveXML()); + + $title = $result->Title[0]->__toString(); - $title = $result->Title[0]->__toString(); - $price = floatval($result->Price[0]->Price[0]); $deliveryPrice = floatval($result->Price[0]->DeliveryCost[0]); $totalPrice = $price + $deliveryPrice; $descr = ""; - - if(isset($result->Description[0])) - { + + if (isset($result->Description[0])) { $descr = $result->Description[0]->__toString(); } - $descr .= "<p>Preis: " . $price . " €</p>"; - $image = $result->Images[0]->Image[0]->Url[0]->__toString(); - $link = $result->Url[0]->__toString(); + $descr .= "<p>Preis: " . $price . " €</p>"; + $image = $result->Images[0]->Image[0]->Url[0]->__toString(); + $link = $result->Url[0]->__toString(); $anzeigeLink = $result->Merchant[0]->Name[0]->__toString(); $this->counter++; $this->results[] = new \App\Models\Result( @@ -65,10 +63,10 @@ class Kelkoo extends Searchengine $link, $anzeigeLink, $descr, - $this->engine->{"display-name"},$this->engine->homepage, + $this->engine->{"display-name"}, $this->engine->homepage, $this->counter, ['image' => $image, - 'price' => $totalPrice * 100] + 'price' => $totalPrice * 100] ); } } catch (\Exception $e) { @@ -84,7 +82,7 @@ class Kelkoo extends Searchengine # delete namespace, allowing easier xpath access $result = str_replace('xmlns="urn:yahoo:prods"', '', $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } @@ -120,22 +118,22 @@ class Kelkoo extends Searchengine $next = new Kelkoo($this->name, $this->engine, $metager); $next->unsignedGetString .= "&start=" . ($current + 20); $next->getString = $next->UrlSigner($next->unsignedGetString); - + $next->hash = md5($next->engine->host . $next->getString . $next->engine->port . $next->name); $this->next = $next; } - # kelkoogroup.com/kelkoo-customer-service/kelkoo-developer-network/shopping-services/samples/signing-url-php/ - public function UrlSigner($path){ - + public function UrlSigner($path) + { + $urlPath = $path; $partner = $this->engine->{"http-auth-credentials"}->ID; $key = $this->engine->{"http-auth-credentials"}->Key; $URL_sig = "hash"; $URL_ts = "timestamp"; - $URL_partner = "aid"; + $URL_partner = "aid"; $URLreturn = ""; $URLtmp = ""; $s = ""; @@ -145,7 +143,7 @@ class Kelkoo extends Searchengine $urlPath = str_replace(" ", "+", $urlPath); // format URL $URLtmp = $urlPath . "&" . $URL_partner . "=" . $partner . "&" . $URL_ts . "=" . $time; - + // URL needed to create the token $s = $urlPath . "&" . $URL_partner . "=" . $partner . "&" . $URL_ts . "=" . $time . $key; $token = ""; diff --git a/app/Models/parserSkripte/Mg_produkt2.php b/app/Models/parserSkripte/Mg_produkt2.php index 8136279bc2d0376683315aa6a0a77d885beffeda..455965c9494b60e8b6221447ecdcd10f5e724ce1 100644 --- a/app/Models/parserSkripte/Mg_produkt2.php +++ b/app/Models/parserSkripte/Mg_produkt2.php @@ -18,7 +18,7 @@ class Mg_produkt2 extends Searchengine { $result = preg_replace("/\r\n/si", "", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } @@ -27,14 +27,14 @@ class Mg_produkt2 extends Searchengine foreach ($results as $result) { - $result = simplexml_load_string($result->saveXML()); - $title = $result->xpath('/doc/arr[@name="artikelName"]')[0]->{"str"}->__toString(); - $link = $result->xpath('/doc/arr[@name="artikelDeeplink"]')[0]->{"str"}->__toString(); + $result = \simplexml_load_string($result->saveXML()); + $title = $result->xpath('/doc/arr[@name="artikelName"]')[0]->{"str"}->__toString(); + $link = $result->xpath('/doc/arr[@name="artikelDeeplink"]')[0]->{"str"}->__toString(); $anzeigeLink = parse_url($link); parse_str($anzeigeLink['query'], $query); $anzeigeLink = $query['diurl']; - $descr = $result->xpath('/doc/arr[@name="artikelBeschreibung"]')[0]->{"str"}->__toString(); - $image = $result->xpath('/doc/arr[@name="artikelImageurl"]')[0]->{"str"}->__toString(); + $descr = $result->xpath('/doc/arr[@name="artikelBeschreibung"]')[0]->{"str"}->__toString(); + $image = $result->xpath('/doc/arr[@name="artikelImageurl"]')[0]->{"str"}->__toString(); $this->counter++; $this->results[] = new \App\Models\Result( $this->engine, @@ -42,7 +42,7 @@ class Mg_produkt2 extends Searchengine $link, $anzeigeLink, $descr, - $this->engine->{"display-name"},$this->engine->homepage, + $this->engine->{"display-name"}, $this->engine->homepage, $this->counter, ['image' => $image] ); diff --git a/app/Models/parserSkripte/Minisucher.php b/app/Models/parserSkripte/Minisucher.php index f318b2442269759802c9ee29f494d7554bb08609..69a55f9dcd5e0bd5bdcc253d441c71e9a330988e 100644 --- a/app/Models/parserSkripte/Minisucher.php +++ b/app/Models/parserSkripte/Minisucher.php @@ -18,7 +18,7 @@ class Minisucher extends Searchengine public function loadResults($content) { try { - $content = simplexml_load_string($content); + $content = \simplexml_load_string($content); } catch (\Exception $e) { return; } @@ -35,7 +35,7 @@ class Minisucher extends Searchengine foreach ($results as $result) { try { $counter++; - $result = simplexml_load_string($result->saveXML()); + $result = \simplexml_load_string($result->saveXML()); $title = $result->xpath('//doc/arr[@name="title"]/str')[0]->__toString(); $link = $result->xpath('//doc/str[@name="url"]')[0]->__toString(); diff --git a/app/Models/parserSkripte/Opencrawlastronomie.php b/app/Models/parserSkripte/Opencrawlastronomie.php index c8909f941b6660ba811b583b4869e0cfd5adc971..beeaa07c7fe19c49aa3cc85efe10021fe27bf1bb 100644 --- a/app/Models/parserSkripte/Opencrawlastronomie.php +++ b/app/Models/parserSkripte/Opencrawlastronomie.php @@ -18,22 +18,22 @@ class Opencrawlastronomie extends Searchengine { $result = preg_replace("/\r\n/si", "", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } $results = $content->xpath('//rss/channel/item'); - $count = 0; + $count = 0; foreach ($results as $result) { if ($count > 10) { break; } - $title = $result->{"title"}->__toString(); - $link = $result->{"link"}->__toString(); + $title = $result->{"title"}->__toString(); + $link = $result->{"link"}->__toString(); $anzeigeLink = $link; - $descr = strip_tags($result->{"description"}->__toString()); + $descr = strip_tags($result->{"description"}->__toString()); $this->counter++; $this->results[] = new \App\Models\Result( $this->engine, @@ -41,7 +41,7 @@ class Opencrawlastronomie extends Searchengine $link, $anzeigeLink, $descr, - $this->engine->{"display-name"},$this->engine->homepage, + $this->engine->{"display-name"}, $this->engine->homepage, $this->counter ); $count++; diff --git a/app/Models/parserSkripte/Opencrawlpolitik.php b/app/Models/parserSkripte/Opencrawlpolitik.php index 75c36f68fd720305d1a290b7ac390400b0ac5dc9..9f2490f00ddf80bad93c93d94362e2eb1e69d0a2 100644 --- a/app/Models/parserSkripte/Opencrawlpolitik.php +++ b/app/Models/parserSkripte/Opencrawlpolitik.php @@ -18,13 +18,13 @@ class Opencrawlpolitik extends Searchengine { $result = preg_replace("/\r\n/si", "", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } $results = $content->xpath('//rss/channel/item'); - $count = 0; + $count = 0; foreach ($results as $result) { if ($count > 10) { break; @@ -38,10 +38,10 @@ class Opencrawlpolitik extends Searchengine $additionalInformation = ['date' => $dateVal]; - $title = $result->{"title"}->__toString(); - $link = $result->{"link"}->__toString(); + $title = $result->{"title"}->__toString(); + $link = $result->{"link"}->__toString(); $anzeigeLink = $link; - $descr = strip_tags(htmlspecialchars_decode($result->{"description"}->__toString())); + $descr = strip_tags(htmlspecialchars_decode($result->{"description"}->__toString())); $this->counter++; $this->results[] = new \App\Models\Result( $this->engine, @@ -49,7 +49,7 @@ class Opencrawlpolitik extends Searchengine $link, $anzeigeLink, $descr, - $this->engine->{"display-name"},$this->engine->homepage, + $this->engine->{"display-name"}, $this->engine->homepage, $this->counter, $additionalInformation ); diff --git a/app/Models/parserSkripte/Opencrawlregengergie.php b/app/Models/parserSkripte/Opencrawlregengergie.php index 1db47c49c934e7b3ef9638835c0f46e8cbda102f..53d232bf2bfed26b3a9b7331fa9ec2c59133397a 100644 --- a/app/Models/parserSkripte/Opencrawlregengergie.php +++ b/app/Models/parserSkripte/Opencrawlregengergie.php @@ -18,22 +18,22 @@ class Opencrawlregengergie extends Searchengine { $result = preg_replace("/\r\n/si", "", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } $results = $content->xpath('//rss/channel/item'); - $count = 0; + $count = 0; foreach ($results as $result) { if ($count > 10) { break; } - $title = $result->{"title"}->__toString(); - $link = $result->{"link"}->__toString(); + $title = $result->{"title"}->__toString(); + $link = $result->{"link"}->__toString(); $anzeigeLink = $link; - $descr = strip_tags($result->{"description"}->__toString()); + $descr = strip_tags($result->{"description"}->__toString()); $this->counter++; $this->results[] = new \App\Models\Result( $this->engine, @@ -41,7 +41,7 @@ class Opencrawlregengergie extends Searchengine $link, $anzeigeLink, $descr, - $this->engine->{"display-name"},$this->engine->homepage, + $this->engine->{"display-name"}, $this->engine->homepage, $this->counter ); $count++; diff --git a/app/Models/parserSkripte/Overture.php b/app/Models/parserSkripte/Overture.php index 9a2825e8f95fd07828210e9889e20a41891dc8da..ece8bafa3e1781acd42179c243fa07007fb0b9cf 100644 --- a/app/Models/parserSkripte/Overture.php +++ b/app/Models/parserSkripte/Overture.php @@ -21,7 +21,7 @@ class Overture extends Searchengine { $result = preg_replace("/\r\n/si", "", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } @@ -84,7 +84,7 @@ class Overture extends Searchengine { $result = preg_replace("/\r\n/si", "", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } diff --git a/app/Models/parserSkripte/OvertureAds.php b/app/Models/parserSkripte/OvertureAds.php index 36bff4285c591e6bfa14624ea5f05161f8f2fd67..7270c90d64c16e52eaab7bd7069a055c8f812f6b 100644 --- a/app/Models/parserSkripte/OvertureAds.php +++ b/app/Models/parserSkripte/OvertureAds.php @@ -20,7 +20,7 @@ class OvertureAds extends Searchengine { $result = preg_replace("/\r\n/si", "", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } @@ -55,7 +55,7 @@ class OvertureAds extends Searchengine { $result = preg_replace("/\r\n/si", "", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } diff --git a/app/Models/parserSkripte/Qip.php b/app/Models/parserSkripte/Qip.php index 0a43dd0c3a27bb79598d45f4ffd68ee850fb5014..7c3b1f0238421076b4d1649124654f93f58758bd 100644 --- a/app/Models/parserSkripte/Qip.php +++ b/app/Models/parserSkripte/Qip.php @@ -18,17 +18,17 @@ class Qip extends Searchengine { $result = preg_replace("/\r\n/si", "", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } $results = $content->xpath('//channel/item'); foreach ($results as $result) { - $title = $result->{"title"}->__toString(); - $link = $result->{"link"}->__toString(); + $title = $result->{"title"}->__toString(); + $link = $result->{"link"}->__toString(); $anzeigeLink = $link; - $descr = $result->{"description"}->__toString(); + $descr = $result->{"description"}->__toString(); $this->counter++; $this->results[] = new \App\Models\Result( $this->engine, @@ -36,7 +36,7 @@ class Qip extends Searchengine $link, $anzeigeLink, $descr, - $this->engine->{"display-name"},$this->engine->homepage, + $this->engine->{"display-name"}, $this->engine->homepage, $this->counter ); } diff --git a/app/Models/parserSkripte/Scopia.php b/app/Models/parserSkripte/Scopia.php index 29a1b5b7cd56f7b9ebab66fec0e36fb30dffc006..8403d07a49efa45c0f8bdf173f03d744c64b731d 100644 --- a/app/Models/parserSkripte/Scopia.php +++ b/app/Models/parserSkripte/Scopia.php @@ -23,7 +23,7 @@ class Scopia extends Searchengine try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } @@ -59,7 +59,7 @@ class Scopia extends Searchengine $result = html_entity_decode($result); $result = str_replace("&", "&", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); } catch (\Exception $e) { Log::error("A problem occurred parsing results from $this->name:"); diff --git a/app/Models/parserSkripte/Shopzilla.php b/app/Models/parserSkripte/Shopzilla.php index 40e187b0b0ba5f72178986264612761720d0e3a2..f0cf7cf82d423ac93603bb2d56183c838ec647a5 100644 --- a/app/Models/parserSkripte/Shopzilla.php +++ b/app/Models/parserSkripte/Shopzilla.php @@ -18,7 +18,7 @@ class Shopzilla extends Searchengine { $result = preg_replace("/\r\n/si", "", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } @@ -66,7 +66,7 @@ class Shopzilla extends Searchengine { $result = preg_replace("/\r\n/si", "", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } diff --git a/app/Models/parserSkripte/Tuhh.php b/app/Models/parserSkripte/Tuhh.php index e6380ad2fd9c3bf8de88997eebca98780f7d63b1..7dfe58cc2608c72e48731da827e75b3563dc2e1e 100644 --- a/app/Models/parserSkripte/Tuhh.php +++ b/app/Models/parserSkripte/Tuhh.php @@ -18,7 +18,7 @@ class Tuhh extends Searchengine { $result = preg_replace("/\r\n/si", "", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } @@ -29,10 +29,10 @@ class Tuhh extends Searchengine break; } - $title = $result->{"title"}->__toString(); - $link = $result->{"link"}["href"]->__toString(); + $title = $result->{"title"}->__toString(); + $link = $result->{"link"}["href"]->__toString(); $anzeigeLink = $link; - $descr = strip_tags($result->{"summary"}->__toString()); + $descr = strip_tags($result->{"summary"}->__toString()); $this->counter++; $this->results[] = new \App\Models\Result( $this->engine, @@ -40,7 +40,7 @@ class Tuhh extends Searchengine $link, $anzeigeLink, $descr, - $this->engine->{"display-name"},$this->engine->homepage, + $this->engine->{"display-name"}, $this->engine->homepage, $this->counter ); $count++; diff --git a/app/Models/parserSkripte/Yacyunih.php b/app/Models/parserSkripte/Yacyunih.php index 9a65805669448f39dada46f3cd6a7799d21a5580..8b357b024da23aa6f48ece5b2928f4d14a5a4342 100644 --- a/app/Models/parserSkripte/Yacyunih.php +++ b/app/Models/parserSkripte/Yacyunih.php @@ -18,7 +18,7 @@ class Yacyunih extends Searchengine { $result = preg_replace("/\r\n/si", "", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } @@ -32,10 +32,10 @@ class Yacyunih extends Searchengine if ($count > 10) { break; } - $title = $result->{"title"}->__toString(); - $link = $result->{"link"}->__toString(); + $title = $result->{"title"}->__toString(); + $link = $result->{"link"}->__toString(); $anzeigeLink = $link; - $descr = strip_tags($result->{"description"}->__toString()); + $descr = strip_tags($result->{"description"}->__toString()); $this->counter++; $this->results[] = new \App\Models\Result( $this->engine, @@ -43,7 +43,7 @@ class Yacyunih extends Searchengine $link, $anzeigeLink, $descr, - $this->engine->{"display-name"},$this->engine->homepage, + $this->engine->{"display-name"}, $this->engine->homepage, $this->counter ); $count++; diff --git a/app/Models/parserSkripte/Yandex.php b/app/Models/parserSkripte/Yandex.php index 242171244296159b49c2d79d2ba1b98535ac2b58..9f6e68d3b40cf1426ed69bffb4f81e33e4ccc869 100644 --- a/app/Models/parserSkripte/Yandex.php +++ b/app/Models/parserSkripte/Yandex.php @@ -18,7 +18,7 @@ class Yandex extends Searchengine { $result = preg_replace("/\r\n/si", "", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } @@ -61,7 +61,7 @@ class Yandex extends Searchengine { $result = preg_replace("/\r\n/si", "", $result); try { - $content = simplexml_load_string($result); + $content = \simplexml_load_string($result); if (!$content) { return; } diff --git a/config/nginx-default.conf b/config/nginx-default.conf index 946abda6eab5ca7a8e36793d2a3b54e6ce8400d6..c61d290a95ede5b12f8c539e18689a46a795aab2 100644 --- a/config/nginx-default.conf +++ b/config/nginx-default.conf @@ -14,7 +14,7 @@ server { location ~ \.php$ { try_files $uri /index.php =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; - fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; + fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; diff --git a/docker-compose.yml b/docker-compose.yml index 12a424fca3b5ece1a22765225c94f933e73fd5b9..f2e6c8b45036c7b098c66c97360aa871dd22516f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -20,7 +20,7 @@ services: working_dir: /data command: /data/init.sh mgdb: - restart: unless-stopped + restart: on-failure image: mariadb:latest command: --default-authentication-plugin=mysql_native_password environment: @@ -34,10 +34,14 @@ services: - "dependencies" - "phpdeps" - "assets" - restart: unless-stopped - build: . + restart: on-failure + build: + context: . + dockerfile: Dockerfile.dev working_dir: /html volumes: - .:/html + - ./config/nginx.conf:/etc/nginx/nginx.conf + - ./config/nginx-default.conf:/etc/nginx/conf.d/default.conf ports: - "8080:80"