summaryrefslogtreecommitdiffstats
path: root/etc/rc.php_ini_setup
diff options
context:
space:
mode:
authorRenato Botelho <renato@netgate.com>2015-08-25 08:08:24 -0300
committerRenato Botelho <renato@netgate.com>2015-08-25 14:49:54 -0300
commit46bc6e545a17e77202aaf01ec0cd8d5a46567525 (patch)
tree32d18dda436ec739c67c489ceb771e8629cd926f /etc/rc.php_ini_setup
parent4d9801c2dbd2b3e54a39578ee62b93af66607227 (diff)
downloadpfsense-46bc6e545a17e77202aaf01ec0cd8d5a46567525.zip
pfsense-46bc6e545a17e77202aaf01ec0cd8d5a46567525.tar.gz
Move main pfSense content to src/
Diffstat (limited to 'etc/rc.php_ini_setup')
-rwxr-xr-xetc/rc.php_ini_setup417
1 files changed, 0 insertions, 417 deletions
diff --git a/etc/rc.php_ini_setup b/etc/rc.php_ini_setup
deleted file mode 100755
index 0013b58..0000000
--- a/etc/rc.php_ini_setup
+++ /dev/null
@@ -1,417 +0,0 @@
-#!/bin/sh
-#
-# rc.php_ini_setup
-# Copyright (C) 2010 Scott Ullrich <sullrich@gmail.com>
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
-# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
-# AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
-# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-
-# Set our operating platform
-PLATFORM=`/bin/cat /etc/platform`
-MIN_REALMEM_FOR_OPCACHE=512
-
-if [ -d /usr/local/lib/php/20121212 ]; then
- EXTENSIONSDIR="/usr/local/lib/php/20121212/"
-elif [ -d /usr/local/lib/php/20090626 ]; then
- EXTENSIONSDIR="/usr/local/lib/php/20090626/"
-else
- EXTENSIONSDIR="/usr/local/lib/php/20060613/"
-fi
-
-# Grab amount of memory that is detected
-if [ -f /var/log/dmesg.boot ]; then
- AVAILMEM=`/bin/cat /var/log/dmesg.boot |/usr/bin/awk '/avail memory/ { memory=($4 / 1048576); printf("%0.0f\n", memory); exit}'`
-else
- AVAILMEM=`/sbin/dmesg -a |/usr/bin/awk '/avail memory/ { memory=($4 / 1048576); printf("%0.0f\n", memory); exit}'`
-fi
-
-if [ -z "$AVAILMEM" ]; then
- MEM=`/sbin/sysctl hw.physmem | cut -d':' -f2`
- AVAILMEM=`/bin/expr $MEM / 1048576`
-fi
-
-
-# Get amount of ram installed on this system
-REALMEM=`/sbin/sysctl hw.realmem | /usr/bin/awk '{print $2/1048576}' | /usr/bin/awk -F '.' '{print $1}'`
-export REALMEM
-export LOWMEM
-
-if [ ${REALMEM} -lt $MIN_REALMEM_FOR_OPCACHE ]; then
- LOWMEM="TRUE"
- echo ">>> Under $MIN_REALMEM_FOR_OPCACHE megabytes of ram detected. Not enabling opcache"
- echo ">>> Under $MIN_REALMEM_FOR_OPCACHE megabytes of ram detected. Not enabling opcache" | /usr/bin/logger -p daemon.info -i -t rc.php_ini_setup
-else
-
- # Calculate opcache memory size according
- # to detected memory values
- if [ "$AVAILMEM" -gt "135" ]; then
- OPCACHEMEMSIZE="10"
- fi
- if [ "$AVAILMEM" -gt "256" ]; then
- OPCACHEMEMSIZE="20"
- fi
- if [ "$AVAILMEM" -gt "384" ]; then
- OPCACHEMEMSIZE="25"
- fi
- if [ "$AVAILMEM" -gt "512" ]; then
- OPCACHEMEMSIZE="30"
- fi
- if [ "$AVAILMEM" -gt "784" ]; then
- OPCACHEMEMSIZE="50"
- fi
-fi
-
-# Set upload directory
-if [ "$PLATFORM" = "nanobsd" ]; then
- UPLOADTMPDIR=`/usr/bin/grep upload_path /etc/inc/globals.inc | /usr/bin/cut -d'"' -f4`
-else
- UPLOADTMPDIR="/tmp"
-fi
-
-# Define php modules. Do not add .so, it will
-# be done automatically by the script below.
-PHPMODULES="standard"
-if [ "$LOWMEM" != "TRUE" ]; then
- PHPMODULES="$PHPMODULES opcache"
-fi
-# Config read/write
-PHPMODULES="$PHPMODULES xml libxml dom"
-PHPMODULES="$PHPMODULES SimpleXML xmlreader xmlwriter"
-# Downloading via HTTP/FTP (pkg mgr, etc)
-PHPMODULES="$PHPMODULES curl date"
-# Internationalization
-PHPMODULES="$PHPMODULES gettext"
-# User manager
-PHPMODULES="$PHPMODULES ldap openssl pcntl"
-PHPMODULES="$PHPMODULES hash"
-PHPMODULES="$PHPMODULES mcrypt"
-# Regexs, PERL style!
-PHPMODULES="$PHPMODULES pcre"
-# The mighty posix!
-PHPMODULES="$PHPMODULES posix"
-PHPMODULES="$PHPMODULES readline"
-# Login sessions
-PHPMODULES="$PHPMODULES session"
-# Extra sanity seatbelts
-PHPMODULES="$PHPMODULES suhosin"
-# Firewall rules edit
-PHPMODULES="$PHPMODULES ctype"
-# firewall_rules_edit.php
-PHPMODULES="$PHPMODULES mbstring"
-# Synchronization primitives
-PHPMODULES="$PHPMODULES shmop"
-# Page compression
-PHPMODULES="$PHPMODULES zlib"
-# SQLlite & Database
-PHPMODULES="$PHPMODULES spl"
-PHPMODULES="$PHPMODULES PDO"
-PHPMODULES="$PHPMODULES sqlite3"
-# RADIUS
-PHPMODULES="$PHPMODULES radius"
-# ZeroMQ
-PHPMODULES="$PHPMODULES zmq"
-# SSH2
-PHPMODULES="$PHPMODULES ssh2"
-# pfSense extensions
-PHPMODULES="$PHPMODULES pfSense"
-# json
-PHPMODULES="$PHPMODULES json"
-# bcmath
-PHPMODULES="$PHPMODULES bcmath"
-# filter
-PHPMODULES="$PHPMODULES filter"
-
-PHP_ZEND_MODULES="ioncube_loader"
-PHP_ZEND_MODULES_TS="ioncube_loader_ts"
-
-# Modules previously included.
-# can be turned on by touching
-# /etc/php_dynamodules/$modulename
-# sysvmsg \
-# sysvsem \
-# sysvshm \
-# bcmath \
-# tokenizer \
-# uploadprogress \
-# sockets \
-# Reflection \
-# mysql \
-# bz2 \
-
-# Clear the .ini file to make sure we are clean
-if [ -f /usr/local/etc/php.ini ]; then
- /bin/rm /usr/local/etc/php.ini
-fi
-if [ -f /usr/local/lib/php.ini ]; then
- /bin/rm /usr/local/lib/php.ini
-fi
-LOADED_MODULES=`/usr/local/bin/php-cgi -m | /usr/bin/grep -v "\["`
-
-# Fetch the timezone from the XML and set it here. We set it later too in the running scripts
-TIMEZONE=`cat /conf/config.xml | egrep -E '<timezone>(.*?)</timezone>' | awk -F'>' '{print $2}'|awk -F'<' '{print $1}'`
-
-# Get a loaded module list in the stock php
-# Populate a dummy php.ini to avoid
-# the file being clobbered and the firewall
-# not being able to boot back up.
-/bin/cat >/usr/local/lib/php.ini <<EOF
-; File generated from /etc/rc.php_ini_setup
-output_buffering = "0"
-expose_php = Off
-implicit_flush = true
-magic_quotes_gpc = Off
-max_execution_time = 900
-max_input_time = 1800
-register_argc_argv = On
-register_long_arrays = Off
-variables_order = "GPCS"
-file_uploads = On
-upload_tmp_dir = ${UPLOADTMPDIR}
-upload_max_filesize = 200M
-post_max_size = 200M
-html_errors = Off
-zlib.output_compression = Off
-zlib.output_compression_level = 1
-include_path = ".:/etc/inc:/usr/local/www:/usr/local/captiveportal:/usr/local/pkg"
-display_startup_errors=on
-display_errors=on
-log_errors=on
-error_log=/tmp/PHP_errors.log
-extension_dir=${EXTENSIONSDIR}
-date.timezone="${TIMEZONE}"
-
-; Extensions
-
-EOF
-
-# Copy php.ini file to etc/ too (cli)
-/bin/cp /usr/local/lib/php.ini /usr/local/etc/php.ini
-
-# Ensure directory exists
-if [ ! -d /etc/php_dynamodules ]; then
- /bin/mkdir /etc/php_dynamodules
-fi
-if [ ! -d /etc/php_dynamodules_zend ]; then
- /bin/mkdir /etc/php_dynamodules_zend
-fi
-if [ ! -d /etc/php_dynamodules_zend_ts ]; then
- /bin/mkdir /etc/php_dynamodules_zend_ts
-fi
-
-# Read in dynamodules
-if [ -d /etc/php_dynamodules ]; then
- DYNA_MODULES=`/bin/ls -Utr /etc/php_dynamodules/`
- PHPMODULES="$PHPMODULES $DYNA_MODULES"
-fi
-
-# Read in zend modules
-if [ -d /etc/php_dynamodules_zend ]; then
- DYNA_MODULES=`/bin/ls /etc/php_dynamodules_zend/`
- PHP_ZEND_MODULES="$PHP_ZEND_MODULES $DYNA_MODULES"
-fi
-
-# Read in zend threaded modules
-if [ -d /etc/php_dynamodules_zend_ts ]; then
- DYNA_MODULES=`/bin/ls /etc/php_dynamodules_zend_ts/`
- PHP_ZEND_MODULES_TS="$PHP_ZEND_MODULES_TS $DYNA_MODULES"
-fi
-
-# Loop through and generate modules to load.
-# Take into account modules built into php.
-for EXT in $PHPMODULES; do
- SHOULDADD="true"
- # Check to see if module is compiled into php statically
- for LM in $LOADED_MODULES; do
- if [ "$EXT" = "$LM" ]; then
- SHOULDADD="false"
- fi
- done
- if [ "$SHOULDADD" = "true" ]; then
- # Ensure extension exists before adding.
- if [ -f "${EXTENSIONSDIR}${EXT}.so" ]; then
- echo "extension=${EXT}.so" >> /usr/local/lib/php.ini
- fi
- fi
-done
-
-# Zend modules
-for EXT in $PHP_ZEND_MODULES; do
- # Ensure extension exists before adding.
- if [ -f "${EXTENSIONSDIR}/ioncube/${EXT}.so" ]; then
- echo "zend_extension=${EXTENSIONSDIR}/ioncube/${EXT}.so" >> /usr/local/lib/php.ini
- fi
-done
-
-# Zend threaded modules
-for EXT in $PHP_ZEND_MODULES_TS; do
- # Ensure extension exists before adding.
- if [ -f "${EXTENSIONSDIR}/ioncube/${EXT}.so" ]; then
- echo "zend_extension_ts=${EXTENSIONSDIR}/ioncube/${EXT}.so" >> /usr/local/lib/php.ini
- fi
-done
-
-
-if [ "$LOWMEM" != "TRUE" ]; then
-
- /bin/cat >>/usr/local/lib/php.ini <<EOF
-
-; opcache Settings
-opcache.enabled="1"
-opcache.enable_cli="0"
-opcache.memory_consumption="${OPCACHEMEMSIZE}"
-
-EOF
-fi
-
- /bin/cat >>/usr/local/lib/php.ini <<EOF
-
-[suhosin]
-suhosin.get.max_array_depth = 5000
-suhosin.get.max_array_index_length = 256
-suhosin.get.max_vars = 5000
-suhosin.get.max_value_length = 500000
-suhosin.post.max_array_depth = 5000
-suhosin.post.max_array_index_length = 256
-suhosin.post.max_vars = 5000
-suhosin.post.max_value_length = 500000
-suhosin.request.max_array_depth = 5000
-suhosin.request.max_array_index_length = 256
-suhosin.request.max_vars = 5000
-suhosin.request.max_value_length = 500000
-suhosin.memory_limit = 512435456
-
-EOF
-
-
-PHPFPMMAX=3
-if [ $REALMEM -lt 250 ]; then
- PHPFPMMAX=2
-elif [ ${REALMEM} -gt 1000 ]; then
- PHPFPMMAX=4
-fi
-
-/bin/cat > /usr/local/lib/php-fpm.conf <<EOF
-
-[global]
-pid = run/php-fpm.pid
-error_log=syslog
-syslog.facility = daemon
-syslog.ident = system
-log_level = error
-daemonize = yes
-events.mechanism = kqueue
-process.max = ${PHPFPMMAX}
-
-[lighty]
-user = root
-group = wheel
-;mode = 0600
-
-listen = /var/run/php-fpm.socket
-listen.owner = root
-listen.group = wheel
-listen.mode = 0600
-
-security.limit_extensions =
-
-; Pass environment variables
-env[PATH] = /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
-env[LOGNAME] = root
-
-EOF
-
-if [ $REALMEM -lt 350 ]; then
- /bin/cat >> /usr/local/lib/php-fpm.conf <<EOF
-
-pm = ondemand
-pm.process_idle_timeout = 5
-pm.max_children = $PHPFPMMAX
-pm.max_requests = 500
-
-EOF
-
-elif [ $REALMEM -gt 1000 ]; then
- /bin/cat >> /usr/local/lib/php-fpm.conf <<EOF
-
-pm = dynamic
-pm.process_idle_timeout = 5
-pm.max_children = $PHPFPMMAX
-pm.start_servers = 1
-pm.max_requests = 500
-pm.min_spare_servers=1
-pm.max_spare_servers=1
-
-EOF
-else
-
- /bin/cat >> /usr/local/lib/php-fpm.conf <<EOF
-
-pm = static
-pm.max_children = $PHPFPMMAX
-pm.max_requests = 500
-
-EOF
-
-fi
-
-# Copy php.ini file to etc/ too (cli)
-/bin/cp /usr/local/lib/php.ini /usr/local/etc/php.ini
-
-# Remove old log file if it exists.
-if [ -f /var/run/php_modules_load_errors.txt ]; then
- /bin/rm /var/run/php_modules_load_errors.txt
-fi
-
-for EXT in $PHPMODULES; do
- PHPMODULESLC="$PHPMODULESLC `echo "$EXT" | /usr/bin/tr '[:upper:]' '[:lower:]'`"
-done
-
-# Check loaded modules and remove anything that did not load correctly
-LOADED_MODULES=`/usr/local/bin/php-cgi -m | /usr/bin/tr '[:upper:]' '[:lower:]' 2>/dev/null | /usr/bin/grep -v "\["`
-for EXT in $PHPMODULESLC; do
- SHOULDREMOVE="true"
- for LM in $LOADED_MODULES; do
- if [ "$EXT" = "$LM" ]; then
- SHOULDREMOVE="false"
- fi
- done
- # Handle low memory situations
- if [ "$LOWMEM" = "TRUE" ]; then
- if [ "$EXT" = "opcache" ]; then
- SHOULDREMOVE="true"
- fi
- if [ "$EXT" = "xcache" ]; then
- SHOULDREMOVE="true"
- fi
- fi
- if [ "$SHOULDREMOVE" = "true" ]; then
- if [ -f "${EXTENSIONSDIR}${EXT}.so" ]; then
- echo ">>> ${EXT} did not load correctly. Removing from php.ini..." >> /var/run/php_modules_load_errors.txt
- /bin/cat /usr/local/lib/php.ini | /usr/bin/grep -v $EXT > /tmp/php.ini
- /bin/rm -f /usr/local/lib/php.ini
- /bin/mv /tmp/php.ini /usr/local/lib/php.ini
- fi
- fi
-done
-
-# Copy php.ini file to etc/ too (cli)
-/bin/cp /usr/local/lib/php.ini /usr/local/etc/php.ini
OpenPOWER on IntegriCloud