WHM-cPanel Sunucularda Symfony İçin PHP ve eAccelerator
Var olan sisteminizin yükünü düşürmek istiyorsanız eAccelerator en iyi yöntem diyebilirim. eAccelerator derlenen PHP dosyalarını cache dizinde tutup, tekrar aynı dosyalara istek geldiğinde kodları yeniden derlemek yerine, bu dizindeki derlenmiş kodları httpd ye gönderir.
Yeni bir sisteme başlayacaksanız ve yeterli miktarda ram e ve server a para harcayabiliyorsanız memcached kullanılabilir. Memcached için özetle dağıtık önbellek sistemi diyebiliriz (Distributed Memory Caching System). Memcached’in diğer bir dezavantajı da işin yükünü programcıya bırakmasıdır. Memcached detaylı bir konu olduğu için (WordPress stats eklentisi bile var) daha sonraya bırakıp işimize dönelim.
PHP ile birlikte eAccelerator derlemek için bazı parametreler girmeniz gerekiyor. WHM/cPanel sunucularda bu imkanımız var gibi görünsede CentOS 5.4 üzerinde işe yaramıyor.
cpanel.net de yazdığına göre PHP5 kullanıcıları için /var/cpanel/easy/apache/rawopts/ dizini altında all_php5 isminde bir dosya oluşturuyoruz ve easyapache burada yazdığımız parametreleri komuta join ediyor.
Örnekleri de şöyle:
–with-someoption
–path-to-something=/usr/bin/something
–my-option=
Tabii bu şekilde sonuca ulaşılmıyor.
Burada bulduğum scripti biraz düzenledim. Öncelikle çalışan sisteminizde eAccelerator ın olmaması gerekiyor. Eğer varsa Easy Apache ile eAccelerator u kaldırarak yeniden derlemeniz lazım.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 | #!/bin/bash PHP_INI=/usr/local/lib/php.ini PHP_BIN=/usr/local/bin PHP_EXT=/usr/local/lib/php/extensions PHPIZE=/usr/local/bin/phpize VERSION=0.9.5.3 #shared memory i kapatmak için alt satırı silebilir yada başına # koyabilirsiniz. CUSTOM_FLAG="--with-eaccelerator-shared-memory" # You do not need to adjust this, but you may if you want... (below) TMPDIR=/root/eaccelerator-install PHPCACHE=/tmp/eaccelerator clear if [ ! $UID = 0 ] then echo "IPTAL EDILDI: Script root olarak calistirilmalidir." exit $? fi if [ ! -f /etc/init.d/cpanel ] || [ ! -d /var/cpanel ] then echo "IPTAL EDILDI: Script cPanel sunucular icindir. [Belki scripti duzenleyerek bu bilgisayarda calistirabilirsiniz, fakat bu tavsiye edilmez.]." exit $? fi if (grep "eaccelerator" -- $PHP_INI) then echo "IPTAL EDILDI: Oncelikle eAccelerator u ve tum uzantilarini sisteminizden kaldirmaniz gerekiyor.[php.ini deki eAccelerator satirlarini silmeniz yeterli olabilir]" exit $? fi if [ ! -d $PHP_EXT ] then mkdir -p $PHP_EXT fi if [ ! -f $PHP_INI ] || [ ! -d $PHP_BIN ] || [ ! -d $PHP_EXT ] || [ ! -f $PHPIZE ] then echo "IPTAL EDILDI: Script sizin bilgisayariniz icin yapilandirilmamis olabilir, lutfen script dosyasini acin ve 3-6 satirlarinin dogru degerleri aldigindan emin olun." exit $? fi if [ -d $TMPDIR ] then rm -rf $TMPDIR fi mkdir $TMPDIR cd $TMPDIR echo "wget ile ontanimli yansidan eAccelerator indiriliyor..." wget -q http://bart.eaccelerator.net/source/$VERSION/eaccelerator-$VERSION.tar.bz2 if [ ! -f eaccelerator-$VERSION.tar.bz2 ] then echo "IPTAL EDILDI: Indirme basarisiz." exit $? else echo "TAMAMLANDI." fi tar jfx eaccelerator-$VERSION.tar.bz2 cd eaccelerator-$VERSION bash $PHPIZE ./configure --enable-eaccelerator=shared --with-php-config=$PHP_BIN/php-config $CUSTOM_FLAG make make install mv $PHP_EXT/no-debug-non-zts-*/eaccelerator.so $PHP_EXT cat $PHP_INI > $PHP_INI.bak echo "$PHP_INI dosyasi $PHP_INI.bak olarak yedeklendi." replace -s "extension_dir = \"./\"" "extension_dir = \"$PHP_EXT\"" -- $PHP_INI cat <> $PHP_INI ;;eAccelerator ; extension="eaccelerator.so" zend_extension="/usr/local/lib/php/extensions/eaccelerator.so" eaccelerator.shm_size="16" eaccelerator.cache_dir="$PHPCACHE" eaccelerator.enable="1" eaccelerator.optimizer="1" eaccelerator.check_mtime="1" eaccelerator.debug="0" eaccelerator.filter="" eaccelerator.shm_max="0" eaccelerator.shm_ttl="0" eaccelerator.shm_prune_period="0" eaccelerator.shm_only="0" eaccelerator.compress="1" eaccelerator.compress_level="9" eaccelerator.keys="shm_only" eaccelerator.content="shm_only" eaccelerator.log_file = "/var/log/httpd/eaccelerator_log" EOT if [ -d $PHPCACHE ] then rm -rf $PHPCACHE fi mkdir $PHPCACHE echo ; echo "Apache yeniden baslatiliyor..." ; echo /etc/init.d/httpd restart echo ; echo "Tum adimlar basariyla tamamlandi." ; echo exit $? |

[...] WHM-cPanel Sunucularda Symfony İçin PHP ve eAccelerator [...]
Pingback by eAccelerator ve control.php | irfaN — 18/12/2009 @ 01:05