su -ile root oluyoruz.- php-fpm official CentOS repositorylerinde yok. bu yuzden additional repositoryleri enable ediyoruz:
- /etc/yum.repos.d/ altında nginx.repo adında bir repo dosyası oluşturuyoruz. Bu repo nginx’in kurulum deposu olacaktır.
- Repoyu oluşturduktan sonra aşağıdaki komutla kurulumu gerçekleştirebiliriz.
yum --enablerepo=remi install nginx php php-fpm php-common - nginx kurulumu ardından Php 5.3.10 modüllerini kurabiliriz.
- Nginx ve php-fpm’i başlatıyoruz.
- Açılış sırasında nginx ve php-fpm’i otomatik başlatmak için:
- Bu işlemler tamamlandıktan sonra nginx php desteği ile sistemimize kurulmuş olacaktır.
- default.conf dosyasını düzenledikten sonra terminal penceresinde
service nginx restartyazarak nginx’i yeniden başlatmamız gerekiyor.
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.)
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
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.
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
/etc/init.d/nginx start
/etc/init.d/php-fpm start
chkconfig --add nginx
chkconfig --levels 235 nginx on
chkconfig --add php-fpm
chkconfig --levels 235 php-fpm on
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;
}
}
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.
Thank you for some other excellent article. Where else may anybody get that kind of info in such a perfect way of writing? I have a presentation next week, and I’m at the search for such info.