======================================= FreeBSD PHP-FPM ======================================= Using php-fpm can easily increase performance beyond 20-50%. This document assumes you already have apache + php working. ======================================= Benchmark Your Existing Setup --------------------------------------- ab -n 1000 -c 50 https://www.site.com/ ======================================= ed /usr/local/etc/php-fpm.d/www.conf --------------------------------------- [www] user = www group = www listen = /var/run/php-fpm.sock listen.owner = www listen.group = www listen.mode = 0660 pm = dynamic pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 security.limit_extensions = .php .html .htm env[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmp ======================================= ed /usr/local/etc/apache24/httpd.conf --------------------------------------- LoadModule mpm_event_module libexec/apache24/mod_mpm_event.so #LoadModule mpm_prefork_module libexec/apache24/mod_mpm_prefork.so #LoadModule mpm_worker_module libexec/apache24/mod_mpm_worker.so LoadModule proxy_module libexec/apache24/mod_proxy.so LoadModule proxy_fcgi_module libexec/apache24/mod_proxy_fcgi.so #LoadModule php_module libexec/apache24/libphp.so #Include etc/apache24/extra/httpd-mpm.conf ======================================= ed /usr/local/etc/apache24/vhosts/www.site.com.conf --------------------------------------- SetHandler "proxy:unix:/var/run/php-fpm.sock|fcgi://localhost" ProxyFCGISetEnvIf "true" PHP_ADMIN_VALUE "open_basedir=/path/to/www.site.com/:/tmp/;session.save_path=/path/to/www.site.com/session;upload_tmp_dir=/path/to/www.site.com/upload;disable_functions=exec,passthru,shell_exec,system,proc_open,popen,symlink;disable_classes=GlobIterator" ProxyFCGISetEnvIf "true" PHP_VALUE "memory_limit=168M;upload_max_filesize=100M;post_max_size=110M;max_execution_time=100;max_input_time=900" ======================================= PHP-FPM --------------------------------------- mv /usr/local/etc/apache24/Includes/php.conf /usr/local/etc/apache24/Includes/php.conf.no apachectl configtest apachectl -M apachectl -l sysrc php_fpm_enable="YES" service php-fpm start service php-fpm status service apache24 restart ======================================= Test --------------------------------------- php-fpm -t ab -n 1000 -c 50 https://www.site.com/ ======================================= Done =======================================