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
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.gzhemen paketi açın ve sıkıştırın. Uzantılı dosyalar arasındaki fark
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.shArş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 -WallBu 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ırYapı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ımAyrı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/ localOLMADAN sonunda eğik çizgi! Artık programın kendisini oluşturma işlemini komutla başlatabilirsiniz.
yapmakDü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 checkinstallBu 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 checkinstallDoğ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:
“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:
Daha sonra aşağıdaki içeriğe sahip bir DEBIAN/control dosyası oluşturuyoruz:
Gerekirse burada preinst, postinst, prerm ve postrm komut dosyaları da oluşturabilirsiniz.
Yürüttüğümüz bir borç paketi oluşturuyoruz:
Çıktı, yüklediğimiz tempinstall.deb'dir.
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 installBu 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ırmaHatalar
Ç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: | |
---|---|---|
X | libx11-dev | libx11-6 |
GlibMM | libglibmm-2.4-dev | libglibmm-2.4-1c2a |
GTK+ | libgtk2.0-dev,gtk-doc-araçları | libgtk2.0-0 |
GTKMM | libgtkmm-2.4-dev | libgtkmm-2.4-1c2a |
açık alan | libglade2-dev | libglade2-0 |
GladeMM | libglademm-2.4-dev | libglademm-2.4-1c2a |
XML | libxml2-dev | libxml2 |
XML++ | libxml++2.6-dev | libxml++2.6c2a |
DBus | libdbus-1-dev,libdbus-glib-1-dev | libdbus-1-2,libdbus-glib-1-2 |
Alsa | libasound2-dev | libasound2 |
HAL | libhal-dev,libhal-depolama-dev | libhal1,libhal-depolama1 |
Oyun | libgamin-dev | libgamin0 |
Neon | libneon25-dev | libneon25 |
Etiket Kitaplığı | libtagc0-dev | libtagc0 |
Başlangıç-Bildirim | libstartup-notification0-dev | libstartup-bildirim0 |
Artırmak | libboost-dev,libboost-dosya sistemi-dev | libboost-dosya sistemi1.33.1 |
MüzikBrainz | libmusicbrainz4-dev | libmusicbrainz4c2a |
Gstreamer | libgstreamer0.10-dev,libgstreamer-plugins-base0.10-dev | libgstreamer0.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.