tag:forum.selfhtml.org,2005:/selfphp7 im Apache aktivieren – SELFHTML-Forum2019-07-05T18:39:17Zhttps://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752019#m1752019Klaus12019-07-05T11:22:02Z2019-07-05T11:22:57Zphp7 im Apache aktivieren<p>Hallo,</p>
<p>ich versuche verzweifelt im Apache PHP7 zu aktivieren.
Vorher war PHP5 installiert und aktiviert.
PHP5 habe ich zunöchst mittels</p>
<pre><code class="block">zypper remove php5
</code></pre>
<p>heruntergeworfen.</p>
<p>Danach PHP7 entsprechend mit installiert:</p>
<pre><code class="block">zypper in php7 php7-mysql apache2-mod_php7
</code></pre>
<p>und aktiviert:</p>
<pre><code class="block">a2enmod php7
service apache2 restart
</code></pre>
<p>Im conf.d-Verzeichnis wurde der SetHandler gesetzt:</p>
<pre><code class="block"><IfModule mod_php7.c>
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
DirectoryIndex index.php
</IfModule>
</code></pre>
<p>Die conf-Dateien werden auch in der default-server.conf geladen</p>
<pre><code class="block">IncludeOptional /etc/apache2/conf.d/*.conf
</code></pre>
<p>Das php-Modul wurde geladen:</p>
<pre><code class="block">apachectl -t -D DUMP_MODULES
...
php7_module (shared)
...
</code></pre>
<p>Dennoch werden mir php-Dateien zum Download angeboten, anstatt dass die vom PHP interpretiert werden.</p>
<p>Hat noch jemand eine Idee, was ich falsch gemacht oder vergessen haben könnte?</p>
<p>LG Klaus</p>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752020#m1752020Indianerversteher2019-07-05T11:41:19Z2019-07-05T11:50:37Zphp7 im Apache aktivieren<blockquote>
<p>Hat noch jemand eine Idee, was ich falsch gemacht oder vergessen haben könnte?</p>
</blockquote>
<p>Lösch mal den Cache des Browsers und versuch es nochmal. Alternativ liefert <code>wget -d --delete-after URL</code> Dir die wirklich abgerufenen und gesendeten Header. Browser sind für solche Tests 2. Wahl, es sei denn man hat die Entwicklerwerkzeuge (Hier: Netzwerkanalyse) aktiviert und in diesen den Cache deaktiviert.</p>
<blockquote>
<p>Dennoch werden mir php-Dateien zum Download angeboten, anstatt dass die vom PHP interpretiert werden.</p>
</blockquote>
<p>Es kann sogar sein, dass die PHP-Skripte zwar serverseitig verarbeitet werden, dass aber aus anderen Gründen ein falscher Header für den Content-Typ gesetzt wird. Sieh Dir das Ergebnis genau an.</p>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752022#m1752022TSts-self@online.dehttps://bitworks.de2019-07-05T12:04:24Z2019-07-05T12:04:24Zphp7 im Apache aktivieren<p>Hello,</p>
<p>••• und Server neu gestartet?</p>
<p>Glück Auf<br>
Tom vom Berg</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.
</div>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752030#m1752030Klaus12019-07-05T12:49:14Z2019-07-05T12:49:14Zphp7 im Apache aktivieren<blockquote>
<p>Lösch mal den Cache des Browsers und versuch es nochmal.</p>
</blockquote>
<p>Das sollte theoretisch mit einem Shift-Reload getan sein oder?</p>
<blockquote>
<p>Alternativ liefert <code>wget -d --delete-after URL</code> Dir die wirklich abgerufenen und gesendeten Header.</p>
</blockquote>
<p>Der wget liefert:</p>
<pre><code class="block">---request begin---
GET /page/index.php HTTP/1.1
User-Agent: Wget/1.14 (linux-gnu)
Accept: */*
Host: mydomain.net
Connection: Keep-Alive
---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 200 OK
Date: Fri, 05 Jul 2019 12:43:29 GMT
Server: Apache
X-Powered-By: PHP/7.0.7
Content-Length: 7266
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
---response end---
</code></pre>
<p>Ich würde vermuten, dass es nicht an den Seiten liegen kann, die ja mit PHP5 noch funktioniert haben. Es sei denn, dass mit PHP7 irgendeine mir unbekannte Restriktion auftritt, die es mit PHP5 noch nicht gab.</p>
<p>LG Klaus</p>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752025#m1752025Der Martin2019-07-05T12:22:01Z2019-07-05T12:22:01Zphp7 im Apache aktivieren<p>Hallo Tom,</p>
<blockquote>
<p>••• und Server neu gestartet?</p>
</blockquote>
<p>aus dem Anfangsbeitrag:</p>
<blockquote>
<p>und aktiviert:</p>
<pre><code class="block">a2enmod php7
service apache2 restart
</code></pre>
</blockquote>
<p>Beantwortet das deine gutgemeinte Rückfrage?</p>
<p>Schönes Wochenende,<br>
Martin</p>
<div class="signature">-- <br>
Was ist gelb und krumm und flattert im Wind? - Eine Fahnane.
</div>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752029#m1752029Indianerversteher2019-07-05T12:45:22Z2019-07-05T12:45:45ZSuSE?<blockquote>
<p>… und Server neu gestartet?</p>
</blockquote>
<p>Das führt mich zusammen mit dem erwähntem "zypper" zu folgender Rückfrage:</p>
<p><strong>SuSE?</strong></p>
<p>Ist das noch so, dass in /etc/apache2/httpd.conf etwas von "DO NOT EDIT THIS FILE" steht und demnach /etc/sysconfig/apache2 zu editieren ist (wo auch der Yast rumschreibt) - weil bei einem restart die Konfiguration des Apache aus /etc/sysconfig/apache2 neu erzeugt wird?</p>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752068#m1752068TSts-self@online.dehttps://bitworks.de2019-07-05T16:49:45Z2019-07-05T16:49:45Zphp7 im Apache aktivieren<p>Hello Martin,</p>
<blockquote>
<blockquote>
<p>••• und Server neu gestartet?</p>
</blockquote>
<p>aus dem Anfangsbeitrag:</p>
<blockquote>
<p>und aktiviert:</p>
<pre><code class="block">a2enmod php7
service apache2 restart
</code></pre>
</blockquote>
<p>Beantwortet das deine gutgemeinte Rückfrage?</p>
</blockquote>
<p>Hatte ich wohl übersehen.</p>
<p>Dir auch ein schönes Wochenende,</p>
<p>Glück Auf<br>
Tom vom Berg</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.
</div>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752033#m1752033Klaus12019-07-05T12:58:14Z2019-07-05T12:58:14ZSuSE?<blockquote>
<p>Ist das noch so, dass in /etc/apache2/httpd.conf etwas von "DO NOT EDIT THIS FILE" steht und demnach /etc/sysconfig/apache2 zu editieren ist (wo auch der Yast rumschreibt) - weil bei einem restart die Konfiguration des Apache aus /etc/sysconfig/apache2 neu erzeugt wird?</p>
</blockquote>
<p>Hmm, es gibt tatsächlich eine /etc/sysconfig/apache2 Datei.
Wenn ich den HTTP-Server über Yast aufrufe, sehe ich auch unter dem Reiter Haupthost, dass IncludeOptional auf /etc/apache2/conf.d/*.conf steht.
Unter unter Server-Module ist PHP7 aktiviert.</p>
<p>Auch ein kompletter Neustart des Servers hat keine Änderung gebracht.</p>
<p>LG Klaus</p>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752032#m1752032Indianerversteher2019-07-05T12:57:38Z2019-07-05T12:58:55Zphp7 im Apache aktivieren<pre><code class="block">X-Powered-By: PHP/7.0.7
Content-Type: text/html; charset=UTF-8
</code></pre>
<p>Das sieht, abgesehen vom veraltetem PHP 7.0, sehr gut aus und entspricht genau den Erwartungen.</p>
<p>Jetzt baust Du eine test.php:</p>
<pre><code class="block language-php"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>h1</span><span class="token punctuation">></span></span>Dieser Server auf <span class="token php language-php"><span class="token delimiter important"><?=</span><span class="token variable">$_SERVER</span><span class="token punctuation">[</span><span class="token string double-quoted-string">"HOSTNAME"</span><span class="token punctuation">]</span> <span class="token delimiter important">?></span></span>funktioniert mit PHP <span class="token php language-php"><span class="token delimiter important"><?=</span><span class="token function">phpversion</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token delimiter important">?></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>h1</span><span class="token punctuation">></span></span>
</code></pre>
<p>und rufst die mal ab.</p>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752034#m1752034Der Martin2019-07-05T12:58:28Z2019-07-05T12:58:28Zphp7 im Apache aktivieren<p>Hallo Klaus,</p>
<blockquote>
<blockquote>
<p>Lösch mal den Cache des Browsers und versuch es nochmal.</p>
</blockquote>
<p>Das sollte theoretisch mit einem Shift-Reload getan sein oder?</p>
</blockquote>
<p>eigentlich ja, aber es liegt im Ermessen des Browsers. Verlassen würde ich mich nicht drauf.</p>
<blockquote>
<pre><code class="block">---response begin---
HTTP/1.1 200 OK
Date: Fri, 05 Jul 2019 12:43:29 GMT
Server: Apache
X-Powered-By: PHP/7.0.7
Content-Length: 7266
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
---response end---
</code></pre>
</blockquote>
<p>Also text/html als Content-Type klingt ja schon mal gesund. Und der X-Powered-By-Header sagt, dass da auch wirklich PHP seine Finger im Spiel hatte. So ganz falsch kann die Serverkonfiguration also nicht sein.<br>
Aber welcher Browser bietet dann die empfangene Ressource zum Speichern an?</p>
<p>Ciao,<br>
Martin</p>
<div class="signature">-- <br>
Ein Tag, an dem du nicht wenigstens einmal gelacht hast, ist ein verlorener Tag.
</div>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752035#m1752035dedlfix2019-07-05T13:00:01Z2019-07-05T13:00:01Zphp7 im Apache aktivieren<p>Tach!</p>
<blockquote>
<p>Jetzt baust Du eine test.php:</p>
<pre><code class="block"><h1>Dieser Server auf <?=$_SERVER["HOSTNAME"] ?>funktioniert mit PHP <?=phpversion() ?></h1>
</code></pre>
<p>und rufst die mal ab.</p>
</blockquote>
<p>Mach es nicht so kompliziert. Einfach nur <code><?php phpinfo();</code></p>
<p>dedlfix.</p>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752040#m1752040Klaus12019-07-05T13:13:56Z2019-07-05T13:13:56Zphp7 im Apache aktivieren<blockquote>
<p>Jetzt baust Du eine test.php:</p>
<pre><code class="block language-php"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>h1</span><span class="token punctuation">></span></span>Dieser Server auf <span class="token php language-php"><span class="token delimiter important"><?=</span><span class="token variable">$_SERVER</span><span class="token punctuation">[</span><span class="token string double-quoted-string">"HOSTNAME"</span><span class="token punctuation">]</span> <span class="token delimiter important">?></span></span>funktioniert mit PHP <span class="token php language-php"><span class="token delimiter important"><?=</span><span class="token function">phpversion</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token delimiter important">?></span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>h1</span><span class="token punctuation">></span></span>
</code></pre>
<p>und rufst die mal ab.</p>
</blockquote>
<pre><code class="block">---request begin---
GET /test/test.php HTTP/1.1
User-Agent: Wget/1.14 (linux-gnu)
Accept: */*
Host: mydomain.net
Connection: Keep-Alive
---request end---
HTTP request sent, awaiting response...
---response begin---
HTTP/1.1 200 OK
Date: Fri, 05 Jul 2019 13:00:31 GMT
Server: Apache
X-Powered-By: PHP/7.0.7
Content-Length: 54
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
---response end---
</code></pre>
<p>Hey, diese Datei konnte ich im Browser aufrufen.
Einen "Fehler" hab ich dadurch finden können, durch die Neuinstallation von PHP7 sind meine Einstellungen aus der alten php.ini verloren gegangen. Dort hatte ich ein paar Kleinigkeiten eingestellt (insbesondere short_open_tag):</p>
<pre><code class="block"> short_open_tag = On
max_execution_time = 1200
memory_limit = 512M
error_reporting = E_ALL & ~E_NOTICE
post_max_size = 16M
upload_max_filesize = 32M
</code></pre>
<p>Nach einem erneuten Restart funktionieren jetzt einige Seiten, bei einigen wird aber noch immer die php-Datei als Download angeboten ???</p>
<p>LG Klaus</p>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752039#m1752039Indianerversteher2019-07-05T13:12:48Z2019-07-05T13:12:48ZSuSE?<p>Das hat sich durch Deine andere Antwort <a href="https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752032#m1752032" rel="noopener noreferrer">als "egal" herausgestellt</a>.</p>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752036#m1752036Indianerversteher2019-07-05T13:01:17Z2019-07-05T13:04:34ZBrowsercache und Systemtests...<blockquote>
<p>Aber welcher Browser bietet dann die empfangene Ressource zum Speichern an?</p>
</blockquote>
<p>Derjenige, der Müll aus vorhergehenden Versuchen zusammen mit der Weisung, bis zu einem fern liegenden Zeitpunkt den Server nicht belästigen, im Cache hat.</p>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752038#m1752038Indianerversteher2019-07-05T13:09:10Z2019-07-05T13:13:37Zphp7 im Apache aktivieren<blockquote>
<p>Mach es nicht so kompliziert. Einfach nur <code><?php phpinfo();</code></p>
</blockquote>
<p><code>phpinfo()</code> empfehle ich für Tests nicht mehr seit ich mitbekommen habe, dass es Hoster gibt, die das allen Erstes in der php.ini sperren - was dann nur für weitere Verwirrung sorgt.</p>
<p>Wenn schon, dann <a href="https://code.fastix.org/showFile.php?file=Projekte/PHP%3AReplacement%20f%C3%BCr%20phpinfo%28%29/phpinfo.php" rel="nofollow noopener noreferrer">das</a> hier.</p>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752042#m1752042Klaus12019-07-05T13:26:26Z2019-07-05T13:26:26ZBrowsercache und Systemtests...<blockquote>
<blockquote>
<p>Aber welcher Browser bietet dann die empfangene Ressource zum Speichern an?</p>
</blockquote>
<p>Derjenige, der Müll aus vorhergehenden Versuchen zusammen mit der Weisung, bis zu einem fern liegenden Zeitpunkt den Server nicht belästigen, im Cache hat.</p>
</blockquote>
<p>Wenn eine Original-php-Datei beim Browser zum Download angeboten wird, bedeutet das meinem Verständnis nach, dass die Datei serverseitig nicht ausgeführt wurde, da sonst nur die Ausgaben der Datei an den Client (=Browser) übertragen wird. Dem Browser ist der Dateityp php unbekannt und daher bietet er den Download an.</p>
<p>LG Klaus</p>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752041#m1752041Indianerversteher2019-07-05T13:20:07Z2019-07-05T13:21:14Zphp7 im Apache aktivieren<blockquote>
<p>Nach einem erneuten Restart funktionieren jetzt einige Seiten, bei einigen wird aber noch immer die php-Datei als Download angeboten ???</p>
</blockquote>
<p><strong>Wie schon gesagt:</strong> Lösche den Browser-Cache. (Ich hoffe, Du hast bei irgendwelchen früheren Versuchen nicht auch noch einen Proxy mit Müll gefüttert.)</p>
<p><strong>Antwort 2:</strong></p>
<p>Prüfe mit</p>
<pre><code class="block language-sh"><span class="token assign-left variable">URL</span><span class="token operator">=</span><span class="token string">"http://example.com/or/what/ever"</span><span class="token punctuation">;</span>
<span class="token function">wget</span> <span class="token parameter variable">-d</span> <span class="token parameter variable">-O</span> - <span class="token variable">$URL</span>
</code></pre>
<p>was da gesendet wird.</p>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752066#m1752066Indianerversteher2019-07-05T15:44:43Z2019-07-05T15:46:25Zmax_execution_time = 1200 -- Besser: als Job batchen<pre><code class="block language-ini"><span class="token key attr-name">max_execution_time</span> <span class="token punctuation">=</span> <span class="token value attr-value">1200</span>
</code></pre>
<p>Das sind 20 Minuten!</p>
<p>Ist Dir bewusst, dass auch ein großzügig konfigurierter Apache nur eine begrenzte Anzahl solcher Prozesse bearbeiten kann? Sind alle Kinder vollbeschäftigt kann der Indianer keine neuen Requests mehr annehmen.</p>
<p>Zur Vermeidung von DoS-Attacken würde ich eine solche Einstellung vermeiden (ggf. nur für bestimmte, nicht wirklich öffentliche Verzeichnisse setzen -> <code>.user.ini</code>. Oder eben den eigentlichen, langdauernden Prozess mit etwas wie</p>
<pre><code class="block language-php"><span class="token variable">$tmpfile</span> <span class="token operator">=</span> <span class="token function">trim</span><span class="token punctuation">(</span><span class="token string backtick-quoted-string">`mktemp`</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$job</span> <span class="token operator">=</span> <span class="token function">intval</span><span class="token punctuation">(</span><span class="token string backtick-quoted-string">`echo "foo.sh -k bar > $tmpfile" | batch; atq | tail -n1`</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre>
<p>auslagern und schauen wie ich den Nutzer nach Abarbeitung informiere (zb. per mail)</p>
<ul>
<li>Vorausetzungen: Dazu muss das Paket 'at' installiert sein.</li>
<li>Literatur: <a href="https://linux.die.net/man/1/batch" rel="nofollow noopener noreferrer">man batch</a></li>
</ul>
<pre><code class="block language-ini"><span class="token key attr-name">post_max_size</span> <span class="token punctuation">=</span> <span class="token value attr-value">16M</span>
<span class="token key attr-name">upload_max_filesize</span> <span class="token punctuation">=</span> <span class="token value attr-value">32M</span>
</code></pre>
<p>Ohnehin stellt sich also die Frage, was ein Server ganze 20 Minuten lang mit nur 16 bzw. 32 Megabyte Daten machen soll...</p>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752067#m1752067TSts-self@online.dehttps://bitworks.de2019-07-05T16:43:51Z2019-07-05T16:43:51Zphp-Einstellungen<p>Hello,</p>
<p>schau dir das <a href="https://www.php.net/manual/de/ini.core.php#ini.post-max-size" rel="nofollow noopener noreferrer">Manual zu <strong>post_max_size</strong></a> nochmal an.</p>
<blockquote>
<pre><code class="block"> short_open_tag = On
max_execution_time = 1200
memory_limit = 512M
error_reporting = E_ALL & ~E_NOTICE
post_max_size = 16M
upload_max_filesize = 32M
</code></pre>
</blockquote>
<p>Das sollte größer sein, als <strong>upload_max_filesize</strong></p>
<p>Glück Auf<br>
Tom vom Berg</p>
<div class="signature">-- <br>
Es gibt nichts Gutes, außer man tut es!<br>
Das Leben selbst ist der Sinn.
</div>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752044#m1752044Klaus12019-07-05T13:32:14Z2019-07-05T13:32:14Zphp7 im Apache aktivieren<blockquote>
<p><strong>Wie schon gesagt:</strong> Lösche den Browser-Cache. (Ich hoffe, Du hast bei irgendwelchen früheren Versuchen nicht auch noch einen Proxy mit Müll gefüttert.)</p>
</blockquote>
<p>Hmm, nach dem Löschen des Cache (und Neustart des Browsers), bekomme ich tatsächlich keine php-Dateien mehr als Download angeboten.</p>
<p>Vielen lieben Dank für die Unterstützung. </p>
<p>Dann darf ich mich jetzt damit befassen, was sich alles geändert hat und was alles angepasst werden muss, damit alle Seiten auch wieder unter php7 funktionieren. </p>
<p>LG Klaus</p>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752043#m1752043Indianerversteher2019-07-05T13:31:52Z2019-07-05T13:32:06ZBrowsercache und Systemtests...<blockquote>
<p>Wenn eine Original-php-Datei beim Browser zum Download angeboten wird,</p>
</blockquote>
<p>Wenn bei irgendwelchen versuchen eine "Original-php-Datei" zusammen mit dem passenden Content-Type und Anweisungen, das Zeug zu cachen an dem Browser geschickt <strong>wurde</strong>, dann merkt sich das der/mancher Browsercache auch und deshalb fragt der Browser den Server manchmal gar nicht erst nochmal sondern fragt einfach nochmal, wo Du Dir das hinstecken willst.</p>
<p>Einfach den Browsercache löschen. Das tut nicht weh!</p>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752065#m1752065Der Martin2019-07-05T15:08:30Z2019-07-05T15:08:30ZBrowsercache und Systemtests...<p>Hallo,</p>
<blockquote>
<p>Wenn eine Original-php-Datei beim Browser zum Download angeboten wird, bedeutet das meinem Verständnis nach, dass die Datei serverseitig nicht ausgeführt wurde, da sonst nur die Ausgaben der Datei an den Client (=Browser) übertragen wird.</p>
</blockquote>
<p>korrekt.</p>
<blockquote>
<p>Dem Browser ist der Dateityp php unbekannt und daher bietet er den Download an.</p>
</blockquote>
<p>Dem Browser hat der Name egal zu sein; was zählt, ist der Content-Type-Header. Solange der <em>text/html</em> lautet, hat der Browser den Datenmüll als HTML zu interpretieren. Ob der Name der Ressource dabei auf .html, .php oder .daddy endet, hat ihn nicht zu interessieren.</p>
<p>Einzig der Internet Explorer war früher berüchtigt dafür, dass er dem Content-Type-Header kaum Beachtung geschenkt hat und stattdessen den Ressourcentyp aus dem Kontext und sogar aus dem Inhalt erraten hat. Dem konnte man ein Dokument mit einem völlig verkorksten Content-Type andrehen - solange irgendwo nah am Anfang ein <em><html</em> vorkam, hat er's stur als HTML gerendert.</p>
<p>Ich meine aber, das sei schon lange nicht mehr so.</p>
<p>Schönes Wochenende,<br>
Martin</p>
<div class="signature">-- <br>
Ein Tag, an dem du nicht wenigstens einmal gelacht hast, ist ein verlorener Tag.
</div>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752047#m1752047dedlfix2019-07-05T13:40:30Z2019-07-05T13:40:30ZBrowsercache und Systemtests...<p>Tach!</p>
<blockquote>
<p>Einfach den Browsercache löschen. Das tut nicht weh!</p>
</blockquote>
<p>Noch besser, wie auch schon erwähnt, die Browsertools öffnen und im Netzwerk-Tab den Cache disablen. Zudem kann man dort auch sehen, ob ein Request aus dem Cache beantwortet wurde oder vom Server kam (also, wenn der Cache nicht disabled ist).</p>
<p>dedlfix.</p>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752046#m1752046Indianerversteher2019-07-05T13:39:03Z2019-07-05T13:39:29ZMigration nach php7<blockquote>
<p>Dann darf ich mich jetzt damit befassen, was sich alles geändert hat und was alles angepasst werden muss, damit alle Seiten auch wieder unter php7 funktionieren.</p>
</blockquote>
<p><a href="https://php.net/manual/de/migration70.php" rel="noopener noreferrer">So wild ist das nicht</a>.</p>
<p>Vieles findet man schnell mit</p>
<pre><code class="block language-sh"><span class="token builtin class-name">cd</span> /var/www/wohin-auch-immer
<span class="token function">grep</span> <span class="token parameter variable">-R</span> <span class="token string">"Suchbegriff"</span> <span class="token operator">></span> /tmp/liste.txt<span class="token punctuation">;</span> <span class="token function">less</span> /tmp/liste.txt
</code></pre>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752074#m1752074Indianerversteher2019-07-05T18:39:17Z2019-07-05T18:40:02Z(Kleine, aber wirkmächtige Verbesserung beim Durchsuchen mit grep)<pre><code class="block language-sh"><span class="token builtin class-name">cd</span> /var/www/wohin-auch-immer
<span class="token function">grep</span> <span class="token parameter variable">-Rn</span> <span class="token string">"Suchbegriff"</span> <span class="token operator">></span> /tmp/liste.txt<span class="token punctuation">;</span> <span class="token function">less</span> /tmp/liste.txt
</code></pre>
<p>Die Option <code>n</code> sorgt dafür, dass von <code>grep</code> auch die Zeilennummern der Treffer angezeigt werden. mit <code>vi DATEI +123</code> kann man dann die Datei zum Editieren öffnen und direkt zur Zeile (hier 123) springen.</p>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752048#m1752048Indianerversteher2019-07-05T13:47:31Z2019-07-05T13:47:31ZBrowsercache und Systemtests...<blockquote>
<p>Noch besser, wie auch schon erwähnt, die Browsertools öffnen und im Netzwerk-Tab den Cache disablen.</p>
</blockquote>
<p>Dann bietet er nach dem Schließen der Browsertools (womöglich) den alten und falschen Mist aus den früheren Versuchen wieder an…</p>
https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752069#m1752069Indianerversteher2019-07-05T17:16:41Z2019-07-05T17:18:41ZVerbessert: Langdauerenden Job unter Linux aus PHP heraus batchen (auslagern)<pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?php</span>
<span class="token variable">$tmpfile</span> <span class="token operator">=</span> <span class="token function">trim</span><span class="token punctuation">(</span><span class="token string backtick-quoted-string">`mktemp`</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$errFile</span> <span class="token operator">=</span> <span class="token variable">$tmpfile</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'.err'</span><span class="token punctuation">;</span>
<span class="token variable">$postFile</span> <span class="token operator">=</span> <span class="token variable">$tmpfile</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'.post'</span><span class="token punctuation">;</span>
<span class="token function">file_put_contents</span><span class="token punctuation">(</span> <span class="token variable">$postFile</span><span class="token punctuation">,</span> <span class="token function">serialize</span><span class="token punctuation">(</span> <span class="token variable">$_POST</span> <span class="token punctuation">)</span>
<span class="token function">session_start</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$sessFile</span> <span class="token operator">=</span> <span class="token variable">$tmpfile</span> <span class="token operator">.</span> <span class="token string single-quoted-string">'.sess'</span><span class="token punctuation">;</span>
<span class="token function">file_put_contents</span><span class="token punctuation">(</span> <span class="token variable">$sessFile</span><span class="token punctuation">,</span> <span class="token function">serialize</span><span class="token punctuation">(</span> <span class="token variable">$_SESSION</span> <span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token variable">$jobString</span> <span class="token operator">=</span> <span class="token string single-quoted-string">'script.sh'</span><span class="token operator">.</span> <span class="token string single-quoted-string">' '</span> <span class="token operator">.</span> <span class="token variable">$tmpfile</span><span class="token punctuation">;</span>
<span class="token variable">$jobNumber</span> <span class="token operator">=</span> <span class="token function">intval</span><span class="token punctuation">(</span><span class="token string backtick-quoted-string">`echo "'$jobString > $tmpfile 2> $errFile'" | batch 2>&1 | tail -n1 | cut -d ' ' -f2`</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
<span class="token keyword">echo</span> <span class="token string double-quoted-string">"Job-Nummer: "</span> <span class="token operator">.</span> <span class="token variable">$jobNumber</span> <span class="token operator">.</span> <span class="token string double-quoted-string">"\n"</span><span class="token punctuation">;</span>
<span class="token delimiter important">?></span></span>
</code></pre>
<p>Das ist immer noch ein Beispiel. script.sh bekommt den Name der temporären Datei und kann damit auch die Daten, z.B. $_POST, $_SESSION aus den weiteren temporären Dateien lesen. Das Skript hat dann den Job zu erledigen, den Müll wegzuräumen und dem Benutzer per Mail einen individuellen Link zu einer Ressource mit den Ergebnissen (die stehen dann hoffentlich in $tmpfile und können hoffentlich ausgewertet werden) zu senden.</p>
<p>Wer die Angabe machen will wie viele Jobs noch offen sind: Der Linux-Befehl <code>atq</code> liefert eine nette Liste...</p>