CentOS 6.2 ve RedHat 6.2 e nginx PHP-FPM kurulumu

  1. su - ile root oluyoruz.
  2. php-fpm official CentOS repositorylerinde yok. bu yuzden additional repositoryleri enable ediyoruz:
  3. rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm
    rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
    (Bu linkler bazen calismayabilir, epel-release-6-5.noarch.rpm ya da remi-release-6.rpm‘i farklı bir kaynak üzerinden bularak rpm -Uvh komutu ile kullanabiliriz.)

  4. /etc/yum.repos.d/ altında nginx.repo adında bir repo dosyası oluşturuyoruz. Bu repo nginx’in kurulum deposu olacaktır.
  5. CentOS icin nginx.repo içerisine bunu yaziyoruz :

    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    gpgcheck=0
    enabled=1

    RedHat icin nginx.repo içerisine bunu yaziyoruz :

    [nginx]
    name=nginx repo
    baseurl=http://nginx.org/packages/rhel/$releasever/$basearch/
    gpgcheck=0
    enabled=1

  6. Repoyu oluşturduktan sonra aşağıdaki komutla kurulumu gerçekleştirebiliriz.
    yum --enablerepo=remi install nginx php php-fpm php-common
  7. Soyle bir sorun cikabilir:

    Error: Cannot retrieve metalink for repository: epel. Please verify its path and try again

    Bu durumda epel repository’de bir sorun var demektir. O zaman biz de epel i kaldiririz. Bunun icin:
    /etc/yum.repos.d/ deki ilgili dosyalari siliyoruz ve
    /var/cache/yum/ daki cache klasorunu siliyoruz.
    Ayni komutu tekrar calistirdigimizda yuklenmesi lazim.

  8. nginx kurulumu ardından Php 5.3.10 modüllerini kurabiliriz.
  9. APC (php-pecl-apc) : Php kodlarını önbelleklemeye yarar. Bir çeşit php hızlandırıcısı, önbellekleme sistemidir.
    CLI (php-cli) : Php için komut satırı arayüzüdür.
    PEAR (php-pear) : Php için kod deposudur diyebiliriz. Php yazılımcılarının işini kolaylaştıran öntanımlı bazı özellikler ve fonksiyonların toplandığı kod deposu.
    PDO (php-pdo) : MySQL, MsSQL, Oracle, SQLite gibi veritabanları ile büyük düzenlemelere gerek kalmadan bağlantı kurulmasına imkan veren sürücü, veri erişim katmanıdır.
    MySQL (php-mysql) : MySQL veritabanı ile işlem yapabilmenizi sağlayan modüldür.
    PostgreSQL (php-pgsql) : PostgreSQL veritabanı ile işlem yapabilmenizi sağlayan modüldür.
    MongoDB (php-pecl-mongo) : PHP MongoDB veritabanı ile işlem yapabilmenizi sağlayan modüldür.
    SQLite (php-sqlite) : SQLite veritabanı ile işlem yapabilmenizi sağlayan modüldür.
    Memcache (php-pecl-memcache) : Memcache, dinamik web yazılımlarında veritabanı sorugusunu azatlmaya ve uygulamayı hızlandırmaya yarayan bir önbellekleme (cache) sistemidir. Detaylı bilgi resmi web sitesinde mevcuttur. http://memcached.org/
    Memcached (php-pecl-memcached) : Memcache ile aynı işlevi gören farklı bir geliştirici tarafından hazırlanmış önbellekleme sistemidir. İsim benzerliği pek çok kullanıcının kafasını karıştırmaktadır. Resmi sitesinden detaylı bilgi edinebilirsiniz. http://libmemcached.org/libMemcached.html
    GD (php-gd) : GD grafik kütüphanesi gerektiren php yazılımları için gerekli modül.
    XML (php-xml) : Xml kullanan php yazılımları için gerekli modül.
    MBString (php-mbstring) : Latin alfabesi dışındaki alfabeye sahip dillerde kullanılan her bir karakterlerin kapladığı alan latin alfabesindeki dillerin kapladığı alandan daha fazladır. MBString ise latin alfabesi dışında bir alfabeye sahip dillerin php’de kullanılabilmesine imkan tanıyan bir modüldür. Örneğin birden fazla dilde yayın yapacak bir portal projeniz varsa kurulu olması gerekir.
    MCrypt (php-mcrypt) : Standart metinleri şifrelemeye olanak tanıyan bir php modülüdür. Örneğin magento gibi bir açık kaynak kodlu eticaret sistemi kuracaksanız cookie’lerin şifrelenebilmesi için bu modüle ihtiyacınız olacaktır.

    Daha fazla modül için detaylı bilgi: http://www.php.net/manual/tr/funcref.php

    Kurulum için aşağıdaki komutu çalıştırmamız yeterli. İhtiyacımız olmayanları çıkarabiliriz.

    yum --enablerepo=remi install php-pecl-apc php-cli php-pear php-pdo php-mysql php-pgsql php-pecl-mongo php-sqlite php-pecl-memcache php-pecl-memcached php-gd php-mbstring php-mcrypt php-xml

  10. Nginx ve php-fpm’i başlatıyoruz.
  11. /etc/init.d/nginx start
    /etc/init.d/php-fpm start

  12. Açılış sırasında nginx ve php-fpm’i otomatik başlatmak için:
  13. chkconfig --add nginx
    chkconfig --levels 235 nginx on

    chkconfig --add php-fpm
    chkconfig --levels 235 php-fpm on

  14. Bu işlemler tamamlandıktan sonra nginx php desteği ile sistemimize kurulmuş olacaktır.
  15. nginx varsayılan kurulum dizinleri ve dosyaları şu şekildedir :

    Varsayılan nginx yayın dizini : /usr/share/nginx/html
    Varsayılan nginx config dosyası : /etc/nginx/nginx.conf
    Varsayılan virtual host dosyası : /etc/nginx/conf.d/default.conf
    Varsayılan erişim kayıtları : /var/log/nginx/access.log
    Varsayılan hata kayıtları : /var/log/nginx/error.log

    Varsayılan virtual host dosyası içerisinde nginx’in ana kurulum dizini, erişim ve hata kayıt dosyalarının konumu belirtilmediği için sorun yaşayabiliriz. Bu nedenle kurulum tamamlandıktan sonra sistemimizde bulunan varsayılan virtual host dosyasını düzenlememiz gerekmektedir.

    /etc/nginx/conf.d/ altında bulunan default.conf dosyasını aşağıdaki şekilde düzenliyoruz:

    server {
        listen        80;
        server_name  localhost;
        access_log  /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;
        root /usr/share/nginx/html;
    
        location / {
            index index.html index.htm index.php;
        }
    
        location ~ \.php$ {
            include /etc/nginx/fastcgi_params;
            fastcgi_pass  127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
        }
    }
  16. default.conf dosyasını düzenledikten sonra terminal penceresinde service nginx restart yazarak nginx’i yeniden başlatmamız gerekiyor.
  17. Artık nginx web sunucumuza http://127.0.0.1(sanal makinede connection refuse olabilir) ya da http://localhost yazarak erişebiliriz.

    Php’yi test etmek için /usr/share/nginx/html dizini altında info.php adında bir dosya hazırlayarak içeriği <?php phpinfo(); ?> olacak sekilde kayıt ediyoruz ve ardından tarayıcımız ile http://localhost/info.php ‘yi aciyoruz.

