Seit Google https-Websites liebt, Wenn möglich, ist eine Masseninstallation von SSLs erforderlich. Im Allgemeinen haben wir neben mehr Belästigung für Server auch eine Verschlechterung der Geschwindigkeit. Das ist gut, Das HTTP2 Der Standard ist seit über anderthalb Jahren in allen wichtigen http-Servern und Browsern integriert und seine Unterstützung ist stabil genug. Leider hat Debian Stable keine Pakete, die HTTP2 auf den wichtigsten http-Servern unterstützen. Die Versionen, die wir benötigen, damit HTTP2 funktioniert, sind wie folgt:

Für mich ist die Mischung groß und hängt von Apache oder Nginx ab. Ich habe Debians Apache http2 noch nicht gespielt 8 wie ich nicht musste, aber in Backports ist das Repo so, das wird keine große Sache sein. Denn Nginx hat es schon mehrmals gespielt. Im Allgemeinen sind die Schritte mehrere und relativ einfach:

  1. Wir fügen das offizielle Nginx-Repo hinzu – in debian ist die version 1.6.x 🙄
  2. Die Installation von openssl von Backports ist derzeit 1.0.2k – Dafür brauchen wir ALPN Wartung, damit alles funktionieren und schnell gehen kann
  3. Wir installieren unsere Devscripts – Hier ist der Moment, um mitzuteilen, dass wir unser Paket erstellen werden, da das offizielle Paket mit openssl 1.0.1t kompiliert wird, wobei ALPN nicht funktioniert und die Browser nicht gut reagieren und http2 nur funktioniert, wenn Sie es erzwingen
  4. Wir erhöhen die Version, um die Zigeuner nicht mit den Paketen zu halten, und wenn es eine neue Version gibt, nur um Quellen zu synchronisieren

Beginnen wir Schritt für Schritt

Nginx Repo hinzufügen

deb http://nginx.org/packages/debian/ codename nginx
deb-src http://nginx.org/packages/debian/ codename nginx

Добавяне на openssl 1.0.2k и dev библиотеката в противен случай ще си го билднем пак с 1.0.1t което не ни е целта

echo 'deb http://ftp.debian.org/debian jessie-backports main' | tee /etc/apt/sources.list.d/backports.list

apt update && apt install libssl-dev -t jessie-backports

 

Сега остана да си добавим библиотеките необходими за компилацията на nginx

apt install devscripts

apt build-dep nginx

mkdir nginx-build

cd nginx-build

apt-get source nginx

Ако сте работили коректно трябва да имате структура от рода на

~/nginx-build # ll
total 1004
drwxr-xr-x 10 root root   4096 Feb 21 18:37 nginx-1.10.3
-rw-r--r--  1 root root 103508 Jan 31 17:59 nginx_1.10.3-1~jessie.debian.tar.xz
-rw-r--r--  1 root root   1495 Jan 31 17:59 nginx_1.10.3-1~jessie.dsc
-rw-r--r--  1 root root 911509 Jan 31 17:59 nginx_1.10.3.orig.tar.gz

Влизате в папта в която е разархивиран сорса на nginx в моят случай е и nginx-1.10.3 изпълнявате команда с която инкрементирате версията, Ich persönlich ziehe es vor hinzuzufügen 1 zum aktuellen Build

debchange --newversion 1.10.3-1

Nachdem Sie das Änderungsprotokoll Ihrer Wahl hinzugefügt haben, können Sie mit der eigentlichen Kompilierung fortfahren

debuild -us -uc -i -I -b -j6

Eine kleine Erklärung der Befehlskonfiguration:

-uns -uc Sagen Sie dem Skript, dass dies nicht der Fall ist “Zeichen” .dsc- und .changes-Dateien. -ich und -ich Das Skript ignoriert Versionskontrolldateien. -B. nur ein Binärpaket zu generieren. -j както при make с колко паралелни процеса да се компилира 🙂

 

След като приключи горният процес следва да си инсталираме нашите нови пакети. Ако имате вече инсталиран nginx е добре да го деинсталирате

apt remove nginx nginx-*

Също не лоша идея е да си направите бекъп на nginx папката в /etc. По принцип при ъпгрейд от 1.6.5 към 1.10.3 нямах драми но никога не се знае. Die neuen Packs befinden sich im Ordner der obersten Ebene und sollten mit einem Befehl wie installiert werden:

