المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : طريقة تركيب install أكثر من اصدار PHP على سيرفر SERVER واحد بملحقاته



loulou ange
11-02-2013, بتوقيت غرينيتش 02:25 AM
السلام عليكم ورحمة الله وبركاته

من اسبوع تقريبا كان فى طلب من شخص ان عنده عملاء لهم مواقع لابد من استخدام php 5.3 وهو عمل تحديث update ل 5.4 .. اعتقد دى اول مرة يكون فى موضوع يشرح طريقة فكرة تركيب install اصدارين مختلفين من ال PHP على سيرفر SERVER واحد .
CloudLinux فيه الميزة دى تلقائيا من خلال php selector . . لكن ايضا اللى مش مركب CL يعمل ايه !!!!

الشرح طريقة دا تم تنفيذه باصدارين 5.3.22 و 5.4.12 والاضافات الخاصة بال PHP زى IonCube - PHP_FPM - CGI
ايضا الدرس مفصل تركيب install php من السورس هايفيد برده كخبرة

نصيحة : الدرس مفصل دا لاينفذه سوى شخص له بعض من الخبرة فى التعامل وفهم النظام جيدا .. لأن فيه اضافات بالبووت وسكربت يتم تنفيذه واضافات متعلقة بالويب سيرفر SERVER نفسه .
والنصيحة الكبرى

نبدا بتركيب install ال 5.3 FPM
رمز PHP:

<code style="white-space:nowrap"> <code> mkdir /opt/php-5.3.22



</code> </code>

رمز PHP:

<code style="white-space:nowrap"> <code> mkdir /usr/local/src/php5-build
</code> </code>

رمز PHP:

<code style="white-space:nowrap"> <code> cd /usr/local/src/php5-build
</code> </code>

رمز PHP:

<code style="white-space:nowrap"> <code> wget http://de.php.net/get/php-5.3.22.tar.bz2/from/this/mirror -O php-5.3.22.tar.bz2
</code> </code>

رمز PHP:

<code style="white-space:nowrap"> <code> tar jxf php-5.3.22.tar.bz2
</code> </code>

رمز PHP:

<code style="white-space:nowrap"> <code> cd php-5.3.22/
</code> </code>

رمز PHP:

<code style="white-space:nowrap"> <code> yum groupinstall 'Development Tools'
</code> </code>

رمز PHP:

<code style="white-space:nowrap"> <code> yum install libxml2-devel libXpm-devel gmp-devel libicu-devel t1lib-devel aspell-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libvpx-devel libpng-devel freetype-devel readline-devel libtidy-devel libxslt-devel libmcrypt-devel pcre-devel curl-devel mysql-devel ncurses-devel gettext-devel net-snmp-devel libevent-devel libtool-ltdl-devel libc-client-devel postgresql-devel
</code> </code>

دلوقتى هانعمله كومبايل .. ونختار الاضافات اللى نحتاجها .
للى ميعرفش اللى هايحتاجه اسمه ايه تحديدا .. تقدر تستخدم الhelp
رمز PHP:

<code style="white-space:nowrap"> <code> ./configure --help
</code> </code>

تختار منها اللى تحتاجه
ننفذ
رمز PHP:

<code style="white-space:nowrap"> <code> ./configure \
--prefix=/opt/php-5.3.22 \
--with-pdo-pgsql \
--with-zlib-dir \
--with-freetype-dir \
--enable-mbstring \
--with-libxml-dir=/usr \
--enable-soap \
--enable-calendar \
--with-curl \
--with-mcrypt \
--with-zlib \
--with-gd \
--with-pgsql \
--disable-rpath \
--enable-inline-optimization \
--with-bz2 \
--with-zlib \
--enable-sockets \
--enable-sysvsem \
--enable-sysvshm \
--enable-pcntl \
--enable-mbregex \
--with-mhash \
--enable-zip \
--with-pcre-regex \
--with-mysql \
--with-pdo-mysql \
--with-mysqli \
--with-jpeg-dir=/usr \
--with-png-dir=/usr \
--enable-gd-native-ttf \
--with-openssl \
--with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-libdir=lib64 \
--enable-ftp \
--with-imap \
--with-imap-ssl \
--with-kerberos \
--with-gettext \
--enable-fpm
</code> </code>

هانضيف على الامر التالى لاستخدام PHP-FPM
الذى يعمل على اباتشى يضيف السطر التالى
اذا كنت تستخد cPanel اليوزر والجروب هايكون nobody
رمز PHP:

<code style="white-space:nowrap"> <code> --with-fpm-user=apache
--with-fpm-group=apache
</code> </code>

فى حالة NGINX اضف
رمز PHP:

<code style="white-space:nowrap"> <code> --with-fpm-user=nginx
--with-fpm-group=nginx
</code> </code>

رمز PHP:

<code style="white-space:nowrap"> <code> make
make install
</code> </code>

ننسخ ملف .ini وFPM.conf للمسار المضبوط
رمز PHP:

<code style="white-space:nowrap"> <code> cp /usr/local/src/php5-build/php-5.3.22/php.ini-production /opt/php-5.3.22/lib/php.ini
</code> </code>

رمز PHP:

<code style="white-space:nowrap"> <code> cp /opt/php-5.3.22/etc/php-fpm.conf.default /opt/php-5.3.22/etc/php-fpm.conf
</code> </code>

هانضيف القيم الخاصة لل FPM للربط بالويب سيرفر SERVER وبورت غير مستخدم
رمز PHP:

<code style="white-space:nowrap"> <code> nano /opt/php-5.3.22/etc/php-fpm.conf
</code> </code>

طبعا هانغير اليوزر والباس حسب الويب سيرفر SERVER الموجود اذا كان اباتشى او انجن اكس
ونفتح البورت 8999 من الفايروول
هايكون المحتوى كالتالى :
رمز PHP:

<code style="white-space:nowrap"> <code> &#91;...&#93;
pid = run/php-fpm.pid
&#91;...&#93;
user = nginx
group = nginx
&#91;...&#93;
listen = 127.0.0.1:8999
&#91;...&#93;
include=/opt/php-5.3.22/etc/pool.d/*.conf
</code> </code>

رمز PHP:

<code style="white-space:nowrap"> <code> mkdir /opt/php-5.3.22/etc/pool.d
</code> </code>

الخطوة دى هانعمل فيها السكربت الخاص بالخدمة نفسها واعداداتها
نفتح الملف

رمز PHP:

<code style="white-space:nowrap"> <code> nano /etc/init.d/php-5.3.22-fpm
</code> </code>

نضع بداخله
رمز PHP:

<code style="white-space:nowrap"> <code> #! /bin/sh
### BEGIN INIT INFO
# Provides: php-5.3.22-fpm
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts php-5.3.22-fpm
# Description: starts the PHP FastCGI Process Manager daemon
### END INIT INFO
php_fpm_BIN=/opt/php-5.3.22/sbin/php-fpm
php_fpm_CONF=/opt/php-5.3.22/etc/php-fpm.conf
php_fpm_PID=/opt/php-5.3.22/var/run/php-fpm.pid
php_opts="--fpm-config $php_fpm_CONF"

wait_for_pid () {
try=0
while test $try -lt 35 ; do
case "$1" in
'created')
if &#91; -f "$2" &#93; ; then
try=''
break
fi
;;
'removed')
if &#91; ! -f "$2" &#93; ; then
try=''
break
fi
;;
esac
echo -n .
try=`expr $try + 1`
sleep 1
done
}
case "$1" in
start)
echo -n "Starting php-fpm "
$php_fpm_BIN $php_opts
if &#91; "$?" != 0 &#93; ; then
echo " failed"
exit 1
fi
wait_for_pid created $php_fpm_PID
if &#91; -n "$try" &#93; ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
stop)
echo -n "Gracefully shutting down php-fpm "
if &#91; ! -r $php_fpm_PID &#93; ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -QUIT `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if &#91; -n "$try" &#93; ; then
echo " failed. Use force-exit"
exit 1
else
echo " done"
echo " done"
fi
;;
force-quit)
echo -n "Terminating php-fpm "
if &#91; ! -r $php_fpm_PID &#93; ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -TERM `cat $php_fpm_PID`
wait_for_pid removed $php_fpm_PID
if &#91; -n "$try" &#93; ; then
echo " failed"
exit 1
else
echo " done"
fi
;;
restart)
$0 stop
$0 start
;;
reload)
echo -n "Reload service php-fpm "
if &#91; ! -r $php_fpm_PID &#93; ; then
echo "warning, no pid file found - php-fpm is not running ?"
exit 1
fi
kill -USR2 `cat $php_fpm_PID`
echo " done"
;;
*)
echo "Usage: $0 {start|stop|force-quit|restart|reload}"
exit 1
;;
esac
</code> </code>

هانغير تصريحاته انه يكون قابل للتنفيذ ونضيفه لل startup
رمز PHP:

<code style="white-space:nowrap"> <code> chmod 755 /etc/init.d/php-5.3.22-fpm
</code> </code>

رمز PHP:

<code style="white-space:nowrap"> <code> chkconfig --levels 235 php-5.3.22-fpm on
</code> </code>

نشغل
رمز PHP:

<code style="white-space:nowrap"> <code> /etc/init.d/php-5.3.22-fpm start
</code> </code>

هايطلع رسالة تحذير تجاهلها عادى .. دا عشان لا يوجد بووول
ممكن نركب الملحقات للاصدار ايضا من موديولات بحيث مفيش موقع يتعطل
رمز PHP:

<code style="white-space:nowrap"> <code> yum install php-pear
</code> </code>

رمز PHP:

<code style="white-space:nowrap"> <code> cd /opt/php-5.3.22/etc
</code> </code>

رمز PHP:

<code style="white-space:nowrap"> <code> pecl -C ./pear.conf update-channels
</code> </code>

رمز PHP:

<code style="white-space:nowrap"> <code> pecl -C ./pear.conf install apc
</code> </code>

هاتختار كل ال Default عادى
نضيفه بال .ini
رمز PHP:

<code style="white-space:nowrap"> <code> nano /opt/php-5.3.22/lib/php.ini
</code> </code>

نضيف بالملف
رمز PHP:

<code style="white-space:nowrap"> <code> &#91;...&#93;
extension=apc.so
apc.enabled=1
apc.shm_size=128M
apc.ttl=0
apc.user_ttl=600
apc.gc_ttl=600
apc.enable_cli=1
apc.mmap_file_mask=/tmp/apc.XXXXXX
;apc.mmap_file_mask=/dev/zero
;apc.shm_segments = 5
</code> </code>

نركب ال memcache
رمز PHP:

<code style="white-space:nowrap"> <code> pecl -C ./pear.conf install memcache
</code> </code>

رمز PHP:

<code style="white-space:nowrap"> <code> nano /opt/php-5.3.22/lib/php.ini
</code> </code>

نضع ايضا
رمز PHP:

<code style="white-space:nowrap"> <code> &#91;...&#93;
extension=memcache.so
</code> </code>

نركب memcached
رمز PHP:

<code style="white-space:nowrap"> <code> yum install libmemcached-devel
</code> </code>

رمز PHP:

<code style="white-space:nowrap"> <code> pecl -C ./pear.conf install memcached
</code> </code>

رمز PHP:

<code style="white-space:nowrap"> <code> nano /opt/php-5.3.22/lib/php.ini
</code> </code>

نضع
رمز PHP:

<code style="white-space:nowrap"> <code> &#91;...&#93;
extension=memcached.so
</code> </code>

رمز PHP:

<code style="white-space:nowrap"> <code> /etc/init.d/php-5.3.22-fpm reload
</code> </code>






https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/482113_236967293114455_1193518507_n.png (http://www.dzbatna.com)
©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى (http://www.dzbatna.com)©

استعمل مربع البحث في الاسفل لمزيد من المواضيع


سريع للبحث عن مواضيع في المنتدى