پشتیبانی آنلاین
پشتیبانی همیشگی آنلاین جهت حل مشکلات شما
در صورت عدم رضایت از سرویس ارائه شده هزینه شما تا 7 روز بعد قابل برگشت است
تمامی سرویس های پی سی سرور از نظر کیفیت تضمین شده هستند
پشتیبانی تلفی برای همه مشتریان عزیز
پنل مشترکین
آدرس ایمیل:

کلمه عبور:


مرا به خاطر بسپار

شماره حساب ها
پرداخت آنلاین فوری
طرف قرارداد با بانک ملت
mellat.png (113×148)
آموزش نصب و کانفیگ php-fpm در دایرکت ادمین directadmin

One requirement for this instruction to work is you need PHP 5.3. I have tried to patch PHP 5.2.17 according to PHP-FPM website but it didn't work. After tried to patch it so many times, I decided to upgrade to PHP 5.3.5 and it works correctly now.

Also, when compile PHP-FPM, you will get 2 PHP files. One is "php" which is for CLI mode and "php-fpm" which is PHP-FPM. "php-cgi" file won't be compiled until you removed "--enable-fpm" from configuration. That means... if you want to have the rest of Virtualhosts to run with mod_fcgid (php-cgi) with PHP 5.2, you can still do that. Just make sure to upgrade directly to PHP 5.3 and PHP-FPM at the same time. Always have "--enable-fpm" in configuration file for PHP to compile. That way, "php-cgi" will not compile in PHP version 5.3. So, all websites run with mod_fcgid that still use "php-cgi" file still run in PHP 5.2.

In case you need all of them to run in PHP 5.3. You need to compile PHP twice, one with "--enable-fpm" and one without it.

1. Enable PHP-FPM and compile PHP.

1.1 Copy "configure.php5" for custom compile

  1. mkdir -p /usr/local/directadmin/custombuild/custom/suphp
  2. cp /usr/local/directadmin/custombuild/configure/suphp/configure.php5 /usr/local/directadmin/custombuild/custom/suphp

1.2 Edit configure.php5

  1. nano -w /usr/local/directadmin/custombuild/custom/suphp/configure.php5

add "--enable-fpm" into the file. After edit, the "configure.php5" will look like below :

  1. #!/bin/sh
  2. "./configure" \
  3. "--prefix=/usr/local/php5" \
  4. "--enable-force-cgi-redirect" \
  5. "--enable-fastcgi" \
  6. "--with-config-file-path=/usr/local/etc/php5/cgi" \
  7. "--with-curl=/usr/local/lib" \
  8. "--with-gd" \
  9. "--with-gettext" \
  10. "--with-jpeg-dir=/usr/local/lib" \
  11. "--with-freetype-dir=/usr/local/lib" \
  12. "--with-kerberos" \
  13. "--with-mcrypt" \
  14. "--with-mhash" \
  15. "--with-mysql=/usr" \
  16. "--with-mysqli=/usr/bin/mysql_config" \
  17. "--with-pcre-regex=/usr/local" \
  18. "--with-pdo-mysql=/usr" \
  19. "--with-pear=/usr/local/lib/php" \
  20. "--with-png-dir=/usr/local/lib" \
  21. "--with-zlib" \
  22. "--with-zlib-dir=/usr/local/lib" \
  23. "--with-openssl" \
  24. "--with-iconv=/usr/local" \
  25. "--enable-bcmath" \
  26. "--enable-calendar" \
  27. "--enable-exif" \
  28. "--enable-ftp" \
  29. "--enable-gd-native-ttf" \
  30. "--enable-magic-quotes" \
  31. "--enable-soap" \
  32. "--enable-sockets" \
  33. "--enable-mbstring" \
  34. "--enable-zip" \
  35. "--enable-wddx" \
  36. "--enable-fpm"

1.3 Compile PHP

  1. cd /usr/local/directadmin/custombuild
  2. ./build php n

Note : If you get error while compile, you may need to run " .build clean " and then try to compile again.

1.4 After compiled, you will see where PHP-FPM file located as below :

  1. .....
  2. Make Complete
  3. Copying php.ini..
  4. /usr/local/etc/php5/cgi/php.ini already exists, skipping.
  5. Installing php...
  6. Installing PHP SAPI module: fpm
  7. Installing PHP CLI binary: /usr/local/php5/bin/
  8. Installing PHP CLI man page: /usr/local/php5/man/man1/
  9. Installing PHP FPM binary: /usr/local/php5/sbin/
  10. Installing PHP FPM config: /usr/local/php5/etc/
  11. Installing PHP FPM man page: /usr/local/php5/man/man8/
  12. Installing build environment: /usr/local/php5/lib/php/build/
  13. Installing header files: /usr/local/php5/include/php/
  14. Installing helper programs: /usr/local/php5/bin/
  15. program: phpize
  16. program: php-config
  17. Installing man pages: /usr/local/php5/man/man1/
  18. page: phpize.1
  19. page: php-config.1
  20. Installing PEAR environment: /usr/local/lib/php/
  21. .....

2. Now, Create Init script file

2.1 Copy file from source

  1. cp /usr/local/directadmin/custombuild/php-5.3.5/sapi/fpm/init.d.php-fpm.in /etc/init.d/php-fpm
  2. chmod 755 /etc/init.d/php-fpm

2.2 Edit php.fpm init script file as below:

  1. nano -w /etc/init.d/php-fpm

Edit php.fpm file FROM :

  1. .....
  2. prefix=@prefix@
  3. exec_prefix=@exec_prefix@
  4.  
  5. php_fpm_BIN=@sbindir@/php-fpm
  6. php_fpm_CONF=@sysconfdir@/php-fpm.conf
  7. php_fpm_PID=@localstatedir@/run/php-fpm.pid
  8.  
  9.  
  10. php_opts="--fpm-config $php_fpm_CONF"
  11. .....

TO :

  1. .....
  2. prefix=/usr/local/php5
  3. exec_prefix=${prefix}
  4.  
  5. php_fpm_BIN=/usr/local/php5/sbin/php-fpm
  6. php_fpm_CONF=/usr/local/php5/etc/php-fpm.conf
  7. php_fpm_PID=/var/run/php-fpm.pid
  8.  
  9.  
  10. php_opts="--fpm-config $php_fpm_CONF"
  11. .....
  12.  

You may need to run command below to have PHP-FPM run automatically when start up (After reboot or turn on the machine) :

  1. /sbin/chkconfig php-fpm on

2.3 Edit PHP-FPM configuration file to match your need. My example below is just to make it work but you can adjust to whatever you like :

  1. nano -w /usr/local/php5/etc/php-fpm.conf

Below is my "php-fpm.conf" configuration :

  1. [global]
  2. pid = /var/run/php-fpm.pid
  3. error_log = /var/log/php-fpm.log
  4. [admin]
  5. listen = /fcgi/admin/public_html/admin.sock
  6. listen.owner = $pool
  7. listen.group = $pool
  8. listen.mode = 0666
  9. user = $pool
  10. group = $pool
  11. pm = dynamic
  12. pm.max_children = 50
  13. pm.start_servers = 3
  14. pm.min_spare_servers = 3
  15. pm.max_spare_servers = 10
  16. php_admin_value[open_basedir] = /home/$pool/:/tmp:/var/tmp:/var/www/html

Note 1 : $pool is variable which will replaced by the data from the bracket. Here, that is "admin".
Note 2 : php_admin_value[open_basedir] is not require but suggested. Also, without "/var/www/html", you won't be access your webmail or anything through domain name. However, you can still access webmail or anything through IP Address.

2.4 Try to start / stop / restart PHP-FPM

  1. service php-fpm start
  2. service php-fpm stop
  3. service php-fpm restart

Note :

1. To have PHP-FPM compiled and configured in this tutorial doesn't mean you already using it. It just means you already have PHP-FPM ready to use. You need to check my tutorial [HOW-TO] DirectAdmin - Run Apache with "mod_fcgid on PHP 5.2 / 5.3" and "mod_fastcgi + PHP-FPM on 5.3" on the same server that will be post soon.

Source :
- http://php.net/manual/en/install.fpm.php
- http://michaelshadle.com/2010/08/26/cleanest-configuration-for-the-new-php-fpm
- http://php-fpm.org

تاریخ ارسال: 2014-02-20           تعداد بازدید: 3683           نویسنده: admin
طراحی سایت و انواع قالب

طراحی سایت

     برای ورود به بخش طراحی اینجا کلیک کنید