{"id":34728,"date":"2025-11-21T08:40:42","date_gmt":"2025-11-21T05:40:42","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=34728"},"modified":"2025-11-21T08:40:42","modified_gmt":"2025-11-21T05:40:42","slug":"ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-kurulumu-kapsamli-bir-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-kurulumu-kapsamli-bir-rehber\/","title":{"rendered":"Ubuntu 16.04 \u00dczerine LAMP (Linux, Apache, MySQL, PHP) Y\u0131\u011f\u0131n\u0131 Kurulumu: Kapsaml\u0131 Bir Rehber"},"content":{"rendered":"<p><body><\/p>\n<h2>Ubuntu 16.04 \u00dczerine LAMP (Linux, Apache, MySQL, PHP) Y\u0131\u011f\u0131n\u0131 Kurulumu: Kapsaml\u0131 Bir Rehber<\/h2>\n<p>Bu kapsaml\u0131 rehber, Ubuntu 16.04 sunucusu \u00fczerine pop\u00fcler LAMP (Linux, Apache, MySQL, PHP) y\u0131\u011f\u0131n\u0131n\u0131 ad\u0131m ad\u0131m nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 detayl\u0131 bir \u015fekilde a\u00e7\u0131klamaktad\u0131r. LAMP, dinamik web siteleri ve web uygulamalar\u0131 geli\u015ftirmek ve bar\u0131nd\u0131rmak i\u00e7in end\u00fcstri standard\u0131 haline gelmi\u015f g\u00fc\u00e7l\u00fc ve a\u00e7\u0131k kaynakl\u0131 bir yaz\u0131l\u0131m paketidir. &#8220;L&#8221; Linux i\u015fletim sistemini, &#8220;A&#8221; Apache web sunucusunu, &#8220;M&#8221; MySQL veritaban\u0131 y\u00f6netim sistemini ve &#8220;P&#8221; ise PHP programlama dilini temsil eder. Bu bile\u015fenlerin birle\u015fimi, WordPress, Joomla, Drupal gibi i\u00e7erik y\u00f6netim sistemlerinden \u00f6zel olarak geli\u015ftirilmi\u015f web uygulamalar\u0131na kadar geni\u015f bir yelpazede projelerin temelini olu\u015fturur. Ubuntu 16.04, uzun s\u00fcreli destek (LTS) sa\u011flayan kararl\u0131 bir s\u00fcr\u00fcm olmas\u0131 nedeniyle, bu t\u00fcr y\u0131\u011f\u0131nlar\u0131n kurulumu i\u00e7in hala tercih edilen bir platformdur. Bu rehber, her bir bile\u015fenin kurulumunu, temel yap\u0131land\u0131rmalar\u0131n\u0131 ve g\u00fcvenlik iyile\u015ftirmelerini ele alarak, size sa\u011flam ve i\u015flevsel bir LAMP ortam\u0131 olu\u015fturma konusunda yol g\u00f6sterecektir.<\/p>\n<h3>Giri\u015f: LAMP Y\u0131\u011f\u0131n\u0131 Nedir ve Neden \u00d6nemlidir?<\/h3>\n<p>LAMP y\u0131\u011f\u0131n\u0131, web geli\u015ftirme d\u00fcnyas\u0131n\u0131n temel ta\u015flar\u0131ndan biridir ve milyonlarca web sitesinin ve uygulamas\u0131n\u0131n arkas\u0131ndaki teknolojik altyap\u0131y\u0131 olu\u015fturur. A\u00e7\u0131k kaynakl\u0131 bile\u015fenlerden olu\u015fmas\u0131, maliyet etkinli\u011fi, esnekli\u011fi ve geni\u015f topluluk deste\u011fi sayesinde hem bireysel geli\u015ftiriciler hem de b\u00fcy\u00fck kurulu\u015flar taraf\u0131ndan yayg\u0131n olarak benimsenmi\u015ftir. Linux, i\u015fletim sistemi olarak y\u0131\u011f\u0131n\u0131n temelini olu\u015fturur ve kararl\u0131l\u0131\u011f\u0131, g\u00fcvenilirli\u011fi ve y\u00fcksek performans\u0131yla bilinir. Apache HTTP Sunucusu, d\u00fcnya genelinde en \u00e7ok kullan\u0131lan web sunucular\u0131ndan biridir. Gelen web isteklerini i\u015fler, web sayfalar\u0131n\u0131 sunar ve dinamik i\u00e7eriklerin olu\u015fturulmas\u0131na olanak tan\u0131r. MySQL, ili\u015fkisel bir veritaban\u0131 y\u00f6netim sistemi olarak, web uygulamalar\u0131n\u0131n ihtiya\u00e7 duydu\u011fu t\u00fcm verileri (kullan\u0131c\u0131 bilgileri, \u00fcr\u00fcn kataloglar\u0131, blog yaz\u0131lar\u0131 vb.) depolar ve y\u00f6netir. PHP ise sunucu taraf\u0131nda \u00e7al\u0131\u015fan bir betik dili olup, dinamik web i\u00e7eri\u011fi olu\u015fturmak, veritabanlar\u0131yla etkile\u015fim kurmak ve kullan\u0131c\u0131 etkile\u015fimlerini y\u00f6netmek i\u00e7in kullan\u0131l\u0131r. Bu d\u00f6rt bile\u015fenin uyumlu bir \u015fekilde bir araya gelmesi, geli\u015ftiricilere g\u00fc\u00e7l\u00fc ve \u00f6l\u00e7eklenebilir web \u00e7\u00f6z\u00fcmleri sunma imkan\u0131 tan\u0131r. Ubuntu 16.04 \u00fczerinde bu y\u0131\u011f\u0131n\u0131 kurmak, hem \u00f6\u011frenme hem de \u00fcretim ortamlar\u0131 i\u00e7in sa\u011flam bir ba\u015flang\u0131\u00e7 noktas\u0131 sa\u011flar.<\/p>\n<h3>\u00d6n Ko\u015fullar<\/h3>\n<p>Bu rehbere ba\u015flamadan \u00f6nce, a\u015fa\u011f\u0131daki \u00f6n ko\u015fullar\u0131n kar\u015f\u0131land\u0131\u011f\u0131ndan emin olman\u0131z gerekmektedir:<\/p>\n<p>*   <strong>Ubuntu 16.04 Sunucusu:<\/strong> Temiz bir Ubuntu 16.04 sunucusu kurulumu \u00f6nerilir. Bu sunucu fiziksel bir makine, bir sanal makine (VM) veya bir bulut sunucusu olabilir.<br \/>\n*   <strong>Sudo Yetkilerine Sahip Bir Kullan\u0131c\u0131:<\/strong> Root kullan\u0131c\u0131s\u0131 yerine, sudo ayr\u0131cal\u0131klar\u0131na sahip, root olmayan bir kullan\u0131c\u0131 ile \u00e7al\u0131\u015fman\u0131z g\u00fcvenlik a\u00e7\u0131s\u0131ndan daha iyidir. Bu rehberdeki t\u00fcm komutlar <code>sudo<\/code> \u00f6nekiyle kullan\u0131lacakt\u0131r.<br \/>\n*   <strong>\u0130nternet Ba\u011flant\u0131s\u0131:<\/strong> Sunucunuzun paketleri indirebilmesi i\u00e7in aktif bir internet ba\u011flant\u0131s\u0131na sahip olmas\u0131 gerekmektedir.<br \/>\n*   <strong>Temel Linux Komut Sat\u0131r\u0131 Bilgisi:<\/strong> Temel Linux komutlar\u0131n\u0131 (dizin de\u011fi\u015ftirme, dosya d\u00fczenleme vb.) bilmek, kurulum s\u00fcrecini daha rahat y\u00f6netmenizi sa\u011flayacakt\u0131r.<\/p>\n<p>Bu ko\u015fullar sa\u011fland\u0131\u011f\u0131nda, LAMP y\u0131\u011f\u0131n\u0131n\u0131 kurmaya ba\u015flayabiliriz.<\/p>\n<h3>1. Sistem G\u00fcncellemesi<\/h3>\n<p>Herhangi bir yaz\u0131l\u0131m kurulumuna ba\u015flamadan \u00f6nce, sunucunuzdaki paket listelerini ve kurulu paketleri en g\u00fcncel hallerine getirmek her zaman iyi bir uygulamad\u0131r. Bu, potansiyel g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapat\u0131r ve yaz\u0131l\u0131m \u00e7ak\u0131\u015fmalar\u0131n\u0131 \u00f6nler.<\/p>\n<p>\u00d6ncelikle, paket listelerinizi g\u00fcncelleyin:<\/p>\n<pre><code class=\"language-bash\">sudo apt update<\/code><\/pre>\n<p>Bu komut, yerel paket indeksinizi uzak depolardaki en son bilgilerle senkronize eder. Ard\u0131ndan, kurulu paketleri g\u00fcncelleyin:<\/p>\n<pre><code class=\"language-bash\">sudo apt upgrade<\/code><\/pre>\n<p>Bu komut, mevcut kurulu paketlerinizi yeni s\u00fcr\u00fcmlerine y\u00fckseltir. Kernel veya di\u011fer \u00f6nemli sistem bile\u015fenleri i\u00e7in bir y\u00fckseltme varsa, <code>dist-upgrade<\/code> komutu daha kapsaml\u0131 bir y\u00fckseltme sa\u011flayabilir:<\/p>\n<pre><code class=\"language-bash\">sudo apt dist-upgrade<\/code><\/pre>\n<p>Y\u00fckseltme i\u015flemi tamamland\u0131ktan sonra, art\u0131k ihtiya\u00e7 duyulmayan ba\u011f\u0131ml\u0131l\u0131klar\u0131 ve eski \u00e7ekirdekleri temizlemek i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo apt autoremove<\/code><\/pre>\n<p>Bu ad\u0131mlar\u0131 tamamlad\u0131ktan sonra, sunucunuz LAMP y\u0131\u011f\u0131n\u0131 kurulumu i\u00e7in haz\u0131r hale gelecektir.<\/p>\n<h3>2. Apache Web Sunucusu Kurulumu<\/h3>\n<p>LAMP y\u0131\u011f\u0131n\u0131n\u0131n &#8220;A&#8221; harfini temsil eden Apache web sunucusu, web isteklerini i\u015flemek ve web sayfalar\u0131n\u0131 sunmak i\u00e7in kullan\u0131l\u0131r. Ubuntu&#8217;da Apache&#8217;yi kurmak olduk\u00e7a basittir.<\/p>\n<h4>Apache Kurulum Komutu<\/h4>\n<p>Apache web sunucusunu kurmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt install apache2<\/code><\/pre>\n<p>Kurulum tamamland\u0131ktan sonra, Apache otomatik olarak ba\u015flayacak ve sistem a\u00e7\u0131l\u0131\u015f\u0131nda da otomatik olarak \u00e7al\u0131\u015facak \u015fekilde ayarlanacakt\u0131r.<\/p>\n<h4>G\u00fcvenlik Duvar\u0131 Ayarlar\u0131 (UFW)<\/h4>\n<p>E\u011fer sunucunuzda UFW (Uncomplicated Firewall) etkinse, Apache&#8217;nin d\u0131\u015far\u0131dan eri\u015filebilir olmas\u0131 i\u00e7in g\u00fcvenlik duvar\u0131nda gerekli izinleri vermeniz gerekir. \u0130lk olarak, UFW&#8217;nin hangi uygulama profillerini tan\u0131d\u0131\u011f\u0131n\u0131 kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo ufw app list<\/code><\/pre>\n<p>Bu komutun \u00e7\u0131kt\u0131s\u0131nda &#8220;Apache Full&#8221;, &#8220;Apache&#8221; ve &#8220;Apache Secure&#8221; gibi profiller g\u00f6rmelisiniz. &#8220;Apache Full&#8221; profili, hem 80 (HTTP) hem de 443 (HTTPS) portlar\u0131na izin verirken, &#8220;Apache&#8221; sadece 80 portuna, &#8220;Apache Secure&#8221; ise sadece 443 portuna izin verir. \u015eimdilik sadece HTTP eri\u015fimine ihtiyac\u0131m\u0131z oldu\u011fu i\u00e7in &#8220;Apache Full&#8221; veya &#8220;Apache&#8221; kullanabiliriz. \u0130leride SSL kurdu\u011funuzda &#8220;Apache Full&#8221; daha uygun olacakt\u0131r.<\/p>\n<p>A\u015fa\u011f\u0131daki komut ile Apache i\u00e7in gerekli izinleri verin:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 'Apache Full'<\/code><\/pre>\n<p>E\u011fer UFW hen\u00fcz etkin de\u011filse, a\u015fa\u011f\u0131daki komutla etkinle\u015ftirebilirsiniz (bu, SSH ba\u011flant\u0131n\u0131z\u0131 kesebilece\u011fi i\u00e7in dikkatli olun ve \u00f6nce SSH i\u00e7in izin verdi\u011finizden emin olun):<\/p>\n<pre><code class=\"language-bash\">sudo ufw enable<\/code><\/pre>\n<p>G\u00fcvenlik duvar\u0131 durumunu kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo ufw status<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da Apache&#8217;ye izin verildi\u011fini g\u00f6rmelisiniz.<\/p>\n<h4>Apache Durumunu Kontrol Etme<\/h4>\n<p>Apache&#8217;nin d\u00fczg\u00fcn \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in birka\u00e7 y\u00f6ntem vard\u0131r:<\/p>\n<p>1.  <strong>Sistem Hizmeti Kontrol\u00fc:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl status apache2<\/code><\/pre>\n<p>    \u00c7\u0131kt\u0131da &#8220;active (running)&#8221; ifadesini g\u00f6rmeniz, Apache&#8217;nin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<p>2.  <strong>Web Taray\u0131c\u0131s\u0131 ile Kontrol:<\/strong><br \/>\n    Web taray\u0131c\u0131n\u0131z\u0131 a\u00e7\u0131n ve sunucunuzun IP adresini yaz\u0131n (\u00f6rne\u011fin, <code>http:\/\/your_server_ip<\/code>). E\u011fer her \u015fey yolundaysa, &#8220;Apache2 Ubuntu Default Page&#8221; ba\u015fl\u0131kl\u0131 varsay\u0131lan Apache sayfas\u0131n\u0131 g\u00f6rmelisiniz. Sunucunuzun IP adresini bilmiyorsan\u0131z, a\u015fa\u011f\u0131daki komutlardan birini kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's\/\\\/.*$\/\/'<\/code><\/pre>\n<p>    veya harici IP adresiniz i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">curl -4 icanhazip.com<\/code><\/pre>\n<h4>Temel Apache Ayarlar\u0131<\/h4>\n<p>Apache&#8217;nin ana yap\u0131land\u0131rma dosyas\u0131 <code>\/etc\/apache2\/apache2.conf<\/code> konumunda bulunur. Ancak, \u00e7o\u011fu yap\u0131land\u0131rma ayar\u0131 bu dosya yerine, daha d\u00fczenli bir yap\u0131 sa\u011flayan alt dizinlerde tutulur.<\/p>\n<p>*   <code>\/etc\/apache2\/ports.conf<\/code>: Apache&#8217;nin hangi portlar\u0131 dinledi\u011fini tan\u0131mlar.<br \/>\n*   <code>\/etc\/apache2\/sites-available\/<\/code>: Her bir web sitesi (Virtual Host) i\u00e7in yap\u0131land\u0131rma dosyalar\u0131n\u0131 i\u00e7erir.<br \/>\n*   <code>\/etc\/apache2\/sites-enabled\/<\/code>: Etkin olan Virtual Host&#8217;lar\u0131n sembolik ba\u011flant\u0131lar\u0131n\u0131 i\u00e7erir. Apache, bu dizindeki ba\u011flant\u0131lar\u0131 okur.<br \/>\n*   <code>\/var\/www\/html<\/code>: Varsay\u0131lan web k\u00f6k dizinidir. Web sitenizin dosyalar\u0131n\u0131 buraya veya Virtual Host yap\u0131land\u0131rman\u0131zda belirtti\u011finiz ba\u015fka bir dizine y\u00fcklersiniz.<\/p>\n<p>Yeni bir Virtual Host etkinle\u015ftirmek i\u00e7in <code>a2ensite<\/code> komutunu, devre d\u0131\u015f\u0131 b\u0131rakmak i\u00e7in <code>a2dissite<\/code> komutunu kullan\u0131r\u0131z. Herhangi bir yap\u0131land\u0131rma de\u011fi\u015fikli\u011finden sonra Apache&#8217;yi yeniden ba\u015flatman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart apache2<\/code><\/pre>\n<p>Bu ad\u0131mlarla Apache web sunucunuz ba\u015far\u0131yla kurulmu\u015f ve temel olarak yap\u0131land\u0131r\u0131lm\u0131\u015ft\u0131r.<\/p>\n<h3>3. MySQL Veritaban\u0131 Kurulumu<\/h3>\n<p>LAMP y\u0131\u011f\u0131n\u0131n\u0131n &#8220;M&#8221; harfini temsil eden MySQL, veritaban\u0131 y\u00f6netim sistemidir. Web uygulamalar\u0131n\u0131z\u0131n verilerini depolamak, y\u00f6netmek ve almak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h4>MySQL Kurulum Komutu<\/h4>\n<p>MySQL sunucusunu kurmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt install mysql-server<\/code><\/pre>\n<p>Kurulum s\u0131ras\u0131nda, MySQL root kullan\u0131c\u0131s\u0131 i\u00e7in bir parola belirlemeniz istenecektir. Bu parola, veritaban\u0131 sunucusunun y\u00f6netiminde kullan\u0131lacak kritik bir parolad\u0131r, bu y\u00fczden g\u00fc\u00e7l\u00fc ve g\u00fcvenli bir parola se\u00e7ti\u011finizden emin olun.<\/p>\n<h4>G\u00fcvenlik Scripti<\/h4>\n<p>MySQL kurulumu tamamland\u0131ktan sonra, veritaban\u0131 sunucunuzun g\u00fcvenli\u011fini art\u0131rmak i\u00e7in bir g\u00fcvenlik scripti \u00e7al\u0131\u015ft\u0131rman\u0131z \u015fiddetle tavsiye edilir:<\/p>\n<pre><code class=\"language-bash\">sudo mysql_secure_installation<\/code><\/pre>\n<p>Bu script size bir dizi soru soracakt\u0131r:<\/p>\n<p>1.  <strong>VALIDATE PASSWORD PLUGIN:<\/strong> Bu eklenti, kullan\u0131c\u0131 parolalar\u0131n\u0131n g\u00fcc\u00fcn\u00fc kontrol etmenizi sa\u011flar. \u0130ste\u011fe ba\u011fl\u0131d\u0131r, ancak g\u00fcvenlik i\u00e7in etkinle\u015ftirilmesi \u00f6nerilir. E\u011fer etkinle\u015ftirirseniz, parola g\u00fcc\u00fc seviyelerinden birini se\u00e7meniz gerekecektir (D\u00fc\u015f\u00fck, Orta, G\u00fc\u00e7l\u00fc).<br \/>\n2.  <strong>Change the root password?<\/strong>: Kurulum s\u0131ras\u0131nda belirledi\u011finiz root parolas\u0131 zaten varsa, bunu de\u011fi\u015ftirmenize gerek yoktur. <code>N<\/code> tu\u015funa basarak ge\u00e7ebilirsiniz.<br \/>\n3.  <strong>Remove anonymous users?<\/strong>: Anonim kullan\u0131c\u0131lar test ama\u00e7l\u0131d\u0131r ve \u00fcretim ortamlar\u0131nda g\u00fcvenlik riski olu\u015fturur. <code>Y<\/code> tu\u015funa basarak bunlar\u0131 kald\u0131rman\u0131z \u00f6nerilir.<br \/>\n4.  <strong>Disallow root login remotely?<\/strong>: Root kullan\u0131c\u0131s\u0131n\u0131n sadece <code>localhost<\/code> \u00fczerinden ba\u011flanabilmesi, uzaktan sald\u0131r\u0131 riskini azalt\u0131r. <code>Y<\/code> tu\u015funa basarak uzaktan root giri\u015fini devre d\u0131\u015f\u0131 b\u0131rakman\u0131z \u00f6nerilir.<br \/>\n5.  <strong>Remove test database and access to it?<\/strong>: Varsay\u0131lan olarak gelen <code>test<\/code> veritaban\u0131 da g\u00fcvenlik riski olu\u015fturabilir. <code>Y<\/code> tu\u015funa basarak bunu kald\u0131rman\u0131z \u00f6nerilir.<br \/>\n6.  <strong>Reload privilege tables now?<\/strong>: Yukar\u0131daki de\u011fi\u015fikliklerin hemen uygulanmas\u0131 i\u00e7in ayr\u0131cal\u0131k tablolar\u0131n\u0131n yeniden y\u00fcklenmesi gerekir. <code>Y<\/code> tu\u015funa basarak i\u015flemi tamamlay\u0131n.<\/p>\n<p>Bu ad\u0131mlar\u0131 tamamlad\u0131ktan sonra MySQL sunucunuz daha g\u00fcvenli hale gelecektir.<\/p>\n<h4>MySQL Durumunu Kontrol Etme<\/h4>\n<p>MySQL sunucusunun d\u00fczg\u00fcn \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status mysql<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da &#8220;active (running)&#8221; ifadesini g\u00f6rmeniz, MySQL&#8217;in \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<h4>MySQL&#8217;e Ba\u011flanma ve Yeni Kullan\u0131c\u0131\/Veritaban\u0131 Olu\u015fturma<\/h4>\n<p>Web uygulamalar\u0131n\u0131z i\u00e7in genellikle root kullan\u0131c\u0131s\u0131 yerine, belirli ayr\u0131cal\u0131klara sahip ayr\u0131 bir veritaban\u0131 kullan\u0131c\u0131s\u0131 olu\u015fturmak daha g\u00fcvenlidir.<\/p>\n<p>MySQL kabu\u011funa ba\u011flan\u0131n:<\/p>\n<pre><code class=\"language-bash\">mysql -u root -p<\/code><\/pre>\n<p>Parola istendi\u011finde, MySQL root parolan\u0131z\u0131 girin.<\/p>\n<p>\u015eimdi, uygulaman\u0131z i\u00e7in yeni bir veritaban\u0131 ve kullan\u0131c\u0131 olu\u015ftural\u0131m. <code>mydatabase<\/code>, <code>myuser<\/code> ve <code>password<\/code> yerine kendi tercih etti\u011finiz de\u011ferleri kullan\u0131n:<\/p>\n<pre><code class=\"language-sql\">CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\nCREATE USER 'myuser'@'localhost' IDENTIFIED BY 'password';\nGRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';\nFLUSH PRIVILEGES;\nEXIT;<\/code><\/pre>\n<p>Bu komutlar s\u0131ras\u0131yla:<br \/>\n*   <code>mydatabase<\/code> ad\u0131nda yeni bir veritaban\u0131 olu\u015fturur ve UTF-8 deste\u011fi ekler.<br \/>\n*   <code>myuser<\/code> ad\u0131nda, sadece <code>localhost<\/code>&#8216;tan ba\u011flanabilen ve <code>password<\/code> parolas\u0131na sahip yeni bir kullan\u0131c\u0131 olu\u015fturur.<br \/>\n*   <code>myuser<\/code> kullan\u0131c\u0131s\u0131na <code>mydatabase<\/code> \u00fczerindeki t\u00fcm ayr\u0131cal\u0131klar\u0131 verir.<br \/>\n*   Ayr\u0131cal\u0131k tablolar\u0131n\u0131 g\u00fcncelleyerek de\u011fi\u015fikliklerin hemen etkili olmas\u0131n\u0131 sa\u011flar.<br \/>\n*   MySQL kabu\u011fundan \u00e7\u0131kar.<\/p>\n<p>Art\u0131k web uygulaman\u0131z, <code>myuser<\/code> kullan\u0131c\u0131s\u0131 ve <code>password<\/code> parolas\u0131 ile <code>mydatabase<\/code> veritaban\u0131na ba\u011flanabilir. Bu ad\u0131mlarla MySQL sunucunuz da ba\u015far\u0131l\u0131 bir \u015fekilde kurulmu\u015f ve yap\u0131land\u0131r\u0131lm\u0131\u015ft\u0131r.<\/p>\n<h3>4. PHP Kurulumu<\/h3>\n<p>LAMP y\u0131\u011f\u0131n\u0131n\u0131n &#8220;P&#8221; harfini temsil eden PHP, dinamik web i\u00e7eri\u011fi olu\u015fturmak i\u00e7in kullan\u0131lan sunucu taraf\u0131 bir betik dilidir. Apache ile entegre \u00e7al\u0131\u015farak web uygulamalar\u0131n\u0131z\u0131n mant\u0131\u011f\u0131n\u0131 y\u00fcr\u00fct\u00fcr ve veritaban\u0131yla etkile\u015fim kurar.<\/p>\n<h4>Temel PHP Paketi ve Apache Entegrasyonu<\/h4>\n<p>Ubuntu 16.04 genellikle PHP 7.0 ile gelir. PHP&#8217;yi ve Apache ile entegrasyonu sa\u011flayan mod\u00fcl\u00fc kurmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt install php libapache2-mod-php php-mysql<\/code><\/pre>\n<p>*   <code>php<\/code>: Temel PHP yorumlay\u0131c\u0131s\u0131 ve ilgili dosyalar\u0131 kurar.<br \/>\n*   <code>libapache2-mod-php<\/code>: PHP&#8217;nin Apache ile bir mod\u00fcl olarak \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayan pakettir. Bu sayede Apache, <code>.php<\/code> uzant\u0131l\u0131 dosyalar\u0131 PHP yorumlay\u0131c\u0131s\u0131na iletebilir.<br \/>\n*   <code>php-mysql<\/code>: PHP&#8217;nin MySQL veritabanlar\u0131yla etkile\u015fim kurmas\u0131n\u0131 sa\u011flayan uzant\u0131d\u0131r. Bu, web uygulamalar\u0131n\u0131z\u0131n veritaban\u0131na ba\u011flanabilmesi i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<p>Kurulum tamamland\u0131ktan sonra, Apache&#8217;nin PHP mod\u00fcl\u00fcn\u00fc y\u00fcklemesi i\u00e7in yeniden ba\u015flat\u0131lmas\u0131 gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart apache2<\/code><\/pre>\n<h4>Yayg\u0131n Kullan\u0131lan PHP Uzant\u0131lar\u0131<\/h4>\n<p>\u00c7o\u011fu modern web uygulamas\u0131, temel PHP kurulumunun \u00f6tesinde \u00e7e\u015fitli PHP uzant\u0131lar\u0131na ihtiya\u00e7 duyar. Bu uzant\u0131lar, g\u00f6r\u00fcnt\u00fc i\u015fleme, cURL ile d\u0131\u015f kaynaklara ba\u011flanma, \u00e7ok dilli karakter setlerini y\u00f6netme gibi farkl\u0131 i\u015flevsellikler sa\u011flar. \u0130htiya\u00e7lar\u0131n\u0131za g\u00f6re ek uzant\u0131lar\u0131 kurabilirsiniz. \u0130\u015fte baz\u0131 yayg\u0131n kullan\u0131lan uzant\u0131lar ve kurulum komutu:<\/p>\n<pre><code class=\"language-bash\">sudo apt install php-cli php-gd php-curl php-mbstring php-xml php-zip<\/code><\/pre>\n<p>*   <code>php-cli<\/code>: PHP&#8217;yi komut sat\u0131r\u0131ndan \u00e7al\u0131\u015ft\u0131rmak i\u00e7in kullan\u0131lan aray\u00fczd\u00fcr. Geli\u015ftirme ve bak\u0131m g\u00f6revleri i\u00e7in faydal\u0131d\u0131r.<br \/>\n*   <code>php-gd<\/code>: G\u00f6r\u00fcnt\u00fc i\u015fleme fonksiyonlar\u0131 sa\u011flar (\u00f6rne\u011fin, k\u00fc\u00e7\u00fck resim olu\u015fturma, resim boyutland\u0131rma).<br \/>\n*   <code>php-curl<\/code>: \u00c7e\u015fitli protokoller (HTTP, FTP vb.) kullanarak uzak sunucularla ileti\u015fim kurmay\u0131 sa\u011flar. API entegrasyonlar\u0131 i\u00e7in vazge\u00e7ilmezdir.<br \/>\n*   <code>php-mbstring<\/code>: \u00c7ok baytl\u0131 karakter dizilerini (\u00f6rne\u011fin, T\u00fcrk\u00e7e, \u00c7ince gibi dillerdeki karakterler) d\u00fczg\u00fcn bir \u015fekilde i\u015flemek i\u00e7in kullan\u0131l\u0131r.<br \/>\n*   <code>php-xml<\/code>: XML verilerini i\u015flemek i\u00e7in fonksiyonlar sa\u011flar.<br \/>\n*   <code>php-zip<\/code>: ZIP ar\u015fivlerini olu\u015fturma ve y\u00f6netme yetene\u011fi sunar.<\/p>\n<p>Kurulumdan sonra, yeni uzant\u0131lar\u0131n etkinle\u015fmesi i\u00e7in Apache&#8217;yi tekrar yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart apache2<\/code><\/pre>\n<h4>PHP S\u00fcr\u00fcm\u00fcn\u00fc Kontrol Etme<\/h4>\n<p>Kurulu PHP s\u00fcr\u00fcm\u00fcn\u00fc kontrol etmek i\u00e7in komut sat\u0131r\u0131nda a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">php -v<\/code><\/pre>\n<p>Bu, PHP s\u00fcr\u00fcm\u00fcn\u00fcz\u00fc ve ilgili bilgileri g\u00f6sterecektir. Ubuntu 16.04 \u00fczerinde genellikle PHP 7.0.x s\u00fcr\u00fcm\u00fcn\u00fc g\u00f6rmelisiniz.<\/p>\n<h3>5. PHP&#8217;nin \u00c7al\u0131\u015ft\u0131\u011f\u0131n\u0131 Test Etme<\/h3>\n<p>Apache&#8217;nin PHP dosyalar\u0131n\u0131 do\u011fru bir \u015fekilde i\u015fleyip i\u015flemedi\u011fini test etmek i\u00e7in, web k\u00f6k dizininize basit bir PHP bilgi dosyas\u0131 olu\u015ftural\u0131m.<\/p>\n<h4><code>info.php<\/code> Dosyas\u0131 Olu\u015fturma<\/h4>\n<p>Varsay\u0131lan Apache web k\u00f6k dizini <code>\/var\/www\/html<\/code>&#8216;dir. Bu dizinde <code>info.php<\/code> ad\u0131nda yeni bir dosya olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/var\/www\/html\/info.php<\/code><\/pre>\n<p>Dosyan\u0131n i\u00e7ine a\u015fa\u011f\u0131daki kodu ekleyin:<\/p>\n<pre><code class=\"language-php\"><?php\nphpinfo();\n?><\/code><\/pre>\n<p>Dosyay\u0131 kaydedin ve kapat\u0131n (Nano&#8217;da <code>CTRL+X<\/code>, <code>Y<\/code> ve <code>Enter<\/code>).<\/p>\n<h4>Taray\u0131c\u0131dan Kontrol<\/h4>\n<p>\u015eimdi web taray\u0131c\u0131n\u0131z\u0131 a\u00e7\u0131n ve sunucunuzun IP adresine <code>info.php<\/code> dosyas\u0131n\u0131 ekleyerek gidin:<\/p>\n<pre><code class=\"language-\">http:\/\/your_server_ip\/info.php<\/code><\/pre>\n<p>E\u011fer her \u015fey yolundaysa, PHP&#8217;nin yap\u0131land\u0131rma ayarlar\u0131, kurulu uzant\u0131lar ve di\u011fer bilgileri i\u00e7eren kapsaml\u0131 bir PHP bilgi sayfas\u0131n\u0131 g\u00f6rmelisiniz. Bu sayfa, PHP&#8217;nin Apache ile ba\u015far\u0131l\u0131 bir \u015fekilde entegre oldu\u011funu g\u00f6sterir.<\/p>\n<h4>G\u00fcvenlik Uyar\u0131s\u0131<\/h4>\n<p><code>phpinfo()<\/code> sayfas\u0131, sunucunuz hakk\u0131nda hassas bilgiler (PHP s\u00fcr\u00fcm\u00fc, yap\u0131land\u0131rma yollar\u0131, uzant\u0131lar vb.) i\u00e7erir. Bu bilgiler potansiyel sald\u0131rganlar taraf\u0131ndan k\u00f6t\u00fcye kullan\u0131labilir. Bu nedenle, testi tamamlad\u0131ktan sonra <code>info.php<\/code> dosyas\u0131n\u0131 sunucunuzdan kald\u0131rman\u0131z \u015fiddetle tavsiye edilir:<\/p>\n<pre><code class=\"language-bash\">sudo rm \/var\/www\/html\/info.php<\/code><\/pre>\n<p>Bu ad\u0131m, LAMP y\u0131\u011f\u0131n\u0131n\u0131z\u0131n temel kurulumunu tamamlar ve PHP&#8217;nin d\u00fczg\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frular. Art\u0131k web uygulamalar\u0131n\u0131z\u0131 geli\u015ftirmeye veya mevcut olanlar\u0131 da\u011f\u0131tmaya ba\u015flayabilirsiniz.<\/p>\n<h3>6. Ek Yap\u0131land\u0131rmalar ve G\u00fcvenlik \u0130pu\u00e7lar\u0131<\/h3>\n<p>LAMP y\u0131\u011f\u0131n\u0131n\u0131z\u0131n temel kurulumu tamamlanm\u0131\u015f olsa da, \u00fcretim ortamlar\u0131 i\u00e7in veya daha spesifik ihtiya\u00e7lar i\u00e7in baz\u0131 ek yap\u0131land\u0131rmalar ve g\u00fcvenlik \u00f6nlemleri almak \u00f6nemlidir.<\/p>\n<h4>Apache Virtual Host Kurulumu<\/h4>\n<p>Birden fazla web sitesini ayn\u0131 sunucu \u00fczerinde bar\u0131nd\u0131rmak istiyorsan\u0131z, Virtual Host&#8217;lar\u0131 kullanman\u0131z gerekir. Virtual Host&#8217;lar, Apache&#8217;ye belirli bir alan ad\u0131 i\u00e7in hangi dizinden i\u00e7erik sunaca\u011f\u0131n\u0131 ve hangi yap\u0131land\u0131rmalar\u0131 kullanaca\u011f\u0131n\u0131 s\u00f6yler.<\/p>\n<p>Yeni bir Virtual Host dosyas\u0131 olu\u015ftural\u0131m. \u00d6rne\u011fin, <code>your_domain.com<\/code> i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/apache2\/sites-available\/your_domain.com.conf<\/code><\/pre>\n<p>\u0130\u00e7ine a\u015fa\u011f\u0131daki temel yap\u0131land\u0131rmay\u0131 ekleyin. <code>your_domain.com<\/code> yerine kendi alan ad\u0131n\u0131z\u0131, <code>\/var\/www\/your_domain<\/code> yerine ise sitenizin dosyalar\u0131n\u0131n bulunaca\u011f\u0131 dizini yaz\u0131n:<\/p>\n<pre><code class=\"language-apache\"><VirtualHost *:80>\n    ServerAdmin webmaster@localhost\n    ServerName your_domain.com\n    ServerAlias www.your_domain.com\n    DocumentRoot \/var\/www\/your_domain\n    ErrorLog ${APACHE_LOG_DIR}\/error.log\n    CustomLog ${APACHE_LOG_DIR}\/access.log combined\n\n    <Directory \/var\/www\/your_domain>\n        Options Indexes FollowSymLinks\n        AllowOverride All\n        Require all granted\n    <\/Directory>\n<\/VirtualHost><\/code><\/pre>\n<p>*   <code>ServerAdmin<\/code>: Y\u00f6neticinin e-posta adresi.<br \/>\n*   <code>ServerName<\/code>: Alan ad\u0131n\u0131z.<br \/>\n*   <code>ServerAlias<\/code>: Alan ad\u0131n\u0131z\u0131n alternatifleri (\u00f6rn. <code>www.your_domain.com<\/code>).<br \/>\n*   <code>DocumentRoot<\/code>: Web sitenizin dosyalar\u0131n\u0131n bulundu\u011fu k\u00f6k dizin. Bu dizini olu\u015fturmay\u0131 unutmay\u0131n: <code>sudo mkdir -p \/var\/www\/your_domain<\/code>.<br \/>\n*   <code>ErrorLog<\/code> ve <code>CustomLog<\/code>: Hata ve eri\u015fim kay\u0131tlar\u0131n\u0131n tutulaca\u011f\u0131 yerler.<br \/>\n*   <code><Directory><\/code> blo\u011fu: <code>DocumentRoot<\/code> dizini i\u00e7in \u00f6zel ayarlar tan\u0131mlar. <code>AllowOverride All<\/code> Apache&#8217;nin <code>.htaccess<\/code> dosyalar\u0131n\u0131 okumas\u0131na izin verir, bu da WordPress gibi CMS&#8217;ler i\u00e7in \u00f6nemlidir.<\/p>\n<p>Virtual Host dosyas\u0131n\u0131 kaydettikten sonra, yeni Virtual Host&#8217;u etkinle\u015ftirin ve varsay\u0131lan Virtual Host&#8217;u devre d\u0131\u015f\u0131 b\u0131rak\u0131n (e\u011fer art\u0131k kullanmayacaksan\u0131z):<\/p>\n<pre><code class=\"language-bash\">sudo a2ensite your_domain.com.conf\nsudo a2dissite 000-default.conf<\/code><\/pre>\n<p>Son olarak, Apache&#8217;yi yeniden ba\u015flatarak de\u011fi\u015fiklikleri uygulay\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart apache2<\/code><\/pre>\n<p>Alan ad\u0131n\u0131z\u0131n DNS kay\u0131tlar\u0131n\u0131 sunucunuzun IP adresine y\u00f6nlendirdi\u011finizden emin olun.<\/p>\n<h4>PHP Yap\u0131land\u0131rmas\u0131 (php.ini)<\/h4>\n<p>PHP&#8217;nin \u00e7al\u0131\u015fma \u015feklini kontrol eden ana yap\u0131land\u0131rma dosyas\u0131 <code>php.ini<\/code>&#8216;dir. Ubuntu 16.04&#8217;te Apache i\u00e7in PHP yap\u0131land\u0131rma dosyas\u0131 genellikle <code>\/etc\/php\/7.0\/apache2\/php.ini<\/code> konumunda bulunur. Bu dosyay\u0131 d\u00fczenleyerek PHP&#8217;nin performans\u0131n\u0131 ve g\u00fcvenlik ayarlar\u0131n\u0131 optimize edebilirsiniz.<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/php\/7.0\/apache2\/php.ini<\/code><\/pre>\n<p>Baz\u0131 yayg\u0131n olarak de\u011fi\u015ftirilen direktifler \u015funlard\u0131r:<\/p>\n<p>*   <strong><code>upload_max_filesize<\/code><\/strong>: Bir HTTP POST iste\u011fiyle y\u00fcklenebilecek maksimum dosya boyutu.<br \/>\n*   <strong><code>post_max_size<\/code><\/strong>: POST verilerinin maksimum boyutu. <code>upload_max_filesize<\/code> de\u011ferinden b\u00fcy\u00fck veya e\u015fit olmal\u0131d\u0131r.<br \/>\n*   <strong><code>memory_limit<\/code><\/strong>: Bir beti\u011fin kullanabilece\u011fi maksimum bellek miktar\u0131.<br \/>\n*   <strong><code>max_execution_time<\/code><\/strong>: Bir beti\u011fin \u00e7al\u0131\u015fmas\u0131na izin verilen maksimum s\u00fcre (saniye cinsinden).<br \/>\n*   <strong><code>display_errors<\/code><\/strong>: Hatalar\u0131n taray\u0131c\u0131da g\u00f6sterilip g\u00f6sterilmeyece\u011fini belirler. \u00dcretim ortamlar\u0131nda <code>Off<\/code> olarak ayarlanmal\u0131d\u0131r (<code>display_errors = Off<\/code>) ve hatalar log dosyalar\u0131na (<code>error_log<\/code>) yazd\u0131r\u0131lmal\u0131d\u0131r.<br \/>\n*   <strong><code>date.timezone<\/code><\/strong>: PHP betiklerinin tarih ve saat fonksiyonlar\u0131n\u0131 do\u011fru kullanabilmesi i\u00e7in zaman dilimini ayarlay\u0131n (\u00f6rn. <code>date.timezone = Europe\/Istanbul<\/code>).<\/p>\n<p>De\u011fi\u015fiklikleri yapt\u0131ktan sonra dosyay\u0131 kaydedin ve Apache&#8217;yi yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart apache2<\/code><\/pre>\n<h4>MySQL G\u00fcvenli\u011fi (Tekrar Vurgu)<\/h4>\n<p>MySQL veritaban\u0131n\u0131z, web uygulaman\u0131z\u0131n en hassas verilerini i\u00e7erir. Bu nedenle, g\u00fcvenli\u011fine \u00f6zel \u00f6nem vermelisiniz:<\/p>\n<p>*   <strong>G\u00fc\u00e7l\u00fc Parolalar:<\/strong> MySQL root ve uygulama kullan\u0131c\u0131lar\u0131 i\u00e7in her zaman karma\u015f\u0131k ve tahmin edilmesi zor parolalar kullan\u0131n.<br \/>\n*   <strong>En Az Ayr\u0131cal\u0131k Prensibi:<\/strong> Her veritaban\u0131 kullan\u0131c\u0131s\u0131na yaln\u0131zca ihtiya\u00e7 duydu\u011fu ayr\u0131cal\u0131klar\u0131 verin. \u00d6rne\u011fin, bir web uygulamas\u0131 kullan\u0131c\u0131s\u0131n\u0131n genellikle <code>DROP<\/code> veya <code>GRANT<\/code> gibi ayr\u0131cal\u0131klara ihtiyac\u0131 yoktur.<br \/>\n*   <strong>Uzak Eri\u015fimi K\u0131s\u0131tlama:<\/strong> MySQL sunucusuna uzaktan eri\u015fimi m\u00fcmk\u00fcn oldu\u011funca k\u0131s\u0131tlay\u0131n. Uygulamalar\u0131n\u0131z genellikle ayn\u0131 sunucu \u00fczerinde \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u00e7in <code>localhost<\/code>&#8216;tan eri\u015fim yeterlidir. E\u011fer uzaktan eri\u015fim gerekiyorsa, bunu belirli IP adresleriyle s\u0131n\u0131rlay\u0131n.<br \/>\n*   <strong>Veritaban\u0131 Yedeklemeleri:<\/strong> Veri kayb\u0131n\u0131 \u00f6nlemek i\u00e7in d\u00fczenli olarak veritaban\u0131 yedeklemeleri al\u0131n.<\/p>\n<h4>SSL\/TLS Kurulumu (HTTPS)<\/h4>\n<p>Web sitenizin g\u00fcvenli\u011fini ve ziyaret\u00e7i gizlili\u011fini sa\u011flamak i\u00e7in SSL\/TLS sertifikas\u0131 kullanarak HTTPS&#8217;ye ge\u00e7mek hayati \u00f6neme sahiptir. Let&#8217;s Encrypt, \u00fccretsiz, otomatik ve a\u00e7\u0131k bir Sertifika Yetkilisi (CA) olup, kolayca SSL sertifikalar\u0131 alman\u0131z\u0131 sa\u011flar.<\/p>\n<p>Let&#8217;s Encrypt istemcisi Certbot&#8217;u kurun:<\/p>\n<pre><code class=\"language-bash\">sudo apt install certbot python-certbot-apache<\/code><\/pre>\n<p>Ard\u0131ndan, alan ad\u0131n\u0131z i\u00e7in bir SSL sertifikas\u0131 al\u0131n. Bu komut, Apache yap\u0131land\u0131rman\u0131z\u0131 otomatik olarak g\u00fcncelleyecektir:<\/p>\n<pre><code class=\"language-bash\">sudo certbot --apache -d your_domain.com -d www.your_domain.com<\/code><\/pre>\n<p>Certbot size bir e-posta adresi sa\u011flaman\u0131z\u0131 ve hizmet \u015fartlar\u0131n\u0131 kabul etmenizi isteyecektir. Ayr\u0131ca HTTP trafi\u011fini HTTPS&#8217;ye y\u00f6nlendirmek isteyip istemedi\u011finizi de soracakt\u0131r. Genellikle &#8220;Redirect&#8221; se\u00e7ene\u011fini tercih etmek en iyisidir. Sertifikalar otomatik olarak yenilenecek \u015fekilde ayarlan\u0131r, bu da y\u00f6netimi kolayla\u015ft\u0131r\u0131r.<\/p>\n<h4>D\u00fczenli G\u00fcncellemeler<\/h4>\n<p>Sisteminizi ve kurulu t\u00fcm bile\u015fenleri d\u00fczenli olarak g\u00fcncellemek, g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapatmak ve performans iyile\u015ftirmelerinden yararlanmak i\u00e7in kritik \u00f6neme sahiptir:<\/p>\n<pre><code class=\"language-bash\">sudo apt update && sudo apt upgrade<\/code><\/pre>\n<p>Bu komutu d\u00fczenli aral\u0131klarla (\u00f6rne\u011fin, haftal\u0131k veya ayl\u0131k) \u00e7al\u0131\u015ft\u0131rmak, sunucunuzun g\u00fcvenli ve g\u00fcncel kalmas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu kapsaml\u0131 rehberde, Ubuntu 16.04 sunucusu \u00fczerine g\u00fc\u00e7l\u00fc ve esnek LAMP (Linux, Apache, MySQL, PHP) y\u0131\u011f\u0131n\u0131n\u0131 ba\u015far\u0131yla kurdunuz ve temel yap\u0131land\u0131rmalar\u0131n\u0131 ger\u00e7ekle\u015ftirdiniz. Sistem g\u00fcncellemelerinden ba\u015flayarak, her bir bile\u015fenin (Apache, MySQL, PHP) kurulumunu, g\u00fcvenlik duvar\u0131 ayarlar\u0131n\u0131, veritaban\u0131 kullan\u0131c\u0131 olu\u015fturmay\u0131 ve PHP&#8217;nin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulamay\u0131 ad\u0131m ad\u0131m ele ald\u0131k. Ayr\u0131ca, Virtual Host kurulumu, PHP yap\u0131land\u0131rmas\u0131, MySQL g\u00fcvenli\u011fi, Let&#8217;s Encrypt ile SSL\/TLS entegrasyonu ve d\u00fczenli g\u00fcncellemeler gibi ek yap\u0131land\u0131rmalar ve g\u00fcvenlik ipu\u00e7lar\u0131 hakk\u0131nda da bilgi edindiniz.<\/p>\n<p>Art\u0131k dinamik web siteleri ve uygulamalar\u0131 bar\u0131nd\u0131rmak i\u00e7in sa\u011flam bir temele sahipsiniz. Bu y\u0131\u011f\u0131n \u00fczerinde WordPress, Joomla, Drupal gibi pop\u00fcler i\u00e7erik y\u00f6netim sistemlerini kurabilir, kendi \u00f6zel web uygulamalar\u0131n\u0131z\u0131 geli\u015ftirebilir veya \u00e7e\u015fitli web tabanl\u0131 hizmetleri da\u011f\u0131tabilirsiniz. Unutmay\u0131n ki Ubuntu 16.04 bir LTS s\u00fcr\u00fcm\u00fc olsa da, daha yeni Ubuntu s\u00fcr\u00fcmleri (\u00f6rne\u011fin 18.04, 20.04 veya 22.04) daha g\u00fcncel yaz\u0131l\u0131m paketleri ve g\u00fcvenlik yamalar\u0131 sunmaktad\u0131r. Uzun vadeli projeleriniz i\u00e7in daha yeni bir LTS s\u00fcr\u00fcm\u00fcne ge\u00e7i\u015f yapmay\u0131 d\u00fc\u015f\u00fcnebilirsiniz, ancak bu rehber, LAMP y\u0131\u011f\u0131n\u0131n\u0131n temel prensiplerini ve kurulum ad\u0131mlar\u0131n\u0131 anlaman\u0131z i\u00e7in m\u00fckemmel bir ba\u015flang\u0131\u00e7 noktas\u0131 sa\u011flam\u0131\u015ft\u0131r. G\u00fcvenlik ve performans i\u00e7in sisteminizi d\u00fczenli olarak izlemeye ve g\u00fcncellemeye devam etmeniz, ba\u015far\u0131l\u0131 bir web sunucusu y\u00f6netimi i\u00e7in kritik \u00f6neme sahiptir.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ubuntu 16.04 \u00dczerine LAMP (Linux, Apache, MySQL, PHP) Y\u0131\u011f\u0131n\u0131 Kurulumu: Kapsaml\u0131 Bir Rehber\nBu kapsaml\u0131 rehber, Ubuntu 16.04 sunucusu \u00fczerine","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":[241],"tags":[],"class_list":{"0":"post-34728","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-linux","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>Ubuntu 16.04 \u00dczerine LAMP (Linux, Apache, MySQL, PHP) Y\u0131\u011f\u0131n\u0131 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\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-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=\"Ubuntu 16.04 \u00dczerine LAMP (Linux, Apache, MySQL, PHP) Y\u0131\u011f\u0131n\u0131 Kurulumu: Kapsaml\u0131 Bir Rehber\" \/>\n<meta property=\"og:description\" content=\"Ubuntu 16.04 \u00dczerine LAMP (Linux, Apache, MySQL, PHP) Y\u0131\u011f\u0131n\u0131 Kurulumu: Kapsaml\u0131 Bir Rehber Bu kapsaml\u0131 rehber, Ubuntu 16.04 sunucusu \u00fczerine\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-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-21T05:40:42+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=\"19 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-kurulumu-kapsamli-bir-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-kurulumu-kapsamli-bir-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ubuntu 16.04 \u00dczerine LAMP (Linux, Apache, MySQL, PHP) Y\u0131\u011f\u0131n\u0131 Kurulumu: Kapsaml\u0131 Bir Rehber\",\"datePublished\":\"2025-11-21T05:40:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-kurulumu-kapsamli-bir-rehber\/\"},\"wordCount\":3404,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Linux\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-kurulumu-kapsamli-bir-rehber\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-kurulumu-kapsamli-bir-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-kurulumu-kapsamli-bir-rehber\/\",\"name\":\"Ubuntu 16.04 \u00dczerine LAMP (Linux, Apache, MySQL, PHP) Y\u0131\u011f\u0131n\u0131 Kurulumu: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-21T05:40:42+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-kurulumu-kapsamli-bir-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-kurulumu-kapsamli-bir-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-kurulumu-kapsamli-bir-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ubuntu 16.04 \u00dczerine LAMP (Linux, Apache, MySQL, PHP) Y\u0131\u011f\u0131n\u0131 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":"Ubuntu 16.04 \u00dczerine LAMP (Linux, Apache, MySQL, PHP) Y\u0131\u011f\u0131n\u0131 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\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-kurulumu-kapsamli-bir-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"Ubuntu 16.04 \u00dczerine LAMP (Linux, Apache, MySQL, PHP) Y\u0131\u011f\u0131n\u0131 Kurulumu: Kapsaml\u0131 Bir Rehber","og_description":"Ubuntu 16.04 \u00dczerine LAMP (Linux, Apache, MySQL, PHP) Y\u0131\u011f\u0131n\u0131 Kurulumu: Kapsaml\u0131 Bir Rehber Bu kapsaml\u0131 rehber, Ubuntu 16.04 sunucusu \u00fczerine","og_url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-kurulumu-kapsamli-bir-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-21T05:40:42+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"19 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-kurulumu-kapsamli-bir-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-kurulumu-kapsamli-bir-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ubuntu 16.04 \u00dczerine LAMP (Linux, Apache, MySQL, PHP) Y\u0131\u011f\u0131n\u0131 Kurulumu: Kapsaml\u0131 Bir Rehber","datePublished":"2025-11-21T05:40:42+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-kurulumu-kapsamli-bir-rehber\/"},"wordCount":3404,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Linux"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-kurulumu-kapsamli-bir-rehber\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-kurulumu-kapsamli-bir-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-kurulumu-kapsamli-bir-rehber\/","name":"Ubuntu 16.04 \u00dczerine LAMP (Linux, Apache, MySQL, PHP) Y\u0131\u011f\u0131n\u0131 Kurulumu: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-21T05:40:42+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-kurulumu-kapsamli-bir-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-kurulumu-kapsamli-bir-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-16-04-uzerine-lamp-linux-apache-mysql-php-yigini-kurulumu-kapsamli-bir-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ubuntu 16.04 \u00dczerine LAMP (Linux, Apache, MySQL, PHP) Y\u0131\u011f\u0131n\u0131 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\/34728","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=34728"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34728\/revisions"}],"predecessor-version":[{"id":34729,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/34728\/revisions\/34729"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=34728"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=34728"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=34728"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}