LAMP (Türkçe)

From ArchWiki

Jump to: navigation, search
i18n
English
Español
Italiano
Türkçe
Русский
Česky
简体中文

Contents

Giriş

Bu doküman Arch Linux üzerinde Apache web sunucusunu nasıl kurup kullanabileceğiniz anlatmak amacıyla yazılmıştır. Ayrıca, PHP, MySQL ve kurup bunları Apache'ye entegre etmeyi de anlatmaktadır. Bu kombinasyon LAMP (Linux Apache MySQL PHP) olarak adlandırılmaktadır.

Kurulum

# pacman -S apache php php-apache mysql

Bu komut ile Apache, PHP ve MySQL'i birlikte kurabilirsiniz. Eğer isterseniz, bunları aşağıdaki yönergeleri takip ederek ayrı ayrı da kurabilirsiniz.

Note: Yeni öntanımlı kullanıcı ve grup: Apache artık "nobody" kullanıcısı yerine "http" kullanıcı ve grubunu kullanmaktadır. Eğer daha önce kurmuşsanız, bu yeni gruplara göre httpd.conf dosyanızı tekrar düzenlemeniz gerekebilir.

Yapılandırma

Apache

  • http kullanıcısını oluşturun (bu kullanıcı sisteminizde bulunabilir, panik yapmayın):
# useradd http
  • /etc/hosts dosyasına şu satırları ekleyin (eğer dosya yoksa oluşturun):
127.0.0.1  localhost.localdomain   localhost

Not: Eğer farklı bir hostname kullanmak istiyorsanız, şu şekilde ekleyebilirsiniz:

127.0.0.1  localhost.localdomain   localhost myhostname
  • /etc/rc.conf dosyasını düzenleyin: Eğer yukarıdaki gibi hostname eklemişseniz değiştirmenize gerek yoktur; yoksa, "localhost" kullanın:
#
# Networking
#
HOSTNAME="localhost"
  • /etc/httpd/conf/httpd.conf dosyasını root olarak düzenleyin ve şu satırı devredışı bırakın:
LoadModule unique_id_module        modules/mod_unique_id.so

Yani şu şekilde görünmesini sağlayın:

#LoadModule unique_id_module        modules/mod_unique_id.so
  • Sunucuyu çalıştırmak için şu komutu verin:
# /etc/rc.d/httpd start
  • Yukarıdaki komuttan sonra Apache'nin çalışması beklenmektedir. Tarayıcınız ile http://localhost/ sayfasını ziyaret edin. Apache'nin test sayfası gösterilecektir.
  • Apache'yi başlangıçta otomatik çalıştırmak için /etc/rc.conf dosyasını httpd servisini ekleyin:
DAEMONS=(... httpd ...)

Veya /etc/rc.local dosyasına şu satırı ekleyin:

