remi 源安装的PHP分析

  1. /usr/bin/php56 # 执行文件
  2. /opt/remi/php56/root/etc # 配置文件目录
  3. /opt/remi/php56/root/etc/php.ini # 配置文件
  4. /opt/remi/php56/root/usr/bin/php-cgi # cgi 运行文件
  5. /opt/remi/php56/root/usr/sbin/php-fpm # php-fpm
  6. /opt/remi/php56/root/etc/sysconfig/php-fpm # php-fpm 系统变量配置文件
  7. /opt/remi/php56/root/var/run/php-fpm # 运行pid
  8. /opt/remi/php56/root/var/log/php-fpm # 日志

配置文件树状结构

配置根目录 : /opt/remi/php56/root/etc

  1. php.ini
  2. php-fpm.conf
  3. /php-fpm.d
  4. www.conf

修改 php-fpm 运行时候的端口配置

修改配置目录下 /php-fpm.d/www.conf

  1. ; 进程池名称, 之前是 www
  2. [php56-fpm]
  3. ...
  4. ; 监听端口, 之前是 9000
  5. listen = 127.0.0.1:9056

配置 apache 配置文件

目录 /etc/httpd/conf.d/
vim test_host.conf

  1. <VirtualHost *:80>
  2. DocumentRoot "/webdata/www/test_host/"
  3. ServerName test_host.com
  4. <FilesMatch "\.php$">
  5. SetHandler "proxy:fcgi://localhost:9056"
  6. </FilesMatch>
  7. <Directory "/webdata/www/test_host/">
  8. Options Indexes FollowSymLinks
  9. AllowOverride All
  10. Order allow,deny
  11. Allow from All
  12. </Directory>
  13. </VirtualHost>

启动 php-fpm, 重启 apache

  1. /opt/remi/php56/root/usr/sbin/php-fpm
  2. service httpd restart

centos apache 使用 mod_proxy_fcgi 支持多版本 php - 图1

centos apache 使用 mod_proxy_fcgi 支持多版本 php - 图2

管理脚本

由于这个remi 的没有启动脚本, 所以新建立一个脚本进行管理
放置位置
/etc/init.d/php56-fpm , 并给定执行权限

  1. #!/bin/bash
  2. #
  3. # Startup script for the remi PHP56-FPM server.
  4. #
  5. # processname: php-fpm
  6. # config: /opt/remi/php56/root/etc/php.ini
  7. DESC="php56-fpm daemon"
  8. NAME=php56-fpm
  9. # php-fpm路径
  10. DAEMON=/opt/remi/php56/root/usr/sbin/php-fpm
  11. # 配置文件路径
  12. CONFIGFILE=/opt/remi/php56/root/etc/php-fpm.conf
  13. # PID文件路径(在php-fpm.conf设置)
  14. PIDFILE=/opt/remi/php56/root/var/run/php-fpm/php-fpm.pid
  15. SCRIPTNAME=/usr/init.d/$NAME
  16. # Gracefully exit if the package has been removed.
  17. test -x $DAEMON || exit 0
  18. rh_start() {
  19. $DAEMON -y $CONFIGFILE || echo -n " already running"
  20. }
  21. rh_stop() {
  22. kill -QUIT `cat $PIDFILE` || echo -n " not running"
  23. }
  24. rh_reload() {
  25. kill -HUP `cat $PIDFILE` || echo -n " can't reload"
  26. }
  27. case "$1" in
  28. start)
  29. echo -n "Starting $DESC: $NAME"
  30. rh_start
  31. echo "."
  32. ;;
  33. stop)
  34. echo -n "Stopping $DESC: $NAME"
  35. rh_stop
  36. echo "."
  37. ;;
  38. reload)
  39. echo -n "Reloading $DESC configuration..."
  40. rh_reload
  41. echo "reloaded."
  42. ;;
  43. restart)
  44. echo -n "Restarting $DESC: $NAME"
  45. rh_stop
  46. sleep 1
  47. rh_start
  48. echo "."
  49. ;;
  50. *)
  51. echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2
  52. exit 3
  53. ;;
  54. esac
  55. exit 0

运行

  1. service php56-fpm start
  2. service php56-fpm stop
  3. service php56-fpm restart
  4. service php56-fpm reload

参考链接: