Ինչպես է google-ը սկսել է սիրել https կայքեր, ավելին, զանգվածային տեղադրում SSL-եւ որտեղ կարող. Որպես կանոն, բացի այդ, ավելի ահաբեկելը սերվերների համար մենք ունենք եւ դեգրադացիայի արագությամբ. Լավ, որ HTTP2 ստանդարտ արդեն ավելի քան մեկուկես ինտեգրման բոլոր հիմնական http սերվերները և բրաուզերների, եւ դրա բովանդակությունը բավականին կայուն. Ցավոք, debian stable չի փաթեթներ, որոնք աջակցում են HTTP2 հիմնական http սերվերների. Տարբերակները, որոնք մեզ անհրաժեշտ են աշխատելու համար HTTP2 հետևյալ կերպ:

  • Apache > 2.4.17
  • Nginx > 1.9.5
  • մնացած անձամբ ինձ չի հարուցել (lighttpd կա, հնարավոր է, նախատեսվում է…..)

Ես мешаницата մեծ է եւ կախված է օգտվել apache կամ nginx. Ես դեռ չեմ խաղացել, որ մղել apache debian http2 8 քանի որ ես խաղացել, բայց backports репото նրա կան, որ ոչ մի մեծ խնդիր. Համար nginx դա արդեն մենք մի քանի անգամ խաղացել. Որպես կանոն, քայլերն ու մի քանի համեմատաբար պարզ:

  1. Ավելացնել nginx պաշտոնական ռեպո – "debian տարբերակը - 1.6.x 🙄
  2. Տեղադրել այն openssl են backports այս պահին 1.0.2 k – դա մեզ պետք է ALPN աջակցություն, որպեսզի կարողանա աշխատել և արագ
  3. տեղադրել այն devscripts – այստեղ ժամանակն է կիսել, որ билднем մեր փաթեթը, քանի որ պաշտոնյան եղել է скомпилирован հետ openssl 1.0.1 t որտեղ չի աշխատում ALPN եւ բրաուզերների չի արձագանքում և աշխատում է http2-ապա միայն այն դեպքում, եթե նրա форсираш
  4. инкрементираме տարբերակը, որ սպասում է անել циганията փաթեթների իսկ այնտեղ նոր տարբերակը, միայն синкенм сорсовете

Եկեք սկսենք քայլ առ քայլ

Ավելացնել nginx ретроград

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

Ավելացնել openssl 1.0.2 k և dev գրադարանի, հակառակ դեպքում կլինի այն билднем դեռ 1.0.1 t որ մեզ նպատակն է

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 изпълнявате команда с която инкрементирате версията, ես անձամբ նախընտրում եմ ավելացնել, որ 1 ներկա բիլդ

debchange --newversion 1.10.3-1

Այն բանից հետո, երբ նրա ավելացնել changelog-իսկ ընտրություն, կարելի է անցնել իրական կազմելու

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

Մի քիչ բացատրությունը կազմաձեւման թիմ:

-ամն -uc ասում են script չի “ստորագրում” .dsc եւ .changes ֆայլեր. -i ու -I ստիպում են script, որ անտեսել ֆայլերը վերահսկողության համար տարբերակ. -B միայն առաջացնում երկուական փաթեթ. -j իսկ make է, քանի զուգահեռ հավաքագրման գործընթացի 🙂

 

Այն բանից հետո, երբ ավարտված է նախորդ գործընթացը պետք է իրեն տեղադրել մեր նոր փաթեթներ. Եթե դուք արդեն տեղադրվել են nginx-դա լավ է, դուք պետք է հեռացնել այն

apt remove nginx nginx-*

Също не лоша идея е да си направите бекъп на nginx папката в /etc. По принцип при ъпгрейд от 1.6.5 " 1.10.3 нямах драми но никога не се знае. Новите пактеи се намират в папката от по горно ниво и следва да се инсталират с команда от рода на:

dpkg -i ../*.deb

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

Ես զգացել եմ մի փոքր թատրոնը սկավառակի իմ notebook. Հետո фиксването խնդիրներ apt-get update лъсваше հաջորդ չափազանց հաճելի գործընթացի վերջը

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.

Ինչպես միշտ, խնդիրը չափազանց ակնհայտ է, /var/lib/apt/lists/debian.ipacct.com_debian_dists_sid_contrib_binary-i386 չի կարող է կարդալ ճիշտ է. Фикса, դա այնքան ակնհայտ է, որքան ինքը ' ախտորոշում խնդիրները:

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

Ի վերջո, արդյունքը հարկադրանք համաժամացման apt.

Իմ սիրած տեքստային խմբագիր է, դա Geany. Նա շատ минималистская IDE որ աջակցում է հսկայական շարք լեզուների – shell-ը, php, python, C … etc. Նրանց автозаполнения եւ, միեւնույն ժամանակ բավականին ճարպկորեն. Չի հերիքում նրան և մեկ այլ հաճելի հնարավորությամբ, բայց այս պահին ինձ համար դա ավելի քան բավարար է. Ես online դասընթաց Python Programming Թեմայով "SoftUni – որպեսզի освежа գիտելիքներ և դրանք պետք է թարմացնել, քանի որ ես չեմ հետեւում են համարժեք, թե ինչ է կատարվում python 3. Զեկուցողներ են փոխարժեքի խորհուրդ PyCharm ինչպես IDE համար ծրագրավորման pyton, բայց ինձ հեռու իմ ճաշակի, բնականաբար, ես օգտագործում Geany համար վարժություններ.

Դասախոսության ժամանակ զգացի հիվանդագին 2 պակասորդ

  1. python autocomplete-իսկ դուք выделяете է փաստաթղթերը, գործառույթները և մեթոդները
  2. դուք երբեք չեք համար pep8 ստանդարտ

Բանն այն է, որ Geany բավականին ճկուն է, քան կազմաձեւման եւ կարող է հեշտությամբ հագեցած է, քան բացակայում է նման. Եկեք ավելացնել python փաստաթղթերի մեր IDE:

  • дърпаме նրա հաջորդ սցենարը ինչ-որ տեղ մեր ՃԱՆԱՊԱՐՀԸ, օրինակ, /usr/bin, ինչպես եւ չի մոռանում այն исполняемым
  • редактируем ֆայլի ~/.config/geany/filedefs/filetypes.python, ինչպես բաժնում settings, ավելացնել հետեւյալ տողերը context_action_cmd=pydocw %s. Եթե գոյություն ունի միայն ավելացնել անվանումը бинарката է նախորդ քայլ. Перемонтировать Geany, եթե աշխատել.
  • Մենք արդեն ունենք context-ը-ակցիան, որը թույլ է տալիս ձեզ քաշեք տեղեկություններ գործառույթները. Аз си добавих shortcut за да ми е по удобно като не ми е ясно някоя функционалност. Լիչը, ինձ համար այս մոտեցումը ինձ շատ է դուր գալիս, քանի որ շատ նյարդայնացնում է ինձ netbeans մոտեցում.

Այստեղ լավ է. Հետո ինձ շատ է ցանկանում, որպեսզի ես ձեզ երբեք կոդ, որը ես գրում եմ, – եթե այն գրել է ընդհանուր ընդունված չափանիշներին, կամ գրել ինչ-որ грозотии. Ընդհանուր առմամբ ես գտա նորից туториалче ինչպես տեղի են ունենում բաներ, բայց դա մի քիչ հնացած – Geany կա այդ ամենը հարմարեցված է իրեն, միայն պետք է այն տեղադրել pep8 փաթեթը. "Debian apt-get install pep8 ստիպում է աշխատանքը մյուս дистрота իրենք պետք է իմանալ, թե ինչպես է տեղի ունենում կախարդանքը. Ցանկի Build երկրորդ կոճակը (գոնե ինձ) е Lint след кликването му ще откриете колко грозен код сте сътворили 😀

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

Това е общи линии как да накарате вашият Geany да работи по добре с Python и същевременно да продължи да бъде бърз без да кара процесора ви да иска да си тегли куршума.

-Որեւէ (շատ պարզ է ինձ պատճառներով) ես մոռացել եմ անել թարմացնել postgresql demon ազդեցության տակ բորբոքման մեդիատորների երբ թարմացնել մեկի սերվերների Debian ինձ. Postgresql սատանա ունի հաճելի գույքը չի սկսում օգտագործել նոր տարբերակը (ի տարբերություն Mysql) այն ժամանակ, երբ չի համոզել, որ նոր լիովին համատեղելի է գործարկման – շատ օգտակար է, երբ մեծ տվյալների բազաների. Ինքը թարմացման գործընթացը սահմանափակվում, հետեւյալ 2 քայլերը:

  • pg_dropcluster
  • pg_upgradecluster

Նախքան издропите կլաստերի pg սատանա պետք է կանգնեցվել!

pg_dropcluster 9.4 main

Այս թիմը շատ արագ է ընթանում, որից հետո էլ անցնում ենք մի կարեւոր մասի – ինքը թարմացումները

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

Եթե ամեն ինչ минло հարթ դուք պետք է ստանալ հաղորդագրություն, որ վերը որ պահանջում էր разкарате հին տվյալների էջ.

pg_dropcluster 9.1 main

Այս тарпана այժմ դուք կարող եք սկսել գործընթացը կրկին. Ինձ բազայի փոքր է, եւ, ցավոք, չեմ կարող գնահատական տալ, թե որքան ժամանակ է անցնում բարդ թարմացումները.

Նոր Debian Stable փաստ է մոտ մեկ շաբաթ, եւ ինձ сърбяха ձեռքերը, այն թարմացնել виртуалката դրան, բայց ես ոչ մի անգամ մինչև այսօր. Քանի որ իմ օրը սկսել է վաղ որոշել է նվիրել ժամանակ թարմացումներ. Ես փոխել աղբյուրը տերեւները ինձ, ինչպես ես փոխել задыхающимся է jessie

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

Այստեղ, հնարավոր է, եւ 2 հայելիներ:

  • MariaDB – այս հայելին արդեն պետք է Jessie ներառում տարբերակը 10.0.6 է, որ ինձ շատ դուր. Հետո 5.5 мичетодб և mysql այնքան էլ համատեղելի են, քանի որ ներկայումս врътнах ետ mysql 5.5.42 – նա հանդիսանում է նախնական jessie
  • DotDeb – ես օգտագործել այն, ավելի շուտ, php55 այստեղ էլ անհրաժեշտ չէ, քանի որ Jessie գալիս 5.6.7-1

Այն բանից հետո, երբ разкарах ավելորդ հայելիներ եւ врътнах է MariaDB Mysql apt-get dist-upgrade իմ մաքուր, reboot, եւ ես արդեն Debian 8.0. Ես բացեց իր web server-իսկ, ու, ի զարմանս ինձ, աշխատել այստեղ պատմությունը երկար – մի քանի խոսք Nginx-իսկ իմ հավաքվել լրացուցիչ source հետ լրացուցիչ դիրեկտիվները:. dpkg -l nginx-full 1.2 мдааа ինչ-որ մեկը մոռացել է իր unhold-փաթեթներ. Unhold եւ նորացնել ամեն ինչ ըստ պլանի nginx-կոտրել 😆 . Nginx-իսկ աշխատում է, մշակում է հարցումները և php-fpm գործընթացը up and runnign բայց php կոդ չի կատարվում և չի թքել սխալների 🙄 ԻՄ ՍԻՐԱԾ.

Հետո որոշ որոնման տեղեկությունների փոփոխության համար ես հայտնաբերեցի հետեւյալ հատված

Fastcgi կարգավորում issues ============================

nginx shipped a modified fastcgi_params, ստուգելու declared fastcgi_param SCRIPT_FILENAME. This line now has been removed. From now on we are also առաքում fastcgi.քաղաքական upstream from the շտեմարան, ստուգելու ընդգրկված հոդվածների մասերը a sane SCRIPT_FILENAME parameter value.

So, if you are using fastcgi_params, you can try switching to fastcgi.conf or manually set the relevant պարամետրերի.

Bingo. Ես փոխել վիրտուալ սերվերները օգտագործել fastcgi.conf անելու փոխարեն կոպիտ միջամտություն է և բոլորը ենթադրում. Ապա հարվածել է մեկ արագ diff տեսնել տարբերությունը, որ եղել է 2-րդ apache

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

Որ ինձ հիշել է, որ հորդառատ մեծ configurations виртуаните hosts չի թույն գաղափար է. Մնում է прекомпилирам կրկին Nginx-իսկ սկսած ավելացումներ ons որ ես ուզում եմ mod_sec + pagespeed բայց դա կարող է սպասել. Շատ ավելի կարեւոր է, որ սովորաբար ինձ կրկնվել, եթե քեզ փնտրել 3-րդ աղբյուրներից և кастъм ելույթները Debian չի փչանում է, երբ dist-upgrade!

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