{"id":35274,"date":"2025-11-27T19:40:45","date_gmt":"2025-11-27T16:40:45","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=35274"},"modified":"2025-11-27T19:40:45","modified_gmt":"2025-11-27T16:40:45","slug":"cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/","title":{"rendered":"CakePHP Uygulamas\u0131n\u0131 Ubuntu 18.04 \u00dczerinde LAMP ile Kurulumu: Kapsaml\u0131 Bir Rehber"},"content":{"rendered":"<p><body><\/p>\n<h2>CakePHP Uygulamas\u0131n\u0131 Ubuntu 18.04 \u00dczerinde LAMP ile Kurulumu: Kapsaml\u0131 Bir Rehber<\/h2>\n<p>Web geli\u015ftirme d\u00fcnyas\u0131nda, h\u0131zl\u0131 ve verimli uygulamalar olu\u015fturmak i\u00e7in g\u00fc\u00e7l\u00fc bir \u00e7er\u00e7eveye ve sa\u011flam bir altyap\u0131ya sahip olmak hayati \u00f6nem ta\u015f\u0131r. CakePHP, Model-View-Controller (MVC) mimarisine dayal\u0131, a\u00e7\u0131k kaynakl\u0131, h\u0131zl\u0131 geli\u015ftirme (RAD) felsefesini benimsemi\u015f pop\u00fcler bir PHP web \u00e7er\u00e7evesidir. Geli\u015ftiricilere kod tekrar\u0131n\u0131 azaltma, g\u00fcvenlik ve yap\u0131land\u0131rma kolayl\u0131\u011f\u0131 gibi bir\u00e7ok avantaj sunar. LAMP (Linux, Apache, MySQL, PHP) ise web uygulamalar\u0131 i\u00e7in en yayg\u0131n ve g\u00fcvenilir sunucu y\u0131\u011f\u0131nlar\u0131ndan biridir. Linux i\u015fletim sistemi \u00fczerinde Apache web sunucusu, MySQL (veya MariaDB) veritaban\u0131 ve PHP programlama dilinin bir araya gelmesiyle olu\u015fur. Bu rehberde, Ubuntu 18.04 LTS (Long Term Support) i\u015fletim sistemi \u00fczerinde bir LAMP y\u0131\u011f\u0131n\u0131 kurarak ve bu y\u0131\u011f\u0131n \u00fczerine CakePHP uygulamas\u0131n\u0131 ad\u0131m ad\u0131m nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 detayl\u0131 bir \u015fekilde ele alaca\u011f\u0131z. Ubuntu 18.04, kararl\u0131l\u0131\u011f\u0131 ve uzun s\u00fcreli deste\u011fi nedeniyle bir\u00e7ok sunucu ortam\u0131nda tercih edilen bir s\u00fcr\u00fcmd\u00fcr.<\/p>\n<p>Bu kapsaml\u0131 rehberin sonunda, kendi CakePHP uygulaman\u0131z\u0131 geli\u015ftirme ortam\u0131n\u0131zda veya \u00fcretim sunucunuzda ba\u015far\u0131yla \u00e7al\u0131\u015f\u0131r hale getirebileceksiniz. Her ad\u0131m\u0131 dikkatlice takip etmek, olas\u0131 sorunlar\u0131 minimize etmenize yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<h3>\u00d6n Ko\u015fullar ve Sistem G\u00fcncellemesi<\/h3>\n<p>Kuruluma ba\u015flamadan \u00f6nce, a\u015fa\u011f\u0131daki \u00f6n ko\u015fullar\u0131n yerine getirildi\u011finden emin olmal\u0131s\u0131n\u0131z:<\/p>\n<ul>\n<li>Ubuntu 18.04 LTS y\u00fckl\u00fc bir sunucu veya sanal makine (VM).<\/li>\n<li><code>sudo<\/code> yetkilerine sahip, root olmayan bir kullan\u0131c\u0131 hesab\u0131. G\u00fcvenlik nedeniyle root kullan\u0131c\u0131s\u0131 ile do\u011frudan i\u015flem yapmak yerine <code>sudo<\/code> kullan\u0131lmas\u0131 \u00f6nerilir.<\/li>\n<li>\u0130nternet ba\u011flant\u0131s\u0131.<\/li>\n<\/ul>\n<p>Sisteminizi g\u00fcncel tutmak, hem g\u00fcvenlik hem de paket uyumlulu\u011fu a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahiptir. Kuruluma ba\u015flamadan \u00f6nce sisteminizdeki t\u00fcm paketleri en son s\u00fcr\u00fcmlerine g\u00fcncelleyelim:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt upgrade -y\n<\/code><\/pre>\n<p><code>apt update<\/code> komutu, yerel paket indeksini g\u00fcnceller ve mevcut paketlerin yeni s\u00fcr\u00fcmleri hakk\u0131nda bilgi edinir. <code>apt upgrade -y<\/code> komutu ise bu bilgilere dayanarak sisteminizdeki t\u00fcm y\u00fckl\u00fc paketleri onay istemeden y\u00fckseltir. Bu i\u015flem biraz zaman alabilir.<\/p>\n<h3>LAMP Y\u0131\u011f\u0131n\u0131n\u0131 Kurulumu<\/h3>\n<p>\u015eimdi, CakePHP uygulamam\u0131z i\u00e7in temel olu\u015fturacak LAMP y\u0131\u011f\u0131n\u0131n\u0131 kurmaya ba\u015flayabiliriz.<\/p>\n<h4>Apache Web Sunucusu Kurulumu<\/h4>\n<p>Apache, internetin en pop\u00fcler web sunucular\u0131ndan biridir ve PHP uygulamalar\u0131 i\u00e7in m\u00fckemmel bir se\u00e7imdir. Kurulumu olduk\u00e7a basittir:<\/p>\n<pre><code class=\"language-bash\">sudo apt install apache2 -y\n<\/code><\/pre>\n<p>Kurulum tamamland\u0131ktan sonra, Apache servisinin otomatik olarak ba\u015flamas\u0131 gerekir. Durumunu kontrol etmek i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">systemctl status apache2\n<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da &#8220;active (running)&#8221; ifadesini g\u00f6rmelisiniz. E\u011fer \u00e7al\u0131\u015fm\u0131yorsa, <code>sudo systemctl start apache2<\/code> komutuyla ba\u015flatabilirsiniz.<\/p>\n<p>Ubuntu 18.04, varsay\u0131lan olarak UFW (Uncomplicated Firewall) g\u00fcvenlik duvar\u0131 ile gelir. Web sunucusunun d\u0131\u015far\u0131dan eri\u015filebilir olmas\u0131 i\u00e7in UFW&#8217;de Apache&#8217;ye izin vermemiz gerekiyor. UFW, Apache i\u00e7in \u00f6nceden tan\u0131mlanm\u0131\u015f profillerle gelir:<\/p>\n<pre><code class=\"language-bash\">sudo ufw app list\n<\/code><\/pre>\n<p>Bu komut, mevcut uygulama profillerini listeler. &#8220;Apache Full&#8221; profili, hem HTTP (80) hem de HTTPS (443) trafi\u011fine izin verir. \u015eimdilik sadece HTTP&#8217;ye ihtiyac\u0131m\u0131z olsa da, gelecekte HTTPS kullanmay\u0131 d\u00fc\u015f\u00fcnerek &#8220;Apache Full&#8221; profilini etkinle\u015ftirmek iyi bir uygulamad\u0131r:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 'Apache Full'\nsudo ufw enable\nsudo ufw status\n<\/code><\/pre>\n<p><code>ufw enable<\/code> komutu g\u00fcvenlik duvar\u0131n\u0131 etkinle\u015ftirir (e\u011fer daha \u00f6nce etkin de\u011filse). <code>ufw status<\/code> komutu, kurallar\u0131n ba\u015far\u0131yla uyguland\u0131\u011f\u0131n\u0131 do\u011frulaman\u0131z\u0131 sa\u011flar. \u015eimdi sunucunuzun IP adresini (\u00f6rne\u011fin, <code>http:\/\/sunucu_ip_adresiniz<\/code>) bir web taray\u0131c\u0131s\u0131na girerek Apache&#8217;nin varsay\u0131lan &#8220;It works!&#8221; sayfas\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<h4>MySQL\/MariaDB Veritaban\u0131 Sunucusu Kurulumu<\/h4>\n<p>CakePHP, verilerini depolamak i\u00e7in bir veritaban\u0131na ihtiya\u00e7 duyar. Bu rehberde MySQL&#8217;i (veya onun a\u00e7\u0131k kaynakl\u0131 bir \u00e7atal\u0131 olan MariaDB&#8217;yi) kullanaca\u011f\u0131z. Ubuntu 18.04 depolar\u0131nda MySQL sunucusu mevcuttur:<\/p>\n<pre><code class=\"language-bash\">sudo apt install mysql-server -y\n<\/code><\/pre>\n<p>Kurulum tamamland\u0131ktan sonra, veritaban\u0131 sunucunuzun g\u00fcvenli\u011fini art\u0131rmak i\u00e7in bir betik \u00e7al\u0131\u015ft\u0131rman\u0131z \u00f6nerilir:<\/p>\n<pre><code class=\"language-bash\">sudo mysql_secure_installation\n<\/code><\/pre>\n<p>Bu betik size birka\u00e7 soru soracakt\u0131r:<\/p>\n<ul>\n<li><strong>VALIDATE PASSWORD PLUGIN:<\/strong> Bu eklenti, kullan\u0131c\u0131 parolalar\u0131n\u0131n g\u00fc\u00e7l\u00fc olmas\u0131n\u0131 sa\u011flamak i\u00e7in tasarlanm\u0131\u015ft\u0131r. \u0130sterseniz etkinle\u015ftirebilirsiniz, ancak geli\u015ftirme ortam\u0131nda bu ad\u0131m\u0131 atlamak isteyebilirsiniz. Se\u00e7iminiz size kalm\u0131\u015f.<\/li>\n<li><strong>Set root password?<\/strong> Evet (Y) diyerek root kullan\u0131c\u0131s\u0131 i\u00e7in g\u00fc\u00e7l\u00fc bir parola belirleyin. Bu parola, veritaban\u0131 sunucusuna y\u00f6netimsel eri\u015fim i\u00e7in kullan\u0131lacakt\u0131r.<\/li>\n<li><strong>Remove anonymous users?<\/strong> Anonim kullan\u0131c\u0131lar\u0131 kald\u0131rmak, g\u00fcvenlik a\u00e7\u0131s\u0131ndan iyi bir uygulamad\u0131r. Evet (Y) se\u00e7in.<\/li>\n<li><strong>Disallow root login remotely?<\/strong> Root kullan\u0131c\u0131s\u0131n\u0131n uzaktan giri\u015f yapmas\u0131n\u0131 devre d\u0131\u015f\u0131 b\u0131rakmak, sunucunuzun g\u00fcvenli\u011fini art\u0131r\u0131r. Evet (Y) se\u00e7in.<\/li>\n<li><strong>Remove test database and access to it?<\/strong> Test veritaban\u0131n\u0131 kald\u0131rmak g\u00fcvenli\u011fi art\u0131r\u0131r. Evet (Y) se\u00e7in.<\/li>\n<li><strong>Reload privilege tables now?<\/strong> Ayr\u0131cal\u0131k tablolar\u0131n\u0131 hemen yeniden y\u00fcklemek, yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikliklerin ge\u00e7erli olmas\u0131n\u0131 sa\u011flar. Evet (Y) se\u00e7in.<\/li>\n<\/ul>\n<p>Bu ad\u0131mlar\u0131 tamamlad\u0131ktan sonra, MySQL sunucunuz daha g\u00fcvenli bir yap\u0131land\u0131rmaya sahip olacakt\u0131r. Durumunu kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">systemctl status mysql\n<\/code><\/pre>\n<p>Yine &#8220;active (running)&#8221; ifadesini g\u00f6rmelisiniz.<\/p>\n<h4>PHP ve Gerekli Uzant\u0131lar\u0131n Kurulumu<\/h4>\n<p>CakePHP bir PHP \u00e7er\u00e7evesi oldu\u011fundan, PHP&#8217;nin kendisini ve CakePHP&#8217;nin d\u00fczg\u00fcn \u00e7al\u0131\u015fmas\u0131 i\u00e7in gerekli olan baz\u0131 uzant\u0131lar\u0131 kurmam\u0131z gerekiyor. Ubuntu 18.04, varsay\u0131lan olarak PHP 7.2 ile gelir ki bu CakePHP 4.x i\u00e7in yeterlidir.<\/p>\n<pre><code class=\"language-bash\">sudo apt install php libapache2-mod-php php-mysql php-cli php-json php-gd php-curl php-intl php-mbstring php-xml php-zip -y\n<\/code><\/pre>\n<p>Yukar\u0131daki komutlar:<\/p>\n<ul>\n<li><code>php<\/code>: PHP \u00e7ekirdek paketini kurar.<\/li>\n<li><code>libapache2-mod-php<\/code>: Apache&#8217;nin PHP kodunu i\u015fleyebilmesi i\u00e7in gerekli olan mod\u00fcl\u00fc sa\u011flar.<\/li>\n<li><code>php-mysql<\/code>: PHP&#8217;nin MySQL\/MariaDB veritabanlar\u0131yla ileti\u015fim kurmas\u0131n\u0131 sa\u011flar.<\/li>\n<li><code>php-cli<\/code>: Komut sat\u0131r\u0131ndan PHP betiklerini \u00e7al\u0131\u015ft\u0131rmak i\u00e7in gereklidir (\u00f6rne\u011fin Composer i\u00e7in).<\/li>\n<li><code>php-json<\/code>: JSON verilerini i\u015flemek i\u00e7in gereklidir.<\/li>\n<li><code>php-gd<\/code>: G\u00f6r\u00fcnt\u00fc i\u015fleme i\u015flevleri i\u00e7in gereklidir (iste\u011fe ba\u011fl\u0131 ancak bir\u00e7ok uygulama i\u00e7in faydal\u0131).<\/li>\n<li><code>php-curl<\/code>: HTTP istekleri yapmak i\u00e7in cURL k\u00fct\u00fcphanesini sa\u011flar.<\/li>\n<li><code>php-intl<\/code>: Uluslararas\u0131la\u015ft\u0131rma ve yerelle\u015ftirme i\u015flevleri i\u00e7in gereklidir (CakePHP i\u00e7in \u00f6nerilir).<\/li>\n<li><code>php-mbstring<\/code>: \u00c7ok baytl\u0131 dizeleri i\u015flemek i\u00e7in gereklidir (CakePHP i\u00e7in \u00f6nerilir).<\/li>\n<li><code>php-xml<\/code>: XML verilerini i\u015flemek i\u00e7in gereklidir.<\/li>\n<li><code>php-zip<\/code>: Zip ar\u015fivlerini i\u015flemek i\u00e7in gereklidir.<\/li>\n<\/ul>\n<p>Bu uzant\u0131lar, \u00e7o\u011fu CakePHP uygulamas\u0131n\u0131n sorunsuz \u00e7al\u0131\u015fmas\u0131 i\u00e7in yeterli olacakt\u0131r. Kurulum tamamland\u0131ktan sonra, PHP s\u00fcr\u00fcm\u00fcn\u00fcz\u00fc kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">php -v\n<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131, y\u00fckl\u00fc PHP s\u00fcr\u00fcm\u00fcn\u00fc g\u00f6stermelidir (\u00f6rn. PHP 7.2.x).<\/p>\n<h4>Apache PHP Entegrasyonu ve Sanal Host Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>PHP mod\u00fcl\u00fcn\u00fcn Apache ile d\u00fczg\u00fcn \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flamak i\u00e7in Apache&#8217;yi yeniden ba\u015flatmam\u0131z gerekiyor:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart apache2\n<\/code><\/pre>\n<p>PHP&#8217;nin Apache ile do\u011fru \u015fekilde \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 test etmek i\u00e7in, web sunucusu k\u00f6k dizininde (<code>\/var\/www\/html<\/code>) basit bir PHP bilgi dosyas\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/var\/www\/html\/info.php\n<\/code><\/pre>\n<p>Dosyan\u0131n i\u00e7ine a\u015fa\u011f\u0131daki i\u00e7eri\u011fi ekleyin:<\/p>\n<pre><code class=\"language-php\"><?php\nphpinfo();\n?>\n<\/code><\/pre>\n<p>Kaydedip kapat\u0131n (CTRL+X, Y, Enter). \u015eimdi web taray\u0131c\u0131n\u0131zda <code>http:\/\/sunucu_ip_adresiniz\/info.php<\/code> adresine gidin. PHP yap\u0131land\u0131rman\u0131z hakk\u0131nda ayr\u0131nt\u0131l\u0131 bilgileri i\u00e7eren bir sayfa g\u00f6rmelisiniz. Bu sayfa, PHP&#8217;nin Apache ile ba\u015far\u0131yla entegre oldu\u011funu g\u00f6sterir.<\/p>\n<p><strong>\u00d6NEML\u0130:<\/strong> G\u00fcvenlik nedeniyle, bu <code>info.php<\/code> dosyas\u0131n\u0131 testten sonra silmelisiniz. Bu dosya, sunucunuz hakk\u0131nda hassas bilgiler i\u00e7erebilir.<\/p>\n<pre><code class=\"language-bash\">sudo rm \/var\/www\/html\/info.php\n<\/code><\/pre>\n<h3>Composer Kurulumu<\/h3>\n<p>Composer, PHP i\u00e7in bir ba\u011f\u0131ml\u0131l\u0131k y\u00f6neticisidir. CakePHP ve bir\u00e7ok modern PHP projesi, ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 y\u00f6netmek i\u00e7in Composer&#8217;\u0131 kullan\u0131r. Composer&#8217;\u0131 global olarak eri\u015filebilir hale getirmek i\u00e7in a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyin:<\/p>\n<pre><code class=\"language-bash\">cd ~\ncurl -sS https:\/\/getcomposer.org\/installer -o composer-setup.php\nsudo php composer-setup.php --install-dir=\/usr\/local\/bin --filename=composer\n<\/code><\/pre>\n<p>Bu komutlar, Composer kurulum beti\u011fini indirir ve Composer&#8217;\u0131 <code>\/usr\/local\/bin<\/code> dizinine <code>composer<\/code> ad\u0131yla y\u00fckler, b\u00f6ylece sistem genelinde kullan\u0131labilir hale gelir. Kurulumun ba\u015far\u0131l\u0131 oldu\u011funu do\u011frulamak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">composer -V\n<\/code><\/pre>\n<p>Composer&#8217;\u0131n s\u00fcr\u00fcm numaras\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<h3>CakePHP Uygulamas\u0131 Olu\u015fturma<\/h3>\n<p>Art\u0131k LAMP y\u0131\u011f\u0131n\u0131 ve Composer haz\u0131r oldu\u011funa g\u00f6re, yeni bir CakePHP uygulamas\u0131 olu\u015fturabiliriz.<\/p>\n<h4>CakePHP Projesi Ba\u015flatma<\/h4>\n<p>Web sunucusu k\u00f6k dizinine gidin ve Composer kullanarak yeni bir CakePHP projesi olu\u015fturun:<\/p>\n<pre><code class=\"language-bash\">cd \/var\/www\/html\nsudo composer create-project --prefer-dist cakephp\/app my_cakephp_app\n<\/code><\/pre>\n<p>Bu komut, <code>my_cakephp_app<\/code> ad\u0131nda yeni bir dizin olu\u015fturacak ve i\u00e7ine CakePHP uygulamas\u0131n\u0131n iskeletini Composer arac\u0131l\u0131\u011f\u0131yla kuracakt\u0131r. Bu i\u015flem, CakePHP&#8217;nin t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 indirip y\u00fckleyece\u011fi i\u00e7in biraz zaman alabilir.<\/p>\n<h4>Dizin \u0130zinlerini Ayarlama<\/h4>\n<p>CakePHP uygulamalar\u0131n\u0131n d\u00fczg\u00fcn \u00e7al\u0131\u015fabilmesi i\u00e7in belirli dizinlerin web sunucusu kullan\u0131c\u0131s\u0131 (genellikle <code>www-data<\/code>) taraf\u0131ndan yaz\u0131labilir olmas\u0131 gerekir. \u00d6zellikle <code>tmp<\/code> ve <code>logs<\/code> dizinleri i\u00e7in do\u011fru izinleri ayarlamal\u0131y\u0131z:<\/p>\n<pre><code class=\"language-bash\">sudo chown -R www-data:www-data \/var\/www\/html\/my_cakephp_app\nsudo chmod -R 775 \/var\/www\/html\/my_cakephp_app\/tmp\nsudo chmod -R 775 \/var\/www\/html\/my_cakephp_app\/logs\nsudo chmod -R 775 \/var\/www\/html\/my_cakephp_app\/webroot\n<\/code><\/pre>\n<p>Bu komutlar:<\/p>\n<ul>\n<li>\u0130lk komut, t\u00fcm proje dizininin sahipli\u011fini <code>www-data<\/code> kullan\u0131c\u0131s\u0131 ve grubuna verir.<\/li>\n<li>Sonraki \u00fc\u00e7 komut, <code>tmp<\/code>, <code>logs<\/code> ve <code>webroot<\/code> dizinlerine ve i\u00e7indeki dosyalara grup yazma izni verir. Bu, CakePHP&#8217;nin ge\u00e7ici dosyalar, oturum verileri ve g\u00fcnl\u00fckler olu\u015fturabilmesi i\u00e7in gereklidir.<\/li>\n<\/ul>\n<h3>Veritaban\u0131 Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>CakePHP uygulaman\u0131z\u0131n veritaban\u0131 ile etkile\u015fim kurabilmesi i\u00e7in bir veritaban\u0131 olu\u015fturmam\u0131z ve CakePHP&#8217;yi bu veritaban\u0131na ba\u011flanacak \u015fekilde yap\u0131land\u0131rmam\u0131z gerekiyor.<\/p>\n<h4>MySQL\/MariaDB Veritaban\u0131 ve Kullan\u0131c\u0131 Olu\u015fturma<\/h4>\n<p>MySQL sunucusuna root kullan\u0131c\u0131s\u0131 olarak ba\u011flan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo mysql -u root -p\n<\/code><\/pre>\n<p>Parola istendi\u011finde, <code>mysql_secure_installation<\/code> s\u0131ras\u0131nda belirledi\u011finiz root parolas\u0131n\u0131 girin. Ard\u0131ndan, CakePHP uygulaman\u0131z i\u00e7in bir veritaban\u0131 ve \u00f6zel bir kullan\u0131c\u0131 olu\u015fturun. Kendi veritaban\u0131 ad\u0131n\u0131z\u0131, kullan\u0131c\u0131 ad\u0131n\u0131z\u0131 ve parolan\u0131z\u0131 se\u00e7ti\u011finizden emin olun:<\/p>\n<pre><code class=\"language-sql\">CREATE DATABASE my_cakephp_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\nCREATE USER 'cakephp_user'@'localhost' IDENTIFIED BY 'cok_guclu_sifreniz';\nGRANT ALL PRIVILEGES ON my_cakephp_db.* TO 'cakephp_user'@'localhost';\nFLUSH PRIVILEGES;\nEXIT;\n<\/code><\/pre>\n<p>Bu komutlar:<\/p>\n<ul>\n<li><code>CREATE DATABASE ...<\/code>: <code>my_cakephp_db<\/code> ad\u0131nda yeni bir veritaban\u0131 olu\u015fturur ve UTF-8 deste\u011fi sa\u011flar.<\/li>\n<li><code>CREATE USER ...<\/code>: <code>cakephp_user<\/code> ad\u0131nda, yaln\u0131zca <code>localhost<\/code>&#8216;tan eri\u015febilen ve belirtti\u011finiz parola ile kimlik do\u011frulayan yeni bir kullan\u0131c\u0131 olu\u015fturur.<\/li>\n<li><code>GRANT ALL PRIVILEGES ...<\/code>: <code>cakephp_user<\/code> kullan\u0131c\u0131s\u0131na <code>my_cakephp_db<\/code> veritaban\u0131 \u00fczerindeki t\u00fcm ayr\u0131cal\u0131klar\u0131 verir.<\/li>\n<li><code>FLUSH PRIVILEGES;<\/code>: Ayr\u0131cal\u0131k tablolar\u0131n\u0131 yeniden y\u00fckler, b\u00f6ylece de\u011fi\u015fiklikler hemen ge\u00e7erli olur.<\/li>\n<li><code>EXIT;<\/code>: MySQL istemcisinden \u00e7\u0131kar.<\/li>\n<\/ul>\n<h4>CakePHP Veritaban\u0131 Ba\u011flant\u0131s\u0131n\u0131 Yap\u0131land\u0131rma<\/h4>\n<p>CakePHP, veritaban\u0131 ba\u011flant\u0131 bilgilerini <code>config\/app_local.php<\/code> dosyas\u0131nda saklar. Bu dosya, <code>app_local.example.php<\/code> dosyas\u0131ndan kopyalanarak olu\u015fturulur:<\/p>\n<pre><code class=\"language-bash\">cd \/var\/www\/html\/my_cakephp_app\/config\nsudo cp app_local.example.php app_local.php\nsudo nano app_local.php\n<\/code><\/pre>\n<p><code>app_local.php<\/code> dosyas\u0131n\u0131 a\u00e7\u0131n ve <code>'Datasources'<\/code> b\u00f6l\u00fcm\u00fcn\u00fc bulun. <code>'default'<\/code> ba\u011flant\u0131s\u0131 i\u00e7in a\u015fa\u011f\u0131daki gibi d\u00fczenleyin, olu\u015fturdu\u011funuz veritaban\u0131 ad\u0131n\u0131, kullan\u0131c\u0131 ad\u0131n\u0131 ve parolas\u0131n\u0131 girin:<\/p>\n<pre><code class=\"language-php\">'Datasources' => [\n    'default' => [\n        'className' => 'Cake\\Database\\Connection',\n        'driver' => 'Cake\\Database\\Driver\\Mysql',\n        'persistent' => false,\n        'host' => 'localhost',\n        \/\/ 'port' => '3306', \/\/ Varsay\u0131lan port genellikle belirtilmeye gerek yoktur.\n        'username' => 'cakephp_user', \/\/ Olu\u015fturdu\u011funuz kullan\u0131c\u0131 ad\u0131\n        'password' => 'cok_guclu_sifreniz', \/\/ Olu\u015fturdu\u011funuz parola\n        'database' => 'my_cakephp_db', \/\/ Olu\u015fturdu\u011funuz veritaban\u0131 ad\u0131\n        'encoding' => 'utf8mb4',\n        'timezone' => 'UTC',\n        'cacheMetadata' => true,\n        'quoteIdentifiers' => false,\n        'log' => false,\n        \/\/ 'init' => ['SET GLOBAL innodb_stats_on_metadata = 0'],\n        'url' => env('DATABASE_URL', null),\n    ],\n    \/\/ ... di\u011fer veritaban\u0131 yap\u0131land\u0131rmalar\u0131 ...\n],\n<\/code><\/pre>\n<p>De\u011fi\u015fiklikleri kaydedip dosyay\u0131 kapat\u0131n.<\/p>\n<h3>Apache Sanal Host Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>CakePHP uygulaman\u0131z\u0131n web \u00fczerinden eri\u015filebilir olmas\u0131 i\u00e7in Apache&#8217;de bir sanal host (Virtual Host) yap\u0131land\u0131rmas\u0131 olu\u015fturmam\u0131z gerekiyor. Bu, Apache&#8217;ye belirli bir alan ad\u0131 veya IP adresi i\u00e7in hangi dizinden i\u00e7erik sunaca\u011f\u0131n\u0131 s\u00f6yler.<\/p>\n<h4>Sanal Host Dosyas\u0131 Olu\u015fturma<\/h4>\n<p>Yeni bir sanal host yap\u0131land\u0131rma dosyas\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/apache2\/sites-available\/my_cakephp_app.conf\n<\/code><\/pre>\n<p>Dosyan\u0131n i\u00e7ine a\u015fa\u011f\u0131daki i\u00e7eri\u011fi ekleyin. <code>ServerName<\/code> k\u0131sm\u0131na sunucunuzun IP adresini veya alan ad\u0131n\u0131 yazmay\u0131 unutmay\u0131n. <code>DocumentRoot<\/code>&#8216;un CakePHP uygulaman\u0131z\u0131n <code>webroot<\/code> dizinini i\u015faret etti\u011finden emin olun.<\/p>\n<pre><code class=\"language-apache\"><VirtualHost *:80>\n    ServerAdmin webmaster@localhost\n    ServerName sunucu_ip_adresiniz_veya_alan_adiniz\n    DocumentRoot \/var\/www\/html\/my_cakephp_app\/webroot\n\n    <Directory \/var\/www\/html\/my_cakephp_app\/webroot>\n        Options Indexes FollowSymLinks\n        AllowOverride All\n        Require all granted\n    <\/Directory>\n\n    ErrorLog ${APACHE_LOG_DIR}\/error.log\n    CustomLog ${APACHE_LOG_DIR}\/access.log combined\n<\/VirtualHost>\n<\/code><\/pre>\n<p>Buradaki \u00f6nemli noktalar:<\/p>\n<ul>\n<li><code>ServerName<\/code>: Taray\u0131c\u0131n\u0131zda uygulaman\u0131za eri\u015fmek i\u00e7in kullanaca\u011f\u0131n\u0131z IP adresi veya alan ad\u0131.<\/li>\n<li><code>DocumentRoot<\/code>: Apache&#8217;nin dosyalar\u0131 sunaca\u011f\u0131 ana dizin. CakePHP uygulamalar\u0131 i\u00e7in bu, projenin <code>webroot<\/code> dizini olmal\u0131d\u0131r (\u00f6rne\u011fin, <code>\/var\/www\/html\/my_cakephp_app\/webroot<\/code>).<\/li>\n<li><code><Directory><\/code> blo\u011fu: Bu dizin i\u00e7in \u00f6zel yap\u0131land\u0131rmalar i\u00e7erir.\n<ul>\n<li><code>Options Indexes FollowSymLinks<\/code>: Dizin listelemeyi ve sembolik ba\u011flant\u0131lar\u0131 takip etmeyi etkinle\u015ftirir.<\/li>\n<li><code>AllowOverride All<\/code>: <code>.htaccess<\/code> dosyalar\u0131n\u0131n yap\u0131land\u0131rma ge\u00e7ersiz k\u0131lmalar\u0131na izin verir. CakePHP&#8217;nin URL yeniden yazma (mod_rewrite) kurallar\u0131n\u0131 kullanabilmesi i\u00e7in bu zorunludur.<\/li>\n<li><code>Require all granted<\/code>: Apache 2.4 ve sonras\u0131 i\u00e7in bu dizine eri\u015fime izin verir.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Dosyay\u0131 kaydedip kapat\u0131n.<\/p>\n<h4>Sanal Hostu Etkinle\u015ftirme ve Apache&#8217;yi Yeniden Ba\u015flatma<\/h4>\n<p>Yeni sanal host dosyas\u0131n\u0131 etkinle\u015ftirmek ve Apache&#8217;nin URL yeniden yazma mod\u00fcl\u00fcn\u00fc (<code>mod_rewrite<\/code>) etkinle\u015ftirmek i\u00e7in a\u015fa\u011f\u0131daki komutlar\u0131 kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo a2ensite my_cakephp_app.conf\nsudo a2enmod rewrite\nsudo a2dissite 000-default.conf # Varsay\u0131lan Apache sayfas\u0131n\u0131 devre d\u0131\u015f\u0131 b\u0131rakmak isteyebilirsiniz\nsudo systemctl restart apache2\n<\/code><\/pre>\n<p>Bu komutlar:<\/p>\n<ul>\n<li><code>a2ensite my_cakephp_app.conf<\/code>: Yeni sanal host yap\u0131land\u0131rman\u0131z\u0131 etkinle\u015ftirir.<\/li>\n<li><code>a2enmod rewrite<\/code>: Apache&#8217;nin URL yeniden yazma mod\u00fcl\u00fcn\u00fc etkinle\u015ftirir. CakePHP&#8217;nin &#8220;g\u00fczel URL&#8217;ler&#8221; (pretty URLs) kullanabilmesi i\u00e7in bu mod\u00fcl\u00fcn etkin olmas\u0131 \u015fartt\u0131r.<\/li>\n<li><code>a2dissite 000-default.conf<\/code>: (\u0130ste\u011fe ba\u011fl\u0131) Apache&#8217;nin varsay\u0131lan &#8220;It works!&#8221; sayfas\u0131n\u0131 devre d\u0131\u015f\u0131 b\u0131rak\u0131r, b\u00f6ylece sunucunuza eri\u015fildi\u011finde do\u011frudan CakePHP uygulaman\u0131z g\u00f6r\u00fcn\u00fcr.<\/li>\n<li><code>systemctl restart apache2<\/code>: T\u00fcm de\u011fi\u015fikliklerin ge\u00e7erli olmas\u0131 i\u00e7in Apache servisini yeniden ba\u015flat\u0131r.<\/li>\n<\/ul>\n<h3>CakePHP Uygulamas\u0131n\u0131 Test Etme<\/h3>\n<p>\u015eimdi her \u015feyin do\u011fru kurulup kurulmad\u0131\u011f\u0131n\u0131 kontrol etme zaman\u0131. Web taray\u0131c\u0131n\u0131z\u0131 a\u00e7\u0131n ve <code>http:\/\/sunucu_ip_adresiniz_veya_alan_adiniz<\/code> adresine gidin. CakePHP&#8217;nin varsay\u0131lan ho\u015f geldiniz sayfas\u0131n\u0131 g\u00f6rmelisiniz. Bu sayfa, CakePHP&#8217;nin ba\u015far\u0131yla y\u00fcklendi\u011fini ve Apache ile do\u011fru \u015fekilde yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<p>Ho\u015f geldiniz sayfas\u0131nda, veritaban\u0131 ba\u011flant\u0131n\u0131z\u0131n da ye\u015fil bir tik ile onayland\u0131\u011f\u0131n\u0131 g\u00f6rmelisiniz. E\u011fer veritaban\u0131 ba\u011flant\u0131s\u0131 bir hata g\u00f6steriyorsa, <code>config\/app_local.php<\/code> dosyas\u0131ndaki veritaban\u0131 kimlik bilgilerini (kullan\u0131c\u0131 ad\u0131, parola, veritaban\u0131 ad\u0131) ve MySQL sunucusundaki kullan\u0131c\u0131\/veritaban\u0131 ayarlar\u0131n\u0131 tekrar kontrol edin.<\/p>\n<h3>Sorun Giderme ve \u0130pu\u00e7lar\u0131<\/h3>\n<p>Kurulum s\u0131ras\u0131nda veya sonras\u0131nda kar\u015f\u0131la\u015fabilece\u011finiz baz\u0131 yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcmleri:<\/p>\n<h4>Apache Mod_Rewrite Etkinle\u015ftirme<\/h4>\n<p>E\u011fer CakePHP&#8217;nin ho\u015f geldiniz sayfas\u0131n\u0131 g\u00f6remiyor ve bunun yerine &#8220;Not Found&#8221; hatas\u0131 al\u0131yorsan\u0131z veya URL&#8217;ler d\u00fczg\u00fcn \u00e7al\u0131\u015fm\u0131yorsa, <code>mod_rewrite<\/code> etkinle\u015ftirilmemi\u015f veya sanal host yap\u0131land\u0131rmas\u0131nda <code>AllowOverride All<\/code> ayar\u0131 eksik olabilir. Yukar\u0131daki ad\u0131mlar\u0131 kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo a2enmod rewrite\nsudo systemctl restart apache2\n<\/code><\/pre>\n<p>Ve <code>my_cakephp_app.conf<\/code> dosyas\u0131ndaki <code><Directory><\/code> blo\u011funda <code>AllowOverride All<\/code> oldu\u011fundan emin olun.<\/p>\n<h4>Hata G\u00fcnl\u00fcklerini Kontrol Etme<\/h4>\n<p>Sorunlarla kar\u015f\u0131la\u015ft\u0131\u011f\u0131n\u0131zda, hata g\u00fcnl\u00fcklerini kontrol etmek en iyi ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r. Apache hata g\u00fcnl\u00fckleri ve CakePHP uygulama g\u00fcnl\u00fckleri size ipu\u00e7lar\u0131 verecektir:<\/p>\n<ul>\n<li><strong>Apache Hata G\u00fcnl\u00fckleri:<\/strong> <code>\/var\/log\/apache2\/error.log<\/code><\/li>\n<li><strong>CakePHP Uygulama G\u00fcnl\u00fckleri:<\/strong> <code>\/var\/www\/html\/my_cakephp_app\/logs\/error.log<\/code><\/li>\n<\/ul>\n<p>G\u00fcnl\u00fckleri ger\u00e7ek zamanl\u0131 olarak izlemek i\u00e7in <code>tail -f<\/code> komutunu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo tail -f \/var\/log\/apache2\/error.log\ntail -f \/var\/www\/html\/my_cakephp_app\/logs\/error.log\n<\/code><\/pre>\n<h4>G\u00fcvenlik \u0130pu\u00e7lar\u0131<\/h4>\n<ul>\n<li><strong>Varsay\u0131lan Parolalar\u0131 De\u011fi\u015ftirin:<\/strong> MySQL root parolas\u0131 ve di\u011fer t\u00fcm varsay\u0131lan kimlik bilgilerini g\u00fc\u00e7l\u00fc, benzersiz parolalarla de\u011fi\u015ftirin.<\/li>\n<li><strong>UFW&#8217;yi Do\u011fru Yap\u0131land\u0131r\u0131n:<\/strong> Yaln\u0131zca gerekli portlar\u0131 a\u00e7\u0131n (genellikle HTTP i\u00e7in 80 ve HTTPS i\u00e7in 443).<\/li>\n<li><strong>SSL\/TLS Kullan\u0131n:<\/strong> \u00dcretim ortam\u0131nda her zaman HTTPS kullan\u0131n. Let&#8217;s Encrypt gibi ara\u00e7larla \u00fccretsiz SSL sertifikalar\u0131 alabilirsiniz.<\/li>\n<li><strong>Dizin \u0130zinleri:<\/strong> Dosya ve dizin izinlerini m\u00fcmk\u00fcn olan en k\u0131s\u0131tl\u0131 seviyede tutun. <code>777<\/code> gibi geni\u015f izinlerden ka\u00e7\u0131n\u0131n. <code>775<\/code> veya <code>755<\/code> genellikle yeterlidir.<\/li>\n<li><strong>PHP Yap\u0131land\u0131rmas\u0131:<\/strong> <code>php.ini<\/code> dosyas\u0131ndaki (genellikle <code>\/etc\/php\/7.2\/apache2\/php.ini<\/code>) <code>display_errors<\/code> ayar\u0131n\u0131 \u00fcretim ortam\u0131nda <code>Off<\/code> olarak ayarlay\u0131n. Hatalar\u0131n kullan\u0131c\u0131ya g\u00f6sterilmesi yerine g\u00fcnl\u00fcklere yaz\u0131lmas\u0131n\u0131 sa\u011flay\u0131n.<\/li>\n<\/ul>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu kapsaml\u0131 rehberde, Ubuntu 18.04 LTS i\u015fletim sistemi \u00fczerinde bir LAMP y\u0131\u011f\u0131n\u0131 kurmay\u0131 ve ard\u0131ndan bu altyap\u0131 \u00fczerine bir CakePHP uygulamas\u0131n\u0131 ad\u0131m ad\u0131m nas\u0131l yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 \u00f6\u011frendiniz. Apache web sunucusundan MySQL veritaban\u0131na, PHP&#8217;nin gerekli uzant\u0131lar\u0131ndan Composer ba\u011f\u0131ml\u0131l\u0131k y\u00f6neticisine ve son olarak CakePHP&#8217;nin kendi kurulum ve yap\u0131land\u0131rmas\u0131na kadar t\u00fcm \u00f6nemli ad\u0131mlar\u0131 tamamlad\u0131k.<\/p>\n<p>Art\u0131k temel bir CakePHP geli\u015ftirme ortam\u0131na sahipsiniz. Bu ortam, web uygulamalar\u0131 geli\u015ftirmeye ba\u015flamak, CakePHP&#8217;nin g\u00fc\u00e7l\u00fc \u00f6zelliklerini ke\u015ffetmek ve projelerinizi hayata ge\u00e7irmek i\u00e7in sa\u011flam bir temel sunar. CakePHP&#8217;nin MVC yap\u0131s\u0131, ORM (Object-Relational Mapping), do\u011frulama (validation), form olu\u015fturma (form building) ve g\u00fcvenlikle ilgili yerle\u015fik \u00f6zellikleri sayesinde, web uygulamalar\u0131n\u0131z\u0131 daha h\u0131zl\u0131, daha g\u00fcvenli ve daha s\u00fcrd\u00fcr\u00fclebilir bir \u015fekilde geli\u015ftirebilirsiniz.<\/p>\n<p>Unutmay\u0131n ki bu kurulum bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r. Uygulaman\u0131z\u0131 geli\u015ftirdik\u00e7e, muhtemelen ek PHP uzant\u0131lar\u0131na, Apache yap\u0131land\u0131rma ayarlar\u0131na veya veritaban\u0131 optimizasyonlar\u0131na ihtiya\u00e7 duyabilirsiniz. Ancak bu rehberde sunulan ad\u0131mlar, ba\u015far\u0131l\u0131 bir CakePHP projesinin temellerini atmak i\u00e7in gerekli t\u00fcm bilgileri sa\u011flamaktad\u0131r. \u0130yi geli\u015ftirmeler!<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"CakePHP Uygulamas\u0131n\u0131 Ubuntu 18.04 \u00dczerinde LAMP ile Kurulumu: Kapsaml\u0131 Bir Rehber\nWeb geli\u015ftirme d\u00fcnyas\u0131nda, h\u0131zl\u0131 ve verimli uygulamalar ol","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-35274","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>CakePHP Uygulamas\u0131n\u0131 Ubuntu 18.04 \u00dczerinde LAMP ile Kurulumu: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CakePHP Uygulamas\u0131n\u0131 Ubuntu 18.04 \u00dczerinde LAMP ile Kurulumu: Kapsaml\u0131 Bir Rehber\" \/>\n<meta property=\"og:description\" content=\"CakePHP Uygulamas\u0131n\u0131 Ubuntu 18.04 \u00dczerinde LAMP ile Kurulumu: Kapsaml\u0131 Bir Rehber Web geli\u015ftirme d\u00fcnyas\u0131nda, h\u0131zl\u0131 ve verimli uygulamalar ol\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-27T16:40:45+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"CakePHP Uygulamas\u0131n\u0131 Ubuntu 18.04 \u00dczerinde LAMP ile Kurulumu: Kapsaml\u0131 Bir Rehber\",\"datePublished\":\"2025-11-27T16:40:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/\"},\"wordCount\":2593,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/\",\"name\":\"CakePHP Uygulamas\u0131n\u0131 Ubuntu 18.04 \u00dczerinde LAMP ile Kurulumu: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-27T16:40:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CakePHP Uygulamas\u0131n\u0131 Ubuntu 18.04 \u00dczerinde LAMP ile Kurulumu: Kapsaml\u0131 Bir Rehber\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"CakePHP Uygulamas\u0131n\u0131 Ubuntu 18.04 \u00dczerinde LAMP ile Kurulumu: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"CakePHP Uygulamas\u0131n\u0131 Ubuntu 18.04 \u00dczerinde LAMP ile Kurulumu: Kapsaml\u0131 Bir Rehber","og_description":"CakePHP Uygulamas\u0131n\u0131 Ubuntu 18.04 \u00dczerinde LAMP ile Kurulumu: Kapsaml\u0131 Bir Rehber Web geli\u015ftirme d\u00fcnyas\u0131nda, h\u0131zl\u0131 ve verimli uygulamalar ol","og_url":"https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-27T16:40:45+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"16 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"CakePHP Uygulamas\u0131n\u0131 Ubuntu 18.04 \u00dczerinde LAMP ile Kurulumu: Kapsaml\u0131 Bir Rehber","datePublished":"2025-11-27T16:40:45+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/"},"wordCount":2593,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/","name":"CakePHP Uygulamas\u0131n\u0131 Ubuntu 18.04 \u00dczerinde LAMP ile Kurulumu: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-27T16:40:45+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/cakephp-uygulamasini-ubuntu-18-04-uzerinde-lamp-ile-kurulumu-kapsamli-bir-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"CakePHP Uygulamas\u0131n\u0131 Ubuntu 18.04 \u00dczerinde LAMP ile Kurulumu: Kapsaml\u0131 Bir Rehber"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35274","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=35274"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35274\/revisions"}],"predecessor-version":[{"id":35275,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35274\/revisions\/35275"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=35274"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=35274"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=35274"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}