Erstellt vor 4 Jahren

Zuletzt geändert vor 18 Monaten

#2551 new enhancement

apache2/php5: add support to display php pages using php loadable module in apache

Erstellt von: dirkh Verantwortlicher:
Priorität: normal Meilenstein: freetz-future
Komponente: packages Version: devel
Stichworte: Beobachter:
Product Id: 7490 Firmware Version:

Beschreibung

I have added some config itmes to php5 to build php as loadable module for apache2.
Furtheron I added some config items to apache2 to load this module and I changed the config to prepare apache to show php pages. The thing has been tested on fritz box 7490.
Since I have not found an other way to submit the sources via svn. I add the according patch based on revision 12483

Anhänge (9)

apache2_php5.patch (8.3 KB) - hinzugefügt von dirkh vor 4 Jahren.
Changeset for the proposed changes
php5_apache2_v2.patch (9.1 KB) - hinzugefügt von dirkh vor 4 Jahren.
Changeset php5 apache2 with conditional patch
php5_apache2_v3.patch (9.4 KB) - hinzugefügt von dirkh vor 4 Jahren.
Beautified version of above patches ready for integration
php5_apache2_v4.patch (27.3 KB) - hinzugefügt von dirkh vor 4 Jahren.
cumulative patch php loadable module can be configured, configuration gui, pre-configured configuration for freetz, startup script and support for roundcube webmail (updated to current svn revision ready to integrate)
php5_apache2_v5.patch (28.6 KB) - hinzugefügt von dirkh vor 4 Jahren.
cumulative patch adding roundcubemail patch
apache2.patch (22.6 KB) - hinzugefügt von dirkh vor 4 Jahren.
Splitted apache2 package patch (including conditional patches to support php5 and roundcubemail)
php.patch (6.0 KB) - hinzugefügt von dirkh vor 4 Jahren.
seperate php package patch providing additonal build options to support apache2 and roundecubemail
apache2_v1.patch (23.5 KB) - hinzugefügt von dirkh vor 4 Jahren.
kumulative patch: apache2 patch adding linknx access rules to according php web page
apache2_v2.patch (50.2 KB) - hinzugefügt von dirkh vor 4 Jahren.
cumulative - ready to integrate, adds ssl certificate, login, logout scripts, private configuration section, freetz proxy

Alle Anhänge herunterladen als: .zip

Änderungshistorie (17)

Geändert vor 4 Jahren durch dirkh

Changeset for the proposed changes

Geändert vor 4 Jahren durch dirkh

Changeset php5 apache2 with conditional patch

Geändert vor 4 Jahren durch dirkh

Beautified version of above patches ready for integration

comment:1 Geändert vor 4 Jahren durch dirkh

addition ready for integration

Geändert vor 4 Jahren durch dirkh

cumulative patch php loadable module can be configured, configuration gui, pre-configured configuration for freetz, startup script and support for roundcube webmail (updated to current svn revision ready to integrate)

Geändert vor 4 Jahren durch dirkh

cumulative patch adding roundcubemail patch

comment:2 Geändert vor 4 Jahren durch er13

  • Firmware Version 7490_06.05-freetz-devel-12483M.de gelöscht
  • Meilenstein von freetz-2.0 nach freetz-future geändert
  • Could you please split your patch and provide separate patches for all affected packages?
  • roundcubemail access rules should be provided by the roundcubemail package and not by the apache one.
  • ed_edit looks strange to me. What's wrong with sed -i ...?

Geändert vor 4 Jahren durch dirkh

Splitted apache2 package patch (including conditional patches to support php5 and roundcubemail)

Geändert vor 4 Jahren durch dirkh

seperate php package patch providing additonal build options to support apache2 and roundecubemail

comment:3 Geändert vor 4 Jahren durch dirkh

  • sed could be used instead of ed, but ed supports editing a certain line by line number which might be needed for further extension
  • the access rules are part of a conditional patch and enable the override of further rules by a .htaccess file (part of roundcubemail); this basic rules are needed in apache2, as I understand, otherwise override would not be possible, roundcubemail rules are not enabled, when roundecubemail is not present, this applies similarly to the php conditional patch

I hope this is not a problem

Geändert vor 4 Jahren durch dirkh

kumulative patch: apache2 patch adding linknx access rules to according php web page

Geändert vor 4 Jahren durch dirkh

cumulative - ready to integrate, adds ssl certificate, login, logout scripts, private configuration section, freetz proxy

comment:4 Antwort: Geändert vor 4 Jahren durch dirkh

The attached ready to use patches php.patch and apache2_v2.patch are fixing problem http://freetz.org/ticket/2677
and provide a package setup with a default configuration which is ready to use for almost anyone.
I am willing to do further enhancement if needed or prevent an integration, any suggestion is welcome!

Just in case with these commands the patches can be locally integrated, the first command creates not existing instances in svn, to prepare that the patch can be applied:

