Ubuntu için Localhost Kurulumu - LampServer, phpMyAdmin

Anlatılanlar Debian dağıtımları için geçerlidir. Ubuntu türevleri, elementaryOS vb.

Kurulum İşlemleri


Adım adım her işlemin neden yapıldığını anlatarak ilerleyeceğim.

İlk olarak lamp-server paketini kuruyoruz. ( Komutun sonunda -y parametresi onay istemeden işlemi gerçekleştirmesi içindir )
Bu işlem esnasında size 3 kez MySQL şifresi soracak, hepsinde aynı şifreyi girmiş özen gösterin, aksi halde kurulum sonrasında hatalar ile karşılaşabilirsiniz.
sudo apt-get install lamp-server^ -y


phpMyAdmin ile veri tabanı oluşturma ve silme işlemlerini yapabilirsiniz. Diğer özellikleri yazmaya gerek yok sanırım. Bu işlemde de önceki adımda girdiğiniz şifreyi 2 kez girmeniz gerekecek.
sudo apt-get install phpmyadmin -y

Kurulum işlemleri bu kadar. Devamında ise gerekli modülleri aktifleştirme, php.ini ayarları gibi ayrıntı kısımlarını inceleyeceğiz.

* mod_rewrite = .htaccess kullanabilmek için gerekli bir modül
* mod_cache = diske önbellekleme işlemleri için
* mod_headers = header verilerini belirleme
Bu modüller kullanacağınız scripte bağlı olarak değişecektir. Gerekli olanlar için araştırma yaparak aynı şekilde dahil edebilirsiniz.
sudo a2enmod rewrite
sudo a2enmod cache
sudo a2enmod headers


Kurulumlar sonrasında apache'yi yeniden başlatıyoruz.
sudo service apache2 restart


Erişim yetkisi için default site ayarını düzenliyoruz. Koddaki subl sublime-text'in çalıştırılabilir adı, bunun yerine vim, gedit kullanabilirsiniz.
sudo subl /etc/apache2/sites-available/000-default.conf

En altına aşağıdaki kodu ekliyoruz
<Directory "/var/www/html">
    AllowOverride All
</Directory>

Aşağıdaki gibi olacak şekilde ekleyebilirsiniz.


Ardından php.ini ayarlarını yapacağız. PHP 7.0.x sürümlerinde PHP 5'ten farklı dizinler kullanılıyor. Bu nedenle sonraki birkaç adımı PHP 7 ve PHP 5 diye ikince ayırarak devam edeceğim.

PHP 7 için ayarlar


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


PHP 5 için ayarlar


sudo subl /etc/php5/apache2/php.ini


Benim kullandığım php.ini ayarları ise şunlar ( Bu ayarlar kurulacak scriptlere göre farklılık gösterebilir, bu nedenle sadece kendinize uygun olanları değiştirin )
max_execution_time = 3600
max_input_time = 3600
memory_limit = 512M
post_max_size = 128M
upload_max_filesize = 2048M
max_file_uploads = 100
display_errors = On
output_buffering = Off


Ufak bir ayrıntı olarak: PHP 7 sürümlerinde session_start ile ilgili problemler yaşanmış, bunun nedeni yine scripte bağlı olarak output_buffering değerinin Off olmayışı. Eğer bu ayar açıksa scriptte ob_start ve ob_end ile birlikte kullanılmalı, aksi halde sayfa değiştiğinde session değeri boş dönüyor.

Curl modülü için php7 ve php5 sürümleri kurulumları farklı.
PHP 7 için
sudo apt-get install curl libcurl3 libcurl3-dev php-curl -y

Ayrıca ihitiyacınız olacak zip kütüphanesi
sudo apt-get install php7.0-zip

PHP 5 için, ayrıca sqlite de kurabilirsiniz
sudo apt-get install curl libcurl3 libcurl3-dev php5-curl -y
sudo apt-get install php5-sqlite -y


phpMyAdmin'e http://localhost/phpMyAdmin olarak erişebilmek için bir kısayol oluşturuyoruz.
sudo ln -s /usr/share/phpmyadmin /var/www/html/


Son olarak dosya izinlerini ayarlıyoruz. Bu adımın birçok farklı çözüm olabilir, incelediklerimin içinde en pratik olanını yazıyorum.
Bu izin ayarını yapmadığınızda, locahost'a attığını her script dosyası için konsoldan veya dosya arayüzünden gerekli izinleri yapmanız gerekecektir. Aşağıdaki uygulayacağınız adımlar ile script kurulumlarınız için kendinze kolaylık sağlamış olacaksınız.