CentOS 6.2 server ve VMware hakkında

centosda gui yi command line dan enable etmek için:

If you installed CentOS as a server, a graphical desktop environment may not be installed. The yum command provides an option to install all of the software required for either the Gnome or KDE graphical desktop environments. The X Windows system is required for any graphical desktop you prefer. The X Windows system provides the server that manages the graphical user interface. You must have root privileges to install software and start the X server

Instructions

  1. Log in to the CentOS operating system.
  2. Type the command su - to switch to a root session.
  3. Type the command:
    yum groupinstall "X Windows System" "GNOME Desktop Environment"
    or
    yum groupinstall "X Windows System" "KDE Desktop Environment"
    to install your preferred desktop environment.
  4. Type the command startx to start the X windows system and your preferred desktop environment.

Tips & Warnings: If you already have a graphical desktop environment installed, you can just type startx as the root user.

Kaynak: http://www.ehow.com/how_8763657_start-centos-gui-command-line.html


VMware – Bridged Networking – No route to host problemi:

Linux-Centos da System/Administration/Firewall a girip lazim olup kapali olan portlari aciyoruz. ornegin http icin 80, https icin 443, ssh icin 22 gibi..


Google “Chorme cannot be run as root” problemi:

/opt/google/chrome/google-chrome dosyasini aciyoruz, exec -a "$0" "$HERE/chrome" "$@" komutunun bulundugu satiri buluyoruz ve onu exec -a "$0" "$HERE/chrome" "$@" --user-data-dir ile degistiriyoruz. ve artik aciliyor..


VMware – Klasör/Dosya Paylaşımı:

sanal makinenin ismine sağ tıklayıp Settings/Options/Shared Folders – Always Enabled. Paylaşılan klasör/dosya Centos’da mnt/hgfs klasöründe.. (VMware tools installation gerekebilir, emin değilim)