for f in $(svn --dry-run patch apache2_v2.patch  | grep target | tr -d "'" | cut -d' ' -f4); do mkdir -p $(dirname $f); touch $f; svn add $(dirname $f) 2> /dev/null; rm $f; done
svn patch apache2_v2.patch
for f in $(svn --dry-run patch php.patch  | grep target | tr -d "'" | cut -d' ' -f4); do mkdir -p $(dirname $f); touch $f; svn add $(dirname $f) 2> /dev/null; rm $f; done
svn patch php.patch

comment:5 Geändert vor 4 Jahren durch er13

In 12976:

php:

  • add (optional) support for building php-cli and apache php module
  • add (optional) support for FILEINFO/MHASH/MEMORY_LIMIT features
  • compile-tested only
  • by dirkh + a lot of fixes by me
  • refs #2551

comment:6 als Antwort auf: ↑ 4 ; Antwort: Geändert vor 4 Jahren durch er13

Replying to dirkh:

The attached ready to use patches

Sei mir bitte nicht böse, aber mitnichten sind die Patches "ready to use". Man muss so viel nachbessern. Allein der php.patch hat mich mindestens 2,5 Stunden gekostet, sodass ich fast schon aufgeben wollte: zusätzliche Binaries als Features hinzugefügt, Reihenfolge der Optionen in .mk irgendwie statt alphabetisch wie bisher, auskommentierter Code, Abhängigkeiten im Static-Build-Fall fehlen, Rebuild-Optionen fehlen, external gar nicht berücksichtigt. Es hat den Anschein, Du hast es in einer einzigen Konfiguration getestet, in der Du es selber nutzt. So geht's nicht.

@apache.patch: roundcubemail.patch ist ein Teil vom roundcubemail-Paket und hat im Apache-Paket nichts verloren. Den Rest muss ich noch lesen/verstehen.

comment:7 als Antwort auf: ↑ 6 Geändert vor 4 Jahren durch dirkh

Replying to er13:

Replying to dirkh :

The attached ready to use patches

Sei mir bitte nicht böse, aber mitnichten sind die Patches "ready to use". Man muss so viel nachbessern. Allein der php.patch hat mich mindestens 2,5 Stunden gekostet, sodass ich fast schon aufgeben wollte: zusätzliche Binaries als Features hinzugefügt, Reihenfolge der Optionen in .mk irgendwie statt alphabetisch wie bisher, auskommentierter Code, Abhängigkeiten im Static-Build-Fall fehlen, Rebuild-Optionen fehlen, external gar nicht berücksichtigt. Es hat den Anschein, Du hast es in einer einzigen Konfiguration getestet, in der Du es selber nutzt. So geht's nicht. @apache.patch: roundcubemail.patch ist ein Teil vom roundcubemail-Paket und hat im Apache-Paket nichts verloren. Den Rest muss ich noch lesen/verstehen.

Na, ja, Du musst ja nicht alles selber machen, ich bin schon bereit, die Sachen mit zu pflegen. Ich glaube ein einfaches mit reinnehmen, hätte nicht so viel kaputt gemacht und dann hätte ich auch die offenen Dir aufgefallen Probleme relativ zügig gelöst. Andere Integrationen funktionionieren ja auch nicht auf anhieb, dafür ist es ja der Trunk; wäre zwar schön, aber so klappt dies nicht immer.
Man könnte sich ja zur gemeinsamen Integration verabreden.

Dieser Roundcubemail Patch, gehört zwar zu Roundcubemail, ist aber so allgemein und an die Bedingung der Selektierung von Roundcubemail gebunden, dass er besser im Apache Verzeichnis aufgehoben ist. Ansonsten hat man die Schwierigkeit diese seperate Konfigurationsdatei automatisch bei Vorhandensein einzubinden.

Wird jetzt weiter auf Github gepflegt:

git clone ​https://github.com/dirk-dhu/freetz.git freetz-devel

Mit folgendem Befehl kann ein Update bei Veränderungen gezogen werden:

git fetch; git reset —hard origin/master

Einen Patch kann man durch das Klicken auf den gewünschten Commit, welcher
unter der URL:

https://github.com/dirk-dhu/freetz/commits/master

zu finden ist, erstellen, dazu muss in der Adress-Zeile hinter dem SHA Wert .patch angehangen werden.

Zuletzt geändert vor 19 Monaten von dirkh (vorher) (Diff)

comment:8 Geändert vor 18 Monaten durch dirkh

Kann nun auch letsencrypt certificate benutzen, das certbot-cgi packet muss dazu vorhanden sein, siehe #2896.
Die Konfiguration wurde entsprechend angepasst und kann via CGI-GUI von den selbst signed auf certbot umgeschaltet werden.

Hinweis: Hilfe zur Verwendung von Tickets finden Sie in TracTickets.