İlk olarak bilgisayar kullanıcı adınızı aşağıdaki kodda marzochi ile değiştirin. ( marzochi benim kullanıcı adım )
sudo chown -R marzochi:www-data /var/www/


Sonra apache tanımlamalarına bu iki grup ve kullanıcı adını ekleyeceğiz. Dosyayı açıyoruz ve
sudo subl /etc/apache2/envvars

En altına ekliyoruz ( marzochi benim kullanıcı adım, bunu kendi kullanıcı adınızla değiştirin ) :
export APACHE_RUN_USER=marzochi
export APACHE_RUN_GROUP=www-data

Son olarak apache'yi yeniden başlatarak herşeyi hazır hale getiriyoruz.
sudo service apache2 restart


Artık localhostunuz kullanıma hazır. Kurulum işlemi Ubuntu 16.04 tabanlı elementaryOS Loki'de yapılmıştır. Sorularınızı yorum ile sorabilirsiniz.
+8

Yorumlar 8

  1. Hasan
    Hasan Tarih 2 Mart 2018 23:07
    Merhaba Mehmet bey elementary os kurdum ve sizin makaleniz deki gibi lamp server ı kurdum kurarken herhangi bi hata almadım ama basit bir değişkendeki değeri ekrana yazdıran bir komut yazdım ama çalıştırdığımda
    Bu sayfa çalışmıyor
    localhost şu anda bu isteği işleme alamıyor.
    HTTP ERROR 500

    hatası alıyorum.
    biraz araştırdığım da izinlerden kaynaklandığını öğrendim,

    dosyaya elle çalıştırma yetkisi verdim ama olmadı, sorun devam ediyor.

    chmod +x ornek.php
    1. m.hanoglu Tarih 2 Mart 2018 23:08
      Peki direkt olarak http://localhost yazdığınızda default sayfa geliyor mu?
  2. Hasan
    Hasan Tarih 3 Mart 2018 23:18
    sorun yokmuş ufak bir yazım hatasından dolayı böyle bir uyarı veriyormuş düzeltince kod çalıştı ama normalde hatanın hangi satırda olduğunu belirten syntax error vermesi gerekmiyor mu?
    Nasıl ayarlayabilirim.
    1. m.hanoglu Tarih 3 Mart 2018 23:34
      php.ini den veya scriptin başına error_reporting tanımlaması ekleyerek yapabilirsiniz.
      http://php.net/manual/tr/function.error-reporting.php
  3. Rufiq Cavadov
    Rufiq Cavadov Tarih 18 Mayıs 2018 22:34
    Hocam ben şu şekilde bir hata alıyorum.
    MySQL said: Documentation

    Cannot connect: invalid settings.
    mysqli_real_connect(): (HY000/1045): Access denied for user 'pma'@'localhost' (using password: NO)
    Connection for controluser as defined in your configuration failed.
    mysqli_real_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: NO)
    phpMyAdmin tried to connect to the MySQL server, and the server rejected the connection. You should check the host, username and password in your configuration and make sure that they correspond to the information given by the administrator of the MySQL server.
    1. m.hanoglu Tarih 18 Mayıs 2018 22:42
      Access denied for user 'pma'@'localhost' (using password: NO)
      Connection for controluser as defined in your configuration failed.

      Dediğine göre phpmyadmin'den pma tabloları silinmiştir.

      Bu komut ile tekrar yapılandırabilirsin
      sudo dpkg-reconfigure phpmyadmin
  4. Hasan
    Hasan Tarih 20 Mayıs 2018 22:22
    Merhaba;

    vreitabanına bağlantı için PDO yazdım ama çalışmadı sunucu da php kodlarını çalıştırabildim dizi değişkenleri if(), for(), while döngüsü gibi bir çok kod yazdım ama pdo ile veritabanı bağlantısı yapmaya çalıştığım da hata alıyorum işin kötüsü hatayı da göstermiyor.

    error_reporting(-1);
    try(
    $db=new PDO("mysql:host=localhost;dbname=onur;charset=utf8",'root','bahtiyar34');
    echo "Veritabanına bağlanıldı.";
    }catch(PDOExpception $e){
    echo $e->getMessage();
    }

    HATA;
    Bu sayfa çalışmıyor
    localhost şu anda bu isteği işleme alamıyor.
    HTTP ERROR 500
    1. m.hanoglu Tarih 21 Mayıs 2018 13:58
      PDO desteği aktif olmayabilir.
      https://secure.php.net/manual/tr/pdo.installation.php

      Kontrol edebilirsiniz..
Yorum ekle

Yorum ekle

    • winksmile
      laughing
      angry
Okunamayan kodu yenilemek için resmin üstüne tıklayınız