GNU/Linux >> Znalost Linux >  >> Ubuntu

Základní konfigurace PHP 7 a Nginx na Ubuntu 16.04 Linux

Nginx rychle předbíhá Apache jako oblíbený webový server. Pro webové aplikace postavené v jazycích jako Rails a Python je to prakticky všudypřítomné, ale ve světě PHP je o něco pomalejší, než se uchytí. Částečně je to způsobeno tím, jak snadno jdou dohromady PHP a Apache. Nicméně PHP a Nginx mohou spolupracovat téměř stejně snadno a s vydáním PHP 7 může být kombinace těchto dvou poměrně rychlá volba.

Balíčky

Pěkně popořádku. Aktualizujte Ubuntu a získejte balíčky Nginx a PHP.

# sudo apt-get update && sudo apt-get -y upgrade
# sudo apt-get -y install nginx php7.0 php7.0-fpm

Po dokončení instalace by měly být všechny balíčky na svém místě a skutečně spuštěny. Abyste se ujistili, že tomu tak je, můžete zkontrolovat, že v Systemd běží jak Nginx, tak služby PHP-FPM.

# sudo systemctl status nginx
# sudo systemctl status php7.0-fpm

Pokud Systemd potvrdí, že obě služby běží, server by měl být skutečně spuštěn a měli byste být schopni vidět výchozí uvítací stránku Nginx přechodem na localhost v prohlížeči.

Konfigurace

Samozřejmě to není ani zdaleka připraveno skutečně něco hostit. K nasměrování Nginxu na nějaký skutečný obsah a zlepšení zabezpečení je potřeba určitá konfigurace. Kořenový adresář pro konfigurační soubory Nginx se nachází na adrese /etc/nginx . Naštěstí tam již jsou výchozí hodnoty z Ubuntu, které značně usnadňují proces konfigurace.

Nginx.conf

Hlavním konfiguračním souborem pro Nginx je nginx.conf . Otevřete jej v textovém editoru dle vašeho výběru. Bude vyžadovat oprávnění root, takže textový editor, jako je Vim, bude pravděpodobně nejlepší. Výchozí konfigurace je většinou v pořádku. Samozřejmě existují věci, které lze udělat pro zlepšení rychlosti a zabezpečení systému, ale většina z nich je nad rámec tohoto základního tutoriálu. Pokud chcete zlepšit výkon, komentované možnosti Gzip pomohou s kompresí a mohou věci urychlit. Pokud jde o zabezpečení, přidání následujících tří řádků pomůže zabránit škodlivé činnosti.

add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";

Konfigurace webu

Po přidání řádků uložte a ukončete. V kořenovém adresáři Nginx jsou dvě složky, sites-available a sites-enabled . sites-available ukládá konfigurace webu. sites-enabled obsahuje symbolické odkazy na konfigurační soubory v sites-available . Tímto způsobem je povolení a zakázání webů stejně jednoduché jako vytváření a odstraňování symbolických odkazů.

Pomocí textového editoru vytvořte soubor na adrese /etc/nginx/sites-available/yoursite . Tento soubor bude obsahovat libovolnou konfiguraci specifickou pro váš nový web PHP 7. Následující příklad obsahuje rozpis v komentářích toho, co každý řádek dělá. Je to docela základní konfigurace, ale svou práci zvládne.


server { 
	
	#Nginx should listen on port 80 for requests to yoursite.com
	listen 80; 
	server_name yoursite.com; 

	#Create access and error logs in /var/log/nginx
	access_log /var/log/nginx/yoursite.access_log main; 
	error_log /var/log/nginx/yoursite.error_log info; 

	#Nginx should look in /var/www/yoursite for your website
	root /var/www/yoursite/;
	#The homepage of your website is a file called index.php 
	index index.php; 

	#Specifies that Nginx is looking for .php files
	location ~ \.php$ { 
		#If a file isn’t found, 404
		try_files $uri =404; 
		#Include Nginx’s fastcgi configuration
		include /etc/nginx/fastcgi.conf;
		#Look for the FastCGI Process Manager at this location 
		fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
	} 
}

Až budete mít tento soubor vytvořen, uložte jej a přesuňte se do sites-enabled adresář. Odtud vytvořte symbolický odkaz zpět na soubor, který jste právě vytvořili.

# cd /etc/nginx/sites-enabled
# sudo ln -s /etc/nginx/sites-available/yoursite

Zabezpečení PHP.ini

Zabezpečení je pohyblivý cíl a je nemožné udržet si náskok před každou možnou hrozbou, ale vždy je dobré každou novou instalaci serveru co nejvíce uzamknout. Existuje několik jednoduchých úprav, které lze provést v php.ini konfigurační soubor, který pomůže zabezpečit PHP. Pomocí textového editoru otevřete /etc/php/7.0/fpm/php.ini . Toto je obrovský soubor. Opět je asi nejlepší Vim nebo něco s funkcí vyhledávání.

Nejprve najděte disable_functions a přidejte phpinfo,system,mail,exec na konec řetězce funkcí, které tam již jsou. Poté vyhledejte file_uploads a nastavte jej na Off . Dále najděte sql.safe_mode a přepněte jej na On . Nakonec najděte allow_url_fopen a nastavte jej na Off . Před uzavřením souboru přidejte na konec ještě jeden řádek.

register_globals = Off

Až bude vše hotovo, uložte a zavřete. Restartujte server a měl by být připraven k použití.

# sudo systemctl restart php7.0-fpm
# sudo systemctl restart nginx

Kam jít dál

Jak to sedí, server Ubuntu by měl být schopen provozovat většinu webových stránek PHP. Jakékoli soubory PHP umístěné v /var/www/yoursite bude provozován serverem. Bude hledat index.php nejprve soubor a web se tam může rozvětvit. Samozřejmě je toho mnohem víc, co lze udělat pro konfiguraci PHP a Nginx pro rychlost, bezpečnost a téměř všechny speciální případy, ale nyní máte pevný výchozí bod.


Ubuntu
  1. Nainstalujte a nakonfigurujte PHP OPcache na Ubuntu 20.04

  2. Jak nainstalovat OpenLiteSpeed ​​a PHP na Ubuntu

  3. Instalace a nastavení PHP a Nginx na Ubuntu 20.04

  1. Jak nainstalovat PHP 7.4 a 8.0 na Ubuntu 18.04 nebo 20.04

  2. Duální spouštění Ubuntu Linux a Windows 7

  3. Jak nainstalovat a nastavit PHP a Nginx (LEMP) na Ubuntu 20.04

  1. Jak nainstalovat PHP na Ubuntu Linux

  2. Instalace Nginx na Ubuntu 14.04 a 16.04

  3. Linux Quota – instalace a konfigurace na Ubuntu a Debianu