|
|
Dieser Artikel beschreibt, wie Sie MetaGer in einem Web-Server aufsetzen können.
|
|
|
|
|
|
## Abhängigkeiten installieren
|
|
|
* php7
|
|
|
* composer
|
|
|
* sqlite3
|
|
|
* redis-server
|
|
|
## MetaGer auf dem Server installieren
|
|
|
|
|
|
Zunächst müssen natürlich alle notwendigen Dateien auf dem Server installiert und eingerichtet werden.
|
|
|
Befolge bitte hierfür die Anweisungen in [diesem](aufsetzen-einer-metager-entwicklungsumgebung) Artikel.
|
|
|
|
|
|
## Apache installieren und konfigurieren
|
|
|
* Verlinke in der Apache Konfiguration das DocumentRoot auf %ProjectDir%/public/html
|
... | ... | @@ -13,19 +12,6 @@ Dieser Artikel beschreibt, wie Sie MetaGer in einem Web-Server aufsetzen können |
|
|
## Achtung: /public/google5226881b42059cc5.html
|
|
|
Diese Datei gibt uns Zugriff auf die Webmaster-tools der entsprechenden Seite. Wenn Sie eine MetaGer-Instanz betreiben möchten, empfehlen wir, diese Datei zu entfernen.
|
|
|
|
|
|
## Laravel Framework initialisieren
|
|
|
`cd %ProjectDir%`
|
|
|
`composer install`
|
|
|
`php artisan key:generate`
|
|
|
|
|
|
## Laravel Framework konfigurieren
|
|
|
* Die Datei ".env" bearbeiten:
|
|
|
* Zugangsdaten zum lokalen Redis-Server eintragen.
|
|
|
* `QUEUE_DRIVER=redis` => Dies aktiviert die parallele Abarbeitung der Anfragen an die Suchmaschinen
|
|
|
* Sqlite-Daten Eintragen => Wenn z.B.: `DB_DATABASE=metager.sqlite` eingetragen wird, sollte eine entsprechende Datenbank under database/metager.sqlite liegen.
|
|
|
* `SESSION_DRIVER=array` => Ansonsten wird vom Framework automatisch ein Session Cookie gesendet
|
|
|
* `APP_DEBUG=false`=> Ansonsten sehen eure Benutzer Details von eventuellen Fehlern.
|
|
|
|
|
|
## Laravel Worker definieren
|
|
|
Wir verwenden die von Laravel zur Verfügung gestellten Worker um die Abfragen an die Suchdienste parallel abarbeiten zu können.
|
|
|
Ihr könnt entweder einzelne Worker starten:
|
... | ... | @@ -34,91 +20,7 @@ Ihr könnt entweder einzelne Worker starten: |
|
|
Oder ihr installiert euch supervisor ( wie [hier](https://laravel.com/docs/master/queues#supervisor-configuration) beschrieben), um dafür zu sorgen, dass viele Worker-Prozesse am laufen gehalten werden.
|
|
|
Wie viele Prozesse ihr benötigt, hängt dabei von eurem Traffic ab.
|
|
|
|
|
|
## Suchmaschinen definieren
|
|
|
Damit bei einer MetaGer Suche überhaupt etwas passiert, müsst ihr natürlich Zugang zu den Apis von beliebig vielen Suchmaschinen haben.
|
|
|
Diese Zugänge sind in einer XML-Datei abgespeichert und Gruppiert. Die Struktur dieser Datei wird im Folgenden erklärt:
|
|
|
`<sumas>`
|
|
|
` <suma />`
|
|
|
`</sumas>`
|
|
|
|
|
|
Jedes einzelne `<suma />` Element benötigt dabei folgende Attribute:
|
|
|
<table>
|
|
|
<tr>
|
|
|
<th>name</th>
|
|
|
<th>value</th>
|
|
|
<th>optional?</th>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>name</td>
|
|
|
<td>eindeutiger name der Suchmaschine</td>
|
|
|
<td>nein</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>host</td>
|
|
|
<td>hostname (www.example.com)</td>
|
|
|
<td>nein</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>skript</td>
|
|
|
<td>Pfad zum Skript ("/example.php")</td>
|
|
|
<td>nein</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>formData</td>
|
|
|
<td>URL-Parameter, die übergeben werden sollen. (`query=<<QUERY>>`; `<<QUERY>>` wird dabei später durch die Sucheingabe ersetzt</td>
|
|
|
<td>nein</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>package</td>
|
|
|
<td>Klassenname der Parser-Datei. (example)</td>
|
|
|
<td>nein</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>port</td>
|
|
|
<td>Port auf dem die API zuhört (80)</td>
|
|
|
<td>ja</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>inputEncoding</td>
|
|
|
<td>Encoding in dem die URL-Parameter übertragen werden (Latin1)</td>
|
|
|
<td>ja</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>userSelectable</td>
|
|
|
<td>Soll der Benutzer diese Suchmaschine unter "/settings" auswählen können? [0|1] ( Default: 1)</td>
|
|
|
<td>ja</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>displayName</td>
|
|
|
<td>Welcher Name soll auf der Settings-Seite angezeigt werden?</td>
|
|
|
<td>Nein</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>type</td>
|
|
|
<td>Gehört diese Suchmaschine zu einem Fokus? [web|bilder|nachrichten|produktsuche]</td>
|
|
|
<td>ja</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>engineBoost</td>
|
|
|
<td>Wie hochwertig sind die Ergebnisse dieser Suchmaschine? ( Float 0<Wert )</td>
|
|
|
<td>ja</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>homepage</td>
|
|
|
<td>Unter welchem Link ist diese Suchmaschine für die Öffentlichkeit erreichbar. ( https://example.com; wird dem Benutzer unter "/settings" angezeigt) </td>
|
|
|
<td>nein</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>additionalHeaders</td>
|
|
|
<td>Zusätzliche HTTP-Header, die an die Suchmaschine übergeben werden. "$#!#$" wird in "\r\n" umgewandelt.</td>
|
|
|
<td>ja</td>
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>disabled</td>
|
|
|
<td>Ist diese Suchmaschine deaktiviert? [0|1] (Default: 0)</td>
|
|
|
<td>ja</td>
|
|
|
</tr>
|
|
|
</table>
|
|
|
|
|
|
</sumas>
|
|
|
Bitte beachte auch, dass ihr noch einen Treiber für eure Queue definieren und konigurieren müsst.
|
|
|
Wir benutzen zum Beispiel Redis und haben in der Datei `~/MetaGer/.env` den Parameter `QUEUE_DRIVER=redis` gesetzt.
|
|
|
Mehr Informationen zum System der Queues findet ihr [hier](https://laravel.com/docs/master/queues)
|
|
|
|