====== Apache mod_itk ====== **Ostrzeżenie.** Mod-itk to już martwy projekt. Nadal działa jednak bardzo dobrze i może być przydatny na środowiskach bez kontenerów, gdzie jest potrzeba izolacji poszczególnych aplikacji. Pakiety RPM httpd-itk można pobrać z [[https://rpm.baszarek.pl/]], lub z [[https://copr.fedorainfracloud.org/coprs/seem/httpd-itk/]]. Niektóre dystrybucje jeszcze je dostarczają, ale już coraz rzadziej. ---- ==== Opis działania ==== - Apache otrzymują żądanie http przez protokół https. Wówczas mod-itk niczego jeszcze nie robi. - Apache rozszywa zapytanie używając modułu mod_ssl. - Używając dyrektywy //AssignUserId// z konfiguracji wirtualnego hosta Apache używa uprawnień dedykowanego użytkownika do operacji na plikach oraz proxy fcgi. Biorąc pod uwagę mankament z pierwszego punktu, warto rozszywać ruch https za pomocą dedykowanego proxy, na przykład Nginxa, HAProxy, lub nawet innego Apache. ---- ==== Instalacja i konfiguracja ==== Należy zainstalować pakiety httpd, httpd-itk, php-fpm, potrzebne moduły PHP-a oraz Apacha. Po instalacji pakiety httpd-itk, należy zmienić moduł MPM w pliku ///etc/httpd/conf.modules.d/00-mpm.conf// z: LoadModule mpm_event_module modules/mod_mpm_event.so na LoadModule mpm_prefork_module modules/mod_mpm_prefork.so Moduł prefork działa wolniej, niż event, ale do prostych stron typu Wordpress, Mantis, czy Nextcloud w zupełności wystarczy. Teraz trzeba odkomentować linijkę LoadModule mpm_itk_module modules/mod_mpm_itk.so w pliku ///etc/httpd/conf.modules.d/00-mpm-itk.conf//. Potem trzeba zrestartować Apache. Przeładowanie nie wystarczy i Apache się zawiesi. systemctl restart httpd Tworzenie użytkownika aplikacyjnego: useradd -u 2001 -d /var/www/mojastronapl/ -s /sbin/nologin mojastronapl mkdir /var/www/mojastronapl/public_html chown -R mojastronapl:mojastronapl /var/www/mojastronapl chmod 700 /var/www/mojastronapl chmod 700 /var/www/mojastronapl/public_html semanage fcontext -m -t httpd_sys_rw_content_t '/var/www/mojastronapl(/.*)?' restorecon -Rv /var/www/mojastronapl W pliku wirtualnego hosta, w sekcji //// (tam, gdzie jest również //ServerName//), dodać linijkę AssignUserId mojastronapl mojastronapl W pliku ///etc/php-fpm.d/mojastrona.pl.conf// można dodać dwie nowe linijki: listen.owner = mojastronapl listen.group = mojastronapl Teoretycznie wystarczy teraz przeładować php-fpm oraz httpd, ale restart zapewni zabicie starych procesów, używających jeszcze uprawnień Apache.