Revision 38a9fe71
Von Niklas Schmidt vor etwa 23 Stunden hinzugefügt
doc/dokumentation.xml | ||
---|---|---|
1143 | 1143 |
xreflabel="Konfiguration für FastCGI/FCGI"> |
1144 | 1144 |
<title>Konfiguration für FastCGI/FCGI</title> |
1145 | 1145 |
|
1146 |
<sect3 id="Apache-Konfiguration.FCGI.WasIstEs"> |
|
1147 |
<title>Was ist FastCGI?</title> |
|
1148 |
|
|
1149 |
<para>Direkt aus <ulink |
|
1150 |
url="http://de.wikipedia.org/wiki/FastCGI">Wikipedia</ulink> |
|
1151 |
kopiert:</para> |
|
1152 |
|
|
1153 |
<para><citation> FastCGI ist ein Standard für die Einbindung |
|
1154 |
externer Software zur Generierung dynamischer Webseiten in einem |
|
1155 |
Webserver. FastCGI ist vergleichbar zum Common Gateway Interface |
|
1156 |
(CGI), wurde jedoch entwickelt, um dessen Performance-Probleme zu |
|
1157 |
umgehen. </citation></para> |
|
1158 |
</sect3> |
|
1159 |
|
|
1160 |
<sect3 id="Apache-Konfiguration.FCGI.Warum"> |
|
1161 |
<title>Warum FastCGI?</title> |
|
1162 |
|
|
1163 |
<para>Perl Programme (wie kivitendo eines ist) werden nicht statisch |
|
1164 |
kompiliert. Stattdessen werden die Quelldateien bei jedem Start |
|
1165 |
übersetzt, was bei kurzen Laufzeiten einen Großteil der Laufzeit |
|
1166 |
ausmacht. Während SQL Ledger einen Großteil der Funktionalität in |
|
1167 |
einzelne Module kapselt, um immer nur einen kleinen Teil laden zu |
|
1168 |
müssen, ist die Funktionalität von kivitendo soweit gewachsen, dass |
|
1169 |
immer mehr Module auf den Rest des Programms zugreifen. Zusätzlich |
|
1170 |
benutzen wir umfangreiche Bibliotheken um Funktionaltät nicht selber |
|
1171 |
entwickeln zu müssen, die zusätzliche Ladezeit kosten. All dies |
|
1172 |
führt dazu dass ein kivitendo Aufruf der Kernmasken mittlerweile |
|
1173 |
deutlich länger dauert als früher, und dass davon 90% für das Laden |
|
1174 |
der Module verwendet wird.</para> |
|
1175 |
|
|
1176 |
<para>Mit FastCGI werden nun die Module einmal geladen, und danach |
|
1177 |
wird nur die eigentliche Programmlogik ausgeführt.</para> |
|
1178 |
</sect3> |
|
1146 |
<para>Mit FastCGI wird der kivitendo-Programmcode beim Start des |
|
1147 |
Webservers einmal geladen und danach wird nur die eigentliche |
|
1148 |
Programmlogik ausgeführt.</para> |
|
1179 | 1149 |
|
1180 |
<sect3 id="Apache-Konfiguration.FCGI.Konfiguration">
|
|
1181 |
<title>Konfiguration des Webservers</title>
|
|
1150 |
<para>Zuerst muss das FastCGI-Modul aktiviert werden. Dies kann
|
|
1151 |
unter Debian/Ubuntu z.B. mit folgendem Befehl geschehen:</para>
|
|
1182 | 1152 |
|
1183 |
<para>Zuerst muss das FastCGI-Modul aktiviert werden. Dies kann |
|
1184 |
unter Debian/Ubuntu z.B. mit folgendem Befehl geschehen:</para> |
|
1153 |
<programlisting>a2enmod fcgid</programlisting> |
|
1185 | 1154 |
|
1186 |
<programlisting>a2enmod fcgid</programlisting> |
|
1155 |
<para>Die Konfiguration für die Verwendung von kivitendo mit FastCGI |
|
1156 |
erfolgt durch Einfügen von <function>Alias</function>- |
|
1157 |
und <function>Directory</function>-Direktiven. Dabei wird zwischen |
|
1158 |
dem Installationspfad von kivitendo im Dateisystem |
|
1159 |
("<filename>/path/to/kivitendo-erp</filename>") und der URL |
|
1160 |
unterschieden, unter der kivitendo im Webbrowser erreichbar ist |
|
1161 |
("<filename>/url/for/kivitendo-erp</filename>").</para> |
|
1187 | 1162 |
|
1188 |
<para>Die Konfiguration für die Verwendung von kivitendo mit FastCGI |
|
1189 |
erfolgt durch Anpassung der vorhandenen <function>Alias</function>- |
|
1190 |
und <function>Directory</function>-Direktiven. Dabei wird zwischen |
|
1191 |
dem Installationspfad von kivitendo im Dateisystem |
|
1192 |
("<filename>/path/to/kivitendo-erp</filename>") und der URL |
|
1193 |
unterschieden, unter der kivitendo im Webbrowser erreichbar ist |
|
1194 |
("<filename>/url/for/kivitendo-erp</filename>").</para> |
|
1163 |
<para>Folgender Konfigurationsschnipsel funktioniert mit |
|
1164 |
mod_fastcgi:</para> |
|
1195 | 1165 |
|
1196 |
<para>Folgender Konfigurationsschnipsel funktioniert mit |
|
1197 |
mod_fastcgi:</para> |
|
1198 |
|
|
1199 |
<programlisting>AliasMatch ^/url/for/kivitendo-erp/[^/]+\.pl /path/to/kivitendo-erp/dispatcher.fcgi |
|
1166 |
<programlisting>AliasMatch ^/url/for/kivitendo-erp/[^/]+\.pl /path/to/kivitendo-erp/dispatcher.fcgi |
|
1200 | 1167 |
Alias /url/for/kivitendo-erp/ /path/to/kivitendo-erp/ |
1201 | 1168 |
|
1202 | 1169 |
<Directory /path/to/kivitendo-erp> |
1203 |
AllowOverride All
|
|
1204 |
Options ExecCGI Includes FollowSymlinks
|
|
1205 |
Require all granted
|
|
1170 |
AllowOverride All |
|
1171 |
Options ExecCGI Includes FollowSymlinks |
|
1172 |
Require all granted |
|
1206 | 1173 |
</Directory> |
1207 | 1174 |
|
1208 | 1175 |
<DirectoryMatch /path/to/kivitendo-erp/users> |
1209 | 1176 |
Require all denied |
1210 | 1177 |
</DirectoryMatch></programlisting> |
1211 | 1178 |
|
1212 |
<para>Seit mod_fcgid-Version 2.3.6 gelten sehr kleine Grenzen für
|
|
1213 |
die maximale Größe eines Requests. Diese sollte wie folgt
|
|
1214 |
hochgesetzt werden:</para>
|
|
1179 |
<para>Seit mod_fcgid-Version 2.3.6 gelten sehr kleine Grenzen für |
|
1180 |
die maximale Größe eines Requests. Diese sollte wie folgt |
|
1181 |
hochgesetzt werden:</para> |
|
1215 | 1182 |
|
1216 |
<programlisting>FcgidMaxRequestLen 10485760</programlisting>
|
|
1183 |
<programlisting>FcgidMaxRequestLen 10485760</programlisting> |
|
1217 | 1184 |
|
1218 |
<para>Das Ganze sollte dann so aussehen:</para>
|
|
1185 |
<para>Das Ganze sollte dann so aussehen:</para> |
|
1219 | 1186 |
|
1220 |
<programlisting>AddHandler fcgid-script .fpl
|
|
1187 |
<programlisting>AddHandler fcgid-script .fpl |
|
1221 | 1188 |
AliasMatch ^/url/for/kivitendo-erp/[^/]+\.pl /path/to/kivitendo-erp/dispatcher.fpl |
1222 | 1189 |
Alias /url/for/kivitendo-erp/ /path/to/kivitendo-erp/ |
1223 | 1190 |
FcgidMaxRequestLen 10485760 |
1224 | 1191 |
|
1225 | 1192 |
<Directory /path/to/kivitendo-erp> |
1226 |
AllowOverride All
|
|
1227 |
Options ExecCGI Includes FollowSymlinks
|
|
1228 |
Require all granted
|
|
1193 |
AllowOverride All |
|
1194 |
Options ExecCGI Includes FollowSymlinks |
|
1195 |
Require all granted |
|
1229 | 1196 |
</Directory> |
1230 | 1197 |
|
1231 | 1198 |
<DirectoryMatch /path/to/kivitendo-erp/users> |
1232 | 1199 |
Require all denied |
1233 | 1200 |
</DirectoryMatch></programlisting> |
1234 | 1201 |
|
1235 |
<para>Hierdurch wird nur ein zentraler Dispatcher gestartet. Alle |
|
1236 |
Zugriffe auf die einzelnen Scripte werden auf diesen umgeleitet. |
|
1237 |
Dadurch, dass zur Laufzeit öfter mal Scripte neu geladen werden, |
|
1238 |
gibt es hier kleine Performance-Einbußen.</para> |
|
1239 |
</sect3> |
|
1202 |
<para>Hierdurch wird nur ein zentraler Dispatcher gestartet. Alle |
|
1203 |
Zugriffe auf die einzelnen Scripte werden auf diesen umgeleitet. |
|
1204 |
Dadurch, dass zur Laufzeit öfter mal Scripte neu geladen werden, |
|
1205 |
gibt es hier kleine Performance-Einbußen.</para> |
|
1240 | 1206 |
</sect2> |
1241 | 1207 |
|
1242 | 1208 |
<sect2> |
Auch abrufbar als: Unified diff
Doku: Entferne Unterkapitel, die FastCGI von CGI abgrenzen