/etc/rc.d/httpd start


  • Kullanıcı dizinlerini kullanmak istiyorsanız (mesela ~/public_html, yani dolayısıyla http://localhost/~kullanıcı) /etc/httpd/conf/extra/httpd-userdir.conf dosyasında şu satırları etkinleştirin:
UserDir public_html

ve

<Directory /home/*/public_html>
  AllowOverride FileInfo AuthConfig Limit Indexes
  Options MultiViews Indexes SymLinksIfOwnerMatch ExecCGI
  <Limit GET POST OPTIONS PROPFIND>
    Order allow,deny
    Allow from all
  </Limit>
  <LimitExcept GET POST OPTIONS PROPFIND>
    Order deny,allow
    Deny from all
  </LimitExcept>
</Directory>

Apache'nin ev dizinlerini görebilmesi için gerekli izinleri ayarlamanız gerekmektedir. Ev dizininiz ve ~/public_html dizinleri diğerleri tarafından çalıştırılabilir olmalıdır. Aşağıdaki chmod ayarları yeterli olacaktır:

$ chmod o+x ~
$ chmod o+x ~/public_html

Özel bir grup oluşturup kullanıcınızın ve Apache'nin o dizinlere erişimini mümkün kılmak da ayrı bir çözüm yolu olabilir. Güvenlik konusunda ne kadar paranoyak olduğunuzu en iyi siz bilirsiniz.

Gelişmiş Seçenekler

/etc/httpd/conf/httpd.conf dosyasındaki şu seçenekler ilginizi çekebilir:

 # Listen 80

Apache'nin hangi portu kullanacağını belirtir. Eğer bir router arkasında iseniz, bu portu yönlendirmeniz gerekmektedir.

 # ServerAdmin sample@sample.com

Hata sayfalarında vs. görüntülenecek yönetici e-posta adresi.

 # DocumentRoot "/srv/http"

Bu seçenek web sayfalarınızı koyacağınız dizini ifade eder. İstediğiniz gibi değiştirebilirsiniz. Fakat,

<Directory "/srv/http">

değerini, DocumentRoot ile aynı yapmayı unutmamalısınız.

PHP

PHP kurulduğu gibi çalışacak biçimde ayarlanmıştır.

  • /etc/httpd/conf/httpd.conf dosyasına şu satırları ekleyin:
LoadModule php5_module modules/libphp5.so
Include conf/extra/php5_module.conf

Not: "Include" satırı "LoadModule" satırının hemen altına eklenmemelidir. "Includes" bölümüne eklenmelidir.

  • Eğer .phtml dosya uzantısı kullanıyorsanız, /etc/httpd/conf/extra/php5_module.conf dosyasında şu şekilde bir düzenleme yapabilirsiniz:
DirectoryIndex index.php index.phtml index.html
  • Eğer GD modülünü kullanmak istiyorsanız, /etc/php/php.ini dosyasında:
;extension=gd.so

satırını

extension=gd.so

şeklinde değiştirin.

Hangi modülleri etkinleştirdiğinize dikkat etmelisiniz. Eğer php'nin isteğe bağlı modüllerini kurmamışsanız, çalışmama gibi sorunlarla karşılaşabilirsiniz.

  • Eğer DocumentRoot ayarını /home/ dışı bir dizin olarak belirlemişseniz, /etc/php/php.ini dosyasında open_basedir parametresinde tanımlamanız gerekmektedir:
open_basedir = /home/:/tmp/:/usr/share/pear/:/path/to/documentroot
tavsiye - Şu şekilde bir ayar yapabilirsiniz:
open_basedir = /home/:/tmp/:/usr/share/pear/:/srv/http
  • Değişikliklerin gerçekleştirilmesi için Apache'yi tekrar başlatmanız gerekmektedir:
# /etc/rc.d/httpd restart
  • PHP'yi şu şekilde test edebilirsiniz:
<html>
<head>
<title>PHP Test Page</title>
</head>
<body>
This is Arch Linux, running PHP.
<?php
  phpinfo();
?>
</body>
</html>

Bu dosyayı test.php olarak kaydedip /srv/http/ altına veya ~/public_html altına koyabilirsiniz.

Eğer sorun yaşarsanız, /etc/httpd/conf/httpd.conf dosyasında aşağıdaki düzenlemeleri gerçekleştirebilirsiniz.

  • httpd.conf dosyasını açın
# nano /etc/httpd/conf/httpd.conf
  • <IfModule mime_module> altına ekleyin
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
  • Apache'yi tekrar başlatın
# /etc/rc.d/httpd restart

Yukarıdaki gibi testi tekrar uygulayın.

MySQL

  • MySQL'i MySQL sayfasında anlatıldığı gibi yapılandırın.
  • /etc/php/php.ini dosyasında şu satırın başındaki ; işaretini kaldırın:
;extension=mysql.so
  • mysql veritabanında düzenleme yaparak kullanıcı ekleyebilir ve izinlerini düzenleyebilirsiniz. Bu değişikliklerin geçerli olması için mysql servisini tekrar başlatmanız gereklidir.
  • Çalıştırmak için:
# /etc/rc.d/mysqld start
  • MySQL'in çalışması beklenmektedir. Denemek için http://localhost/phpMyAdmin sayfasına gidebilirsiniz. (phpmyadmin yazılımını pacman -S phpmyadmin komutu ile kurabilirsiniz)
  • MySQL'i açılışta çalıştırmak için /etc/rc.conf dosyasında şu şekilde düzenleme yapabilirsiniz:
DAEMONS=(... mysqld ...)

veya rc.local dosyasına şu satırı ekleyebilirsiniz:

/etc/rc.d/mysqld start
  • Eğer TCP/IP vasıtasıyla MySQL sunucusuna erişirken error no. 2013: Lost Connection to mysql server during query" hatasıyla karşılaşıyorsanız, /etc/hosts.allow dosyasına şu satırları ekleyin:
 # mysqld : ALL : ALLOW
 # mysqld-max : ALL : ALLOW
  • Not: Yukarıdaki örnekte ALL kullanarak herkese açık bir TCP ayarı örneği gösterilmiştir. Bu ALL değerini spesifik IP adresleri ile değiştirebilirsiniz.
  • Ayrıca, /etc/my.cnf dosyasında, skip-networking satırını devredışı bırakabilirsiniz:
#skip-networking

Diğer Kaynaklar

Personal tools