{"id":35259,"date":"2025-11-27T14:41:34","date_gmt":"2025-11-27T11:41:34","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=35259"},"modified":"2025-11-27T14:41:34","modified_gmt":"2025-11-27T11:41:34","slug":"arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/","title":{"rendered":"Arch Linux \u00dczerinde LEMP (Nginx, MySQL, PHP) Stack Kurulumu"},"content":{"rendered":"<p><body><\/p>\n<h2>Arch Linux \u00dczerinde LEMP (Nginx, MySQL, PHP) Stack Kurulumu<\/h2>\n<p>Bu rehber, Arch Linux \u00fczerinde dinamik web uygulamalar\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in gerekli olan LEMP (Linux, Nginx, MySQL, PHP) stack&#8217;ini ad\u0131m ad\u0131m nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 anlatmaktad\u0131r. Arch Linux&#8217;un minimalist ve &#8220;kendin yap&#8221; felsefesi, bu stack&#8217;i kurarken size tam kontrol sa\u011flar. LEMP, y\u00fcksek performansl\u0131 web sunucular\u0131 i\u00e7in pop\u00fcler bir se\u00e7imdir, \u00f6zellikle Nginx&#8217;in statik i\u00e7erik sunma ve e\u015fzamanl\u0131 ba\u011flant\u0131lar\u0131 y\u00f6netme yetene\u011fi sayesinde.<\/p>\n<h3>1. Sistem G\u00fcncellemesi ve Temel \u00d6nko\u015fullar<\/h3>\n<p>Kuruluma ba\u015flamadan \u00f6nce sisteminizi g\u00fcncel tutmak her zaman iyi bir uygulamad\u0131r. Bu, potansiyel paket \u00e7ak\u0131\u015fmalar\u0131n\u0131 \u00f6nler ve en son g\u00fcvenlik yamalar\u0131na sahip olman\u0131z\u0131 sa\u011flar. Ayr\u0131ca, kurulum komutlar\u0131n\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in <code>sudo<\/code> yetkilerine sahip olman\u0131z gerekmektedir.<\/p>\n<h4>1.1. Sistem G\u00fcncellemesi<\/h4>\n<pre><code>sudo pacman -Syu<\/code><\/pre>\n<p>Bu komut, sisteminizdeki t\u00fcm paketleri g\u00fcnceller.<\/p>\n<h4>1.2. Gerekli Temel Ara\u00e7lar (Opsiyonel ama \u00d6nerilir)<\/h4>\n<p>Baz\u0131 temel ara\u00e7lar, yap\u0131land\u0131rma dosyalar\u0131n\u0131 d\u00fczenlerken veya sistemle etkile\u015fim kurarken i\u015finize yarayabilir.<\/p>\n<pre><code>sudo pacman -S nano git<\/code><\/pre>\n<p><code>nano<\/code> basit bir metin d\u00fczenleyicidir, <code>git<\/code> ise versiyon kontrol\u00fc i\u00e7in kullan\u0131l\u0131r.<\/p>\n<h3>2. Nginx Web Sunucusu Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Nginx (Engine-x olarak okunur), y\u00fcksek performansl\u0131, hafif bir web sunucusudur ve ters proxy, y\u00fck dengeleyici ve HTTP \u00f6nbelle\u011fi olarak da kullan\u0131labilir. LEMP stack&#8217;inin &#8220;E&#8221; bile\u015fenidir.<\/p>\n<h4>2.1. Nginx Kurulumu<\/h4>\n<p>Nginx paketini Arch Linux&#8217;un resmi depolar\u0131ndan kurun:<\/p>\n<pre><code>sudo pacman -S nginx<\/code><\/pre>\n<h4>2.2. Nginx Servisini Ba\u015flatma ve Etkinle\u015ftirme<\/h4>\n<p>Kurulumdan sonra Nginx servisini ba\u015flat\u0131n ve sistem ba\u015flang\u0131c\u0131nda otomatik olarak ba\u015flamas\u0131 i\u00e7in etkinle\u015ftirin:<\/p>\n<pre><code>sudo systemctl start nginx\nsudo systemctl enable nginx<\/code><\/pre>\n<p>Nginx&#8217;in \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol etmek i\u00e7in taray\u0131c\u0131n\u0131zdan sunucunuzun IP adresine veya <code>localhost<\/code>&#8216;a gidin. Varsay\u0131lan &#8220;Welcome to Nginx!&#8221; sayfas\u0131n\u0131 g\u00f6rmeniz gerekir. Servisin durumunu kontrol etmek i\u00e7in:<\/p>\n<pre><code>sudo systemctl status nginx<\/code><\/pre>\n<h4>2.3. Nginx Temel Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>Nginx&#8217;in ana yap\u0131land\u0131rma dosyas\u0131 <code>\/etc\/nginx\/nginx.conf<\/code> adresinde bulunur. Ayr\u0131ca, sanal host&#8217;lar\u0131n\u0131z\u0131 veya site yap\u0131land\u0131rmalar\u0131n\u0131z\u0131 <code>\/etc\/nginx\/sites-available\/<\/code> dizinine koyup <code>\/etc\/nginx\/sites-enabled\/<\/code> dizinine sembolik ba\u011flant\u0131lar olu\u015fturmak iyi bir uygulamad\u0131r. Ancak bu rehberde, basitlik ad\u0131na <code>\/etc\/nginx\/nginx.conf<\/code> dosyas\u0131n\u0131 d\u00fczenleyece\u011fiz.<\/p>\n<p><code>\/etc\/nginx\/nginx.conf<\/code> dosyas\u0131n\u0131 bir metin d\u00fczenleyici ile a\u00e7\u0131n:<\/p>\n<pre><code>sudo nano \/etc\/nginx\/nginx.conf<\/code><\/pre>\n<p><code>http<\/code> blo\u011funun i\u00e7inde, <code>server<\/code> blo\u011funu bulun veya a\u015fa\u011f\u0131daki gibi bir yap\u0131land\u0131rma ekleyin. \u00d6zellikle <code>root<\/code> dizinini ve <code>index<\/code> dosyalar\u0131n\u0131 kontrol edin. PHP entegrasyonu i\u00e7in <code>location ~ \\.php$<\/code> blo\u011funu daha sonra ekleyece\u011fiz.<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    server_name localhost; # Kendi domain ad\u0131n\u0131z veya IP adresiniz\n\n    root \/usr\/share\/nginx\/html; # Web dosyalar\u0131n\u0131z\u0131n bulundu\u011fu dizin\n    index index.html index.htm index.php; # Varsay\u0131lan a\u00e7\u0131l\u0131\u015f dosyalar\u0131\n\n    location \/ {\n        try_files $uri $uri\/ =404;\n    }\n\n    # Hata sayfalar\u0131 (opsiyonel)\n    error_page 404 \/404.html;\n    location = \/404.html {\n        internal;\n    }\n\n    error_page 500 502 503 504 \/50x.html;\n    location = \/50x.html {\n        internal;\n    }\n\n    # PHP entegrasyonu buraya gelecek\n}<\/code><\/pre>\n<p>Yap\u0131land\u0131rmay\u0131 kaydettikten sonra, Nginx yap\u0131land\u0131rmas\u0131n\u0131n s\u00f6zdizimini kontrol edin ve servisi yeniden ba\u015flat\u0131n:<\/p>\n<pre><code>sudo nginx -t\nsudo systemctl reload nginx<\/code><\/pre>\n<h3>3. MySQL\/MariaDB Veritaban\u0131 Kurulumu ve G\u00fcvenli\u011fi<\/h3>\n<p>MySQL, a\u00e7\u0131k kaynakl\u0131 bir ili\u015fkisel veritaban\u0131 y\u00f6netim sistemidir. Arch Linux&#8217;ta genellikle MariaDB, MySQL&#8217;in topluluk taraf\u0131ndan geli\u015ftirilen bir \u00e7atal\u0131 olarak tercih edilir ve tamamen uyumludur. Bu rehberde MariaDB&#8217;yi kullanaca\u011f\u0131z.<\/p>\n<h4>3.1. MariaDB Kurulumu<\/h4>\n<pre><code>sudo pacman -S mariadb<\/code><\/pre>\n<h4>3.2. MariaDB Veri Dizinini Ba\u015flatma<\/h4>\n<p>Kurulumdan sonra, MariaDB&#8217;nin veri dizinini ba\u015flatman\u0131z gerekir:<\/p>\n<pre><code>sudo mariadb-install-db --user=mysql --basedir=\/usr --datadir=\/var\/lib\/mysql<\/code><\/pre>\n<h4>3.3. MariaDB Servisini Ba\u015flatma ve Etkinle\u015ftirme<\/h4>\n<pre><code>sudo systemctl start mariadb\nsudo systemctl enable mariadb<\/code><\/pre>\n<p>Servisin durumunu kontrol edin:<\/p>\n<pre><code>sudo systemctl status mariadb<\/code><\/pre>\n<h4>3.4. MariaDB G\u00fcvenlik Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>MariaDB kurulumunuzu g\u00fcvence alt\u0131na almak i\u00e7in <code>mysql_secure_installation<\/code> beti\u011fini \u00e7al\u0131\u015ft\u0131rman\u0131z \u015fiddetle tavsiye edilir. Bu betik, root parolas\u0131 ayarlaman\u0131za, anonim kullan\u0131c\u0131lar\u0131 kald\u0131rman\u0131za, uzaktan root giri\u015fini devre d\u0131\u015f\u0131 b\u0131rakman\u0131za ve test veritaban\u0131n\u0131 kald\u0131rman\u0131za olanak tan\u0131r.<\/p>\n<pre><code>sudo mysql_secure_installation<\/code><\/pre>\n<p>Soruldu\u011funda a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyin:<\/p>\n<ul>\n<li>Mevcut root parolas\u0131: Yeni bir kurulum oldu\u011fu i\u00e7in bo\u015f b\u0131rak\u0131p Enter&#8217;a bas\u0131n.<\/li>\n<li>Root parolas\u0131 ayarla: &#8216;Y&#8217; (Evet) yaz\u0131p g\u00fc\u00e7l\u00fc bir parola belirleyin.<\/li>\n<li>Anonim kullan\u0131c\u0131lar\u0131 kald\u0131r: &#8216;Y&#8217;<\/li>\n<li>Root&#8217;un uzaktan giri\u015f yapmas\u0131na izin verme: &#8216;Y&#8217;<\/li>\n<li>Test veritaban\u0131n\u0131 ve ona eri\u015fimi kald\u0131r: &#8216;Y&#8217;<\/li>\n<li>Ayr\u0131cal\u0131k tablolar\u0131n\u0131 \u015fimdi yeniden y\u00fckle: &#8216;Y&#8217;<\/li>\n<\/ul>\n<h4>3.5. Test Veritaban\u0131 ve Kullan\u0131c\u0131 Olu\u015fturma (Opsiyonel)<\/h4>\n<p>Veritaban\u0131 ba\u011flant\u0131s\u0131n\u0131 test etmek i\u00e7in yeni bir veritaban\u0131 ve kullan\u0131c\u0131 olu\u015fturabilirsiniz:<\/p>\n<pre><code>sudo mysql -u root -p<\/code><\/pre>\n<p>Az \u00f6nce ayarlad\u0131\u011f\u0131n\u0131z root parolas\u0131n\u0131 girin. MySQL komut isteminde \u015funlar\u0131 girin:<\/p>\n<pre><code class=\"language-sql\">CREATE DATABASE mydatabase;\nCREATE USER 'myuser'@'localhost' IDENTIFIED BY 'your_strong_password';\nGRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';\nFLUSH PRIVILEGES;\nEXIT;<\/code><\/pre>\n<p><code>mydatabase<\/code>, <code>myuser<\/code> ve <code>your_strong_password<\/code> de\u011ferlerini kendi tercihinize g\u00f6re de\u011fi\u015ftirin.<\/p>\n<h3>4. PHP ve PHP-FPM Kurulumu ve Nginx ile Entegrasyonu<\/h3>\n<p>PHP, web geli\u015ftirme i\u00e7in yayg\u0131n olarak kullan\u0131lan bir betik dilidir. Nginx, PHP kodunu do\u011frudan \u00e7al\u0131\u015ft\u0131ramaz; bunun yerine PHP-FPM (FastCGI Process Manager) arac\u0131l\u0131\u011f\u0131yla PHP isteklerini i\u015fler.<\/p>\n<h4>4.1. PHP ve PHP-FPM Kurulumu<\/h4>\n<p>PHP ve PHP-FPM ile birlikte Nginx ile etkile\u015fim kurmak i\u00e7in gerekli olan <code>php-fpm<\/code> ve <code>php-nginx<\/code> (veya <code>php-cgi<\/code>) paketlerini kurun. Ayr\u0131ca MySQL ile etkile\u015fim i\u00e7in <code>php-mysql<\/code> paketini de ekleyelim:<\/p>\n<pre><code>sudo pacman -S php php-fpm php-nginx php-mysql<\/code><\/pre>\n<p>\u0130htiya\u00e7 duyabilece\u011finiz di\u011fer yayg\u0131n PHP uzant\u0131lar\u0131 \u015funlard\u0131r: <code>php-gd<\/code> (g\u00f6r\u00fcnt\u00fc i\u015fleme), <code>php-intl<\/code> (uluslararas\u0131la\u015fma), <code>php-curl<\/code> (HTTP istekleri).<\/p>\n<h4>4.2. PHP-FPM Servisini Ba\u015flatma ve Etkinle\u015ftirme<\/h4>\n<pre><code>sudo systemctl start php-fpm\nsudo systemctl enable php-fpm<\/code><\/pre>\n<p>Servisin durumunu kontrol edin:<\/p>\n<pre><code>sudo systemctl status php-fpm<\/code><\/pre>\n<h4>4.3. PHP-FPM Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>PHP-FPM&#8217;nin ana yap\u0131land\u0131rma dosyas\u0131 <code>\/etc\/php\/php-fpm.conf<\/code>&#8216;tur. Ancak, havuz yap\u0131land\u0131rmalar\u0131 genellikle <code>\/etc\/php\/php-fpm.d\/www.conf<\/code> dosyas\u0131nda yap\u0131l\u0131r. Bu dosyay\u0131 a\u00e7\u0131n:<\/p>\n<pre><code>sudo nano \/etc\/php\/php-fpm.d\/www.conf<\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki sat\u0131rlar\u0131 kontrol edin ve gerekirse d\u00fczenleyin:<\/p>\n<ul>\n<li><code>user = http<\/code> ve <code>group = http<\/code>: Nginx&#8217;in \u00e7al\u0131\u015ft\u0131\u011f\u0131 kullan\u0131c\u0131 ve grupla e\u015fle\u015fmelidir. Arch&#8217;ta Nginx genellikle <code>http<\/code> kullan\u0131c\u0131s\u0131 alt\u0131nda \u00e7al\u0131\u015f\u0131r.<\/li>\n<li><code>listen = \/run\/php-fpm\/php-fpm.sock<\/code>: Nginx&#8217;in PHP-FPM ile ileti\u015fim kuraca\u011f\u0131 Unix soketinin yoludur. Bu yolu Nginx yap\u0131land\u0131rmas\u0131nda kullanaca\u011f\u0131z.<\/li>\n<\/ul>\n<p>De\u011fi\u015fiklik yapt\u0131ysan\u0131z PHP-FPM servisini yeniden ba\u015flat\u0131n:<\/p>\n<pre><code>sudo systemctl reload php-fpm<\/code><\/pre>\n<h4>4.4. Nginx ile PHP Entegrasyonu<\/h4>\n<p>\u015eimdi Nginx&#8217;in PHP isteklerini PHP-FPM&#8217;ye nas\u0131l iletece\u011fini yap\u0131land\u0131rmam\u0131z gerekiyor. <code>\/etc\/nginx\/nginx.conf<\/code> dosyas\u0131n\u0131 tekrar a\u00e7\u0131n:<\/p>\n<pre><code>sudo nano \/etc\/nginx\/nginx.conf<\/code><\/pre>\n<p>Daha \u00f6nce olu\u015fturdu\u011funuz <code>server<\/code> blo\u011funun i\u00e7ine a\u015fa\u011f\u0131daki <code>location ~ \\.php$<\/code> blo\u011funu ekleyin. Bu blok, URL&#8217;de <code>.php<\/code> ile biten t\u00fcm istekleri PHP-FPM&#8217;ye y\u00f6nlendirecektir.<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    server_name localhost;\n\n    root \/usr\/share\/nginx\/html;\n    index index.html index.htm index.php;\n\n    location \/ {\n        try_files $uri $uri\/ =404;\n    }\n\n    # PHP dosyalar\u0131n\u0131 FastCGI ile i\u015flemek i\u00e7in\n    location ~ \\.php$ {\n        root           \/usr\/share\/nginx\/html; # K\u00f6k dizini Nginx root ile ayn\u0131 olmal\u0131\n        fastcgi_pass   unix:\/run\/php-fpm\/php-fpm.sock; # PHP-FPM soket yolu\n        fastcgi_index  index.php;\n        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;\n        include        fastcgi.conf; # FastCGI parametrelerini i\u00e7erir\n    }\n\n    # Di\u011fer hata sayfalar\u0131 ve ayarlar...\n}<\/code><\/pre>\n<p>Yap\u0131land\u0131rmay\u0131 kaydedin, Nginx s\u00f6zdizimini kontrol edin ve servisi yeniden y\u00fckleyin:<\/p>\n<pre><code>sudo nginx -t\nsudo systemctl reload nginx<\/code><\/pre>\n<h4>4.5. PHP Kurulumunu Test Etme<\/h4>\n<p>Web k\u00f6k dizininize (<code>\/usr\/share\/nginx\/html\/<\/code>) bir test dosyas\u0131 olu\u015fturun:<\/p>\n<pre><code>sudo nano \/usr\/share\/nginx\/html\/info.php<\/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?><\/code><\/pre>\n<p>Taray\u0131c\u0131n\u0131zda <code>http:\/\/localhost\/info.php<\/code> adresine gidin. PHP yap\u0131land\u0131rma bilgilerini i\u00e7eren bir sayfa g\u00f6rmeniz gerekir. Bu sayfa, Nginx&#8217;in PHP-FPM ile ba\u015far\u0131yla ileti\u015fim kurdu\u011funu g\u00f6sterir. Testi bitirdikten sonra g\u00fcvenlik nedeniyle bu dosyay\u0131 silmeyi unutmay\u0131n.<\/p>\n<pre><code>sudo rm \/usr\/share\/nginx\/html\/info.php<\/code><\/pre>\n<h3>5. Ekstra \u0130pu\u00e7lar\u0131 ve G\u00fcvenlik \u00d6nerileri<\/h3>\n<h4>5.1. G\u00fcvenlik Duvar\u0131 (Firewall) Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>Sunucunuzu g\u00fcvende tutmak i\u00e7in bir g\u00fcvenlik duvar\u0131 kullanmak \u00f6nemlidir. Arch Linux&#8217;ta <code>ufw<\/code> (Uncomplicated Firewall) veya <code>iptables<\/code>\/<code>nftables<\/code> kullanabilirsiniz. <code>ufw<\/code> daha kolay bir aray\u00fcze sahiptir.<\/p>\n<pre><code>sudo pacman -S ufw\nsudo systemctl enable ufw\nsudo ufw allow 80\/tcp  # HTTP\nsudo ufw allow 443\/tcp # HTTPS (e\u011fer kullanacaksan\u0131z)\nsudo ufw allow 22\/tcp  # SSH (e\u011fer uzaktan eri\u015fiyorsan\u0131z)\nsudo ufw enable<\/code><\/pre>\n<p>G\u00fcvenlik duvar\u0131n\u0131 etkinle\u015ftirmeden \u00f6nce SSH ba\u011flant\u0131n\u0131z\u0131n a\u00e7\u0131k oldu\u011fundan emin olun, aksi takdirde ba\u011flant\u0131n\u0131z kesilebilir.<\/p>\n<h4>5.2. Dizin \u0130zinleri<\/h4>\n<p>Web k\u00f6k dizininizin (<code>\/usr\/share\/nginx\/html\/<\/code>) ve i\u00e7indeki dosyalar\u0131n do\u011fru izinlere sahip olmas\u0131 \u00f6nemlidir. Nginx&#8217;in \u00e7al\u0131\u015ft\u0131\u011f\u0131 kullan\u0131c\u0131 (genellikle <code>http<\/code>) bu dosyalara okuma eri\u015fimine sahip olmal\u0131d\u0131r. PHP&#8217;nin dosya yazmas\u0131 gereken durumlar i\u00e7in (\u00f6rne\u011fin, y\u00fcklemeler veya \u00f6nbellek), bu dizinlere yazma izni de verilmelidir. Ancak, t\u00fcm web k\u00f6k dizinine yazma izni vermek g\u00fcvenlik riski olu\u015fturabilir. Sadece belirli alt dizinlere yazma izni verin.<\/p>\n<pre><code>sudo chown -R http:http \/usr\/share\/nginx\/html\/\nsudo chmod -R 755 \/usr\/share\/nginx\/html\/<\/code><\/pre>\n<p>E\u011fer PHP&#8217;nin belirli bir dizine yazmas\u0131 gerekiyorsa:<\/p>\n<pre><code>sudo chown -R http:http \/usr\/share\/nginx\/html\/uploads # \u00d6rnek: y\u00fcklemeler dizini\nsudo chmod -R 775 \/usr\/share\/nginx\/html\/uploads<\/code><\/pre>\n<h4>5.3. HTTPS (SSL\/TLS) Kurulumu<\/h4>\n<p>\u00dcretim ortamlar\u0131nda web sitenizi HTTPS ile g\u00fcvence alt\u0131na almak i\u00e7in Let&#8217;s Encrypt gibi \u00fccretsiz bir sertifika yetkilisi kullanman\u0131z \u00f6nerilir. Bu, web trafi\u011finizi \u015fifreler ve sitenizin g\u00fcvenilirli\u011fini art\u0131r\u0131r. Certbot arac\u0131 bu s\u00fcreci b\u00fcy\u00fck \u00f6l\u00e7\u00fcde otomatikle\u015ftirir.<\/p>\n<h3>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<p>Bu rehberde, Arch Linux \u00fczerinde Nginx, MariaDB ve PHP-FPM&#8217;den olu\u015fan bir LEMP stack&#8217;ini ba\u015far\u0131yla kurdunuz ve yap\u0131land\u0131rd\u0131n\u0131z. Art\u0131k dinamik web uygulamalar\u0131n\u0131z\u0131 bu sa\u011flam temel \u00fczerinde bar\u0131nd\u0131rmaya haz\u0131rs\u0131n\u0131z. Arch Linux&#8217;un do\u011fas\u0131 gere\u011fi, sisteminizi d\u00fczenli olarak g\u00fcncellemek ve paket de\u011fi\u015fikliklerini takip etmek \u00f6nemlidir.<\/p>\n<h4>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h4>\n<dl>\n<dt>LEMP stack&#8217;i neden Apache yerine Nginx kullan\u0131r?<\/dt>\n<dd>Nginx, \u00f6zellikle y\u00fcksek e\u015fzamanl\u0131 ba\u011flant\u0131lar ve statik i\u00e7erik sunumu konusunda Apache&#8217;ye g\u00f6re genellikle daha iyi performans g\u00f6sterir. Olay tabanl\u0131 mimarisi sayesinde daha az sistem kayna\u011f\u0131 t\u00fcketir.<\/dd>\n<dt><code>\/usr\/share\/nginx\/html\/<\/code> yerine kendi web dizinimi kullanabilir miyim?<\/dt>\n<dd>Evet, kesinlikle. Nginx yap\u0131land\u0131rma dosyas\u0131ndaki <code>root<\/code> direktifini istedi\u011finiz dizine (\u00f6rne\u011fin, <code>\/srv\/http\/mywebsite<\/code> veya <code>\/var\/www\/html<\/code>) de\u011fi\u015ftirebilirsiniz. Ancak, bu dizine Nginx kullan\u0131c\u0131s\u0131n\u0131n (genellikle <code>http<\/code>) okuma eri\u015fimi oldu\u011fundan emin olun.<\/dd>\n<dt>PHP uzant\u0131lar\u0131n\u0131 nas\u0131l kurar\u0131m?<\/dt>\n<dd><code>sudo pacman -S php-<uzant\u0131_ad\u0131><\/code> komutunu kullanarak ihtiyac\u0131n\u0131z olan PHP uzant\u0131lar\u0131n\u0131 kurabilirsiniz (\u00f6rne\u011fin, <code>php-gd<\/code>, <code>php-intl<\/code>, <code>php-curl<\/code>). Kurulumdan sonra PHP-FPM servisini yeniden ba\u015flatmay\u0131 unutmay\u0131n: <code>sudo systemctl reload php-fpm<\/code>.<\/dd>\n<dt>Nginx yap\u0131land\u0131rmamda hata al\u0131rsam ne yapmal\u0131y\u0131m?<\/dt>\n<dd>\u00d6ncelikle <code>sudo nginx -t<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak yap\u0131land\u0131rma dosyas\u0131ndaki s\u00f6zdizimi hatalar\u0131n\u0131 kontrol edin. Hata mesajlar\u0131n\u0131 dikkatlice okuyun. Ayr\u0131ca, <code>sudo systemctl status nginx<\/code> ve <code>sudo journalctl -xeu nginx<\/code> komutlar\u0131 Nginx servisiyle ilgili daha fazla bilgi sa\u011flayabilir.<\/dd>\n<dt>MariaDB root parolas\u0131n\u0131 unuttum, nas\u0131l s\u0131f\u0131rlayabilirim?<\/dt>\n<dd>MariaDB servisini durdurun, ard\u0131ndan g\u00fcvenlik atlama moduyla ba\u015flat\u0131n: <code>sudo systemctl stop mariadb<\/code>, sonra <code>sudo mysqld_safe --skip-grant-tables &<\/code>. Daha sonra <code>sudo mysql -u root<\/code> ile parolas\u0131 olmadan giri\u015f yapabilir ve parolay\u0131 de\u011fi\u015ftirebilirsiniz: <code>UPDATE mysql.user SET authentication_string=PASSWORD('NEW_PASSWORD') WHERE User='root'; FLUSH PRIVILEGES;<\/code>. Son olarak, MariaDB&#8217;yi normal \u015fekilde yeniden ba\u015flat\u0131n.<\/dd>\n<\/dl>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Arch Linux \u00dczerinde LEMP (Nginx, MySQL, PHP) Stack Kurulumu\nBu rehber, Arch Linux \u00fczerinde dinamik web uygulamalar\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in gerekl","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-35259","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>Arch Linux \u00dczerinde LEMP (Nginx, MySQL, PHP) Stack Kurulumu - 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\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Arch Linux \u00dczerinde LEMP (Nginx, MySQL, PHP) Stack Kurulumu\" \/>\n<meta property=\"og:description\" content=\"Arch Linux \u00dczerinde LEMP (Nginx, MySQL, PHP) Stack Kurulumu Bu rehber, Arch Linux \u00fczerinde dinamik web uygulamalar\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in gerekl\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-27T11:41:34+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=\"10 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Arch Linux \u00dczerinde LEMP (Nginx, MySQL, PHP) Stack Kurulumu\",\"datePublished\":\"2025-11-27T11:41:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/\"},\"wordCount\":1481,\"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\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/\",\"name\":\"Arch Linux \u00dczerinde LEMP (Nginx, MySQL, PHP) Stack Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-11-27T11:41:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Arch Linux \u00dczerinde LEMP (Nginx, MySQL, PHP) Stack Kurulumu\"}]},{\"@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":"Arch Linux \u00dczerinde LEMP (Nginx, MySQL, PHP) Stack Kurulumu - 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\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/","og_locale":"tr_TR","og_type":"article","og_title":"Arch Linux \u00dczerinde LEMP (Nginx, MySQL, PHP) Stack Kurulumu","og_description":"Arch Linux \u00dczerinde LEMP (Nginx, MySQL, PHP) Stack Kurulumu Bu rehber, Arch Linux \u00fczerinde dinamik web uygulamalar\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in gerekl","og_url":"https:\/\/fatihsoysal.com\/blog\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-11-27T11:41:34+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"10 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Arch Linux \u00dczerinde LEMP (Nginx, MySQL, PHP) Stack Kurulumu","datePublished":"2025-11-27T11:41:34+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/"},"wordCount":1481,"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\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/","url":"https:\/\/fatihsoysal.com\/blog\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/","name":"Arch Linux \u00dczerinde LEMP (Nginx, MySQL, PHP) Stack Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-11-27T11:41:34+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/arch-linux-uzerinde-lemp-nginx-mysql-php-stack-kurulumu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Arch Linux \u00dczerinde LEMP (Nginx, MySQL, PHP) Stack Kurulumu"}]},{"@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\/35259","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=35259"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35259\/revisions"}],"predecessor-version":[{"id":35260,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/35259\/revisions\/35260"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=35259"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=35259"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=35259"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}