php7 im Apache aktivieren – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self php7 im Apache aktivieren Fri, 05 Jul 19 11:22:02 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752019#m1752019 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752019#m1752019 <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> php7 im Apache aktivieren Fri, 05 Jul 19 11:41:19 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752020#m1752020 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752020#m1752020 <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> php7 im Apache aktivieren Fri, 05 Jul 19 12:04:24 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752022#m1752022 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752022#m1752022 <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> php7 im Apache aktivieren Fri, 05 Jul 19 12:49:14 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752030#m1752030 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752030#m1752030 <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> php7 im Apache aktivieren Fri, 05 Jul 19 12:22:01 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752025#m1752025 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752025#m1752025 <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> SuSE? Fri, 05 Jul 19 12:45:22 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752029#m1752029 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752029#m1752029 <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> php7 im Apache aktivieren Fri, 05 Jul 19 16:49:45 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752068#m1752068 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752068#m1752068 <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> SuSE? Fri, 05 Jul 19 12:58:14 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752033#m1752033 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752033#m1752033 <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> php7 im Apache aktivieren Fri, 05 Jul 19 12:57:38 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752032#m1752032 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752032#m1752032 <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> php7 im Apache aktivieren Fri, 05 Jul 19 12:58:28 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752034#m1752034 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752034#m1752034 <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> php7 im Apache aktivieren Fri, 05 Jul 19 13:00:01 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752035#m1752035 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752035#m1752035 <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> php7 im Apache aktivieren Fri, 05 Jul 19 13:13:56 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752040#m1752040 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752040#m1752040 <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> SuSE? Fri, 05 Jul 19 13:12:48 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752039#m1752039 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752039#m1752039 <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> Browsercache und Systemtests... Fri, 05 Jul 19 13:01:17 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752036#m1752036 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752036#m1752036 <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> php7 im Apache aktivieren Fri, 05 Jul 19 13:09:10 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752038#m1752038 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752038#m1752038 <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> Browsercache und Systemtests... Fri, 05 Jul 19 13:26:26 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752042#m1752042 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752042#m1752042 <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> php7 im Apache aktivieren Fri, 05 Jul 19 13:20:07 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752041#m1752041 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752041#m1752041 <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> max_execution_time = 1200 -- Besser: als Job batchen Fri, 05 Jul 19 15:44:43 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752066#m1752066 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752066#m1752066 <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> php-Einstellungen Fri, 05 Jul 19 16:43:51 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752067#m1752067 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752067#m1752067 <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> php7 im Apache aktivieren Fri, 05 Jul 19 13:32:14 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752044#m1752044 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752044#m1752044 <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> Browsercache und Systemtests... Fri, 05 Jul 19 13:31:52 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752043#m1752043 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752043#m1752043 <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> Browsercache und Systemtests... Fri, 05 Jul 19 15:08:30 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752065#m1752065 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752065#m1752065 <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> Browsercache und Systemtests... Fri, 05 Jul 19 13:40:30 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752047#m1752047 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752047#m1752047 <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> Migration nach php7 Fri, 05 Jul 19 13:39:03 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752046#m1752046 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752046#m1752046 <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> (Kleine, aber wirkmächtige Verbesserung beim Durchsuchen mit grep) Fri, 05 Jul 19 18:39:17 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752074#m1752074 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752074#m1752074 <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> Browsercache und Systemtests... Fri, 05 Jul 19 13:47:31 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752048#m1752048 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752048#m1752048 <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> Verbessert: Langdauerenden Job unter Linux aus PHP heraus batchen (auslagern) Fri, 05 Jul 19 17:16:41 Z https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752069#m1752069 https://forum.selfhtml.org/self/2019/jul/05/php7-im-apache-aktivieren/1752069#m1752069 <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>