{"id":122,"date":"2016-08-02T14:17:06","date_gmt":"2016-08-02T11:17:06","guid":{"rendered":"https:\/\/ben.semihkiroglu.com.tr\/blog\/?p=4"},"modified":"2025-03-06T01:22:29","modified_gmt":"2025-03-05T22:22:29","slug":"centos-6-icin-freepbx-kurulumu","status":"publish","type":"post","link":"https:\/\/semih.kiroglu.net\/blog\/centos-6-icin-freepbx-kurulumu\/","title":{"rendered":"[B\u00f6l\u00fcm 1] CentOS 6.8 i\u00e7in FreePBX 13 Kurulumu"},"content":{"rendered":"<p>[Not: Yaz\u0131 MySQL&#8217;de kullan\u0131c\u0131 ve veritaban\u0131 olu\u015fturma anlat\u0131mlar\u0131 da eklenerek ve baz\u0131 i\u015flemlerin s\u0131ralar\u0131 de\u011fi\u015ftirilerek g\u00fcncellendi.]<\/p>\n<p>Merhabalar. Bu yaz\u0131, yeni kurdu\u011fum bu blog i\u00e7in ilk yaz\u0131 olma \u00f6zelli\u011fini ta\u015f\u0131yor. O y\u00fczden amat\u00f6rce yaz\u0131labilir, ba\u015ftan belirtmek isterim. Ayr\u0131ca y\u0131llard\u0131r hayalini kurdu\u011fum firmada, Turkcell&#8217;de staj yaparken bu yaz\u0131y\u0131 kaleme almak beni ayr\u0131ca heyecanland\u0131r\u0131yor. \u015eimdiden keyifli okumalar&#8230;<\/p>\n<p><!--more--><\/p>\n<p>Bundan yakla\u015f\u0131k 1 y\u0131l kadar \u00f6nce DigitalOcean&#8217;dan sat\u0131n ald\u0131\u011f\u0131m CentOS 6 32 bit sunucumun \u00fczerine FreePBX kurmak i\u00e7in \u00e7ok efor sarfetmi\u015ftim. Gerek sistem y\u00f6netimi konular\u0131ndaki tecr\u00fcbesizli\u011fim, gerek FreePBX&#8217;in dok\u00fcmantasyonlar\u0131 ciddi sorunlar ya\u015fatm\u0131\u015ft\u0131 bana. Bir \u015fekilde kurulup \u00e7al\u0131\u015fmay\u0131 ba\u015farabilen sunucumu; bug\u00fcnlerde, \u00e7ok fazla upgrade alm\u0131\u015f olmas\u0131, hantal \u00e7al\u0131\u015fmas\u0131, bak\u0131ms\u0131z ve g\u00fcvensiz olmas\u0131 nedeniyle yeniden kurmaya karar verdim. Bu sefer bir \u00e7ok konuda titiz \u00e7al\u0131\u015fmak istiyorum ve bu yaz\u0131n\u0131n bo\u015f bir yaz\u0131 olmamas\u0131n\u0131 istiyorum.<\/p>\n<p>Haz\u0131rsak, ba\u015flayal\u0131m!<\/p>\n<p>\u00d6ncelikle bu yaz\u0131y\u0131 kaleme ald\u0131\u011f\u0131m d\u00f6nemde DigitalOcean&#8217;\u0131n lokasyon ba\u011f\u0131ms\u0131z IP da\u011f\u0131tmas\u0131 ve yeni IP&#8217;leri sevmememden dolay\u0131 eski sunucumu Destroy etmeden, sadece Rebuild ederek devam etmek istiyorum. Rebuild edece\u011fim sunucu 512MB plan\u0131ndaki bir sunucu olacak ve CentOS 6.8 64 bit OS y\u00fckleyece\u011fim. Kuraca\u011f\u0131m FreePBX s\u00fcr\u00fcm\u00fc ise 13 olacak.<\/p>\n<p>SSH \u00fczerinden (\u015fimdilik) root kullan\u0131c\u0131 ile giri\u015f yapt\u0131m. \u00d6ncelikle yum ile repo&#8217;lar\u0131 kontrol edip varsa g\u00fcncellemeleri y\u00fckleyelim:<\/p>\n<pre class=\"prettyprint\">yum -y update<\/pre>\n<p>Bir de i\u015fimizin garanti olmas\u0131 i\u00e7in EPEL repo&#8217;lar\u0131n\u0131 sisteme dahil edip\u00a0tekrar kontrol edelim:<\/p>\n<pre class=\"prettyprint\">wget http:\/\/download.fedoraproject.org\/pub\/epel\/6\/x86_64\/epel-release-6-8.noarch.rpm\nrpm -ivh epel-release-6-8.noarch.rpm\nyum -y update<\/pre>\n<p>Mutemelen EPEL repo&#8217;lar\u0131 \u00fczerinden g\u00fcncelleme alacaks\u0131n\u0131z. Tamamland\u0131ktan sonra FreePBX kurulumumuza ba\u015flayabiliriz.<\/p>\n<p>\u00d6ncelikle SELinux&#8217;un devre d\u0131\u015f\u0131 olmas\u0131 gerek. DigitalOcean halihaz\u0131rda zaten devre d\u0131\u015f\u0131 g\u00f6nderiyor bu \u00f6zelli\u011fi. Kontrol etmek i\u00e7in \u015fu komutu uygulayal\u0131m:<\/p>\n<pre class=\"prettyprint\">sestatus<\/pre>\n<p>Ald\u0131\u011f\u0131n\u0131z yan\u0131t &#8220;SELinux status: disabled&#8221; ise problem yok. E\u011fer de\u011filse \u015fu komutu uygulayarak SELinux&#8217;u devre d\u0131\u015f\u0131 b\u0131rakal\u0131m:<\/p>\n<pre class=\"prettyprint\">sed -i 's\/\\(^SELINUX=\\).*\/\\SELINUX=disabled\/' \/etc\/sysconfig\/selinux<\/pre>\n<p>De\u011fi\u015fikliklerin ba\u015far\u0131l\u0131 oldu\u011fundan emin olmak i\u00e7in sistemi reboot edip tekrar kontrol etmenizi \u00f6neririm.<\/p>\n<p>FreePBX 13, kurulum s\u0131ras\u0131nda\u00a0ve \u00e7al\u0131\u015f\u0131rken\u00a0CentOS 6&#8217;n\u0131n &#8220;Development Tools&#8221; yaz\u0131l\u0131m paketine ve baz\u0131 ek yaz\u0131l\u0131mlara ihtiya\u00e7 duyuyor. \u015eu komutlarla y\u00fckleyelim:<\/p>\n<pre class=\"prettyprint\">yum -y groupinstall core base \"Development Tools\"\n<!--?prettify linenums=true?--><\/pre>\n<pre class=\"prettyprint\">yum -y install gcc gcc-c++ lynx bison mysql-devel mysql-server php php-mysql php-pear php-mbstring php-xml tftp-server httpd make ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel libxml2-devel libtiff-devel audiofile-devel gtk2-devel subversion kernel-devel git subversion kernel-devel php-process crontabs cronie cronie-anacron wget vim php-xml uuid-devel libtool sqlite-devel unixODBC mysql-connector-odbc libuuid-devel binutils-devel<\/pre>\n<p>Bu a\u015famalar tamamland\u0131ktan sonra kurulum s\u0131ras\u0131nda sorun ya\u015famamak i\u00e7in ge\u00e7ici olarak firewall&#8217;umuzu\u00a0kapatmam\u0131z \u00f6neriliyor. DigitalOcean&#8217;daki CentOS 6 sunucular zaten \u00f6ny\u00fckl\u00fc olarak firewall&#8217;u kapal\u0131 halde geliyor. Fakat kontrol edip gerekirse kapatmam\u0131z gerekli. \u00a0\u0130lk komutumuz kontrol etmek i\u00e7in, ikinci komutumuz firewall hizmetini durdurmak i\u00e7in:<\/p>\n<pre class=\"prettyprint\">service iptables status<\/pre>\n<pre class=\"prettyprint\">service iptables stop<\/pre>\n<p>E\u011fer kontrol\u00fcn\u00fczde firewall&#8217;un \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6rd\u00fcyseniz, durdurma komutu bir sonraki reboot&#8217;a kadar etkili olacakt\u0131r. Dok\u00fcman bize a\u00e7\u0131l\u0131\u015fta \u00e7al\u0131\u015fmay\u0131 tamamen engellememizi s\u00f6yl\u00fcyor fakat i\u00e7im elvermiyor bunu yapmaya. O y\u00fczden her reboot&#8217;tan sonra firewall hizmetini elle durdurmam\u0131z gerekecek.<\/p>\n<p>Az \u00f6nce y\u00fckledi\u011fimiz yaz\u0131l\u0131mlar\u0131n i\u00e7indeki httpd ve mysqld servislerinin a\u00e7\u0131l\u0131\u015fta otomatik olarak ba\u015flat\u0131labilmesi i\u00e7in \u015fu komutlar\u0131 uyguluyoruz:<\/p>\n<pre class=\"prettyprint\">chkconfig --level 345 httpd on\nchkconfig --level 345 mysqld on<\/pre>\n<p>\u015eimdi de bu hizmetleri ba\u015flat\u0131yoruz:<\/p>\n<pre class=\"prettyprint\">service httpd start\nservice mysqld start<\/pre>\n<p>Bu konuyu ara\u015ft\u0131ramad\u0131\u011f\u0131m i\u00e7in bilgi vermek istemiyorum. Dok\u00fcman PearDB kurmam\u0131z\u0131 istiyor. \u015eu komutlarla kurabiliriz:<\/p>\n<pre class=\"prettyprint\">pear channel-update pear.php.net\npear install db-1.7.14<\/pre>\n<p>Bu s\u0131rada \u015f\u00f6yle bir uyar\u0131 al\u0131rsak, \u015fimdilik \u00f6nemsememiz gerekiyor. Do\u011frudan ge\u00e7ebiliriz:<\/p>\n<pre class=\"prettyprint\">WARNING: \"pear\/DB\" is deprecated in favor of \"pear\/MDB2\"<\/pre>\n<p>Sunucumuzu yeniden ba\u015flatal\u0131m:<\/p>\n<pre class=\"prettyprint\">reboot now<\/pre>\n<p>Bu nokta \u00f6n-\u00f6n ko\u015fullar\u0131 haz\u0131rlad\u0131 sadece. Yeniden ba\u015flatma tamamland\u0131ysa FreePBX&#8217;in \u00f6n ko\u015fullar\u0131n\u0131 ve ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 haz\u0131rlamaya ba\u015flayal\u0131m. \u00d6ncelikle unutmadan, tekrar firewall hizmetini durdural\u0131m:<\/p>\n<pre class=\"prettyprint\">service iptables stop<\/pre>\n<p>\u0130\u015fler kar\u0131\u015fmadan bir de Asterisk&#8217;in kullanaca\u011f\u0131 user account&#8217;u olu\u015ftural\u0131m (&#8220;Asterisk nedir la?&#8221; diyen dostlar\u0131m i\u00e7in k\u00fc\u00e7\u00fck bir Google aramas\u0131 \u00f6neriyorum. K\u0131saca FreePBX&#8217;in \u00e7ekirde\u011fi diyebiliriz.):<\/p>\n<pre class=\"prettyprint\">adduser asterisk -M -c \"Asterisk User\"<\/pre>\n<p>\u00d6ncelikle FreePBX i\u00e7in gerekli olan t\u00fcm paketleri \/usr\/src dizinine indirelim. Orada beklesinler:<\/p>\n<pre class=\"prettyprint\">cd \/usr\/src\nwget https:\/\/iksemel.googlecode.com\/files\/iksemel-1.4.tar.gz\nwget http:\/\/downloads.asterisk.org\/pub\/telephony\/dahdi-linux-complete\/dahdi-linux-complete-current.tar.gz\nwget http:\/\/downloads.asterisk.org\/pub\/telephony\/libpri\/libpri-current.tar.gz\nwget http:\/\/downloads.asterisk.org\/pub\/telephony\/asterisk\/asterisk-13-current.tar.gz\nwget -O jansson.tar.gz https:\/\/github.com\/akheron\/jansson\/archive\/v2.7.tar.gz\nwget http:\/\/www.pjsip.org\/release\/2.4\/pjproject-2.4.tar.bz2\nwget http:\/\/mirror.freepbx.org\/modules\/packages\/freepbx\/freepbx-13.0-latest.tgz<\/pre>\n<p>Baz\u0131 \u015feyler dok\u00fcmana g\u00f6re iste\u011fe ba\u011fl\u0131 ama hangisi hangisinin k\u00fct\u00fcphanesi, ne neyle ba\u011f\u0131ml\u0131, pek a\u015fikar belirtilmemi\u015f ve en ba\u015fta dok\u00fcmantasyonun \u00e7ok tutars\u0131z oldu\u011funu s\u00f6ylemi\u015ftim. Bu y\u00fczden i\u015fimizi sa\u011flama al\u0131p tamam\u0131n\u0131 y\u00fckleyece\u011fiz. Daha sonra ba\u015f\u0131m\u0131z a\u011fr\u0131mas\u0131n. Sonu\u00e7ta sunucunun saatine para gidiyor yani \ud83d\ude1b<\/p>\n<p>Bundan sonras\u0131n\u0131 toptan komutlar olarak yaz\u0131p ge\u00e7meyi d\u00fc\u015f\u00fcn\u00fcyorum. \u00c7\u00fcnk\u00fc \u00e7ok bilgili oldu\u011fumu s\u00f6yleyemem paketlerin ne i\u015fe yarad\u0131klar\u0131 konular\u0131nda. K\u0131sa yoldan y\u00fckleyelim yani \ud83d\ude42<\/p>\n<p>\u015eu komutlar\u0131 uygulayarak s\u0131rayla paketleri extract edip compile ederek y\u00fcklemeye ba\u015flayal\u0131m. Bu a\u015fama uzun s\u00fcrebilir:<\/p>\n<pre class=\"prettyprint\">cd \/usr\/src\ntar xf iksemel-*.tar.gz\nrm -rf iksemel-*.tar.gz\ncd iksemel-*\n.\/configure\nmake\nmake install\ncd \/usr\/src\ntar xvfz dahdi-linux-complete-current.tar.gz\ntar xvfz libpri-current.tar.gz\nrm -f dahdi-linux-complete-current.tar.gz libpri-current.tar.gz\ncd dahdi-linux-complete-*\nmake all\nmake install\nmake config\ncd \/usr\/src\/libpri-*\nmake\nmake install\ncd \/usr\/src\ntar -xjvf pjproject-2.4.tar.bz2\nrm -f pjproject-2.4.tar.bz2\ncd pjproject-2.4\nCFLAGS='-DPJ_HAS_IPV6=1' .\/configure --prefix=\/usr --enable-shared --disable-sound \\\n--disable-resample --disable-video --disable-opencore-amr --libdir=\/usr\/lib64\nmake dep\nmake\nmake install\ncd \/usr\/src\ntar vxfz jansson.tar.gz\nrm -f jansson.tar.gz\ncd jansson-*\nautoreconf -i\n.\/configure --libdir=\/usr\/lib64\nmake\nmake install\ncd \/usr\/src\ntar xvfz asterisk-13-current.tar.gz\nrm -f asterisk-13-current.tar.gz\ncd asterisk-*\ncontrib\/scripts\/install_prereq install\n.\/configure --libdir=\/usr\/lib64\ncontrib\/scripts\/get_mp3_source.sh\nmake menuselect\n<\/pre>\n<p>Buraya kadar sorunsuz geldiyseniz, \u00e7ok iyi ilerledik diyebilirim. \u015eimdi muhtemelen kar\u015f\u0131n\u0131za \u015funa benzer bir men\u00fc geldi ve bir \u015feyler se\u00e7menizi istiyor. Sadece gerekli olan\u0131 s\u00f6yleyip devam etmek istiyorum. Sizin dikkatinizi \u00e7eken ba\u015fka bir \u015fey olursa y\u00fckleyin bakal\u0131m ne olacak \ud83d\ude42<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-325\" src=\"https:\/\/semih.kiroglu.net\/blog\/wp-content\/uploads\/2016\/08\/format_mp3_revise-1024x604.png\" alt=\"\" width=\"1024\" height=\"604\" srcset=\"https:\/\/semih.kiroglu.net\/blog\/wp-content\/uploads\/2016\/08\/format_mp3_revise-1024x604.png 1024w, https:\/\/semih.kiroglu.net\/blog\/wp-content\/uploads\/2016\/08\/format_mp3_revise-300x177.png 300w, https:\/\/semih.kiroglu.net\/blog\/wp-content\/uploads\/2016\/08\/format_mp3_revise-768x453.png 768w, https:\/\/semih.kiroglu.net\/blog\/wp-content\/uploads\/2016\/08\/format_mp3_revise.png 1135w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>format_mp3&#8217;\u00fc se\u00e7iyoruz, Save &amp; Exit ile bu a\u015famay\u0131 tamaml\u0131yoruz. Daha sonra Asterisk&#8217;i derleyip y\u00fckl\u00fcyoruz. Bu a\u015fama ciddi ciddi uzun s\u00fcrebilir:<\/p>\n<pre class=\"prettyprint\">make\nmake install\nmake config\nldconfig<\/pre>\n<p>\u015eimdi Asterisk&#8217;in WAV ve G722 kodekli ekstra seslerini indirip y\u00fckl\u00fcyoruz:<\/p>\n<pre class=\"prettyprint\">mkdir -p \/var\/lib\/asterisk\/sounds\ncd \/var\/lib\/asterisk\/sounds\nwget http:\/\/downloads.asterisk.org\/pub\/telephony\/sounds\/asterisk-core-sounds-en-wav-current.tar.gz\nwget http:\/\/downloads.asterisk.org\/pub\/telephony\/sounds\/asterisk-extra-sounds-en-wav-current.tar.gz\nwget http:\/\/downloads.asterisk.org\/pub\/telephony\/sounds\/asterisk-core-sounds-en-g722-current.tar.gz\nwget http:\/\/downloads.asterisk.org\/pub\/telephony\/sounds\/asterisk-extra-sounds-en-g722-current.tar.gz\ntar xvf asterisk-core-sounds-en-wav-current.tar.gz\ntar xfz asterisk-extra-sounds-en-wav-current.tar.gz\ntar xfz asterisk-core-sounds-en-g722-current.tar.gz\ntar xfz asterisk-extra-sounds-en-g722-current.tar.gz\nrm -f asterisk-core-sounds-en-wav-current.tar.gz\nrm -f asterisk-extra-sounds-en-wav-current.tar.gz\nrm -f asterisk-core-sounds-en-g722-current.tar.gz\nrm -f asterisk-extra-sounds-en-g722-current.tar.gz<\/pre>\n<p>T\u00fcm a\u015famalarda m\u00fcmk\u00fcn oldu\u011funca i\u015fi biten paketi temizletiyorum. Dok\u00fcman da b\u00f6yle g\u00f6stermi\u015f fakat baz\u0131 unuttuklar\u0131n\u0131 ben tamamlamaya \u00e7al\u0131\u015f\u0131yorum elden geldi\u011finde, dikkatimi \u00e7ekmi\u015fse \ud83d\ude42<\/p>\n<p>Art\u0131k sona yakla\u015ft\u0131k. \u015eu komutlarla Asterisk&#8217;e ait dizinlerin sahipli\u011fini de\u011fi\u015ftirmemiz gerek. Yoksa muhakkak \u00e7al\u0131\u015fmayan noktalar olacakt\u0131r. K\u0131saca: &#8220;Sezar&#8217;\u0131n dizini Sezar&#8217;a!&#8221; \ud83d\ude42<\/p>\n<pre class=\"prettyprint\">chown asterisk. \/var\/run\/asterisk\nchown -R asterisk. \/etc\/asterisk\nchown -R asterisk. \/var\/{lib,log,spool}\/asterisk\nchown -R asterisk. \/usr\/lib64\/asterisk\nchown -R asterisk. \/var\/www\/<\/pre>\n<p>Ve sorunsuz \u00e7al\u0131\u015fabilmek i\u00e7in Apache \u00fczerinde de bir ka\u00e7 yap\u0131land\u0131rma de\u011fi\u015fikli\u011fi yapmam\u0131z ve httpd hizmetini yeniden ba\u015flatmam\u0131z gerek. Malum, y\u00f6netim b\u00fcy\u00fck \u00f6l\u00e7\u00fcde web aray\u00fcz\u00fcnden sa\u011flan\u0131yor:<\/p>\n<pre class=\"prettyprint\">sed -i 's\/\\(^upload_max_filesize = \\).*\/\\120M\/' \/etc\/php.ini\nsed -i 's\/^\\(User\\|Group\\).*\/\\1 asterisk\/' \/etc\/httpd\/conf\/httpd.conf\nsed -i 's\/AllowOverride None\/AllowOverride All\/' \/etc\/httpd\/conf\/httpd.conf\nservice httpd restart<\/pre>\n<p>S\u0131ra geldi FreePBX&#8217;i kurmaya! \u015eu komutlarla indirdi\u011fimiz paketi extract edip y\u00fckleyelim:<\/p>\n<pre class=\"prettyprint\">cd \/usr\/src\ntar xfz freepbx-13.0-latest.tgz\nrm -f freepbx-13.0-latest.tgz\ncd freepbx\n.\/start_asterisk start<\/pre>\n<p>Burada devam etmek i\u00e7in iki durum olu\u015fuyor. E\u011fer \u015fu komutla y\u00fcklemeye ba\u015flarsan\u0131z:<\/p>\n<pre class=\"prettyprint\">.\/install<\/pre>\n<p>MySQL \u00fczerinde elle olu\u015fturman\u0131z gerekenler \u015funlar:<\/p>\n<ul>\n<li>Veritaban\u0131 Kullan\u0131c\u0131 Ad\u0131 (A\u015fa\u011f\u0131daki Veritabanlar\u0131nda Tam Yetkili)<\/li>\n<li>Asterisk i\u00e7in Veritaban\u0131<\/li>\n<li>Asterisk CDR i\u00e7in Veritaban\u0131<\/li>\n<\/ul>\n<p>Dok\u00fcmana g\u00f6re son sat\u0131rda -n parametresi var. Yani son sat\u0131r \u015f\u00f6yle oluyor:<\/p>\n<pre class=\"prettyprint\">.\/install -n<\/pre>\n<p>Bu kullan\u0131m anlad\u0131\u011f\u0131m kadar\u0131yla sessiz kurulum tarz\u0131 bir kurulum ger\u00e7ekle\u015ftiriyor ama baz\u0131 s\u0131k\u0131nt\u0131lara da yol a\u00e7\u0131yor. Mesela veritaban\u0131 ad\u0131 \u00f6n tan\u0131ml\u0131 geldi\u011fi gibi olu\u015fturuluyor, veritaban\u0131 kullan\u0131c\u0131s\u0131 \u015fifresiz root oluyor, vs.. Bu durum, \u00f6zelle\u015ftirme isteyen kullan\u0131c\u0131lar\u0131 engelliyor. MySQL root eri\u015fimini vermek istemeyenler olabilir, root hesaba \u015fifre koyanlar olabilir, vs.. Bu nedenle o parametre olmadan kullan\u0131p her \u015feyini kendimiz yapal\u0131m diye d\u00fc\u015f\u00fcnd\u00fcm. \u0130steyenler bu parametreyle kullanabilir tabi. Ben elle y\u00fckleme yapmak i\u00e7in &#8220;.\/install&#8221; komutunu kullan\u0131yorum.<\/p>\n<p>Bu komutu girmeden \u00f6nce elle olu\u015fturulacak noktalar i\u00e7in de bilgi verelim. Veritaban\u0131 \u00fczerinde kullan\u0131c\u0131 olu\u015fturmak i\u00e7in \u00f6ncelikle MySQL&#8217;e SSH \u00fczerinden eri\u015felim. E\u011fer MySQL root kullan\u0131c\u0131n\u0131z i\u00e7in bir \u015fifre atamad\u0131ysan\u0131z \u015fu komutu g\u00f6nderin:<\/p>\n<pre class=\"prettyprint\">mysql -u root<\/pre>\n<p>E\u011fer \u015fifre atad\u0131ysan\u0131z \u015fu komutu g\u00f6nderin:<\/p>\n<pre class=\"prettyprint\">mysql -u root -p<\/pre>\n<p>\u015eifre atayan dostlar \u015fifrelerini girdikten sonra, atamayan dostlar do\u011frudan MySQL CLI&#8217;a eri\u015fmi\u015f olacaklar. \u00d6nce veritabanlar\u0131m\u0131z\u0131 olu\u015ftural\u0131m. Bu sat\u0131rda FreePBX kurulumunda kullan\u0131lan \u00f6n tan\u0131ml\u0131 veritaban\u0131 isimleri olan asterisk ve asteriskcdrdb ile veritaban\u0131 olu\u015fturuyoruz:<\/p>\n<pre class=\"prettyprint\">CREATE DATABASE asterisk;\nCREATE DATABASE asteriskcdrdb;<\/pre>\n<p>Bir de FreePBX&#8217;in kullanaca\u011f\u0131 kullan\u0131c\u0131y\u0131 olu\u015fturuyoruz.\u00a0A\u015fa\u011f\u0131daki sat\u0131rda \u00f6zelle\u015ftirmeniz gereken noktalar var, bunlar\u0131 unutmay\u0131n!<\/p>\n<ul>\n<li><strong>yeni_kullan\u0131c\u0131:\u00a0<\/strong>FreePBX&#8217;in MySQL&#8217;e eri\u015firken kullanaca\u011f\u0131 yeni bir kullan\u0131c\u0131 ad\u0131 belirleyin.\u00a0Bir sonraki a\u015famada istenen yere bu kullan\u0131c\u0131 ad\u0131n\u0131 gireceksiniz, \u015fimdiye kadar yapt\u0131\u011f\u0131n\u0131z i\u015flemlerle alakas\u0131 yoktur.<\/li>\n<li><strong>eri\u015fim_k\u0131s\u0131t\u0131:\u00a0<\/strong>Bu kullan\u0131c\u0131n\u0131n eri\u015fim ilkesini belirleyin. Temelde alabilece\u011fi\u00a03 de\u011fer vard\u0131r:\n<ul>\n<li><span style=\"text-decoration: underline;\">localhost:<\/span> Sadece MySQL&#8217;in kurulu oldu\u011fu ana makineden eri\u015filebilir (\u015fiddetle \u00f6nerilen).<\/li>\n<li><span style=\"text-decoration: underline;\">IP Adresi:<\/span> Sadece yaz\u0131lan IP adresi \u00fczerinden eri\u015filebilir.<\/li>\n<li><span style=\"text-decoration: underline;\">%:<\/span> Konum ba\u011f\u0131ms\u0131z, t\u00fcm a\u011flar \u00fczerinden eri\u015filebilir.<\/li>\n<\/ul>\n<\/li>\n<li><strong>yeni_\u015fifre:<\/strong> FreePBX&#8217;in MySQL&#8217;e eri\u015firken kullanaca\u011f\u0131 yeni bir \u015fifre\u00a0belirleyin.\u00a0Bir sonraki a\u015famada istenen yere bu \u015fifreyi gireceksiniz, \u015fimdiye kadar yapt\u0131\u011f\u0131n\u0131z i\u015flemlerle alakas\u0131 yoktur.<\/li>\n<\/ul>\n<pre class=\"prettyprint\">CREATE USER 'yeni_kullan\u0131c\u0131'@'eri\u015fim_k\u0131s\u0131t\u0131' IDENTIFIED BY 'yeni_\u015fifre';<\/pre>\n<p>Kullan\u0131c\u0131m\u0131z\u0131 olu\u015fturduktan sonra \u00f6nceki a\u015famada olu\u015fturdu\u011fumuz veritaban\u0131 \u00fczerinde i\u015flem yapabilmesi i\u00e7in yetki vermemiz gerekli. Bunun i\u00e7in \u015fu sat\u0131rlar gerekli, yine baz\u0131 \u00f6zelle\u015ftirmelerle tabi ki:<\/p>\n<pre class=\"prettyprint\">GRANT ALL PRIVILEGES ON asterisk.* TO 'yeni_kullan\u0131c\u0131'@'eri\u015fim_k\u0131s\u0131t\u0131';\nGRANT ALL PRIVILEGES ON asteriskcdrdb.* TO 'yeni_kullan\u0131c\u0131'@'eri\u015fim_k\u0131s\u0131t\u0131';<\/pre>\n<p>Her\u015fey haz\u0131r! \u015eimdi k\u00fc\u00e7\u00fck bir kontrolle neyin ne durumda oldu\u011funa bakal\u0131m. \u00d6nce olu\u015fturdu\u011fumuz kullan\u0131c\u0131 sorunsuz bi\u00e7imde olu\u015fmu\u015f mu? Onu kontrol edelim:<\/p>\n<pre class=\"prettyprint\">SELECT host, user FROM mysql.user WHERE user = 'yeni_kullan\u0131c\u0131';<\/pre>\n<p>E\u011fer ald\u0131\u011f\u0131n\u0131z yan\u0131t &#8220;Empty set (0.00 sec)&#8221; ise bir sorun var demektir. Kullan\u0131c\u0131 olu\u015fturdu\u011funuz sat\u0131r\u0131 kontrol edip tekrar deneyin veya komuttaki &#8220;WHERE user = &#8216;yeni_kullan\u0131c\u0131'&#8221; k\u0131sm\u0131n\u0131 silip t\u00fcm kullan\u0131c\u0131lar\u0131 listeleyin.<\/p>\n<p>Bir de bu kullan\u0131c\u0131n\u0131n yetkilerini g\u00f6relim:<\/p>\n<pre class=\"prettyprint\">SHOW GRANTS FOR 'yeni_kullan\u0131c\u0131'@'eri\u015fim_k\u0131s\u0131t\u0131';<\/pre>\n<p>E\u011fer ald\u0131\u011f\u0131n\u0131z yan\u0131t &#8220;ERROR 1141 (42000): There is no such grant defined for user &#8216;yeni_kullan\u0131c\u0131&#8217; on host &#8216;eri\u015fim_k\u0131s\u0131t\u0131'&#8221; bi\u00e7imindeyse bir sorun var demektir. Yetki atad\u0131\u011f\u0131n\u0131z sat\u0131r\u0131 kontrol edip tekrar deneyin.<\/p>\n<p>Buraya kadar sorun yoksa \u015fu komutla bash&#8217;e geri d\u00f6n\u00fcn:<\/p>\n<pre class=\"prettyprint\">exit<\/pre>\n<p>Art\u0131k y\u00fcklemeye ba\u015flayabiliriz. \u015eu komutu yazal\u0131m:<\/p>\n<pre class=\"prettyprint\">.\/install<\/pre>\n<p>K\u00f6\u015feli parantez i\u00e7inde yaz\u0131l\u0131 olan de\u011ferler, size y\u00f6neltilen sorular\u0131n \u00f6n tan\u0131ml\u0131 cevaplar\u0131d\u0131r. De\u011fi\u015ftirmek istemezseniz (ki uzman de\u011filseniz sadece veritaban\u0131 bilgilerini elle girin) Enter&#8217;a basarak sonraki soruya ge\u00e7ebilirsiniz.<\/p>\n<pre class=\"prettyprint\">You have successfully installed FreePBX<\/pre>\n<p>E\u011fer bu sat\u0131r\u0131 g\u00f6r\u00fcyorsan\u0131z, tebrikler! FreePBX ba\u015far\u0131yla sunucunuza y\u00fcklenmi\u015f demektir. \u015eimdi sunucunuzun IP&#8217;sini veya alan ad\u0131n\u0131 adres \u00e7ubu\u011funuza girerek y\u00f6netici hesab\u0131n\u0131z\u0131 olu\u015fturabilirsiniz.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-11 size-large\" src=\"https:\/\/semih.kiroglu.net\/blog\/wp-content\/uploads\/2016\/08\/Capture-1024x443.png\" alt=\"Capture\" width=\"840\" height=\"363\" \/><\/p>\n<p>Ek olarak; FreePBX&#8217;in kurumsal repo&#8217;lar\u0131n\u0131 sisteminize eklemek isterseniz \u015fu komutlar\u0131 uygulay\u0131n:<\/p>\n<pre class=\"prettyprint\">wget -P \/etc\/yum.repos.d\/ -N http:\/\/yum.schmoozecom.net\/schmooze-commercial\/schmooze-commercial.repo\nyum clean all\nyum -y install php-5.3-zend-guard-loader sysadmin fail2ban incron ImageMagick\n\/var\/lib\/asterisk\/bin\/freepbx_setting MODULE_REPO http:\/\/mirror1.freepbx.org,http:\/\/mirror2.freepbx.org\nservice httpd restart\nfwconsole ma download sysadmin\nfwconsole ma install sysadmin<\/pre>\n<p>Art\u0131k y\u00f6netim paneline girebilirsiniz!<\/p>\n<p>&nbsp;<\/p>\n<p>Sorular\u0131n\u0131z\u0131 yorum alan\u0131na yazmaktan \u00e7ekinmeyin. Bildi\u011fim kadar\u0131yla cevaplamaya \u00e7al\u0131\u015faca\u011f\u0131m. Yak\u0131n bir zamanda da Extension olu\u015fturma, Trunk ba\u011flama gibi temel yap\u0131land\u0131rmalar \u00fczerine bir \u015feyler yazabilirim.<br \/>\nFreePBX&#8217;li g\u00fcnler! \ud83d\ude42<\/p>\n<p>Semih K\u0131ro\u011flu<\/p>\n","protected":false},"excerpt":{"rendered":"<p>[Not: Yaz\u0131 MySQL&#8217;de kullan\u0131c\u0131 ve veritaban\u0131 olu\u015fturma anlat\u0131mlar\u0131 da eklenerek ve baz\u0131 i\u015flemlerin s\u0131ralar\u0131 de\u011fi\u015ftirilerek g\u00fcncellendi.] Merhabalar. Bu yaz\u0131, yeni kurdu\u011fum bu blog i\u00e7in ilk yaz\u0131 olma \u00f6zelli\u011fini ta\u015f\u0131yor. O y\u00fczden amat\u00f6rce yaz\u0131labilir, ba\u015ftan belirtmek isterim. Ayr\u0131ca y\u0131llard\u0131r hayalini kurdu\u011fum firmada, Turkcell&#8217;de staj yaparken bu yaz\u0131y\u0131 kaleme almak beni ayr\u0131ca heyecanland\u0131r\u0131yor. \u015eimdiden keyifli okumalar&#8230;<\/p>\n","protected":false},"author":1,"featured_media":15,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[4,2],"tags":[12,13,17,21,22,24,35,37],"class_list":["post-122","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-freepbx","category-sunucu-rolleri","tag-centos","tag-centos-6","tag-digitalocean","tag-freepbx","tag-freepbx-13","tag-ip-santral","tag-santral-sunucu","tag-sip-server"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/semih.kiroglu.net\/blog\/wp-json\/wp\/v2\/posts\/122","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/semih.kiroglu.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/semih.kiroglu.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/semih.kiroglu.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/semih.kiroglu.net\/blog\/wp-json\/wp\/v2\/comments?post=122"}],"version-history":[{"count":0,"href":"https:\/\/semih.kiroglu.net\/blog\/wp-json\/wp\/v2\/posts\/122\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/semih.kiroglu.net\/blog\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/semih.kiroglu.net\/blog\/wp-json\/wp\/v2\/media?parent=122"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/semih.kiroglu.net\/blog\/wp-json\/wp\/v2\/categories?post=122"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/semih.kiroglu.net\/blog\/wp-json\/wp\/v2\/tags?post=122"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}