dpkg -i ../*.deb

Ако всичко е минало гладко ви остава само да си пуснете nginx процеса и да си се конфигурира http2 което вече не е цел на тази статия.

Ich habe ein kleines Drama mit der Festplatte auf meinem Laptop erlebt. Nachdem das Problem mit apt-get update behoben wurde, schien das folgende äußerst unangenehme Ende des Prozesses

E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/debian.ipacct.com_debian_dists_sid_contrib_binary-i386_Packages
E: The package lists or status file could not be parsed or opened.

Wie üblich ist das Problem sehr offensichtlich. /Var/lib/apt/lists/debian.ipacct.com_debian_dists_sid_contrib_binary-i386 kann nicht richtig gelesen werden. Die Lösung ist so einfach wie die Diagnose des Problems:

 rf -f /var/lib/apt/lists/*

Am Ende ist das Ergebnis eine erzwungene Synchronisation von apt.

Mein Lieblingstexteditor ist Geany. Es ist sehr minimalistisch HIER das unterstützt eine Vielzahl von Sprachen – Schale, php, Python, C. … usw. Es hat eine automatische Veredelung und ist gleichzeitig sehr agil. Es fehlt eine andere angenehme Gelegenheit, aber im Moment ist es mehr als genug für mich. Ich habe einen Online-Kurs gestartet Python-Programmierung на SoftUni – um mein Wissen aufzufrischen und zu aktualisieren, weil ich nicht ausreichend überwacht habe, was mit Python passiert 3. Die Dozenten des Kurses empfehlen PyCharm als IDE für die Pyton-Programmierung, aber ich mag es nicht, Natürlich benutze ich Geany für die Übungen.

Während der Vorträge fühlte ich mich schmerzhaft 2 fehlt

  1. Python Autocomplete atmet aus der Dokumentation von Funktionen und Methoden aus
  2. keine Validierung für pep8 Standard

Das Gute ist, dass Geany flexibel genug ist, um konfiguriert zu werden, und leicht durch fehlende ergänzt werden kann.. Manchmal Python-Dokumentation hinzufügen zu unserer IDE:

  • wir ziehen das folgende Skript irgendwo in unserem PATH zum Beispiel / usr / bin und wir vergessen nicht, es ausführbar zu machen
  • Bearbeiten Sie die Datei ~ / .config / geany / filedefs / filetypes.python, indem Sie im Abschnitt Einstellungen die folgende Zeile hinzufügen context_action_cmd = pydocw% s. Wenn nur der Name der Binärdatei aus dem vorherigen Schritt hinzugefügt wird. Wir starten Geany neu, wenn es veröffentlicht wird.
  • Wir haben bereits eine Kontextaktion, mit der Sie Informationen über die Funktion erhalten. Аз си добавих shortcut за да ми е по удобно като не ми е ясно някоя функционалност. Ich mag diesen Ansatz sehr, weil mich der Netbeans-Ansatz sehr ärgert.

So weit, ist es gut. Dann möchte ich wirklich eine Validierung des Codes haben, den ich schreibe – ob ich es nach allgemein anerkannten Maßstäben schreibe oder etwas Hässliches schreibe. Grundsätzlich habe ich es wieder gefunden Tutorials wie die Dinge passieren, aber es ist ein bisschen veraltet – Geany hat alles eingebaut, Sie müssen nur das pep8-Paket installieren. In Debian apt-get install funktioniert pep8 in den anderen Distributionen. Sie müssen selbst herausfinden, wie die Magie geschieht. Im Menü Erstellen die zweite Schaltfläche (zumindest für mich) Wenn Sie darauf klicken, werden Sie feststellen, wie hässlich der Code ist, den Sie erstellt haben 😀

Screenshot von 2016-01-11 20-42-21

Hier ist ein allgemeiner Überblick darüber, wie Sie Ihren Geany besser mit Python arbeiten lassen können, während Sie immer noch schnell sind, ohne dass Ihre CPU die Kugel ziehen möchte.

Wegen einigen (keine sehr klaren Gründe für mich) Ich habe vergessen, den postgresql-Daemon beim Distributions-Upgrade auf einem meiner Debian-Server zu aktualisieren. Der Postgresql-Daemon hat die nette Funktion, seine neue Version nicht zu verwenden (im Gegensatz zu MySQL) bis wir überzeugt sind, dass der neue voll kompatibel mit dem Start ist – Sehr nützlich in großen Datenbanken. Der Aktualisierungsprozess selbst ist auf Folgendes beschränkt 2 Schritte:

  • pg_dropcluster
  • pg_upgradecluster

Der pg-Daemon muss gestoppt werden, bevor Sie den Cluster löschen können!

pg_dropcluster 9.4 main

Dieser Befehl wird schnell ausgeführt, dann gehen wir zum wesentlichen Teil über – das Upgrade selbst

pg_upgradecluster 9.1 main
Disabling connections to the old cluster during upgrade...
Restarting old cluster with restricted connections...
Creating new cluster 9.4/main ...
config /etc/postgresql/9.4/main
data   /var/lib/postgresql/9.4/main
locale en_US.UTF-8
Flags of /var/lib/postgresql/9.4/main set as -------------e-C
port   5433
Disabling connections to the new cluster during upgrade...
Roles, databases, schemas, ACLs...
Fixing hardcoded library paths for stored procedures...
Upgrading database postgres...
Analyzing database postgres...
Fixing hardcoded library paths for stored procedures...
Upgrading database template1...
Analyzing database template1...
Fixing hardcoded library paths for stored procedures...
Upgrading database xpqt...
Analyzing database xpqt...
Re-enabling connections to the old cluster...
Re-enabling connections to the new cluster...
Copying old configuration files...
Copying old start.conf...
Copying old pg_ctl.conf...
Copying old server.crt...
Copying old server.key...
Stopping target cluster...
Stopping old cluster...
Disabling automatic startup of old cluster...
Configuring old cluster to use a different port (5433)...
Starting target cluster on the original port...
Success. Please check that the upgraded cluster works. If it does,
you can remove the old cluster with

pg_dropcluster 9.1 main

Wenn alles reibungslos verlief, sollten Sie eine Nachricht wie die oben genannte erhalten, die Sie einlädt, die alten Daten von pg zu entfernen.

pg_dropcluster 9.1 main

Am Ende dieses Tarpans können Sie den Vorgang nun erneut starten. Für mich sind die Basen klein und ich kann leider nicht abschätzen, wie lange das signifikante Upgrade dauert..

Der neue Debian Stable ist seit ungefähr einer Woche eine Tatsache und meine Hände wollten unbedingt meine virtuelle Version darauf aufrüsten, aber ich hatte bis heute keine Zeit. Da mein Tag früh begann, beschloss ich, Zeit für das Upgrade aufzuwenden. Промених сорс листа ми като промених wheezy на jessie

sed -i "s/wheezy/jessie/g" /etc/apt/sources.list && apt-get update

Sie donnerten hier 2 Spiegel:

  • MariaDB – Von diesem Spiegel braucht Jessie keine Version mehr 10.0.6 in mir selbst, was mir nicht sehr gut gefallen hat. Nach 5.5 micodedb und mysql sind nicht vollständig kompatibel, weshalb ich mich im Moment wieder mysql zugewandt habe 5.5.42 – Es ist die Standardeinstellung in Jessie
  • DotDeb – Ich habe es schon einmal für PH55 verwendet. Hier ist es auch überflüssig, weil Jessie mitkommt 5.6.7-1

Nachdem ich die unnötigen Spiegel verloren und von MariaDB zu MySQL gewechselt war, ging apt-get dist-upgrade sauber, Neustart und ich war schon bei Debian 8.0. Ich habe meinen Webserver geöffnet und zu meiner Überraschung hat es hier funktioniert, die Geschichte ist lang – In wenigen Worten, mein Nginx wurde mit zusätzlichen Anweisungen aus dem Quellcode weiter kompiliert. dpkg -l nginx-voll 1.2 mdaaa jemand hat vergessen, die Pakete zurückzuhalten - nicht. Unhold und Upgrade alles ist nach Plan Nginx kaputt 😆 . Nginx verarbeitet Anfragen und der PHP-Fpm-Prozess ist aktiv, aber der PHP-Code wird nicht ausgeführt und spuckt keine Fehler aus. 🙄 MEIN LIEBLING.

Nachdem ich nach Informationen über die Änderungen gesucht hatte, fand ich die folgende Passage

Fastcgi-Konfigurationsprobleme ============================

nginx hat ein modifiziertes fastcgi_params ausgeliefert, welches SCRIPT_FILENAME fastcgi_param deklarierte. Diese Zeile wurde jetzt entfernt. Ab sofort versenden wir auch fastcgi.conf aus dem Upstream-Repository, Dies beinhaltet einen vernünftigen SCRIPT_FILENAME-Parameterwert.

Damit, wenn Sie fastcgi_params verwenden, Sie können versuchen, zu fastcgi.conf zu wechseln oder die entsprechenden Parameter manuell festzulegen.

Bingo. Ich habe die virtuellen Hosts so geändert, dass sie fastcgi.conf verwenden, anstatt grobe Eingriffe vorzunehmen, und alles hat funktioniert. Dann drückte ich einen schnellen Diff, um den Unterschied zwischen den beiden Konfigurationen zu sehen

diff /etc/nginx/fastcgi_params /etc/nginx/fastcgi.conf
1a2
> fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

Was mich daran erinnerte, dass es keine coole Idee ist, große Konfigurationen in virtuelle Hosts zu integrieren. Es bleibt, mein Nginx erneut mit den Add-Ons zu kompilieren, die ich mod_sec möchte + Seitengeschwindigkeit, aber das kann warten. Es ist viel wichtiger, dass meine Regel wiederholt wird, wenn Sie nicht die Überprüfung aus 3. Quellen und benutzerdefinierten Leistungen haben Debian bricht nicht bei dist-Upgrade!

https://www.youtube.com/watch?v = gEQCny6zNF0