GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Suphp s Apache na Ubuntu / Linux

Suphp

Suphp php handler je modul Apache (mod_suphp), který spouští php skripty s vlastnictvím a oprávněním konkrétního uživatele.

To je považováno za bezpečnostní vylepšení, protože systém může sledovat, který uživatelův php skript běží (a způsobuje problémy, pokud nějaké jsou).

V prostředí sdíleného hostingu je suphp velmi populární, protože se velmi snadno instaluje a konfiguruje.

Suphp spouští php jako cgi. Potřebuje tedy nainstalovat balíček php5-cgi. Kvůli tomu je suphp mnohem pomalejší než mod_php.

Suphp ale přidává zabezpečení identifikace uživatele, který skript spustil. Pokud tedy potřebujete spouštět php jako cgi, pak je preferovaným způsobem suphp. Existují však mnohem lepší a rychlejší alternativy jako fastcgi, fpm atd., které mají vyšší výkon ve srovnání s cgi.

Suphp se skládá ze dvou komponent:

1. mod_suphp – modul Apache, který nahrazuje mod_php
2. suphp – binární soubor setuid, který nahrazuje suexec Apache, spouští php se specifickými uživatelskými právy.

1. Nainstalujte suphp na Ubuntu

1. Nejprve nainstalujte modul apache pro suphp, balíček libapache2-mod-suphp

$ sudo apt-get install libapache2-mod-suphp

2. Dále deaktivujte mod php, což je výchozí php handler na ubuntu

$ sudo a2dismod php5Module php5 vypnuto. Spusťte '/etc/init.d/apache2 restart' pro aktivaci nové konfigurace!

3. Nyní restartujte Apache

$ sudo /etc/init.d/apache2 restart * Restartování webového serveru apache2 apache2:Nelze spolehlivě určit plně kvalifikovaný název domény serveru pomocí 127.0.1.1 pro ServerName ... čekání apache2:Nelze spolehlivě určit server plně kvalifikovaný název domény s použitím 127.0.1.1 pro ServerName [ OK ]

To by mělo nainstalovat a povolit suphp. Konfigurační soubor pro mod php se nachází zde

$ cat /etc/apache2/mods-enabled/suphp.loadLoadModule suphp_module /usr/lib/apache2/modules/mod_suphp.so

Konfigurace suphp pro Apache je zde

$ cat /etc/apache2/mods-enabled/suphp.conf AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml suPHP_AddHandler application/x-httpd-suphp  suPHP_Engine na  # Ve výchozím nastavení zakažte suPHP pro webové aplikace zabalené v debianu, protože soubory # jsou ve vlastnictví uživatele root a suPHP je nemůže spustit kvůli min_uid.  suPHP_Engine off # # # Použít konkrétní konfigurační soubor php (adresář, který obsahuje soubor php.ini)# suPHP_ConfigPath /etc/php4/cgi/suphp/# ​​# Řekne mod_suphp, aby NEZpracovával požadavky typu .# suPHP_RemoveHandler 

Výše uvedená konfigurace dělá ze suphp obslužnou rutinu pro soubory php.

2. Nastavte ID uživatele a ID skupiny pro každého virtuálního hostitele

Aby suphp spouštělo php skripty se specifickým userid/groupid, musíme nastavit konfiguraci pro každého virtuálního hostitele v konfiguračním souboru Apache.

Konfigurační soubor Apache na ubuntu se nachází na adrese

/etc/apache2/sites-available/default

Upravte příslušného virtuálního hostitele a přidejte nastavení uživatelské skupiny suphp, jak je uvedeno níže. Direktiva suPHP_UserGroup říká Apache, aby použil userid/groupid pro konkrétního virtuálního hostitele.

 ServerName some-site.com ServerAlias ​​www.some-site.com DocumentRoot /home/mike/public_html  suPHP_UserGroup mike mike  

Pokud nechcete upravovat hlavní konfigurační soubor Apache, vytvořte nový soubor ve stejném adresáři

/etc/apache2/sites-available/

A přidejte do tohoto souboru blok virtuálního hostitele. Poté použijte nastavení pomocí příkazu a2ensite.

$ sudo a2ensite název_souboru

3. Nakonfigurujte oprávnění

Suphp také dává "500 Internal Server Error", pokud je soubor php zapisovatelný podle skupiny. Protokol chyb bude mít záznam jako tento

SoftException v Application.cpp:564:Adresář "/var/www" je zapisovatelný podle skupiny, referer:http://localhost/index.php

Chcete-li to vyřešit, zkontrolujte oprávnění a ujistěte se, že skupina nebo ostatní nemají oprávnění k očekávanému čtení souboru php.


Ubuntu
  1. Jak nainstalovat PHP na Ubuntu Linux

  2. Jak nainstalovat PHP 8.0 na Ubuntu 20.04 / Ubuntu 18.04

  3. Jak nainstalovat PHP-FPM s Apache na Ubuntu 20.04

  1. Jak nainstalovat PHP na Ubuntu 18.04

  2. Jak nainstalovat WordPress s Apache na Ubuntu 18.04

  3. Jak nainstalovat Joomla s Apache na Ubuntu 18.04

  1. Jak nainstalovat PHP na Ubuntu 20.04

  2. Jak nainstalovat Linux, Apache, MySQL, PHP (LAMP) stack na Ubuntu 16.04

  3. Jak nainstalovat Laravel na Ubuntu 18.04 s Apache