• Kompilace a instalace programů ze zdroje. Instalace na unixové systémy Požadovaný software

    V tomto tutoriálu vám ukážeme, jak nainstalovat PHP 7 na Linux VPS. PHP je skriptovací jazyk na straně serveru používaný pro vývoj webových aplikací.

    PHP 7 přichází s mnoha novými a vylepšenými funkcemi. Jednou z nejpozoruhodnějších je nová verze Zend Engine. Kromě toho existují další důležitá vylepšení, která zlepšují výkon a výrazně snižují využití paměti. PHP 7 tedy může být dvakrát rychlejší než PHP 5.6.

    Chcete-li nainstalovat PHP 7 na Ubuntu VPS, musíte se přihlásit k serveru pomocí . Jakmile se přihlásíte, aktualizujte veškerý systémový software na nejnovější verzi pomocí následujícího příkazu:

    Aktualizace sudo apt-get && aktualizace sudo apt-get -y

    Také se ujistěte, že je národní prostředí vašeho systému nastaveno na UTF-8. PHP 7 PPA pro Ubuntu podporuje Ondřej Suri. Tuto PPA použijeme k instalaci PHP 7 na Ubuntu 14.04.

    Přidejte PPA do seznamu zdrojů APT:

    Sudo add-apt-repository ppa:ondrej/php-7.0

    Pokud se zobrazí chyba, že příkaz 'add-apt-repository' nelze nalézt, pak váš systém s největší pravděpodobností není součástí balíčku 'software-properties-common'. Pokračujte a nainstalujte požadovaný balíček.

    Sudo apt-get install software-properties-common

    Po dokončení instalace zopakujte příkaz pro přidání PHP 7 PPA do vašeho seznamu zdrojů APT.

    Aktualizace místní mezipaměti balíčků pomocí příkazu:

    Aktualizace sudo apt-get

    To může trvat několik minut a po dokončení budete připraveni nainstalovat balíček PHP 7.

    Sudo apt-get install php7.0

    Chcete-li zajistit, aby byla na vašem serveru nainstalována nejnovější stabilní verze PHP 7, můžete spustit příkaz:

    Měli byste dostat něco takového:

    PHP 7.0.1-1+deb.sury.org~trusty+2 (cli) (NTS) Copyright (c) 1997-2015 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, od Zend Technologies

    Chcete-li nainstalovat další moduly PHP 7, například 'php7.0-MySQL', můžete použít následující příkaz:

    Sudo apt-get install php7.0-mysql

    Chcete-li vyhledat dostupné moduly PHP7, spusťte následující příkaz:

    Hledání sudo apt-cache php7

    Pokud chcete otestovat, jak PHP 7 funguje na vašem Ubuntu VPS, můžete si vytvořit testovací skript. Přejděte do kořenového adresáře dokumentů vašeho webového serveru:

    CD /var/www/html/

    Vytvořte testovací soubor:

    Nano info.php

    Vložte následující obsah:

    Uložte soubor a zavřete jej. Změna práv:

    Chown www-data:info.php

    Nyní můžete pro přístup k souboru použít IP adresu vašeho serveru. Otevřete webový prohlížeč, který používáte, a klikněte na odkaz:

    HTTP://192.168.1.111/info.php

    IP adresa 192.168.1.111 se používá pro testovací účely, takže se ujistěte, že používáte IP adresu svého serveru. Měli byste vidět stránku s aktuálními informacemi o PHP, jako je verze, možnosti kompilace, rozšíření atd.

    PS. Pokud se vám tento příspěvek líbil, sdílejte jej se svými přáteli na sociálních sítích pomocí tlačítek na levé straně příspěvku nebo jednoduše zanechte komentář níže. Děkuji předem.

    Potřebné balíčky lze často nalézt pouze ve zdrojové podobě; tento článek popisuje způsob instalace balíčku ze zdrojového kódu.

    Rozbalení

    Programy jsou obvykle distribuovány v zabalených archivech, jedná se o soubory s příponami

    .tar.gz (někdy .tgz) .tar.bz2

    Musíte pochopit rozdíl mezi archivátorem a baličem.

    Program slouží k archivaci adresářů a souborů dehet; výsledkem jeho práce je soubor s příponou .dehet. Zhruba řečeno se jedná o kopii souborového systému - adresáře a soubory s jejich atributy a přístupovými právy, umístěné v jednom souboru.

    Tento soubor bude o něco větší než celková velikost souborů, které byly archivovány. Proto (nebo možná z jiného důvodu) používají packery - programy, které umožňují zmenšit velikost souboru bez ztráty dat.

    Program dehet lze rozbalit, takže není třeba volat gunzip, nebo můžete jednoduše říci programu dehetže soubor musí být nejprve rozbalen. Například příkaz

    tar-xvf< some_app_name>.tar.gz

    okamžitě rozbalí a rozbalí. Rozdíl mezi soubory a příponami

    .tar.gz

    .tar.bz2

    pouze to, že byly použity různé packery, program dehet určuje metodu komprese automaticky a v tomto případě nejsou vyžadovány žádné další možnosti.

    Po rozbalení je potřeba přejít do výsledného adresáře, všechny níže popsané příkazy se provádějí v adresáři se zdrojovým kódem balíčku.

    CD< имя_пакета>*

    Sestavení balíčku

    K vytváření programů v GNU/Linuxu používáte (většinou) program udělat, ze kterého se spouští instrukce Makefile, ale protože existuje mnoho distribucí GNU/Linux a všechny jsou různé, abyste mohli program sestavit, musíte pro každou distribuci samostatně zadat cesty, kde jsou umístěny knihovny a hlavičkové soubory. Programátoři nemohou studovat každou distribuci a vytvářet pro každou zvlášť Makefile. Proto přišli s konfigurátory, které systém „studují“ a v souladu se získanými znalostmi tvoří Makefile. Ale nezůstali u konfigurátoru a přišli s konfigurátory konfigurátorů...tam skončili

    K sestavení potřebujeme kompilátory: jsou specifikovány v závislostech balíčku stavět-nezbytné, takže ho stačí nainstalovat se všemi závislostmi. Stále potřeba autokonf A automobilka.

    Chcete-li tedy vytvořit něco ze zdroje, musíte nejprve vytvořit konfigurátor; jak sestavit konfigurátor je popsáno v souboru configure.in. Chcete-li sestavit konfigurátor, musíte jej spustit

    ./ bootstrap ./ autogen.sh

    Pokud v archivu žádné takové skripty nejsou, můžete postupně spustit následující příkazy:

    aclocal autoheader automake --gnu --add-missing --copy --foreign autoconf -f -Wall

    Všechny tyto příkazy používají soubor konfigurovat.v. Po provedení těchto příkazů se vytvoří soubor konfigurovat. Poté musíte spustit konfigurátor a zkontrolovat přítomnost všech závislostí a také nainstalovat další možnosti sestavení (pokud je to možné) a zobrazit výsledek instalace (volitelné - nemusí být přítomno)

    ./ konfigurovat

    Konfigurátor sestaví Makefile na základě získaných znalostí a souboru makefile.am. Konfigurátoru můžete předat možnosti uvedené ve zdrojích programu, které umožňují povolit / zakázat určité funkce programu, obvykle se o nich dozvíte příkazem

    ./configure --help

    K dispozici je také sada standardních možností, jako

    Předpona=

    Což určuje, který adresář se má použít pro instalaci. Obvykle pro Ubuntu

    --prefix =/ usr --prefix =/ usr/ local

    BEZ lomítko na konci! Nyní můžete příkazem zahájit proces vytváření samotného programu

    udělat

    K sestavení stačí běžná uživatelská oprávnění. Za konec sestavení lze považovat okamžik, kdy se příkazy v konzoli přestanou "chaoticky" vykonávat a nebude ani slovo chyba. Nyní je vše zkompilováno a připraveno k instalaci.

    Instalace

    Úsilí vynaložené na správnou instalaci se později více než vyplatí, pokud bude nainstalovaný software odstraněn nebo aktualizován.

    Správná instalace (Možnost č. 1)

    Instalace pomocí utility checkinstall. Instalovat:

    sudo apt-get install checkinstall

    Nevýhoda této metody: checkinstall nerozumí všem zdrojům, protože autor programu může psát speciální instalační skripty a checkinstall nebude jim rozumět.

    Chcete-li vytvořit a nainstalovat balíček deb, musíte jej spustit

    sudo checkinstall

    Správná instalace (Možnost č. 2)

    Rychle ručně vytvořte balíček deb.

    Hlavní rozdíl oproti předchozí metodě je v tom, že v tomto případě vytvoříte balíček ručně a budete sledovat všechny provedené změny. Tato metoda vám bude také vyhovovat, pokud zdroje nepodporují sestavení balíčku checkinstall.

      Instalujeme do dočasného adresáře, kde získáme celou sadu nainstalovaných souborů:

    fakeroot make install DESTDIR=`pwd`/tempinstall

      Vytvoříme adresář DEBIAN v „kořenu balíčku“ a přidáme seznam všech souborů, které by měly jít do /etc do DEBIAN/conffiles:

    cd tempinstall mkdir DEBIAN find atd | sed "s/^/\//" > DEBIAN/ conffiles

      Poté vytvoříme soubor DEBIAN/control s následujícím obsahem:

    Balíček: package_name Verze: 1.2.3 Architektura: amd64/i386/armel/all Správce: Můžete zadat své jméno, můžete odpadky, ale pokud jej necháte prázdné, dpkg bude přísahat Závisí: Zde můžete zadat seznam balíčků oddělené čárkami. Priorita: volitelné Popis: Musíte také něco zadat, aby se nezobrazovala žádná varování

      V případě potřeby tam můžete vytvořit i skripty preinst, postinst, prerm a postrm.

      Vytvoříme deb balíček, pro který provedeme:

    dpkg -b tempinstall

      Výstupem je tempinstall.deb, který nainstalujeme

    sudo dpkg -i tempinstall.deb

    Instalace (možnost č. 3)

    Nesprávná instalace

    Nevýhodou této metody je, že pokud instalujete přímo pomocí make install, pak s největší pravděpodobností nebudete moci balíček normálně odebrat nebo aktualizovat. Navíc instalace nové verze přes starou s největší pravděpodobností přepíše vaše změny v konfiguracích. make install dělá přesně to, co má dělat – instaluje soubory na správná místa a ignoruje fakt, že tam něco už je. Po tomto procesu je absolutně nemožné získat jakékoliv informace o tom, co bylo kde umístěno a ve stravitelné podobě. Někdy samozřejmě Makefile podporuje akci odinstalace, ale to není tak běžné a není pravda, že funguje správně. Kromě toho budete muset uložit rozbalený zdrojový strom a vytvořit pravidla pro odinstalaci.

    Chcete-li nainstalovat, musíte udělat

    sudo make install

    Chcete-li odebrat balíček nainstalovaný touto metodou, musíte jej spustit v kořenovém adresáři zdrojů programu (kde jste spustili make install).

    sudo make odinstalovat

    Chyby

    Často ve fázi konfigurace konfigurátor hlásí, že konkrétní knihovna chybí. Název knihovny, který hlásí, se nemusí vždy shodovat s názvem balíčku v Ubuntu. Z vlastní zkušenosti vám mohu doporučit vyhledat požadovaný balíček v Synapticu s výjimkou předpony lib. Pokud najdete několik balíčků, které se v názvu liší předponou -dev, musíte nainstalovat balíček -dev (obvykle je to zahrnuje také balíček, který není pro vývojáře). Můžete také hledat pomocí http://packages.ubuntu.com/ zadáním názvu knihovny do vyhledávání obsahu balíčku, podobně, pokud najdete dev a non-dev, potřebujete obojí. Nebo stačí hledat na Googlu.

    Požadovaný software

    Balíčky s písmeny mm na konci popisu jsou balíčky pro programy C++. Seznam pro bmpx, ale vhodný pro téměř jakýkoli program GTK2/Gnome. Pokud jej tedy nemůžete sestavit, podívejte se na tento seznam a porovnejte jej s tím, co jste nainstalovali.

    Kompilovat:doba běhu:
    Xlibx11-devlibx11-6
    GlibMMlibglibmm-2.4-devlibglibmm-2.4-1c2a
    GTK+libgtk2.0-dev,gtk-doc-toolslibgtk2.0-0
    GTKMMlibgtkmm-2.4-devlibgtkmm-2.4-1c2a
    Gladelibglade2-devlibglade2-0
    GladeMMlibglademm-2.4-devlibglademm-2.4-1c2a
    XMLlibxml2-devlibxml2
    XML++libxml++2.6-devlibxml++2.6c2a
    DBuslibdbus-1-dev, libdbus-glib-1-devlibdbus-1-2, libdbus-glib-1-2
    Alsalibasound2-devlibasound2
    HALlibhal-dev, libhal-storage-devlibhal1,libhal-storage1
    Gaminlibgamin-devlibgamin0
    Neonlibneon25-devlibneon25
    TagLiblibtagc0-devlibtagc0
    Start-Notifylibstartup-notification0-devlibstartup-notification0
    Posílitlibboost-dev,libboost-filesystem-devlibboost-filesystem1.33.1
    MusicBrainzlibmusicbrainz4-devlibmusicbrainz4c2a
    GSstreamerlibgstreamer0.10-dev,libgstreamer-plugins-base0.10-devlibgstreamer0.10-0, libgstreamer-plugins-base0.10-0

    Tato část popisuje instalaci a konfiguraci PHP na unixových systémech. Před zahájením instalace si prosím přečtěte všechny části týkající se vaší platformy nebo webového serveru.

    Komentář:

    Některé unixové systémy (jako OpenBSD a SELinux) mohou z bezpečnostních důvodů zakázat alokaci paměti jako zapisovatelné i spustitelné paměti. Toto se nazývá porušení ochrany PaX MPROTECT nebo W^X. Tento režim alokace paměti je však vyžadován pro podporu kompilace PCRE JIT, takže v takových případech musí být PHP sestaveno bez podpory kompilace PCRE JIT nebo musí být binární soubory přidány na bílou listinu operačním systémem,

    Komentář: Křížová kompilace pro ARM pomocí "Android toolchain" není aktuálně podporována.

    před 16 lety

    Uživatelé kompilující pod některými verzemi Solaris/SunOS se mohou setkat s následující chybou.
    symbol ap_block_alarms: odkazovaný symbol nebyl nalezen

    Chcete-li tento problém vyřešit, přidejte do řádku konfigurace sestavení Apache následující příznak:
    --enable-rule=SHARED_CORE

    Takže přidáním tohoto k původním pokynům byste nakonfigurovali sestavení Apache takto:
    ./configure --prefix=/www --enable-module=so --enable-rule=SHARED_CORE

    před 12 lety

    Jsem nový v linux/apache/php (pocházející ze serveru 2003/IIS/Asp.Net), takže mě zarazilo, proč php/apache může používat pouze statický obsah. Také nemohl získat přístup k některým dokumentům, které jste vytvořili někde jinde a poté je přetáhli do adresáře HTML.

    Po nějakém výzkumu jsem zjistil, že problémem byl kontext SELinux souborů. Trvalo mi věčnost, než jsem našel správný příkaz, který bych mohl použít, abych to změnil, protože všechny příklady na internetu byly zastaralé pomocí starých příkazů:
    # chcon "user_u:object_r:httpd_sys_content_t" /var/www/html -Rc

    Tím se změní kontext SELinuxu všech dokumentů v adresáři /var/www/html (což je webový adresář pod Fedorou), aby k nim měl přístup proces httpd, a příznak "-Rc" provede změny rekurzivními a vypíše svůj průběh pro každý soubor, který se úspěšně změní.