• Programları kaynaktan derlemek ve yüklemek. Unix sistemlerine kurulum Gerekli yazılım

    Bu eğitimde size PHP 7'nin Linux VPS'ye nasıl kurulacağını göstereceğiz. PHP, web geliştirme için kullanılan sunucu taraflı bir kodlama dilidir.

    PHP 7 birçok yeni ve geliştirilmiş özellikle birlikte gelir. En dikkate değer olanlardan biri Zend Engine'in yeni versiyonudur. Ayrıca performansı artıran ve bellek kullanımını önemli ölçüde azaltan başka önemli iyileştirmeler de var. Yani PHP 7, PHP 5.6'dan iki kat daha hızlı olabilir.

    Ubuntu VPS'e PHP 7 yüklemek için sunucunuza . Oturum açtıktan sonra aşağıdaki komutu kullanarak tüm sistem yazılımını en son sürüme güncelleyin:

    Sudo apt-get update && sudo apt-get -y yükseltme

    Ayrıca sistem yerel ayarınızın UTF-8 olarak ayarlandığından emin olun. Ubuntu için PHP 7 PPA, Ondřej Suri tarafından desteklenmektedir. Bu PPA'yı Ubuntu 14.04'e PHP 7 yüklemek için kullanacağız.

    PPA'yı APT kaynakları listesine ekleyin:

    Sudo eklenti deposu ppa:ondrej/php-7.0

    'Add-apt-repository' komutunun bulunamadığına dair bir hata alırsanız, büyük olasılıkla sisteminiz 'software-properties-common' paketine dahil değildir. Devam edin ve gerekli paketi yükleyin.

    Sudo apt-get yazılım-özelliklerini-ortak yükleme

    Kurulum tamamlandıktan sonra PHP 7 PPA'yı APT kaynak listenize eklemek için komutu tekrarlayın.

    Aşağıdaki komutu kullanarak yerel paket önbelleğini güncelleyin:

    Sudo apt-get güncellemesi

    Bu birkaç dakika sürebilir ve tamamlandığında PHP 7 paketini kurmaya hazır olacaksınız.

    Sudo apt-get kurulumu php7.0

    Sunucunuzda PHP 7'nin en son kararlı sürümünün kurulu olduğundan emin olmak için şu komutu çalıştırabilirsiniz:

    Bunun gibi bir şey almalısınız:

    PHP 7.0.1-1+deb.sury.org~trusty+2 (cli) (NTS) Telif Hakkı (c) 1997-2015 PHP Grubu Zend Motoru v3.0.0, Telif Hakkı (c) 1998-2015 Zend OPcache ile Zend Teknolojileri v7.0.6-dev, Telif Hakkı (c) 1999-2015, Zend Technologies'e aittir

    Ek PHP 7 modülleri kurmak için, örneğin 'php7.0-MySQL', aşağıdaki komutu kullanabilirsiniz:

    Sudo apt-get install php7.0-mysql

    Mevcut PHP7 modüllerini aramak için aşağıdaki komutu çalıştırın:

    Sudo apt-cache arama php7

    PHP 7'nin Ubuntu VPS'nizde nasıl çalıştığını test etmek istiyorsanız bir test betiği oluşturabilirsiniz. Web sunucunuzun belge kök dizinine gidin:

    Cd /var/www/html/

    Bir test dosyası oluşturun:

    Nano info.php

    Aşağıdaki içeriği ekleyin:

    Dosyayı kaydedin ve kapatın. Hakların değiştirilmesi:

    Chown www-verileri: info.php

    Artık dosyaya erişmek için sunucunuzun IP adresini kullanabilirsiniz. Kullandığınız web tarayıcısını açın ve bağlantıyı izleyin:

    Http://192.168.1.111/info.php

    192.168.1.111 IP adresi test amaçlı kullanıldığı için sunucunuzun IP adresini kullandığınızdan emin olun. Sürüm, derleme seçenekleri, uzantılar vb. gibi güncel PHP bilgilerinin bulunduğu bir sayfa görmelisiniz.

    PS. Bu gönderiyi beğendiyseniz, lütfen gönderinin sol tarafındaki butonları kullanarak sosyal medyada arkadaşlarınızla paylaşın veya aşağıya bir yorum bırakın. Şimdiden teşekkür ederim.

    Çoğu zaman gerekli paketler yalnızca kaynak biçiminde bulunabilir; bu makalede kaynak kodundan paket yükleme yöntemi açıklanmaktadır.

    Kutu açma

    Programlar genellikle paketlenmiş arşivler halinde dağıtılır; bunlar uzantılara sahip dosyalardır

    .tar.gz (bazen .tgz) .tar.bz2

    Arşivleyici ile paketleyici arasındaki farkı anlamalısınız.

    Program dizinleri ve dosyaları arşivlemek için kullanılır katran; çalışmasının sonucu uzantılı bir dosyadır .katran. Kabaca konuşursak, bu, dosya sisteminin bir kopyasıdır - nitelikleri ve erişim haklarıyla birlikte dizinler ve dosyalar, tek bir dosyaya yerleştirilir.

    Bu dosya, arşivlenen dosyaların toplam boyutundan biraz daha büyük olacaktır. Bu nedenle (veya belki başka bir nedenden dolayı), veri kaybı olmadan dosya boyutunu küçültmenize olanak tanıyan paketleyici programlar kullanırlar.

    programı katran paketi açabilirim, aramanıza gerek yok silah fermuarı veya programa basitçe söyleyebilirsiniz katranönce dosyanın paketinden çıkarılması gerekir. Örneğin, komut

    tar -xvf< some_app_name>.tar.gz

    hemen paketi açın ve sıkıştırın. Uzantılı dosyalar arasındaki fark

    .tar.gz

    .tar.bz2

    yalnızca farklı paketleyicilerin kullanılması nedeniyle program katran sıkıştırma yöntemini otomatik olarak belirler ve bu durumda hiçbir ek seçeneğe gerek yoktur.

    Paketi açtıktan sonra ortaya çıkan dizine gitmeniz gerekir; aşağıda açıklanan tüm komutlar paketin kaynak kodunun bulunduğu dizinde yürütülür.

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

    Paketi oluşturma

    GNU/Linux'ta programlar oluşturmak için (çoğunlukla) program kullanılır yapmak, talimatları çalıştıran Make dosyası, ancak çok sayıda GNU/Linux dağıtımı olduğundan ve hepsi farklı olduğundan, programı oluşturmak için her dağıtım için kitaplıkların ve başlık dosyalarının bulunduğu yolları ayrı ayrı belirtmeniz gerekir. Programcılar her dağıtımı inceleyemez ve her biri için ayrı ayrı oluşturamaz Make dosyası. Bu nedenle sistemi "inceleyen" ve edinilen bilgiler doğrultusunda yaratan yapılandırıcılar buldular. Make dosyası. Ancak yapılandırıcıda durmadılar ve yapılandırıcıların yapılandırıcılarını buldular... işte burada durdular

    Derlemek için derleyicilere ihtiyacımız var: bunlar paket bağımlılıklarında belirtilir yapı-temel, bu yüzden onu tüm bağımlılıklarla birlikte kurmanız yeterlidir. Hala ihtiyaç duyulan otomatik konf Ve otomatik yapım.

    Dolayısıyla, kaynaktan bir şey oluşturmak için öncelikle bir yapılandırıcı oluşturmanız gerekir; yapılandırıcının nasıl oluşturulacağı,config.in dosyasında açıklanmaktadır. Yapılandırıcıyı oluşturmak için çalıştırmanız gerekir

    ./ önyükleme ./ autogen.sh

    Arşivde böyle bir script yoksa aşağıdaki komutları sırayla çalıştırabilirsiniz:

    aclocal otomatik başlık automake --gnu --add-eksik --kopya --yabancı autoconf -f -Wall

    Bu komutların tümü dosyayı kullanır yapılandırma.in. Bu komutları yürüttükten sonra bir dosya oluşturulacaktır. yapılandır. Bundan sonra, tüm bağımlılıkların varlığını kontrol etmek için yapılandırıcıyı çalıştırmanız, ayrıca ek derleme seçeneklerini (mümkünse) yüklemeniz ve kurulum sonucunu görüntülemeniz (isteğe bağlı - mevcut olmayabilir)

    ./ yapılandır

    Yapılandırıcı, edinilen bilgiye ve dosyaya dayanarak bir Makefile oluşturacaktır. makefile.am. Belirli program özelliklerini etkinleştirmenizi/devre dışı bırakmanızı sağlayan, program kaynaklarında sağlanan seçenekleri yapılandırıcıya iletebilirsiniz; genellikle bunlar hakkında şu komutla bilgi edinebilirsiniz:

    ./ yapılandırma --yardım

    Ayrıca bir dizi standart seçenek de vardır:

    Önek=

    Bu, kurulum için hangi dizinin kullanılacağını belirtir. Genellikle Ubuntu için

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

    OLMADAN sonunda eğik çizgi! Artık programın kendisini oluşturma işlemini komutla başlatabilirsiniz.

    yapmak

    Düzenli kullanıcı ayrıcalıkları oluşturmak için yeterlidir. Yapının sonu, konsoldaki komutların "rastgele" yürütülmesinin durdurulduğu ve hiçbir kelimenin olmadığı an olarak düşünülebilir. hata. Artık her şey derlendi ve kuruluma hazır.

    Kurulum

    Doğru kurulum için harcanan çabalar, gelecekte kurulu yazılımın kaldırılması veya güncellenmesi durumunda karşılığını fazlasıyla alacaktır.

    Doğru kurulum(Seçenek No. 1)

    Yardımcı programı kullanarak kurulum kontrol kurulumu. Yüklemek:

    sudo apt-get install checkinstall

    Bu yöntemin dezavantajı: kontrol kurulumu programın yazarı özel kurulum komut dosyaları yazabildiğinden ve tüm kaynakları anlamıyor kontrol kurulumu onları anlamayacağız.

    Bir borç paketi oluşturmak ve yüklemek için çalıştırmanız gerekir

    sudo checkinstall

    Doğru kurulum (Seçenek No. 2)

    Hızlı bir şekilde manuel olarak bir borç paketi oluşturun.

    Önceki yöntemden temel farkı, bu durumda paketi manuel olarak oluşturup yaptığınız tüm değişiklikleri takip etmenizdir. Kaynaklar paketin oluşturulmasını desteklemiyorsa bu yöntem size de uygun olacaktır. kontrol kurulumu.

      Kurulu dosyaların tamamını aldığımız geçici bir dizine kuruyoruz:

    fakeroot make install DESTDIR=`pwd`/tempinstall

      “Paket kökünde” bir DEBIAN dizini oluşturalım ve /etc dizinine girmesi gereken tüm dosyaların listesini DEBIAN/conffiles içine ekleyelim:

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

      Daha sonra aşağıdaki içeriğe sahip bir DEBIAN/control dosyası oluşturuyoruz:

    Paket: package_name Sürüm: 1.2.3 Mimari: amd64/i386/armel/all Bakımcı: Adınızı girebilirsiniz, çöpe atabilirsiniz ama boş bırakırsanız dpkg yemin eder Bağımlılık: Buraya paketlerin listesini girebilirsiniz virgüllerle ayrılmış. Öncelik: isteğe bağlı Açıklama: Uyarı olmaması için ayrıca bir şeyler girmeniz gerekir

      Gerekirse burada preinst, postinst, prerm ve postrm komut dosyaları da oluşturabilirsiniz.

      Yürüttüğümüz bir borç paketi oluşturuyoruz:

    dpkg -b geçici kurulum

      Çıktı, yüklediğimiz tempinstall.deb'dir.

    sudo dpkg -i tempinstall.deb

    Kurulum (seçenek No. 3)

    Yanlış kurulum

    Bu yöntemin dezavantajı, doğrudan make install yoluyla kurulum yaparsanız, büyük olasılıkla paketi normal şekilde kaldıramayacak veya güncelleyemeyecek olmanızdır. Üstelik eski sürümün üzerine yeni bir sürüm yüklemek büyük olasılıkla yapılandırmalardaki değişikliklerin üzerine yazılacaktır. make install tam olarak kendisine söyleneni yapar; dosyaları doğru yerlere yükler ve bir şeyin zaten orada olduğu gerçeğini göz ardı eder. Bu işlemden sonra neyin nereye ve sindirilebilir bir biçimde yerleştirildiğine dair herhangi bir bilgi elde etmek kesinlikle imkansızdır. Bazen Makefile elbette kaldırma işlemini destekler, ancak bu o kadar yaygın değildir ve düzgün çalıştığı bir gerçek değildir. Ayrıca, paketlenmemiş kaynak ağacını saklamanız ve kaldırma için kurallar oluşturmanız gerekecektir.

    Yüklemek için yapmanız gerekenler

    sudo make install

    Bu yöntemi kullanarak yüklenen bir paketi kaldırmak için, paketi program kaynaklarının kök dizininde (make install komutunu çalıştırdığınız yerde) çalıştırmalısınız.

    sudo make kaldırma

    Hatalar

    Çoğunlukla yapılandırma aşamasında yapılandırıcı belirli bir kitaplığın eksik olduğunu bildirir. Bildirdiği kitaplık adı her zaman Ubuntu'daki paket adıyla eşleşmez. Kendi tecrübelerime dayanarak, lib öneki hariç gerekli paketi Synaptic'te aramanızı tavsiye edebilirim.Eğer adında -dev önekiyle farklılık gösteren birkaç paket bulursanız, o zaman -dev paketini yüklemeniz gerekir (genellikle aynı zamanda geliştirme dışı bir paket de gerektirir). Ayrıca paket içeriği aramaya kütüphane adını girerek http://packages.ubuntu.com/ adresini kullanarak da arama yapabilirsiniz; benzer şekilde, dev ve non-dev'i bulursanız ikisine de ihtiyacınız vardır. Ya da sadece Google'da arayın.

    Gerekli Yazılım

    Açıklamanın sonunda mm bulunan paketler C++ programlarına yönelik paketlerdir. Liste bmpx içindir, ancak neredeyse tüm GTK2/Gnome programları için çalışacaktır. Yani eğer monte edemiyorsanız, bu listeye bakın ve yüklediklerinizle karşılaştırın.

    Derle:Çalışma süresi:
    Xlibx11-devlibx11-6
    GlibMMlibglibmm-2.4-devlibglibmm-2.4-1c2a
    GTK+libgtk2.0-dev,gtk-doc-araçlarılibgtk2.0-0
    GTKMMlibgtkmm-2.4-devlibgtkmm-2.4-1c2a
    açık alanlibglade2-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-depolama-devlibhal1,libhal-depolama1
    Oyunlibgamin-devlibgamin0
    Neonlibneon25-devlibneon25
    Etiket Kitaplığılibtagc0-devlibtagc0
    Başlangıç-Bildirimlibstartup-notification0-devlibstartup-bildirim0
    Artırmaklibboost-dev,libboost-dosya sistemi-devlibboost-dosya sistemi1.33.1
    MüzikBrainzlibmusicbrainz4-devlibmusicbrainz4c2a
    Gstreamerlibgstreamer0.10-dev,libgstreamer-plugins-base0.10-devlibgstreamer0.10-0,libgstreamer-eklentileri-base0.10-0

    Bu bölümde PHP'nin Unix sistemlere kurulumu ve konfigürasyonu anlatılmaktadır. Lütfen kuruluma başlamadan önce platformunuz veya web sunucunuzla ilgili tüm bölümleri okuyun.

    Yorum:

    Bazı Unix sistemleri (OpenBSD ve SELinux gibi), güvenlik nedeniyle belleğin hem yazılabilir hem de çalıştırılabilir bellek olarak tahsis edilmesini yasaklayabilir. Buna PaX MPROTECT veya W^X koruma ihlali denir. Bununla birlikte, PCRE JIT derlemesini desteklemek için bu bellek ayırma modu gereklidir, dolayısıyla bu gibi durumlarda PHP'nin PCRE JIT derleme desteği olmadan oluşturulması veya ikili dosyaların işletim sistemi tarafından beyaz listeye alınması gerekir.

    Yorum: ARM için "Android araç zincirini" kullanan çapraz derleme şu anda desteklenmemektedir.

    16 yıl önce

    Solaris/SunOS'un bazı sürümleri altında derleme yapan kullanıcılar aşağıdaki hatayla karşılaşabilirler.
    sembol ap_block_alarms: başvurulan sembol bulunamadı

    Bu sorunu çözmek için Apache build yapılandırma satırına aşağıdaki ek bayrağı ekleyin:
    --enable-rule=SHARED_CORE

    Yani bunu orijinal talimatlara ekleyerek Apache yapınızı şu şekilde yapılandırırsınız:
    ./configure --prefix=/www --enable-module=so --enable-rule=SHARED_CORE

    12 yıl önce

    Linux/Apache/php'de yeniyim (sunucu 2003/IIS/Asp.Net'ten geliyorum), bu yüzden php/Apache'nin neden yalnızca statik içerik kullanabildiği konusunda şaşkınlığa uğradım. Ayrıca, başka bir yerde oluşturup HTML dizinine sürüklediğiniz bazı belgelere de erişemedi.

    Biraz araştırma yaptıktan sonra sorunun dosyaların SELinux içeriğinden kaynaklandığını buldum. Bunu değiştirmek için uygun komutu bulmam çok zaman aldı, çünkü internetteki tüm örnekler eski komutlar kullanılarak güncelliğini kaybetmişti:
    # chcon "user_u:object_r:httpd_sys_content_t" /var/www/html -Rc

    Bu, httpd işleminin bunlara erişmesine izin vermek için /var/www/html dizini (Fedora altındaki web dizini) altındaki tüm belgelerin SELinux bağlamını değiştirecek ve "-Rc" bayrağı değişiklikleri Özyinelemeli yapacaktır ve başarılı bir şekilde değiştirdiği her dosya için ilerlemenin çıktısını verecektir.