Ubuntu 16.04 Apache Kurulum Yöntemim

Ne kadar uğraşsam da her kurulum sonrası Apache ve MySQL’i yeniden, kendi çalışma mantığıma göre yeniden kurmam gerekiyor.

Kendi çalışma mantığım derken; ben Ubuntu’yu kurarken

/ -> root
/home
/c
/d

diye ayrı bölümler oluşturup kuruyorum. / -> Root dizini her kurulumda formatlanırken /home /c ve /d dizinlerine hiç dokunmuyorum.

/c dizininde web siteleriyle ilgili yaptığım işleri tutarken
/d dizininde diğer film, müzik, abur cubur dosyaları tutuyorum.

/c/www -> localhost yolum iken
/c/www-db -> veritabanı dosyalarının tutulduğu yol oluyor.

Bu sebeple her kurulumdan sonra dosya yollarını değiştirmem gerekiyor. İlaveten ek olarak kullandığım özellikler ve kütüphaneler de ayrı bir baş ağrısı.

İşte sırf bu yüzden kendime bu dökümanı hazırladım 🙂

Kurulumda php ve memcached birlikte kuruyorum. Arada xdebug, curl, gd, intl, json, mysql, xml ve memcached kütüphanelerini de aktif ediyorum.

Sürpriz bir şekilde Ubuntu 16.04 php 7 ile geliyor ve muhtemelen benim çok başımı ağrıtacak 🙁

Kuruluma geçmeden önce şahsen PPA eklemek taraftarıyım. Böylece en son sürümü kullandığımıza emin olabiliyoruz

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update

Sonrasında paket kurulumuna geçiyorum.

sudo apt-get install apache2 php libapache2-mod-php php-cli php-cgi php-xdebug php-curl php-gd php-intl php-json php-mysql php-xml memcached php-memcached php7.0-mbstring

Paketler kurulunca ssl, rewrite vs aktif etmek lazım

sudo a2enmod ssl
sudo a2enmod rewrite
sudo a2enmod suexec
sudo a2enmod include

Sonrasında hata gösterimini aktif etmek için editör ile (ben kate kullanıyorum) ini dosyamızı açıyoruz. php 7 kullandığımız için ini dosyamızın yolu şöyle:

sudo kate /etc/php/7.0/apache2/php.ini

ilgili dosya boş ise bir sürüm üste bakıyoruz

sudo kate /etc/php/7.1/apache2/php.ini

iki değişiklik yapıyoruz; error_reporting arıyoruz ve aşağıdaki gibi düzenliyoruz

;error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING

;display_errors = Off
display_errors = On

Bir kaç php değerine daha dokunmakta fayda görüyorum. Şu değerleri de aşağıdaki gibi düzenliyorum.

;short_open_tag = Off
short_open_tag = On

;memory_limit = 128M
memory_limit = 512M

;post_max_size = 8M
post_max_size = 200M

;upload_max_filesize = 2M
upload_max_filesize = 200M

;max_file_uploads = 20
max_file_uploads = 100

;allow_url_fopen = On
allow_url_fopen = Off 

Çoğu paylaşımlı sunucuda bu değer (allow_url_fopen) kapalı oluyor. Bu sebeple curl kullanmak zorunda kalıyorum ve local ayarlarımı da buna uyumlu tutuyorum.

Buraya kadar olan ayarların etki etmesi için apache’yi yeniden başlatıyoruz.

sudo service apache2 restart

Karşımıza Apache2 default sayfası çıktıysa apache çalışıyor demektir.

Şimdi Apache yolumuzu değiştirelim.

sudo kate /etc/apache2/apache2.conf

aşağıdaki kısmı buluyoruz ve yorum haline getiriyoruz


	Options FollowSymLinks
	AllowOverride None
	Require all denied



	AllowOverride None
	Require all granted



	Options Indexes FollowSymLinks
	AllowOverride None
	Require all granted

sonrasında şu direktifi ekliyoruz

DocumentRoot /c/www/  
# bu kısım supheli, test edip bakacağım     
#
#	Options FollowSymLinks     
#	AllowOverride all     
#

	Options FollowSymLinks             
	Options +indexes
	AllowOverride all     
	Order allow,deny       
	allow from all   

Sonrasında virtualhost dosyasındaki documentRoot değerini düzenleyelim

sudo kate /etc/apache2/sites-available/000-default.conf

deyip dosyayı açtıktan sonra DocumentRoot değerini şu şekilde düzenleyelim

	#DocumentRoot /var/www/html
	DocumentRoot /c/www

Sonrasında sunucuyu tekrar başlatalım

sudo service apache2 restart

http://localhost/ adresine tıkladığımızda dosyalarımız artık görünüyorsa büyük bir deveye hendek atlattık demektir.

Şimdi bir test dosyası oluşturup phpinfo() bakabiliriz.

Kaynakça:
* https://forum.ubuntu-tr.net/index.php?topic=24150.0
* http://askubuntu.com/questions/760907/upgrade-to-16-04-php7-not-working-in-browser
* https://help.ubuntu.com/16.04/serverguide/php.html

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir