LAMP (Türkçe)
From ArchWiki
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.
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ıylahttp://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ındaopen_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.
- Test etmek için: http://localhost/test.php veya http://localhost/~kullanıcı/test.php adreslerini deneyebilirsiniz.
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
- MySQL - Arch için MySQL kılavuzu
- http://www.apache.org/
- http://www.php.net/
- http://www.mysql.com/