Version [2618]
Dies ist eine alte Version von ApacheKonfigurieren erstellt von WojciechLisiewicz am 2020-07-14 11:25:06.
Apache
Konfiguration des Webservers am Beispiel v. 2.4 - einschließlich anderer FAMP-Funktionen
A. Welche Pakete sind notwendig
Mit PKG sollen insbesondere folgende installiert werden:
pkg install <paket>
- apache
- php-fpm
- php-xxx
B. Einzelne PHP-module
Welche sind installiert (auch fest einkompiliert)?
Befehl:
php -m
Wir haben folgende genommen (die meisten wegen nextcloud):
[PHP Modules]
apcu
bcmath bz2
Core ctype curl
date dom
exif
fileinfo filter
gd gmp hash
iconv imagick intl json
ldap libxml mbstring
mysqli mysqlnd openssl
pcre PDO pdo_mysql
posix redis Reflection
session SimpleXML SPL standard
xml xmlreader xmlwriter xsl
Zend OPcache zip zlib
[Zend Modules]
Zend OPcache
Wir haben folgende genommen (die meisten wegen nextcloud):
[PHP Modules]
apcu
bcmath bz2
Core ctype curl
date dom
exif
fileinfo filter
gd gmp hash
iconv imagick intl json
ldap libxml mbstring
mysqli mysqlnd openssl
pcre PDO pdo_mysql
posix redis Reflection
session SimpleXML SPL standard
xml xmlreader xmlwriter xsl
Zend OPcache zip zlib
[Zend Modules]
Zend OPcache
C. Konfiguration für PHP mit FPM [1]
mod_php soll nicht so sicher und nicht so performant sein. Also versuchen wir, PHP mit FPM (Fast CGI proxy) zu betreiben...
1. PHP-FPM Konfiguration
Konfigurationsdateien:
/usr/local/etc/php-fpm.conf (aber diese ist nicht so interessant...);
dafür diese:
/usr/local/etc/php-fpm.d/www.conf
edit:
listen = /tmp/php-fpm.sock
listen.owner = www
listen.group = www
2. Module in https.conf
In der config von apache (/etc/apache2/ unter Linux oder /usr/local/etc/apache24/ unter Freebsd) sollten folgende Module aktiviert werden:
LoadModule mpm_event_module libexec/apache24/mod_mpm_event.so
#LoadModule mpm_prefork_module libexec/apache24/mod_mpm_prefork.so
#LoadModule mpm_worker_module libexec/apache24/mod_mpm_worker.so
LoadModule proxy_module libexec/apache24/mod_proxy.so
LoadModule proxy_fcgi_module libexec/apache24/mod_proxy_fcgi.so
nur mpm_event_module soll aktiviert sein - keine weiteren mpms!
Virtuelle Webseiten / Webserver ermöglichen mehrere Dienste auf einer Maschine. Dazu gelten folgende Empfehlungen:
- in einem
sollte die Direktive ServerName genutzt werden - sonst wird das ganze System der virtuellen Hosts nicht sinnvoll funktionieren; - separate logs je host laufen so:
ServerName vhost1
CustomLog /pfad/zu/logs/vhost1_log combined
ErrorLog /pfad/zu/logs/vhost1_errorlog
CustomLog /pfad/zu/logs/vhost1_log combined
ErrorLog /pfad/zu/logs/vhost1_errorlog
E. phpMyAdmin
Das Tool funktioniert, wenn PHP richtig eingerichtet ist - insbesondere PHP-FPM muss laufen - und die Einstellungen auch sonst korrekt sind.
Mit mySQL 8.0 und PHP 7.4 war die Anmeldung anfangs nicht möglich. Dagegen hat geholfen:
- mysql -u root -p
- ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mypwd';
- exit
F. Zugrifssbeschränkungen
Wenn ein Verzeichnis auf dem Webserver mit einem Passwort geschützt werden soll, kann dies mit Apache eingerichtet werden. Früher setzte ich auf Digest-Authentication, aber diese ist gar nicht so sicher und aktuell muss man eh jede Seite mit SSL ausstatten. Deshalb ist die Basic-Authentication per SSL genauso gut...
1. Notwendige Module
Für die basic-authentication / authorization brauchen wir:
- Authentication type: mod_auth_basic (auth-type)
- Authentication provider: mod_authn_file (auth-basic-provider)
- Authorization: mod_authz_groupfile / mod_authz_user
- und in jedem Fall auch: mod_authn_core + mod_authz_core
2. Passwörter festlegen und speichern
htpasswd -c /usr/local/pfad/zu/passwordfile username
3. Konfiguration der entsprechenden Verzeichnisse
Am besten unter der Anweisung <Directory> die Konfiguration vornehmen:
<Directory "/usr/local/hier/nur/mit/anmeldung">
(Einstellungen wie sonst)
...
AuthType Basic
AuthName "Restricted Files"
# (Following line optional)
AuthBasicProvider file
AuthUserFile "/usr/local/pfad/zu/passwordfile"
Require user username
<Directory>...
AuthType Basic
AuthName "Restricted Files"
# (Following line optional)
AuthBasicProvider file
AuthUserFile "/usr/local/pfad/zu/passwordfile"
Require user username
4.
[1] Gute Quelle zum Thema Apache / FreeBSD / PHP-FPM: https://medium.com/@clpo13/apache-and-php-fpm-on-freebsd-a41e832ae8cc.
[2] Falls eine Abkürzung gewünscht ist und gar nichts verstanden werden muss - es geht auch recht schnell mit Caddy 1.0 mit diesem Skript: https://www.ixsystems.com/community/resources/scripted-installation-of-nextcloud-19-in-iocage-jail.90/
Auf dieser Seite sind keine Kommentare vorhanden