Arch Üzerine Apache, MySQL, PHP Kurulumu

Merhaba Arkadaşlar,

Bu yazıda size Arch tabanlı Linux dağıtımlarına localhost kurmayı göstericem.Ubuntu'ya göre biraz daha karmaşık ve kasvetli bir iş.En basit şekilde sizlere açıklamalarıyla birlikte anlatmaya çalışıcam.

Öncelikle pacman'i update'lemenizi önereyim;

sudo pacman -Syu

Apache Kurulumu

Ardından, ilk olarak Apache'yi kuruyoruz.
sudo pacman -S apache
Kurulum bittikten sonra da servisi başlatıp durumuna bakabilirsiniz.
sudo systemctl start httpd
sudo systemctl status httpd
Apache'nin ana dizinine de /srv/http dosya yolu üzerinden ulaşabilirsiniz.

PHP Kurulumu

Bu dipnot'u da verdikten sonra php kurulumuna geçebiliriz.PHP kurulumu içinde;
sudo pacman -S php php-apache
komutunu çalıştırmanız yeterli olmayacaktır (: Kurulumlar bittikten sonra PHP'yi Apache üzerinde Enable etmeyi göstericem, biraz daha sabır sadece.

MySQL Kurulumu

Şimdi de sıradan devam edersek, MySQL sunucusunu kuruyoruz;
sudo pacman -S mysql
Burada kurulumu yaparken 2 farklı seçenek sunuyor size, default olarak 1.seçeneği yani MariaDB'yi veriyor.Benimde önerim şahsen bu yöndedir, 1 seçeneğini seçerek MariaDB'yi kurup devam edebilirsiniz. En sonda bir sıkıntı var mı diye, servisi başlatıp durumuna bakabilirsiniz;
sudo systemctl start mysqld
sudo systemctl status mysqld
MySQL kurulumu ne yazık ki bu kadar ile bitmiyor, mysql_secure_installation'ı çalıştırarak sunucuya şifre atamasını ve birkaç konfigürasyon ayarını yapıyoruz.
sudo mysql_secure_installation
Sağlıklı bir şekilde kurulup kurulmadığını incelemek içinde mysql'e giriş yapmayı deneyebilirsiniz;
mysql -u root -p
komutunu çalıştırıp az önce tanımladığımız şifreyi yazıyoruz ve giriş yapıyoruz.İsterseniz test amaçlı olarak "show databases;" komutunu çalıştırabilirsiniz MySQL sunucusu üzerinde.Eğer buraya kadar bir sorun yoksa PHPMyAdmin'in kurulumuna geçmeden önce Apache yapılandırmasına girebiliriz.

Apache Konfigürasyon Dosyasını Yapılandırmak

Apache konfigürasyonu için /etc/httpd/conf/ dizininde modüller için gerekli klasörlerimizi açıyoruz;
sudo mkdir /etc/httpd/conf/sites-available
sudo mkdir /etc/httpd/conf/sites-enabled
sudo mkdir /etc/httpd/conf/mods-enabled
Daha sonra da apache konfigürasyon dosyamızı yapılandırıyoruz.Konfigürasyon dosyasını açmak için;
sudo nano /etc/httpd/conf/httpd.conf
komutunu çalıştırıyoruz.Konfigürasyon dosyamızı açtıktan sonra en alta veya herhangi bir yerine(özel tagler hariç) klasörlerimizin yollarını giriyoruz ve kaydedip kapatıyoruz;
IncludeOptional conf/sites-enabled/.conf
IncludeOptional conf/mods-enabled/.conf

Apache a2ensite ve a2dissite Komutları

Apache'de VirtualHost kullanabilmemiz için gerekli ufak birkaç tool diyebiliriz heralde bunlara.Bunları herhangi bir dizinde oluşturup /usr/bin klasörüne kopyalamanız yeterlidir.Ya da direk /usr/bin içinde de oluşturabilirsiniz, şimdi göstereceğim gibi;
sudo nano /usr/bin/a2ensite
komutu ile dosyamızı açıp içine bu bash script kodlarını yapıştırmamız yeterli olacaktır;
#!/bin/bash
if test -d /etc/httpd/conf/sites-available && test -d /etc/httpd/conf/sites-enabled  ; then
echo "-------------------------------"
else
mkdir /etc/httpd/conf/sites-available
mkdir /etc/httpd/conf/sites-enabled
fi

avail=/etc/httpd/conf/sites-available/$1.conf enabled=/etc/httpd/conf/sites-enabled site=ls /etc/httpd/conf/sites-available/

if [ "$#" != "1" ]; then echo "Use script: n2ensite virtual_site" echo -e "\nAvailable virtual hosts:\n$site" exit 0 else if test -e $avail; then sudo ln -s $avail $enabled else echo -e "$avail virtual host does not exist! Please create one!\n$site" exit 0 fi if test -e $enabled/$1.conf; then echo "Success!! Now restart Apache server: sudo systemctl restart httpd" else echo -e "Virtual host $avail does not exist!\nPlease see avail virtual hosts:\n$site" exit 0 fi fi

Aynı şekilde de a2dissite dosyamızı oluşturup içine yazacağınız scripti veriyorum;
sudo nano /usr/bin/a2dissite
#!/bin/bash
avail=/etc/httpd/conf/sites-enabled/$1.conf
enabled=/etc/httpd/conf/sites-enabled
site=ls /etc/httpd/conf/sites-enabled

if [ "$#" != "1" ]; then echo "Use script: n2dissite virtual_site" echo -e "\nAvailable virtual hosts: \n$site" exit 0 else if test -e $avail; then sudo rm $avail else echo -e "$avail virtual host does not exist! Exiting" exit 0 fi if test -e $enabled/$1.conf; then echo "Error!! Could not remove $avail virtual host!" else echo -e "Success! $avail has been removed!\nsudo systemctl restart httpd" exit 0 fi fi

En sonda bu iki dosyaya çalıştırma izinlerini veriyoruz;
sudo chmod +x /usr/bin/a2ensite
sudo chmod +x /usr/bin/a2dissite

Apache Üzerinde Virtual Host Oluşturma

Buraya kadar da adımları tamamladıysanız apache'nin bir diğer temel taşlarından birisine geçiyoruz, virtual host oluşturmayı göstereceğim.Klasik bir giriş yapayım, localhost olarak virtual host oluşturmayı gösteriyorum.Az önce httpd altında oluşturduğumuz sites-available klasörünü kullanarak yapıyoruz bu işlemi.Önce bir localhost konfigürasyon dosyası oluşturuyoruz.
sudo nano /etc/httpd/conf/sites-available/localhost.conf
<VirtualHost *:80>
        DocumentRoot "/srv/http"
        ServerName localhost
        ServerAdmin you@example.com
        ErrorLog "/srv/http/localhost-error_log"
        TransferLog "/srv/http/localhost-access_log"

<Directory /> Options +Indexes +FollowSymLinks +ExecCGI AllowOverride All Order deny,allow Allow from all Require all granted </Directory>

</VirtualHost>

Dipnot: Eğer Wordpress tarzı sistemler kullanacaksanız veya .htaccess'ten yardım alacaksanız TransferLog parametresinin altına, "Options Indexes FollowSymLinks MultiViews" parametresini de girmeniz gerekecektir.Ki bunun Debian/Ubuntu üzerinde ki konfigürasyonunu buradaki yazımda anlatmıştım.

Bu işlemleri de yaptıktan sonra,

sudo a2ensite localhost
komutunu vererek localhost isminde bir host oluşturmuş oluyorsunuz.En sonda httpd servisini yani Apache'yi restart ederek sonuca ulaşabilirsiniz;
sudo systemctl restart httpd

Apache Üzerinde PHP'yi Aktifleştirme

Az önce yukarıda PHP kurulumunu göstermiştim ve PHP'yi birazdan aktifleştirmeyi göstereceğimi söylemiştim. İlk olarak apache'nin konfigürasyon dosyasını açıyoruz tekrardan;
sudo nano /etc/httpd/conf/httpd.conf
Burada "LoadModule mpm_event_module modules/mod_mpm_event.so" satırını bulup, başına # işareti koyarak yorum satırı haline getiriyorsunuz.PHP'nin konfigürasyon dosyasını yapılandırırken çakışma yaşamaması için.(Arama yapmak için [ctrl+w] tuş kombinasyonunu kullanabilirsiniz)

Daha sonra php konfigürasyon dosyamızı açıyoruz;

sudo nano /etc/httpd/conf/mods-enabled/php.conf
ve içine bunları yapıştırmanız yeterli olacaktır;
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
LoadModule php5_module modules/libphp5.so

Include conf/extra/php5_module.conf

Bunu da yaptıktan sonra tekrardan Apache'ye restart atıp durumuna bakabilirsiniz.
sudo systemctl restart httpd
sudo systemctl status httpd
Eğer buraya kadar da herşey yolunda ise son olarak PHPMyAdmin'i de kurarak konuyu kapatabiliriz.

PHPMyAdmin Kurulumu

PHPMyAdmin'in kurulumu için;
sudo pacman -S phpmyadmin php-mcrypt
Kurulum bittikten sonra PHP initialization dosyamızı yapılandırmamız gerekiyor;
sudo nano /etc/php/php.ini
komutu ile dosyayı açtıktan sonra extension'ların sıralandığı yere aşağıdaki satırları yapıştırmanız yeterli olacaktır.
extension=mcrypt.so
extension=mssql.so
extension=mysqli.so
extension=openssl.so
extension=iconv.so
extension=imap.so
extension=zip.so
extension=bz2.so
En son olarakta open_basedir değişkenini kontrol etmenizi öneriyorum.Değişkenin içinde eğer "/srv/http/" yok ise ":/srv/http/" şeklinde en sonuna ekleme yapmanız yeterli olacaktır.

 

Umarım faydalı olmuştur, kolay gelsin..


Tags: apache, arch, lamp, linux, localhost, manjaro, mysql, mysql_secure_install, php, phpmyadmin