1
0
mirror of https://github.com/php/doc-tr.git synced 2026-03-23 23:02:09 +01:00
Files
archived-doc-tr/install/pecl.xml
2023-08-04 16:26:06 +03:00

599 lines
20 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 9e2d8231b5d8a3795b365c6770fab288e59e6249 Maintainer: nilgun Status: ready -->
<chapter xml:id="install.pecl" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>PECL eklentilerinin kurulması</title>
<sect1 xml:id="install.pecl.intro">
<title>PECL Kurulumları Hakkında</title>
<simpara>
&link.pecl;, <link xlink:href="&url.php.pear;">PEAR</link> üzerinden
kullanılabililen bir PHP eklentileri deposudur. Kılavuzun bu bölümü PECL
eklentilerinin nasıl edinileceği ve nasıl kurulacağını göstermek için
tasarlanmıştır.
</simpara>
<simpara>
Bu talimatlarda, PHP kaynak kodunun
<literal>/php/kaynak/dizininiz/</literal> altında bulunduğu ve PECL
eklentisinin isminin <literal>eklenti</literal> olduğu varsayılacaktır.
Hazırlıkları buna göre yapılmalıdır. Bu talimatlarda ayrıca, <link
xlink:href="&url.php.pear.cli;">pear komutu</link>nun kullanılmasının
bilindiği varsayılacaktır. PEAR kılavuzundaki <literal>pear</literal>
komutu ile ilgili bilgiler <command>pecl</command> komutu için de
geçerlidir.
</simpara>
<simpara>
Burada genel olarak eklentinin paylaşımlı olarak derlenmesi, kurulması ve
yüklenmesi üzerinde durulacaktır. Sonraki bölümlerde açıklanan yöntemler
eklentiyi nasıl derleyip kuracağınızla ilgili çeşitli talimatlar içerir,
fakat bunlar otomatik olarak yüklenmez. Eklentiler
bir <link linkend="ini.extension">extension</link> yönergesi eklenerek
yüklenebilirler. Bunun için &php.ini; dosyası veya
<function>dl</function> işlevi kullanılabilir.
</simpara>
<simpara>
PHP modüllerini derlerken, derleme için gerekli araçların (autoconf,
automake, libtool gibi) birbirleriyle en uyumlu sürümlerini kullanıyor
olmak önemlidir. Gerekli araçlar ve bunların gerekli sürümleriyle ilgili
ayrıntılı bilgi <link xlink:href="&url.php.anongit;">Anonim Git
Talimatları</link> sayfasında bulunabilir.
</simpara>
</sect1>
<sect1 xml:id="install.pecl.downloads">
<title>PECL Eklentilerinin İndirilmesi</title>
<simpara>
PECL eklentilerini indirmek için çeşitli seçenekler vardır:
</simpara>
<itemizedlist>
<listitem>
<simpara>
<command>pecl install eklenti</command> komutu eklenti kodunu
otomatik olarak indirir, dolayısıyla ayrı bir indirme işlemine gerek
kalmaz.
</simpara>
</listitem>
<listitem>
<simpara>
<link xlink:href="&url.pecl;">&url.pecl;</link>
</simpara>
<simpara>
PECL sitesi, PHP Geliştirme Ekibi tarafından önerilen farklı eklentiler
hakkında bilgiler içerir. Burada bulunan bilgilerden bazıları:
ChangeLog dosyaları, dağıtım notları, gereksinimler ve benzeri
ayrıntılar.
</simpara>
</listitem>
<listitem>
<simpara>
<command>pecl download eklenti</command> komutu
</simpara>
<simpara>
PECL sitesinine dağıtım listesinde bulunan eklentileri indirip kurmak
için <link xlink:href="&url.php.pear.cli;">pecl komutu</link>
kullanılabilir. İstenen sürümler ayrıca belirtilebilir.
</simpara>
</listitem>
<listitem>
<simpara>
<acronym>git</acronym>
</simpara>
<simpara>
Birçok PECL uzantısı GitHub'da bulunabilir.
<!-- TODO Expand -->
</simpara>
</listitem>
<listitem>
<simpara>
<acronym>SVN</acronym>
</simpara>
<simpara>
Bazı PECL eklentileri ayrıca <acronym>SVN</acronym>'de de bulunmaktadır.
SVN içeriği <link xlink:href="&url.php.svn;pecl/">&url.php.svn;pecl/</link>
adresinde incelenebilir. Eklentileri doğrudan <acronym>SVN</acronym>'den
indirmek için sırayla aşağıdaki komutlar verilebilir.
</simpara>
<para>
<screen>
$ svn checkout https://svn.php.net/repository/pecl/extname/trunk eklenti
</screen>
</para>
</listitem>
<listitem>
<simpara>
Windows için
</simpara>
<simpara>
PHP projesi çoğu PECL eklentisinin Windows çalıştırılabilirlerini
derlemekte ve ilgili yere kurmaktadır.
</simpara>
</listitem>
</itemizedlist>
</sect1>
<sect1 xml:id="install.pecl.windows">
<title>Bir PHP Eklentisinin Windows Kurulumu</title>
<para>
Windows'ta bir PHP eklentisini yüklemenin iki yolu vardır: Ya eklenti
PHP içinde derlenir ya da DLL olarak yüklenir. Derlenmiş bir
eklentiyi yüklemek en kolay ve en çok tercih edilen yoldur.
</para>
<para>
Bir eklentiyi yüklemek için sistemde o eklentinin <filename>.dll</filename>
dosyasının bulunması gerekir. Tüm eklentiler otomatik olarak belirli
aralıklarla PHP Grubu tarafından derlenirler (bunları indirilmesi
sonraki bölümde açıklanmıştır.
</para>
<para>
Bir eklentiyi PHP içinde derlemek için <link
linkend="install.windows.building">Kaynak kod paketinden
derleme</link> belgesine bakılabilir.
</para>
<para>
Bir eklentiyi tek başına (yani bir DLL olarak) derlemek için <link
linkend="install.windows.building">Kaynak kod paketinden derleme</link>
belgesine bakılabilir. Eğer DLL dosyası ne PHP dağıtımında ne
de PECL sitesinde mevcutsa, eklentiyi kullanmaya başlamadan önce derlemek
gerekebilir.
</para>
<sect2 xml:id="install.pecl.windows.find">
<title>Bir eklenti nereden bulunur?</title>
<para>
PHP eklentileri genellikle <filename>php_*.dll</filename> biçeminde
isimlendirilir (yıldız iminin yerine eklentinin ismi gelir) ve
<filename>PHP\ext</filename> dizini altında bulunur.
</para>
<para>
PHP, geliştiricilerin büyük çoğunluğunca en faydalı bulunan eklentilerle
birlikte gelir. Bu tür paketlere <emphasis>toplu paket</emphasis> adı verilir.
</para>
<para>
Bununla birlikte, çekirdek eklentilerle sağlanmamış bir işlevselliğe
ihtiyaç duyulursa, bunları edinmek için
<link xlink:href="&url.pecl;">PECL sitesinde</link> bulunabilir.
PHP Eklentileri Halk Kütüphanesi (PECL - PHP Extension
Community Library) bir PHP Eklentileri deposu olup PHP eklentilerinin
geliştirilmesi ve indirilmesi için barındırma oluşumlarını ve bilinen
tüm eklentilerin bir dizinini içerir.
</para>
<para>
Kendi kullanımı için eklenti geliştirenler bu eklentinin PECL'de
barındırılmasını isteyebilir, böylece ihtiyaçları aynı olan
başkaları da bu eklentiden yararlanabilir. Bunun bazı olumlu yan etkileri
de vardır: Geribildirim, teşekkür, hata bildirimi, hatta düzeltme ve yama
alma şansı olur. Eklentiyi barındırılmak üzere PECL'ye göndermeden
önce &link.pecl; adresinin incelenmesi önerilir.
</para>
</sect2>
<sect2 xml:id="install.pecl.windows.which">
<title>Hangi eklenti indirilecek?</title>
<para>
<emphasis>Çoğu zaman her DLL'nin çok sayıda sürümü vardır:</emphasis>
<itemizedlist>
<listitem>
<simpara>
Farklı sürüm numaraları (en azından ilk iki sayı tutmalı)
</simpara>
</listitem>
<listitem>
<simpara>
Farklı evre güvenceli olanlar
</simpara>
</listitem>
<listitem>
<simpara>
Farklı işlemciler için olanlar (x86, x64, ...)
</simpara>
</listitem>
<listitem>
<simpara>
Farklı hata ayıklama seçenekli olanlar
</simpara>
</listitem>
<listitem>
<simpara>
<literal>vs.</literal>
</simpara>
</listitem>
</itemizedlist>
</para>
<para>
Şuna da dikkat edilmelidir: Eklenti ayarları kullanılan PHP
çalıştırılabilirinin ayarları ile aynı olmalıdır. Aşağıdaki PHP betiği
PHP ayarlarının tamamını içerecektir:
</para>
<para>
<example>
<title>- <function>phpinfo</function> kullanımı</title>
<programlisting role="php">
<![CDATA[
<?php
phpinfo();
?>
]]>
</programlisting>
</example>
</para>
<para>
Ya da komut satırından:
<screen>
<![CDATA[
sürücü:\dizin\yolu\php\executable\php.exe -i
]]>
</screen>
</para>
</sect2>
<sect2 xml:id="install.pecl.windows.loading">
<title>Bir eklentinin yüklenmesi</title>
<para>
Bir PHP eklentisini yüklemenin en bilinen yolu eklentiyi &php.ini;
dosyasına eklemektir. Dikkatle incelenirse &php.ini; dosyasında bir çok
eklentinin zaten ekli olduğunu görülür. Eklentiyi etkin kılmak için
yapılacak tek değişiklik eklentinin belirtildiği satırın başındaki
noktalı virgülü silmek olacaktır.
</para>
<para>
PHP 7.2.0 ve üzeri sürümlerde, eklentinin dosya adı yerine eklenti adı da
kullanılabilir. Bu işletim sisteminden bağımsız ve daha
kolay olduğundan, özellikle yeni başlayanlar için, yüklenecek eklentileri
belirlemenin önerilen yolu haline gelir. Dosya adları, önceki sürümlerle
uyumluluk için desteklenmeye devam etmektedir.
</para>
<screen>
<![CDATA[
;extension=php_eklenti.dll
]]>
</screen>
<screen>
<![CDATA[
extension=php_eklenti.dll
]]>
</screen>
<screen>
<![CDATA[
; PHP 7.2 ve sonrasında önerilen:
extension=eklenti
zend_extension=diğer_eklenti
]]>
</screen>
<para>
Bununla birlikte, bazı HTTP sunucuları, PHP çalıştırılabilirinin yanına
konmuş php.ini dosyasını kullanmadıklarından eklentiyi göremeyebilir.
HTTP sunucusunun kullandığı &php.ini; dosyasının bulunduğu yer
<function>phpinfo</function> işlevi kullanılarak şöyle öğrenilebilir:
</para>
<screen>
<![CDATA[
Configuration File (php.ini) Path C:\WINDOWS
]]>
</screen>
<screen>
<![CDATA[
Loaded Configuration File C:\Program Files\PHP\8.2\php.ini
]]>
</screen>
<para>
Eklentiyi etkin kıldıktan sonra &php.ini; dosyası kaydedilmeli ve HTTP
sunucusu yeniden başlatıldıktan sonra tekrar <function>phpinfo</function>
çıktısına bakılmalıdır. Yeni eklentinin artık kendi bölümünde görünüyor
olması gerekir.
</para>
</sect2>
<sect2 xml:id="install.pecl.windows.problemsolving">
<title>Sorunların çözümlenmesi</title>
<para>
Eğer eklenti <function>phpinfo</function> çıktısında görünmüyorsa sorunun
kaynağını bulmak için günlük dosyalarına bakılmalıdır.
</para>
<para>
PHP, komut satırından kullanılıyorsa (CGI), eklenti yükleme hatası
doğrudan ekranda görülebilir.
</para>
<para>
PHP bir HTTP sunucusu ile kullanılıyorsa günlük dosyalarının yeri ve
biçemi kullanılan yazılıma göre değişir. Günlüklerin yerini bulmak
için kullanılan HTTP sunucusunun belgelerine bakılmalıdır.
</para>
<para>
Sorunların çoğu DLL dosyasının ve bu dosyanın bağımlı olduğu DLL'lerin yeri
ile ilgilidir. <literal>php.ini</literal> içindeki "<link
linkend="ini.extension-dir">extension_dir</link>" yönergesinin değeri ile
derleme sırasında yapılan ayarlar arasında bir tutarsızlık olabilir.
</para>
<para>
Eğer sorun derleme sırasında yapılan ayarlarla uyumsuzluktan
kaynaklanıyorsa muhtemelen indirilen DLL dosyası doğru yere
konulmamış demektir. Eklentinin doğru ayarlarla tekrar indirilmesi
gerekebilir. Bu yapıldıktan sonra <function>phpinfo</function>
çıktısının tekrar incelenmesi uygun olacaktır.
</para>
</sect2>
</sect1>
<sect1 xml:id="install.pecl.pear">
<title>Paylaşımlı PECL eklentilerinin <code>pecl</code> komutu ile
derlenmesi</title>
<simpara>
PECL, paylaşımlı PHP eklentilerinin oluşturulmasını kolaylaştırır. <link
xlink:href="&url.php.pear.cli;">pecl komutu</link> şöyle kullanılabilir:
</simpara>
<para>
<screen>
$ pecl install eklenti
</screen>
</para>
<simpara>
Bu komutla <emphasis>eklenti</emphasis>nin kaynak kodu indirilecek,
derlenecek ve <filename>eklenti.so</filename> adıyla <link
linkend="ini.extension-dir">extension_dir</link> yönergesinde belirtilen
dizine kurulacaktır. Böylece <filename>eklenti.so</filename> &php.ini;
üzerinden yüklenebilir duruma gelmiş olacaktır.
</simpara>
<simpara>
Öntanımlı olarak, <command>pecl</command> komutu, <literal>alfa</literal>
veya <literal>beta</literal> olarak imlenmiş paketleri kurmaz. Eklentinin
henüz <literal>kararlı</literal> bir sürümü yoksa,
<literal>beta</literal> sürümü şöyle kurulabilir:
</simpara>
<para>
<screen>
$ pecl install eklenti-beta
</screen>
</para>
<para>
Ayrıca belli bir sürüm şu şekilde kurulabilir:
</para>
<para>
<screen>
$ pecl install eklenti-0.1
</screen>
</para>
<note>
<para>
Eklentiyi &php.ini; dosyasında etkin kıldıktan sonra değişikliklerin
etkin olması için HTTP sunucusunun yeniden başlatııması gerekir.
</para>
</note>
</sect1>
<sect1 xml:id="install.pecl.phpize">
<title>Paylaşımlı PECL eklentilerinin <code>phpize</code> ile derlenmesi
</title>
<simpara>
<command>pecl</command> komutu ile kurulumun mümkün olmadığı durumlar
olabilir. Bir güvenlik duvarı etkin olabilir veya eklentinin PECL
uyumlu paketi yoktur ya da henüz dağıtılmamış git sürümü kurulmak
isteniyordur, vs. Böyle bir eklentinin derleme işlemi daha temel
derleme araçları (make gibi) kullanılarak gerçekleştirilebilir.
</simpara>
<simpara>
Bir PHP eklentisini derleme işlemine hazırlamak için
<command>phpize</command> komutu kullanılır. Aşağıdaki örnekte,
eklentinin kaynak kod paketinin <filename>eklenti</filename> dizininde
bulunduğu varsayılmıştır:
</simpara>
<para>
<screen>
<![CDATA[
$ cd eklenti
$ phpize
$ ./configure
$ make
# make install
]]>
</screen>
</para>
<simpara>
Başarılı bir kurulum sonucunda eklenti PHP <link
linkend="ini.extension-dir">eklentileri dizinine</link>
<filename>eklenti.so</filename> adıyla yerleştirilir. Eklentiyi etkin
kılmak için &php.ini; dosyasına bir
<literal>extension=eklenti.so</literal> satırı eklemek gerekecektir.
</simpara>
<simpara>
Eğer sistemde <command>phpize</command> komutu yoksa ve RPM gibi
önceden derlenmiş paketler kullanılabiliyorsa,
<command>phpize</command> komutunu ve PHP eklentilerini derlemek için
gerekli başlık dosyalarını içermesi muhtemel uygun bir PHP
geliştirme sürümünü kurmak gerekebilir.
</simpara>
<simpara>
Komutun kullanım bilgilerini görmek için <command>phpize --help</command>
komutu verilmelidir.
</simpara>
</sect1>
<sect1 xml:id="install.pecl.php-config">
<title>php-config</title>
<para>
<command>php-config</command> basit bir kabuk betiği olup kurulu PHP
yapılandırması hakkında bilgi edinmek için kullanılır.
</para>
<para>
Eklentiler derlenirken, birden fazla PHP sürümü kuruluysa yapılandırma
sırasında <option role="configure">--with-php-config</option> seçeneğinde
ilgili <command>php-config</command> betiğinin yolu belirtilerek hangi
sürümün kurulmak istendiği belirtilebilir.
</para>
<para>
<command>php-config</command> betiği tarafından sağlanan komut satırı
seçeneklerinin listesi, betiği <option>-h</option> seçeneği ile
çalıştırarak alınabilir:
<screen>
<![CDATA[
Usage: /usr/local/bin/php-config [OPTION]
Options:
--prefix [...]
--includes [...]
--ldflags [...]
--libs [...]
--extension-dir [...]
--include-dir [...]
--php-binary [...]
--php-sapis [...]
--configure-options [...]
--version [...]
--vernum [...]
]]>
</screen>
</para>
<para>
<table>
<title>Komut satırı seçenekleri</title>
<tgroup cols="2">
<thead>
<row>
<entry>Seçenek</entry>
<entry>ıklama</entry>
</row>
</thead>
<tbody>
<row>
<entry>--prefix</entry>
<entry>PHP'nin kurulu olduğu dizinin öneki,
<filename>/usr/local</filename> gibi.</entry>
</row>
<row>
<entry>--includes</entry>
<entry>Tüm başlık dosyaları ile <option>-I</option>
seçeneklerinin listesi</entry>
</row>
<row>
<entry>--ldflags</entry>
<entry>PHP'nin birlikte derlendiği <literal>LD</literal> seçenekleri</entry>
</row>
<row>
<entry>--libs</entry>
<entry>PHP'nin birlikte derlendiği ek kütüphaneler</entry>
</row>
<row>
<entry>--extension-dir</entry>
<entry>Eklentilerin aranacağı öntanımlı dizin</entry>
</row>
<row>
<entry>--include-dir</entry>
<entry>Başlık dosyalarının bulunduğu öntanımlı dizininin öneki</entry>
</row>
<row>
<entry>--php-binary</entry>
<entry>PHP CLI veya CGI çalıştırılabilirinin tam yolu</entry>
</row>
<row>
<entry>--php-sapis</entry>
<entry>Kullanılabilir tüm SAPI modüllerini gösterir</entry>
</row>
<row>
<entry>--configure-options</entry>
<entry>Geçerli PHP kurulumunu yeniden oluşturmak için yapılandırma
seçenekleri</entry>
</row>
<row>
<entry>--version</entry>
<entry>PHP sürümü</entry>
</row>
<row>
<entry>--vernum</entry>
<entry>Tamsayı olarak PHP sürümü</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</sect1>
<sect1 xml:id="install.pecl.static">
<title>PECL eklentilerinin PHP içinde duruk olarak derlenmesi</title>
<simpara>
Bazen bir PECL eklentisini PHP çalıştırılabilirinin içinde duruk olarak
derlemek gerekebilir. Bunu yapmak için eklentinin
<filename>/php/kaynak/dizininiz/ext/</filename> dizinine yerleştirilmesi
ve PHP kaynak paketinin <code>configure</code> betiğinin yeniden
çalıştırılması gerekir.
</simpara>
<para>
<screen>
<![CDATA[
$ cd /php/kaynak/dizininiz/ext
$ pecl download eklenti
$ gzip -d < eklenti.tgz | tar -xvf -
$ mv eklenti-x.x.x eklenti
]]>
</screen>
</para>
<simpara>
Bu işlemin sonucunda eklenti şöyle bir dizinin altına yerleştirilmiş
olacaktır:
</simpara>
<para>
<screen>
/php/kaynak/dizininiz/ext/eklenti
</screen>
</para>
<simpara>
Artık PHP kaynak paketinin <code>configure</code> betiğini yeniden
oluşturulup PHP her zamanki gibi derlenebilir:
</simpara>
<para>
<screen>
$ cd /php/kaynak/dizininiz/
$ rm configure
$ ./buildconf --force
$ ./configure --help
$ ./configure --with-eklenti --enable-baskabireklenti --with-filanca
$ make
$ make install
</screen>
</para>
<note>
<simpara>
<command>buildconf</command> betiğini çalıştırabilmek için
<command>autoconf</command> 2.68 ve <command>automake</command> 1.4+
paketlerinin sistemde kurulu olması gerekir (daha yeni
autoconf sürümleri de çalışabilir ama onlar desteklenmemektedir).
</simpara>
</note>
<simpara>
<option role="configure">--enable-eklenti</option> seçeneğinin mi yoksa
<option role="configure">--with-eklenti</option> seçeneğinin mi kullanılacağı
eklentiye bağlıdır. Genellikle harici kütüphanelere ihtiyacı olmayan eklentiler
<option role="configure">--enable</option> seçeneğini kullanır. Hangisinin
kullanılacağından emin olmak için <command>buildconf</command>'tan sonra şu
çalıştırılabilir:
</simpara>
<para>
<screen>
$ ./configure --help | grep eklenti
</screen>
</para>
</sect1>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->