GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Grundlegende PHP 7- und Nginx-Konfiguration unter Ubuntu 16.04 Linux

Nginx überholt Apache schnell als bevorzugten Webserver. Für Webanwendungen, die in Sprachen wie Rails und Python erstellt wurden, ist es praktisch allgegenwärtig, aber es ist etwas langsamer, sich in der PHP-Welt durchzusetzen. Ein Grund dafür ist, wie einfach PHP und Apache zusammenpassen. PHP und Nginx können jedoch fast genauso einfach zusammenarbeiten, und mit der Veröffentlichung von PHP 7 kann die Kombination der beiden eine ziemlich schnelle Option sein.

Die Pakete

Das wichtigste zuerst. Aktualisieren Sie Ubuntu und erhalten Sie die Nginx- und PHP-Pakete.

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

Wenn die Installation abgeschlossen ist, sollten alle Pakete vorhanden sein und tatsächlich ausgeführt werden. Um sicherzustellen, dass dies der Fall ist, können Sie überprüfen, ob sowohl Nginx als auch die PHP-FPM-Dienste in Systemd ausgeführt werden.

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

Wenn Systemd bestätigt, dass beide Dienste ausgeführt werden, sollte der Server tatsächlich in Betrieb sein, und Sie sollten die standardmäßige Nginx-Willkommensseite sehen können, indem Sie zu localhost navigieren im Browser.

Konfiguration

Natürlich ist das noch lange nicht bereit, tatsächlich etwas zu hosten. Es ist eine gewisse Konfiguration erforderlich, um Nginx auf einige tatsächliche Inhalte zu verweisen und die Sicherheit zu verbessern. Das Stammverzeichnis für Nginx-Konfigurationsdateien befindet sich unter /etc/nginx . Glücklicherweise gibt es dort bereits Vorgaben von Ubuntu, die den Konfigurationsprozess viel einfacher machen.

Nginx.conf

Die Hauptkonfigurationsdatei für Nginx ist nginx.conf . Öffnen Sie es im Texteditor Ihrer Wahl. Es erfordert Root-Berechtigungen, daher ist ein textbasierter Editor wie Vim wahrscheinlich am besten. Die Standardkonfiguration ist meistens in Ordnung. Es gibt natürlich Dinge, die getan werden können, um die Systemgeschwindigkeit und -sicherheit zu verbessern, aber das meiste davon würde den Rahmen dieses grundlegenden Tutorials sprengen. Wenn Sie die Leistung verbessern möchten, helfen die kommentierten Gzip-Optionen bei der Komprimierung und können die Dinge beschleunigen. Auf der Sicherheitsseite hilft das Hinzufügen der folgenden drei Zeilen, böswillige Aktivitäten zu verhindern.

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

Site-Konfiguration

Sobald die Zeilen hinzugefügt sind, speichern und beenden. Es gibt zwei Ordner im Nginx-Stamm, sites-available und sites-enabled . sites-available speichert Site-Konfigurationen. sites-enabled enthält symbolische Links zu den Konfigurationsdateien in sites-available . Auf diese Weise ist das Aktivieren und Deaktivieren von Websites so einfach wie das Erstellen und Entfernen von Symlinks.

Erstellen Sie mit Ihrem Texteditor eine Datei unter /etc/nginx/sites-available/yoursite . Diese Datei enthält alle Site-spezifischen Konfigurationen für Ihre neue PHP 7-Website. Das folgende Beispiel enthält in den Kommentaren eine Aufschlüsselung dessen, was jede Zeile bewirkt. Es ist eine ziemlich einfache Konfiguration, aber sie wird die Arbeit erledigen.


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; 
	} 
}

Wenn Sie diese Datei erstellt haben, speichern Sie sie und wechseln Sie zu sites-enabled Verzeichnis. Erstellen Sie von dort aus den symbolischen Link zurück zu der gerade erstellten Datei.

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

PHP.ini-Sicherheit

Sicherheit ist ein bewegliches Ziel, und es ist unmöglich, jeder möglichen Bedrohung einen Schritt voraus zu sein, aber es ist immer eine gute Idee, jede neue Serverinstallation so weit wie möglich zu sperren. Es gibt ein paar einfache Anpassungen, die an der php.ini vorgenommen werden können Konfigurationsdatei, die hilft, PHP zu sichern. Öffnen Sie mit Ihrem Texteditor /etc/php/7.0/fpm/php.ini . Dies ist eine riesige Datei. Auch hier ist Vim oder etwas mit einer Suchfunktion wahrscheinlich am besten.

Suchen Sie zuerst disable_functions und fügen Sie phpinfo,system,mail,exec hinzu an das Ende der Reihe von Funktionen, die bereits vorhanden sind. Suchen Sie dann file_uploads und stellen Sie ihn auf Off . Suchen Sie als Nächstes sql.safe_mode und schalten Sie es On . Zuletzt finden Sie allow_url_fopen und stellen Sie ihn auf Off . Bevor Sie die Datei schließen, fügen Sie am Ende eine weitere Zeile hinzu.

register_globals = Off

Wenn das alles erledigt ist, speichern und schließen. Starten Sie den Server neu und er sollte einsatzbereit sein.

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

Wohin als nächstes?

So wie es aussieht, sollte der Ubuntu-Server in der Lage sein, die meisten PHP-Websites auszuführen. Alle PHP-Dateien, die in /var/www/yoursite platziert sind wird vom Server ausgeführt. Es wird nach index.php gesucht Datei zuerst und die Website kann sich dort verzweigen. Natürlich gibt es noch viel mehr, was getan werden kann, um PHP und Nginx für Geschwindigkeit, Sicherheit und so ziemlich jede Sonderfallsituation zu konfigurieren, aber jetzt haben Sie einen starken Ausgangspunkt.


Ubuntu
  1. So installieren Sie PHP 7.4 und 8.0 auf Ubuntu 18.04 oder 20.04

  2. Installieren und konfigurieren Sie PHP OPcache auf Ubuntu 20.04

  3. So installieren Sie OpenLiteSpeed ​​und PHP auf Ubuntu

  4. Installation und Einrichtung von Php und Nginx unter Ubuntu 20.04

  5. So installieren und konfigurieren Sie PHP und Nginx (LEMP) unter Ubuntu 20.04

So installieren Sie Linux, Lighttpd, MySQL und PHP (LLMP Stack) in Ubuntu 18.04

So installieren Sie Linux, Nginx, MySQL, PHP (LEMP Stack) in Ubuntu 18.04

Dual-Boot Ubuntu und Arch Linux

So installieren und richten Sie Yii PHP Framework unter Ubuntu Linux ein

So installieren Sie Laravel PHP Framework mit Nginx unter Ubuntu Linux

Ubuntu GRUB Linux Bootloader und Konfiguration