├── .travis.yml ├── 5.6 ├── .dockerignore ├── Dockerfile ├── debug.Dockerfile ├── php.bats ├── php │ └── php.ini ├── php_debug.bats └── tags.bats ├── 7.0 ├── .dockerignore ├── Dockerfile ├── debug.Dockerfile ├── php.bats ├── php │ └── php.ini ├── php_debug.bats └── tags.bats ├── 7.1 ├── .dockerignore ├── Dockerfile ├── debug.Dockerfile ├── php.bats ├── php │ └── conf.d │ │ ├── 00_memlimit.ini │ │ └── 00_short_open_tag.ini ├── php_debug.bats └── tags.bats ├── 7.2 ├── .dockerignore ├── Dockerfile ├── debug.Dockerfile ├── php.bats ├── php │ └── conf.d │ │ ├── 00_memlimit.ini │ │ └── 00_short_open_tag.ini ├── php_debug.bats └── tags.bats ├── 7.3 ├── .dockerignore ├── Dockerfile ├── debug.Dockerfile ├── php.bats ├── php │ └── conf.d │ │ ├── 00_memlimit.ini │ │ └── 00_short_open_tag.ini ├── php_debug.bats └── tags.bats ├── 7.4 ├── .dockerignore ├── Dockerfile ├── debug.Dockerfile ├── php.bats ├── php │ └── conf.d │ │ ├── 00_memlimit.ini │ │ └── 00_short_open_tag.ini ├── php_debug.bats └── tags.bats ├── 8.0 ├── .dockerignore ├── Dockerfile ├── debug.Dockerfile ├── php.bats ├── php │ └── conf.d │ │ ├── 00_memlimit.ini │ │ └── 00_short_open_tag.ini ├── php_debug.bats └── tags.bats ├── 8.1 ├── .dockerignore ├── Dockerfile ├── debug.Dockerfile ├── php.bats ├── php │ └── conf.d │ │ ├── 00_memlimit.ini │ │ └── 00_short_open_tag.ini ├── php_debug.bats └── tags.bats ├── 8.2 ├── .dockerignore ├── Dockerfile ├── debug.Dockerfile ├── php.bats ├── php │ └── conf.d │ │ ├── 00_memlimit.ini │ │ └── 00_short_open_tag.ini ├── php_debug.bats └── tags.bats ├── LICENSE ├── Makefile ├── README.md └── common ├── php-arm64.bats └── php.bats /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: required 2 | 3 | language: generic 4 | 5 | services: 6 | - docker 7 | 8 | env: 9 | matrix: 10 | - VER=5.6 11 | - VER=7.0 12 | - VER=7.1 13 | - VER=7.2 14 | - VER=7.3 15 | - VER=7.4 16 | - VER=8.0 17 | global: 18 | # DOCKER_USERNAME 19 | - secure: hJxx3pt08GGxbaSWKMYWXVvwlrn/sJbh4rpLveUGz5pd9C8IcvkOJsrXrtVqr7/4jb5/CQwz65cGyukxzbonvUZgt0mfmZ9GunpD1pz3IusjXvYlZOZ1LL/i6t57J7fMKtUXxBTWNQSS9pH7pEHixvMabS3kqQb74Nj6wQFNzucmnEQGCT0drs8NrlfEfaNdXkJ5ijqdY42QM0BfGU7SnO0/puaEapl3I/n1TLWf60YUV2etl8BaFZckX7ewHvLWs+nXtHUMSezO/9jupb2pOR600+/77Pdfj735hvymD/gAjzTMRJlcUAOThkQfwI4Zt4MoJKvjXbrcYYsz5yEk4o8wPRX/5lZUso2NNRR/J3ahTZZGpDxp+plwY+v6KYwC7L6Bc6HYZbDaxMMXvMokxjyyAtmewaWsVEf+VDTxg5wowJj6esfd+Z0a6IvBFiVxOzltRtR4SqLvFrjq5vPM+RHK1UStJOHCNjpDq5BrEo7bWp+Fi66LpWQYQEL15EjQy3xcx9pfY+5rHot0ClHSqror9RQmQSmmsQWZCFEcjwt07hbmwp75LjFeQm0wRAl6dBZ1CJly/6daVIv4cj7bh72McrhesXc2EmesxEbQaUd/rJjGhaoZ/joPR8gN2RLnCFPzCXdITHXWxThjUZZwPIqtJiI3xXR5vmWidV552ZA= 20 | # DOCKER_PASSWORD 21 | - secure: YfZCh36+apqqmIGrFx+VxhgUqNLNrAwp5BoYshJCHu0iZofVYPHxIsgauQ4vQZj/lYnqe0Ak7qG+s9vnt+OHb8rVyLaZXVRkKFFfbjuu3nOrdFgJwhFbWfjptWogoSM2X1wJtheO40oYAjegF7cq4Bxp14ux/telYCUm8mx7k/h1KoUJOzNzuZCyeh95bQPBAkzIKA1a9rupYMH/LOWLuoTCFmN0eU6VGjwK1XZoDq1uZpYk/YH8VAUvefSS2uE9/WLjoRSTJAk0A4tcVbzPN0FbDTGW59/MbqH6diZ8/KZjcALbmaNtGZGOixn0zgushSN9uSIJk9V/WKamTF08KCS79Ud1aIGYf5UtzBAycnPY2/Y7mA9Ktk/BTWui5OLk2XItY7Ts7N9ikFw+9i3e91YBxxGCVrnsLug+Ih1Ipjyu/8SN9Ttzqp2/6zBFf+sDFXTPnMpptSXTKMcXy/pJVVGIUe38L7BJdUKE1Xp4BqBVnJyaZL8UQVSKdh3kU6C/OfEud6HrIHfAKg6S71rOQBzOk+V+p/U5L4wQCJYLuyGFEuPdMP27wnLh3oUMhnkPK28EpuG0Z5RTH1Sd5MGaHThyDwEtJaECyIMndKY9Wx73gmvvwe2rrltkjHc44jyBG53B8iXNeG/kmKAqPewHHJbxC//A6ykFEnvO7tbF6To= 22 | 23 | script: 24 | - make build-${VER} 25 | - make tag-${VER} 26 | - make test-${VER} 27 | 28 | deploy: 29 | - provider: script 30 | script: docker login -u="$DOCKER_USERNAME" -p="$DOCKER_PASSWORD" && make deploy-${VER} 31 | on: 32 | branch: master 33 | 34 | matrix: 35 | fast_finish: true 36 | -------------------------------------------------------------------------------- /5.6/.dockerignore: -------------------------------------------------------------------------------- 1 | *.bats 2 | -------------------------------------------------------------------------------- /5.6/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.5 2 | 3 | LABEL maintainer="developers@graze.com" \ 4 | license="MIT" \ 5 | org.label-schema.schema-version="1.0" \ 6 | org.label-schema.vendor="graze" \ 7 | org.label-schema.name="php-alpine" \ 8 | org.label-schema.description="small php image based on alpine" \ 9 | org.label-schema.vcs-url="https://github.com/graze/docker-php-alpine" 10 | 11 | RUN apk add --no-cache \ 12 | ca-certificates \ 13 | curl \ 14 | openssh-client \ 15 | libmemcached-libs \ 16 | libevent \ 17 | libssl1.0 \ 18 | yaml \ 19 | php5 \ 20 | php5-bcmath \ 21 | php5-ctype \ 22 | php5-curl \ 23 | php5-dom \ 24 | php5-iconv \ 25 | php5-intl \ 26 | php5-json \ 27 | php5-openssl \ 28 | php5-opcache \ 29 | php5-mysqli \ 30 | php5-pcntl \ 31 | php5-pgsql \ 32 | php5-pdo_mysql \ 33 | php5-pdo_pgsql \ 34 | php5-pdo_sqlite \ 35 | php5-phar \ 36 | php5-posix \ 37 | php5-soap \ 38 | php5-sockets \ 39 | php5-xml \ 40 | php5-xmlreader \ 41 | php5-zip \ 42 | php5-zlib \ 43 | # alpine 3.10 is the first version that provides a gnu-libiconv with the preload library needed 44 | && apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.10/community/ --allow-untrusted \ 45 | gnu-libiconv 46 | 47 | # install and remove building packages 48 | ENV PHPIZE_DEPS autoconf file g++ gcc libc-dev make pkgconf re2c php5-dev php5-pear \ 49 | yaml-dev zlib-dev libmemcached-dev cyrus-sasl-dev libevent-dev openssl-dev 50 | 51 | ENV PHP_INI_DIR /etc/php5 52 | 53 | RUN set -xe \ 54 | && apk add --no-cache \ 55 | --virtual .phpize-deps \ 56 | $PHPIZE_DEPS \ 57 | && sed -i 's/^exec $PHP -C -n/exec $PHP -C/g' $(which pecl) \ 58 | && pecl channel-update pecl.php.net \ 59 | && pecl install yaml-1.3.1 memcached-2.2.0 event \ 60 | && echo "extension=yaml.so" > $PHP_INI_DIR/conf.d/yaml.ini \ 61 | && echo "extension=memcached.so" > $PHP_INI_DIR/conf.d/memcached.ini \ 62 | && echo "extension=event.so" > $PHP_INI_DIR/conf.d/z-event.ini \ 63 | && rm -rf /usr/share/php \ 64 | && rm -rf /tmp/* \ 65 | && apk del .phpize-deps 66 | COPY php/php.ini $PHP_INI_DIR/ 67 | 68 | WORKDIR /srv 69 | 70 | ARG BUILD_DATE 71 | ARG VCS_REF 72 | 73 | LABEL org.label-schema.vcs-ref=$VCS_REF \ 74 | org.label-schema.build-date=$BUILD_DATE 75 | 76 | # Fix for iconv: https://github.com/docker-library/php/issues/240 77 | ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php 78 | -------------------------------------------------------------------------------- /5.6/debug.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM graze/php-alpine:5.6 2 | 3 | RUN apk add --no-cache \ 4 | php5-xdebug 5 | 6 | RUN set -xe \ 7 | && echo "zend_extension=xdebug.so" >> $PHP_INI_DIR/conf.d/xdebug.ini 8 | 9 | COPY php/php.ini $PHP_INI_DIR/ 10 | 11 | ARG BUILD_DATE 12 | ARG VCS_REF 13 | 14 | LABEL org.label-schema.vcs-ref=$VCS_REF \ 15 | org.label-schema.build-date=$BUILD_DATE 16 | -------------------------------------------------------------------------------- /5.6/php.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "php version is correct" { 4 | run docker run --rm ${container} php -v 5 | echo 'status:' $status 6 | echo 'output:' $output 7 | version="$(echo $output | sed 's/.*PHP \([0-9].[0-9]\).*/\1/')" 8 | echo 'version:' $version 9 | [ "$status" -eq 0 ] 10 | [[ "$version" == "5.6" ]] 11 | } 12 | 13 | @test "the image has the correct php modules installed" { 14 | run docker run --rm ${container} php -m 15 | echo 'status:' $status 16 | echo 'output:' $output 17 | [ "$status" -eq 0 ] 18 | [[ "${output}" == *bcmath* ]] 19 | [[ "${output}" == *Core* ]] 20 | [[ "${output}" == *ctype* ]] 21 | [[ "${output}" == *curl* ]] 22 | [[ "${output}" == *date* ]] 23 | [[ "${output}" == *dom* ]] 24 | [[ "${output}" == *ereg* ]] 25 | [[ "${output}" == *event* ]] 26 | [[ "${output}" == *fileinfo* ]] 27 | [[ "${output}" == *filter* ]] 28 | [[ "${output}" == *hash* ]] 29 | [[ "${output}" == *iconv* ]] 30 | [[ "${output}" == *intl* ]] 31 | [[ "${output}" == *json* ]] 32 | [[ "${output}" == *libxml* ]] 33 | [[ "${output}" == *mbstring* ]] 34 | [[ "${output}" == *memcached* ]] 35 | [[ "${output}" == *mysqli* ]] 36 | [[ "${output}" == *mysqlnd* ]] 37 | [[ "${output}" == *openssl* ]] 38 | [[ "${output}" == *pcre* ]] 39 | [[ "${output}" == *pcntl* ]] 40 | [[ "${output}" == *PDO* ]] 41 | [[ "${output}" == *pdo_mysql* ]] 42 | [[ "${output}" == *pdo_pgsql* ]] 43 | [[ "${output}" == *pdo_sqlite* ]] 44 | [[ "${output}" == *pgsql* ]] 45 | [[ "${output}" == *Phar* ]] 46 | [[ "${output}" == *posix* ]] 47 | [[ "${output}" == *readline* ]] 48 | [[ "${output}" == *Reflection* ]] 49 | [[ "${output}" == *session* ]] 50 | [[ "${output}" == *SimpleXML* ]] 51 | [[ "${output}" == *soap* ]] 52 | [[ "${output}" == *sockets* ]] 53 | [[ "${output}" == *SPL* ]] 54 | [[ "${output}" == *standard* ]] 55 | [[ "${output}" == *tokenizer* ]] 56 | [[ "${output}" == *xml* ]] 57 | [[ "${output}" == *xmlreader* ]] 58 | [[ "${output}" == *xmlwriter* ]] 59 | [[ "${output}" == *yaml* ]] 60 | [[ "${output}" == *"Zend OPcache"* ]] 61 | [[ "${output}" == *zip* ]] 62 | [[ "${output}" == *zlib* ]] 63 | } 64 | -------------------------------------------------------------------------------- /5.6/php/php.ini: -------------------------------------------------------------------------------- 1 | [PHP] 2 | 3 | ;;;;;;;;;;;;;;;;;;;; 4 | ; Language Options ; 5 | ;;;;;;;;;;;;;;;;;;;; 6 | 7 | ; Enable the PHP scripting language engine under Apache. 8 | ; http://php.net/engine 9 | engine = On 10 | 11 | ; This directive determines whether or not PHP will recognize code between 12 | ; tags as PHP source which should be processed as such. It's been 13 | ; recommended for several years that you not use the short tag "short cut" and 14 | ; instead to use the full tag combination. With the wide spread use 15 | ; of XML and use of these tags by other languages, the server can become easily 16 | ; confused and end up parsing the wrong code in the wrong context. But because 17 | ; this short cut has been a feature for such a long time, it's currently still 18 | ; supported for backwards compatibility, but we recommend you don't use them. 19 | ; Default Value: On 20 | ; Development Value: Off 21 | ; Production Value: Off 22 | ; http://php.net/short-open-tag 23 | short_open_tag = On 24 | 25 | ; Allow ASP-style tags. 26 | ; http://php.net/asp-tags 27 | asp_tags = Off 28 | 29 | ; The number of significant digits displayed in floating point numbers. 30 | ; http://php.net/precision 31 | precision = 14 32 | 33 | ; Enforce year 2000 compliance (will cause problems with non-compliant browsers) 34 | ; http://php.net/y2k-compliance 35 | y2k_compliance = On 36 | 37 | ; Output buffering is a mechanism for controlling how much output data 38 | ; (excluding headers and cookies) PHP should keep internally before pushing that 39 | ; data to the client. If your application's output exceeds this setting, PHP 40 | ; will send that data in chunks of roughly the size you specify. 41 | ; Turning on this setting and managing its maximum buffer size can yield some 42 | ; interesting side-effects depending on your application and web server. 43 | ; You may be able to send headers and cookies after you've already sent output 44 | ; through print or echo. You also may see performance benefits if your server is 45 | ; emitting less packets due to buffered output versus PHP streaming the output 46 | ; as it gets it. On production servers, 4096 bytes is a good setting for performance 47 | ; reasons. 48 | ; Note: Output buffering can also be controlled via Output Buffering Control 49 | ; functions. 50 | ; Possible Values: 51 | ; On = Enabled and buffer is unlimited. (Use with caution) 52 | ; Off = Disabled 53 | ; Integer = Enables the buffer and sets its maximum size in bytes. 54 | ; Note: This directive is hardcoded to Off for the CLI SAPI 55 | ; Default Value: Off 56 | ; Development Value: 4096 57 | ; Production Value: 4096 58 | ; http://php.net/output-buffering 59 | output_buffering = 4096 60 | 61 | ; You can redirect all of the output of your scripts to a function. For 62 | ; example, if you set output_handler to "mb_output_handler", character 63 | ; encoding will be transparently converted to the specified encoding. 64 | ; Setting any output handler automatically turns on output buffering. 65 | ; Note: People who wrote portable scripts should not depend on this ini 66 | ; directive. Instead, explicitly set the output handler using ob_start(). 67 | ; Using this ini directive may cause problems unless you know what script 68 | ; is doing. 69 | ; Note: You cannot use both "mb_output_handler" with "ob_iconv_handler" 70 | ; and you cannot use both "ob_gzhandler" and "zlib.output_compression". 71 | ; Note: output_handler must be empty if this is set 'On' !!!! 72 | ; Instead you must use zlib.output_handler. 73 | ; http://php.net/output-handler 74 | ;output_handler = 75 | 76 | ; Transparent output compression using the zlib library 77 | ; Valid values for this option are 'off', 'on', or a specific buffer size 78 | ; to be used for compression (default is 4KB) 79 | ; Note: Resulting chunk size may vary due to nature of compression. PHP 80 | ; outputs chunks that are few hundreds bytes each as a result of 81 | ; compression. If you prefer a larger chunk size for better 82 | ; performance, enable output_buffering in addition. 83 | ; Note: You need to use zlib.output_handler instead of the standard 84 | ; output_handler, or otherwise the output will be corrupted. 85 | ; http://php.net/zlib.output-compression 86 | zlib.output_compression = Off 87 | 88 | ; http://php.net/zlib.output-compression-level 89 | ;zlib.output_compression_level = -1 90 | 91 | ; You cannot specify additional output handlers if zlib.output_compression 92 | ; is activated here. This setting does the same as output_handler but in 93 | ; a different order. 94 | ; http://php.net/zlib.output-handler 95 | ;zlib.output_handler = 96 | 97 | ; Implicit flush tells PHP to tell the output layer to flush itself 98 | ; automatically after every output block. This is equivalent to calling the 99 | ; PHP function flush() after each and every call to print() or echo() and each 100 | ; and every HTML block. Turning this option on has serious performance 101 | ; implications and is generally recommended for debugging purposes only. 102 | ; http://php.net/implicit-flush 103 | ; Note: This directive is hardcoded to On for the CLI SAPI 104 | implicit_flush = Off 105 | 106 | ; The unserialize callback function will be called (with the undefined class' 107 | ; name as parameter), if the unserializer finds an undefined class 108 | ; which should be instantiated. A warning appears if the specified function is 109 | ; not defined, or if the function doesn't include/implement the missing class. 110 | ; So only set this entry, if you really want to implement such a 111 | ; callback-function. 112 | unserialize_callback_func = 113 | 114 | ; When floats & doubles are serialized store serialize_precision significant 115 | ; digits after the floating point. The default value ensures that when floats 116 | ; are decoded with unserialize, the data will remain the same. 117 | serialize_precision = 17 118 | 119 | ; This directive allows you to enable and disable warnings which PHP will issue 120 | ; if you pass a value by reference at function call time. Passing values by 121 | ; reference at function call time is a deprecated feature which will be removed 122 | ; from PHP at some point in the near future. The acceptable method for passing a 123 | ; value by reference to a function is by declaring the reference in the functions 124 | ; definition, not at call time. This directive does not disable this feature, it 125 | ; only determines whether PHP will warn you about it or not. These warnings 126 | ; should enabled in development environments only. 127 | ; Default Value: On (Suppress warnings) 128 | ; Development Value: Off (Issue warnings) 129 | ; Production Value: Off (Issue warnings) 130 | ; http://php.net/allow-call-time-pass-reference 131 | allow_call_time_pass_reference = Off 132 | 133 | ; Safe Mode 134 | ; http://php.net/safe-mode 135 | safe_mode = Off 136 | 137 | ; By default, Safe Mode does a UID compare check when 138 | ; opening files. If you want to relax this to a GID compare, 139 | ; then turn on safe_mode_gid. 140 | ; http://php.net/safe-mode-gid 141 | safe_mode_gid = Off 142 | 143 | ; When safe_mode is on, UID/GID checks are bypassed when 144 | ; including files from this directory and its subdirectories. 145 | ; (directory must also be in include_path or full path must 146 | ; be used when including) 147 | ; http://php.net/safe-mode-include-dir 148 | safe_mode_include_dir = 149 | 150 | ; When safe_mode is on, only executables located in the safe_mode_exec_dir 151 | ; will be allowed to be executed via the exec family of functions. 152 | ; http://php.net/safe-mode-exec-dir 153 | safe_mode_exec_dir = 154 | 155 | ; Setting certain environment variables may be a potential security breach. 156 | ; This directive contains a comma-delimited list of prefixes. In Safe Mode, 157 | ; the user may only alter environment variables whose names begin with the 158 | ; prefixes supplied here. By default, users will only be able to set 159 | ; environment variables that begin with PHP_ (e.g. PHP_FOO=BAR). 160 | ; Note: If this directive is empty, PHP will let the user modify ANY 161 | ; environment variable! 162 | ; http://php.net/safe-mode-allowed-env-vars 163 | safe_mode_allowed_env_vars = PHP_ 164 | 165 | ; This directive contains a comma-delimited list of environment variables that 166 | ; the end user won't be able to change using putenv(). These variables will be 167 | ; protected even if safe_mode_allowed_env_vars is set to allow to change them. 168 | ; http://php.net/safe-mode-protected-env-vars 169 | safe_mode_protected_env_vars = LD_LIBRARY_PATH 170 | 171 | ; open_basedir, if set, limits all file operations to the defined directory 172 | ; and below. This directive makes most sense if used in a per-directory 173 | ; or per-virtualhost web server configuration file. This directive is 174 | ; *NOT* affected by whether Safe Mode is turned On or Off. 175 | ; http://php.net/open-basedir 176 | ;open_basedir = 177 | 178 | ; This directive allows you to disable certain functions for security reasons. 179 | ; It receives a comma-delimited list of function names. This directive is 180 | ; *NOT* affected by whether Safe Mode is turned On or Off. 181 | ; http://php.net/disable-functions 182 | disable_functions = 183 | 184 | ; This directive allows you to disable certain classes for security reasons. 185 | ; It receives a comma-delimited list of class names. This directive is 186 | ; *NOT* affected by whether Safe Mode is turned On or Off. 187 | ; http://php.net/disable-classes 188 | disable_classes = 189 | 190 | ; Colors for Syntax Highlighting mode. Anything that's acceptable in 191 | ; would work. 192 | ; http://php.net/syntax-highlighting 193 | ;highlight.string = #DD0000 194 | ;highlight.comment = #FF9900 195 | ;highlight.keyword = #007700 196 | ;highlight.bg = #FFFFFF 197 | ;highlight.default = #0000BB 198 | ;highlight.html = #000000 199 | 200 | ; If enabled, the request will be allowed to complete even if the user aborts 201 | ; the request. Consider enabling it if executing long requests, which may end up 202 | ; being interrupted by the user or a browser timing out. PHP's default behavior 203 | ; is to disable this feature. 204 | ; http://php.net/ignore-user-abort 205 | ;ignore_user_abort = On 206 | 207 | ; Determines the size of the realpath cache to be used by PHP. This value should 208 | ; be increased on systems where PHP opens many files to reflect the quantity of 209 | ; the file operations performed. 210 | ; http://php.net/realpath-cache-size 211 | ;realpath_cache_size = 16k 212 | 213 | ; Duration of time, in seconds for which to cache realpath information for a given 214 | ; file or directory. For systems with rarely changing files, consider increasing this 215 | ; value. 216 | ; http://php.net/realpath-cache-ttl 217 | ;realpath_cache_ttl = 120 218 | 219 | ; Enables or disables the circular reference collector. 220 | ; http://php.net/zend.enable-gc 221 | zend.enable_gc = On 222 | 223 | ;;;;;;;;;;;;;;;;; 224 | ; Miscellaneous ; 225 | ;;;;;;;;;;;;;;;;; 226 | 227 | ; Decides whether PHP may expose the fact that it is installed on the server 228 | ; (e.g. by adding its signature to the Web server header). It is no security 229 | ; threat in any way, but it makes it possible to determine whether you use PHP 230 | ; on your server or not. 231 | ; http://php.net/expose-php 232 | expose_php = Off 233 | 234 | ;;;;;;;;;;;;;;;;;;; 235 | ; Resource Limits ; 236 | ;;;;;;;;;;;;;;;;;;; 237 | 238 | ; Maximum execution time of each script, in seconds 239 | ; http://php.net/max-execution-time 240 | ; Note: This directive is hardcoded to 0 for the CLI SAPI 241 | max_execution_time = 300 242 | 243 | ; Maximum amount of time each script may spend parsing request data. It's a good 244 | ; idea to limit this time on productions servers in order to eliminate unexpectedly 245 | ; long running scripts. 246 | ; Note: This directive is hardcoded to -1 for the CLI SAPI 247 | ; Default Value: -1 (Unlimited) 248 | ; Development Value: 60 (60 seconds) 249 | ; Production Value: 60 (60 seconds) 250 | ; http://php.net/max-input-time 251 | max_input_time = 60 252 | 253 | ; Maximum input variable nesting level 254 | ; http://php.net/max-input-nesting-level 255 | ;max_input_nesting_level = 64 256 | 257 | ; How many GET/POST/COOKIE input variables may be accepted 258 | ; max_input_vars = 1000 259 | 260 | ; Maximum amount of memory a script may consume (128MB) 261 | ; http://php.net/memory-limit 262 | memory_limit = 1024M 263 | 264 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 265 | ; Error handling and logging ; 266 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 267 | 268 | ; This directive informs PHP of which errors, warnings and notices you would like 269 | ; it to take action for. The recommended way of setting values for this 270 | ; directive is through the use of the error level constants and bitwise 271 | ; operators. The error level constants are below here for convenience as well as 272 | ; some common settings and their meanings. 273 | ; By default, PHP is set to take action on all errors, notices and warnings EXCEPT 274 | ; those related to E_NOTICE and E_STRICT, which together cover best practices and 275 | ; recommended coding standards in PHP. For performance reasons, this is the 276 | ; recommend error reporting setting. Your production server shouldn't be wasting 277 | ; resources complaining about best practices and coding standards. That's what 278 | ; development servers and development settings are for. 279 | ; Note: The php.ini-development file has this setting as E_ALL | E_STRICT. This 280 | ; means it pretty much reports everything which is exactly what you want during 281 | ; development and early testing. 282 | ; 283 | ; Error Level Constants: 284 | ; E_ALL - All errors and warnings (includes E_STRICT as of PHP 6.0.0) 285 | ; E_ERROR - fatal run-time errors 286 | ; E_RECOVERABLE_ERROR - almost fatal run-time errors 287 | ; E_WARNING - run-time warnings (non-fatal errors) 288 | ; E_PARSE - compile-time parse errors 289 | ; E_NOTICE - run-time notices (these are warnings which often result 290 | ; from a bug in your code, but it's possible that it was 291 | ; intentional (e.g., using an uninitialized variable and 292 | ; relying on the fact it's automatically initialized to an 293 | ; empty string) 294 | ; E_STRICT - run-time notices, enable to have PHP suggest changes 295 | ; to your code which will ensure the best interoperability 296 | ; and forward compatibility of your code 297 | ; E_CORE_ERROR - fatal errors that occur during PHP's initial startup 298 | ; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's 299 | ; initial startup 300 | ; E_COMPILE_ERROR - fatal compile-time errors 301 | ; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) 302 | ; E_USER_ERROR - user-generated error message 303 | ; E_USER_WARNING - user-generated warning message 304 | ; E_USER_NOTICE - user-generated notice message 305 | ; E_DEPRECATED - warn about code that will not work in future versions 306 | ; of PHP 307 | ; E_USER_DEPRECATED - user-generated deprecation warnings 308 | ; 309 | ; Common Values: 310 | ; E_ALL & ~E_NOTICE (Show all errors, except for notices and coding standards warnings.) 311 | ; E_ALL & ~E_NOTICE | E_STRICT (Show all errors, except for notices) 312 | ; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) 313 | ; E_ALL | E_STRICT (Show all errors, warnings and notices including coding standards.) 314 | ; Default Value: E_ALL & ~E_NOTICE 315 | ; Development Value: E_ALL | E_STRICT 316 | ; Production Value: E_ALL & ~E_DEPRECATED 317 | ; http://php.net/error-reporting 318 | error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT 319 | 320 | ; This directive controls whether or not and where PHP will output errors, 321 | ; notices and warnings too. Error output is very useful during development, but 322 | ; it could be very dangerous in production environments. Depending on the code 323 | ; which is triggering the error, sensitive information could potentially leak 324 | ; out of your application such as database usernames and passwords or worse. 325 | ; It's recommended that errors be logged on production servers rather than 326 | ; having the errors sent to STDOUT. 327 | ; Possible Values: 328 | ; Off = Do not display any errors 329 | ; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) 330 | ; On or stdout = Display errors to STDOUT 331 | ; Default Value: On 332 | ; Development Value: On 333 | ; Production Value: Off 334 | ; http://php.net/display-errors 335 | display_errors = 336 | 337 | ; The display of errors which occur during PHP's startup sequence are handled 338 | ; separately from display_errors. PHP's default behavior is to suppress those 339 | ; errors from clients. Turning the display of startup errors on can be useful in 340 | ; debugging configuration problems. But, it's strongly recommended that you 341 | ; leave this setting off on production servers. 342 | ; Default Value: Off 343 | ; Development Value: On 344 | ; Production Value: Off 345 | ; http://php.net/display-startup-errors 346 | display_startup_errors = Off 347 | 348 | ; Besides displaying errors, PHP can also log errors to locations such as a 349 | ; server-specific log, STDERR, or a location specified by the error_log 350 | ; directive found below. While errors should not be displayed on productions 351 | ; servers they should still be monitored and logging is a great way to do that. 352 | ; Default Value: Off 353 | ; Development Value: On 354 | ; Production Value: On 355 | ; http://php.net/log-errors 356 | log_errors = On 357 | 358 | ; Set maximum length of log_errors. In error_log information about the source is 359 | ; added. The default is 1024 and 0 allows to not apply any maximum length at all. 360 | ; http://php.net/log-errors-max-len 361 | log_errors_max_len = 1024 362 | 363 | ; Do not log repeated messages. Repeated errors must occur in same file on same 364 | ; line unless ignore_repeated_source is set true. 365 | ; http://php.net/ignore-repeated-errors 366 | ignore_repeated_errors = Off 367 | 368 | ; Ignore source of message when ignoring repeated messages. When this setting 369 | ; is On you will not log errors with repeated messages from different files or 370 | ; source lines. 371 | ; http://php.net/ignore-repeated-source 372 | ignore_repeated_source = Off 373 | 374 | ; If this parameter is set to Off, then memory leaks will not be shown (on 375 | ; stdout or in the log). This has only effect in a debug compile, and if 376 | ; error reporting includes E_WARNING in the allowed list 377 | ; http://php.net/report-memleaks 378 | report_memleaks = On 379 | 380 | ; This setting is on by default. 381 | ;report_zend_debug = 0 382 | 383 | ; Store the last error/warning message in $php_errormsg (boolean). Setting this value 384 | ; to On can assist in debugging and is appropriate for development servers. It should 385 | ; however be disabled on production servers. 386 | ; Default Value: Off 387 | ; Development Value: On 388 | ; Production Value: Off 389 | ; http://php.net/track-errors 390 | track_errors = Off 391 | 392 | ; Turn off normal error reporting and emit XML-RPC error XML 393 | ; http://php.net/xmlrpc-errors 394 | ;xmlrpc_errors = 0 395 | 396 | ; An XML-RPC faultCode 397 | ;xmlrpc_error_number = 0 398 | 399 | ; When PHP displays or logs an error, it has the capability of inserting html 400 | ; links to documentation related to that error. This directive controls whether 401 | ; those HTML links appear in error messages or not. For performance and security 402 | ; reasons, it's recommended you disable this on production servers. 403 | ; Note: This directive is hardcoded to Off for the CLI SAPI 404 | ; Default Value: On 405 | ; Development Value: On 406 | ; Production value: Off 407 | ; http://php.net/html-errors 408 | html_errors = Off 409 | 410 | ; If html_errors is set On PHP produces clickable error messages that direct 411 | ; to a page describing the error or function causing the error in detail. 412 | ; You can download a copy of the PHP manual from http://php.net/docs 413 | ; and change docref_root to the base URL of your local copy including the 414 | ; leading '/'. You must also specify the file extension being used including 415 | ; the dot. PHP's default behavior is to leave these settings empty. 416 | ; Note: Never use this feature for production boxes. 417 | ; http://php.net/docref-root 418 | ; Examples 419 | ;docref_root = "/phpmanual/" 420 | 421 | ; http://php.net/docref-ext 422 | ;docref_ext = .html 423 | 424 | ; String to output before an error message. PHP's default behavior is to leave 425 | ; this setting blank. 426 | ; http://php.net/error-prepend-string 427 | ; Example: 428 | ;error_prepend_string = "" 429 | 430 | ; String to output after an error message. PHP's default behavior is to leave 431 | ; this setting blank. 432 | ; http://php.net/error-append-string 433 | ; Example: 434 | ;error_append_string = "" 435 | 436 | ; Log errors to specified file. PHP's default behavior is to leave this value 437 | ; empty. 438 | ; http://php.net/error-log 439 | ; Example: 440 | ;error_log = php_errors.log 441 | ; Log errors to syslog (Event Log on NT, not valid in Windows 95). 442 | ;error_log = syslog 443 | 444 | ;windows.show_crt_warning 445 | ; Default value: 0 446 | ; Development value: 0 447 | ; Production value: 0 448 | 449 | ;;;;;;;;;;;;;;;;; 450 | ; Data Handling ; 451 | ;;;;;;;;;;;;;;;;; 452 | 453 | ; The separator used in PHP generated URLs to separate arguments. 454 | ; PHP's default setting is "&". 455 | ; http://php.net/arg-separator.output 456 | ; Example: 457 | ;arg_separator.output = "&" 458 | 459 | ; List of separator(s) used by PHP to parse input URLs into variables. 460 | ; PHP's default setting is "&". 461 | ; NOTE: Every character in this directive is considered as separator! 462 | ; http://php.net/arg-separator.input 463 | ; Example: 464 | ;arg_separator.input = ";&" 465 | 466 | ; This directive determines which super global arrays are registered when PHP 467 | ; starts up. If the register_globals directive is enabled, it also determines 468 | ; what order variables are populated into the global space. G,P,C,E & S are 469 | ; abbreviations for the following respective super globals: GET, POST, COOKIE, 470 | ; ENV and SERVER. There is a performance penalty paid for the registration of 471 | ; these arrays and because ENV is not as commonly used as the others, ENV is 472 | ; is not recommended on productions servers. You can still get access to 473 | ; the environment variables through getenv() should you need to. 474 | ; Default Value: "EGPCS" 475 | ; Development Value: "GPCS" 476 | ; Production Value: "GPCS"; 477 | ; http://php.net/variables-order 478 | variables_order = "GPCS" 479 | 480 | ; This directive determines which super global data (G,P,C,E & S) should 481 | ; be registered into the super global array REQUEST. If so, it also determines 482 | ; the order in which that data is registered. The values for this directive are 483 | ; specified in the same manner as the variables_order directive, EXCEPT one. 484 | ; Leaving this value empty will cause PHP to use the value set in the 485 | ; variables_order directive. It does not mean it will leave the super globals 486 | ; array REQUEST empty. 487 | ; Default Value: None 488 | ; Development Value: "GP" 489 | ; Production Value: "GP" 490 | ; http://php.net/request-order 491 | request_order = "GP" 492 | 493 | ; Whether or not to register the EGPCS variables as global variables. You may 494 | ; want to turn this off if you don't want to clutter your scripts' global scope 495 | ; with user data. 496 | ; You should do your best to write your scripts so that they do not require 497 | ; register_globals to be on; Using form variables as globals can easily lead 498 | ; to possible security problems, if the code is not very well thought of. 499 | ; http://php.net/register-globals 500 | register_globals = Off 501 | 502 | ; Determines whether the deprecated long $HTTP_*_VARS type predefined variables 503 | ; are registered by PHP or not. As they are deprecated, we obviously don't 504 | ; recommend you use them. They are on by default for compatibility reasons but 505 | ; they are not recommended on production servers. 506 | ; Default Value: On 507 | ; Development Value: Off 508 | ; Production Value: Off 509 | ; http://php.net/register-long-arrays 510 | register_long_arrays = Off 511 | 512 | ; This directive determines whether PHP registers $argv & $argc each time it 513 | ; runs. $argv contains an array of all the arguments passed to PHP when a script 514 | ; is invoked. $argc contains an integer representing the number of arguments 515 | ; that were passed when the script was invoked. These arrays are extremely 516 | ; useful when running scripts from the command line. When this directive is 517 | ; enabled, registering these variables consumes CPU cycles and memory each time 518 | ; a script is executed. For performance reasons, this feature should be disabled 519 | ; on production servers. 520 | ; Note: This directive is hardcoded to On for the CLI SAPI 521 | ; Default Value: On 522 | ; Development Value: Off 523 | ; Production Value: Off 524 | ; http://php.net/register-argc-argv 525 | register_argc_argv = Off 526 | 527 | ; When enabled, the SERVER and ENV variables are created when they're first 528 | ; used (Just In Time) instead of when the script starts. If these variables 529 | ; are not used within a script, having this directive on will result in a 530 | ; performance gain. The PHP directives register_globals, register_long_arrays, 531 | ; and register_argc_argv must be disabled for this directive to have any affect. 532 | ; http://php.net/auto-globals-jit 533 | auto_globals_jit = On 534 | 535 | ; Maximum size of POST data that PHP will accept. 536 | ; http://php.net/post-max-size 537 | post_max_size = 8M 538 | 539 | ; Magic quotes are a preprocessing feature of PHP where PHP will attempt to 540 | ; escape any character sequences in GET, POST, COOKIE and ENV data which might 541 | ; otherwise corrupt data being placed in resources such as databases before 542 | ; making that data available to you. Because of character encoding issues and 543 | ; non-standard SQL implementations across many databases, it's not currently 544 | ; possible for this feature to be 100% accurate. PHP's default behavior is to 545 | ; enable the feature. We strongly recommend you use the escaping mechanisms 546 | ; designed specifically for the database your using instead of relying on this 547 | ; feature. Also note, this feature has been deprecated as of PHP 5.3.0 and is 548 | ; scheduled for removal in PHP 6. 549 | ; Default Value: On 550 | ; Development Value: Off 551 | ; Production Value: Off 552 | ; http://php.net/magic-quotes-gpc 553 | magic_quotes_gpc = Off 554 | 555 | ; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc. 556 | ; http://php.net/magic-quotes-runtime 557 | magic_quotes_runtime = Off 558 | 559 | ; Use Sybase-style magic quotes (escape ' with '' instead of \'). 560 | ; http://php.net/magic-quotes-sybase 561 | magic_quotes_sybase = Off 562 | 563 | ; Automatically add files before PHP document. 564 | ; http://php.net/auto-prepend-file 565 | auto_prepend_file = 566 | 567 | ; Automatically add files after PHP document. 568 | ; http://php.net/auto-append-file 569 | auto_append_file = 570 | 571 | ; By default, PHP will output a character encoding using 572 | ; the Content-type: header. To disable sending of the charset, simply 573 | ; set it to be empty. 574 | ; 575 | ; PHP's built-in default is text/html 576 | ; http://php.net/default-mimetype 577 | default_mimetype = "text/html" 578 | 579 | ; PHP's default character set is set to empty. 580 | ; http://php.net/default-charset 581 | ;default_charset = "iso-8859-1" 582 | 583 | ; Always populate the $HTTP_RAW_POST_DATA variable. PHP's default behavior is 584 | ; to disable this feature. 585 | ; http://php.net/always-populate-raw-post-data 586 | ;always_populate_raw_post_data = On 587 | 588 | ;;;;;;;;;;;;;;;;;;;;;;;;; 589 | ; Paths and Directories ; 590 | ;;;;;;;;;;;;;;;;;;;;;;;;; 591 | 592 | ; UNIX: "/path1:/path2" 593 | ;include_path = ".:/usr/share/php" 594 | ; 595 | ; Windows: "\path1;\path2" 596 | ;include_path = ".;c:\php\includes" 597 | ; 598 | ; PHP's default setting for include_path is ".;/path/to/php/pear" 599 | ; http://php.net/include-path 600 | 601 | ; The root of the PHP pages, used only if nonempty. 602 | ; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root 603 | ; if you are running php as a CGI under any web server (other than IIS) 604 | ; see documentation for security issues. The alternate is to use the 605 | ; cgi.force_redirect configuration below 606 | ; http://php.net/doc-root 607 | doc_root = 608 | 609 | ; The directory under which PHP opens the script using /~username used only 610 | ; if nonempty. 611 | ; http://php.net/user-dir 612 | user_dir = 613 | 614 | ; Directory in which the loadable extensions (modules) reside. 615 | ; http://php.net/extension-dir 616 | ; extension_dir = "./" 617 | ; On windows: 618 | ; extension_dir = "ext" 619 | 620 | ; Whether or not to enable the dl() function. The dl() function does NOT work 621 | ; properly in multithreaded servers, such as IIS or Zeus, and is automatically 622 | ; disabled on them. 623 | ; http://php.net/enable-dl 624 | enable_dl = Off 625 | 626 | ; cgi.force_redirect is necessary to provide security running PHP as a CGI under 627 | ; most web servers. Left undefined, PHP turns this on by default. You can 628 | ; turn it off here AT YOUR OWN RISK 629 | ; **You CAN safely turn this off for IIS, in fact, you MUST.** 630 | ; http://php.net/cgi.force-redirect 631 | ;cgi.force_redirect = 1 632 | 633 | ; if cgi.nph is enabled it will force cgi to always sent Status: 200 with 634 | ; every request. PHP's default behavior is to disable this feature. 635 | ;cgi.nph = 1 636 | 637 | ; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape 638 | ; (iPlanet) web servers, you MAY need to set an environment variable name that PHP 639 | ; will look for to know it is OK to continue execution. Setting this variable MAY 640 | ; cause security issues, KNOW WHAT YOU ARE DOING FIRST. 641 | ; http://php.net/cgi.redirect-status-env 642 | ;cgi.redirect_status_env = ; 643 | 644 | ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's 645 | ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok 646 | ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting 647 | ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting 648 | ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts 649 | ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. 650 | ; http://php.net/cgi.fix-pathinfo 651 | ;cgi.fix_pathinfo=1 652 | 653 | ; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate 654 | ; security tokens of the calling client. This allows IIS to define the 655 | ; security context that the request runs under. mod_fastcgi under Apache 656 | ; does not currently support this feature (03/17/2002) 657 | ; Set to 1 if running under IIS. Default is zero. 658 | ; http://php.net/fastcgi.impersonate 659 | ;fastcgi.impersonate = 1; 660 | 661 | ; Disable logging through FastCGI connection. PHP's default behavior is to enable 662 | ; this feature. 663 | ;fastcgi.logging = 0 664 | 665 | ; cgi.rfc2616_headers configuration option tells PHP what type of headers to 666 | ; use when sending HTTP response code. If it's set 0 PHP sends Status: header that 667 | ; is supported by Apache. When this option is set to 1 PHP will send 668 | ; RFC2616 compliant header. 669 | ; Default is zero. 670 | ; http://php.net/cgi.rfc2616-headers 671 | ;cgi.rfc2616_headers = 0 672 | 673 | ;;;;;;;;;;;;;;;; 674 | ; File Uploads ; 675 | ;;;;;;;;;;;;;;;; 676 | 677 | ; Whether to allow HTTP file uploads. 678 | ; http://php.net/file-uploads 679 | file_uploads = On 680 | 681 | ; Temporary directory for HTTP uploaded files (will use system default if not 682 | ; specified). 683 | ; http://php.net/upload-tmp-dir 684 | ;upload_tmp_dir = 685 | 686 | ; Maximum allowed size for uploaded files. 687 | ; http://php.net/upload-max-filesize 688 | upload_max_filesize = 2M 689 | 690 | ; Maximum number of files that can be uploaded via a single request 691 | max_file_uploads = 20 692 | 693 | ;;;;;;;;;;;;;;;;;; 694 | ; Fopen wrappers ; 695 | ;;;;;;;;;;;;;;;;;; 696 | 697 | ; Whether to allow the treatment of URLs (like http:// or ftp://) as files. 698 | ; http://php.net/allow-url-fopen 699 | allow_url_fopen = On 700 | 701 | ; Whether to allow include/require to open URLs (like http:// or ftp://) as files. 702 | ; http://php.net/allow-url-include 703 | allow_url_include = Off 704 | 705 | ; Define the anonymous ftp password (your email address). PHP's default setting 706 | ; for this is empty. 707 | ; http://php.net/from 708 | ;from="john@doe.com" 709 | 710 | ; Define the User-Agent string. PHP's default setting for this is empty. 711 | ; http://php.net/user-agent 712 | ;user_agent="PHP" 713 | 714 | ; Default timeout for socket based streams (seconds) 715 | ; http://php.net/default-socket-timeout 716 | default_socket_timeout = 60 717 | 718 | ; If your scripts have to deal with files from Macintosh systems, 719 | ; or you are running on a Mac and need to deal with files from 720 | ; unix or win32 systems, setting this flag will cause PHP to 721 | ; automatically detect the EOL character in those files so that 722 | ; fgets() and file() will work regardless of the source of the file. 723 | ; http://php.net/auto-detect-line-endings 724 | ;auto_detect_line_endings = Off 725 | 726 | ;;;;;;;;;;;;;;;;;;;;;; 727 | ; Dynamic Extensions ; 728 | ;;;;;;;;;;;;;;;;;;;;;; 729 | 730 | ; If you wish to have an extension loaded automatically, use the following 731 | ; syntax: 732 | ; 733 | ; extension=modulename.extension 734 | ; 735 | ; For example, on Windows: 736 | ; 737 | ; extension=msql.dll 738 | ; 739 | ; ... or under UNIX: 740 | ; 741 | ; extension=msql.so 742 | ; 743 | ; ... or with a path: 744 | ; 745 | ; extension=/path/to/extension/msql.so 746 | ; 747 | ; If you only provide the name of the extension, PHP will look for it in its 748 | ; default extension directory. 749 | ;;;;;;;;;;;;;;;;;;; 750 | ; Module Settings ; 751 | ;;;;;;;;;;;;;;;;;;; 752 | 753 | [Date] 754 | ; Defines the default timezone used by the date functions 755 | ; http://php.net/date.timezone 756 | date.timezone = UTC 757 | 758 | ; http://php.net/date.default-latitude 759 | ;date.default_latitude = 31.7667 760 | 761 | ; http://php.net/date.default-longitude 762 | ;date.default_longitude = 35.2333 763 | 764 | ; http://php.net/date.sunrise-zenith 765 | ;date.sunrise_zenith = 90.583333 766 | 767 | ; http://php.net/date.sunset-zenith 768 | ;date.sunset_zenith = 90.583333 769 | 770 | [filter] 771 | ; http://php.net/filter.default 772 | ;filter.default = unsafe_raw 773 | 774 | ; http://php.net/filter.default-flags 775 | ;filter.default_flags = 776 | 777 | [iconv] 778 | ;iconv.input_encoding = ISO-8859-1 779 | ;iconv.internal_encoding = ISO-8859-1 780 | ;iconv.output_encoding = ISO-8859-1 781 | 782 | [intl] 783 | ;intl.default_locale = 784 | ; This directive allows you to produce PHP errors when some error 785 | ; happens within intl functions. The value is the level of the error produced. 786 | ; Default is 0, which does not produce any errors. 787 | ;intl.error_level = E_WARNING 788 | 789 | [sqlite] 790 | ; http://php.net/sqlite.assoc-case 791 | ;sqlite.assoc_case = 0 792 | 793 | [sqlite3] 794 | ;sqlite3.extension_dir = 795 | 796 | [Pcre] 797 | ;PCRE library backtracking limit. 798 | ; http://php.net/pcre.backtrack-limit 799 | ;pcre.backtrack_limit=100000 800 | 801 | ;PCRE library recursion limit. 802 | ;Please note that if you set this value to a high number you may consume all 803 | ;the available process stack and eventually crash PHP (due to reaching the 804 | ;stack size limit imposed by the Operating System). 805 | ; http://php.net/pcre.recursion-limit 806 | ;pcre.recursion_limit=100000 807 | 808 | [Pdo] 809 | ; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" 810 | ; http://php.net/pdo-odbc.connection-pooling 811 | ;pdo_odbc.connection_pooling=strict 812 | 813 | ;pdo_odbc.db2_instance_name 814 | 815 | [Pdo_mysql] 816 | ; If mysqlnd is used: Number of cache slots for the internal result set cache 817 | ; http://php.net/pdo_mysql.cache_size 818 | pdo_mysql.cache_size = 2000 819 | 820 | ; Default socket name for local MySQL connects. If empty, uses the built-in 821 | ; MySQL defaults. 822 | ; http://php.net/pdo_mysql.default-socket 823 | pdo_mysql.default_socket= 824 | 825 | [Phar] 826 | ; http://php.net/phar.readonly 827 | ;phar.readonly = On 828 | 829 | ; http://php.net/phar.require-hash 830 | ;phar.require_hash = On 831 | 832 | ;phar.cache_list = 833 | 834 | [Syslog] 835 | ; Whether or not to define the various syslog variables (e.g. $LOG_PID, 836 | ; $LOG_CRON, etc.). Turning it off is a good idea performance-wise. In 837 | ; runtime, you can define these variables by calling define_syslog_variables(). 838 | ; http://php.net/define-syslog-variables 839 | define_syslog_variables = Off 840 | 841 | [mail function] 842 | ; For Win32 only. 843 | ; http://php.net/smtp 844 | SMTP = localhost 845 | ; http://php.net/smtp-port 846 | smtp_port = 25 847 | 848 | ; For Win32 only. 849 | ; http://php.net/sendmail-from 850 | ;sendmail_from = me@example.com 851 | 852 | ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). 853 | ; http://php.net/sendmail-path 854 | ;sendmail_path = 855 | 856 | ; Force the addition of the specified parameters to be passed as extra parameters 857 | ; to the sendmail binary. These parameters will always replace the value of 858 | ; the 5th parameter to mail(), even in safe mode. 859 | ;mail.force_extra_parameters = 860 | 861 | ; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename 862 | mail.add_x_header = On 863 | 864 | ; The path to a log file that will log all mail() calls. Log entries include 865 | ; the full path of the script, line number, To address and headers. 866 | ;mail.log = 867 | 868 | [SQL] 869 | ; http://php.net/sql.safe-mode 870 | sql.safe_mode = Off 871 | 872 | [ODBC] 873 | ; http://php.net/odbc.default-db 874 | ;odbc.default_db = Not yet implemented 875 | 876 | ; http://php.net/odbc.default-user 877 | ;odbc.default_user = Not yet implemented 878 | 879 | ; http://php.net/odbc.default-pw 880 | ;odbc.default_pw = Not yet implemented 881 | 882 | ; Controls the ODBC cursor model. 883 | ; Default: SQL_CURSOR_STATIC (default). 884 | ;odbc.default_cursortype 885 | 886 | ; Allow or prevent persistent links. 887 | ; http://php.net/odbc.allow-persistent 888 | odbc.allow_persistent = On 889 | 890 | ; Check that a connection is still valid before reuse. 891 | ; http://php.net/odbc.check-persistent 892 | odbc.check_persistent = On 893 | 894 | ; Maximum number of persistent links. -1 means no limit. 895 | ; http://php.net/odbc.max-persistent 896 | odbc.max_persistent = -1 897 | 898 | ; Maximum number of links (persistent + non-persistent). -1 means no limit. 899 | ; http://php.net/odbc.max-links 900 | odbc.max_links = -1 901 | 902 | ; Handling of LONG fields. Returns number of bytes to variables. 0 means 903 | ; passthru. 904 | ; http://php.net/odbc.defaultlrl 905 | odbc.defaultlrl = 4096 906 | 907 | ; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. 908 | ; See the documentation on odbc_binmode and odbc_longreadlen for an explanation 909 | ; of odbc.defaultlrl and odbc.defaultbinmode 910 | ; http://php.net/odbc.defaultbinmode 911 | odbc.defaultbinmode = 1 912 | 913 | ;birdstep.max_links = -1 914 | 915 | [Interbase] 916 | ; Allow or prevent persistent links. 917 | ibase.allow_persistent = 1 918 | 919 | ; Maximum number of persistent links. -1 means no limit. 920 | ibase.max_persistent = -1 921 | 922 | ; Maximum number of links (persistent + non-persistent). -1 means no limit. 923 | ibase.max_links = -1 924 | 925 | ; Default database name for ibase_connect(). 926 | ;ibase.default_db = 927 | 928 | ; Default username for ibase_connect(). 929 | ;ibase.default_user = 930 | 931 | ; Default password for ibase_connect(). 932 | ;ibase.default_password = 933 | 934 | ; Default charset for ibase_connect(). 935 | ;ibase.default_charset = 936 | 937 | ; Default timestamp format. 938 | ibase.timestampformat = "%Y-%m-%d %H:%M:%S" 939 | 940 | ; Default date format. 941 | ibase.dateformat = "%Y-%m-%d" 942 | 943 | ; Default time format. 944 | ibase.timeformat = "%H:%M:%S" 945 | 946 | [MySQL] 947 | ; Allow accessing, from PHP's perspective, local files with LOAD DATA statements 948 | ; http://php.net/mysql.allow_local_infile 949 | mysql.allow_local_infile = On 950 | 951 | ; Allow or prevent persistent links. 952 | ; http://php.net/mysql.allow-persistent 953 | mysql.allow_persistent = On 954 | 955 | ; If mysqlnd is used: Number of cache slots for the internal result set cache 956 | ; http://php.net/mysql.cache_size 957 | mysql.cache_size = 2000 958 | 959 | ; Maximum number of persistent links. -1 means no limit. 960 | ; http://php.net/mysql.max-persistent 961 | mysql.max_persistent = -1 962 | 963 | ; Maximum number of links (persistent + non-persistent). -1 means no limit. 964 | ; http://php.net/mysql.max-links 965 | mysql.max_links = -1 966 | 967 | ; Default port number for mysql_connect(). If unset, mysql_connect() will use 968 | ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the 969 | ; compile-time value defined MYSQL_PORT (in that order). Win32 will only look 970 | ; at MYSQL_PORT. 971 | ; http://php.net/mysql.default-port 972 | mysql.default_port = 973 | 974 | ; Default socket name for local MySQL connects. If empty, uses the built-in 975 | ; MySQL defaults. 976 | ; http://php.net/mysql.default-socket 977 | mysql.default_socket = 978 | 979 | ; Default host for mysql_connect() (doesn't apply in safe mode). 980 | ; http://php.net/mysql.default-host 981 | mysql.default_host = 982 | 983 | ; Default user for mysql_connect() (doesn't apply in safe mode). 984 | ; http://php.net/mysql.default-user 985 | mysql.default_user = 986 | 987 | ; Default password for mysql_connect() (doesn't apply in safe mode). 988 | ; Note that this is generally a *bad* idea to store passwords in this file. 989 | ; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password") 990 | ; and reveal this password! And of course, any users with read access to this 991 | ; file will be able to reveal the password as well. 992 | ; http://php.net/mysql.default-password 993 | mysql.default_password = 994 | 995 | ; Maximum time (in seconds) for connect timeout. -1 means no limit 996 | ; http://php.net/mysql.connect-timeout 997 | mysql.connect_timeout = 60 998 | 999 | ; Trace mode. When trace_mode is active (=On), warnings for table/index scans and 1000 | ; SQL-Errors will be displayed. 1001 | ; http://php.net/mysql.trace-mode 1002 | mysql.trace_mode = Off 1003 | 1004 | [MySQLi] 1005 | ; Maximum number of persistent links. -1 means no limit. 1006 | ; http://php.net/mysqli.max-persistent 1007 | mysqli.max_persistent = -1 1008 | 1009 | ; Allow accessing, from PHP's perspective, local files with LOAD DATA statements 1010 | ; http://php.net/mysqli.allow_local_infile 1011 | ;mysqli.allow_local_infile = On 1012 | 1013 | ; Allow or prevent persistent links. 1014 | ; http://php.net/mysqli.allow-persistent 1015 | mysqli.allow_persistent = On 1016 | 1017 | ; Maximum number of links. -1 means no limit. 1018 | ; http://php.net/mysqli.max-links 1019 | mysqli.max_links = -1 1020 | 1021 | ; If mysqlnd is used: Number of cache slots for the internal result set cache 1022 | ; http://php.net/mysqli.cache_size 1023 | mysqli.cache_size = 2000 1024 | 1025 | ; Default port number for mysqli_connect(). If unset, mysqli_connect() will use 1026 | ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the 1027 | ; compile-time value defined MYSQL_PORT (in that order). Win32 will only look 1028 | ; at MYSQL_PORT. 1029 | ; http://php.net/mysqli.default-port 1030 | mysqli.default_port = 3306 1031 | 1032 | ; Default socket name for local MySQL connects. If empty, uses the built-in 1033 | ; MySQL defaults. 1034 | ; http://php.net/mysqli.default-socket 1035 | mysqli.default_socket = 1036 | 1037 | ; Default host for mysql_connect() (doesn't apply in safe mode). 1038 | ; http://php.net/mysqli.default-host 1039 | mysqli.default_host = 1040 | 1041 | ; Default user for mysql_connect() (doesn't apply in safe mode). 1042 | ; http://php.net/mysqli.default-user 1043 | mysqli.default_user = 1044 | 1045 | ; Default password for mysqli_connect() (doesn't apply in safe mode). 1046 | ; Note that this is generally a *bad* idea to store passwords in this file. 1047 | ; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") 1048 | ; and reveal this password! And of course, any users with read access to this 1049 | ; file will be able to reveal the password as well. 1050 | ; http://php.net/mysqli.default-pw 1051 | mysqli.default_pw = 1052 | 1053 | ; Allow or prevent reconnect 1054 | mysqli.reconnect = Off 1055 | 1056 | [mysqlnd] 1057 | ; Enable / Disable collection of general statistics by mysqlnd which can be 1058 | ; used to tune and monitor MySQL operations. 1059 | ; http://php.net/mysqlnd.collect_statistics 1060 | mysqlnd.collect_statistics = On 1061 | 1062 | ; Enable / Disable collection of memory usage statistics by mysqlnd which can be 1063 | ; used to tune and monitor MySQL operations. 1064 | ; http://php.net/mysqlnd.collect_memory_statistics 1065 | mysqlnd.collect_memory_statistics = Off 1066 | 1067 | ; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. 1068 | ; http://php.net/mysqlnd.net_cmd_buffer_size 1069 | ;mysqlnd.net_cmd_buffer_size = 2048 1070 | 1071 | ; Size of a pre-allocated buffer used for reading data sent by the server in 1072 | ; bytes. 1073 | ; http://php.net/mysqlnd.net_read_buffer_size 1074 | ;mysqlnd.net_read_buffer_size = 32768 1075 | 1076 | [OCI8] 1077 | 1078 | ; Connection: Enables privileged connections using external 1079 | ; credentials (OCI_SYSOPER, OCI_SYSDBA) 1080 | ; http://php.net/oci8.privileged-connect 1081 | ;oci8.privileged_connect = Off 1082 | 1083 | ; Connection: The maximum number of persistent OCI8 connections per 1084 | ; process. Using -1 means no limit. 1085 | ; http://php.net/oci8.max-persistent 1086 | ;oci8.max_persistent = -1 1087 | 1088 | ; Connection: The maximum number of seconds a process is allowed to 1089 | ; maintain an idle persistent connection. Using -1 means idle 1090 | ; persistent connections will be maintained forever. 1091 | ; http://php.net/oci8.persistent-timeout 1092 | ;oci8.persistent_timeout = -1 1093 | 1094 | ; Connection: The number of seconds that must pass before issuing a 1095 | ; ping during oci_pconnect() to check the connection validity. When 1096 | ; set to 0, each oci_pconnect() will cause a ping. Using -1 disables 1097 | ; pings completely. 1098 | ; http://php.net/oci8.ping-interval 1099 | ;oci8.ping_interval = 60 1100 | 1101 | ; Connection: Set this to a user chosen connection class to be used 1102 | ; for all pooled server requests with Oracle 11g Database Resident 1103 | ; Connection Pooling (DRCP). To use DRCP, this value should be set to 1104 | ; the same string for all web servers running the same application, 1105 | ; the database pool must be configured, and the connection string must 1106 | ; specify to use a pooled server. 1107 | ;oci8.connection_class = 1108 | 1109 | ; High Availability: Using On lets PHP receive Fast Application 1110 | ; Notification (FAN) events generated when a database node fails. The 1111 | ; database must also be configured to post FAN events. 1112 | ;oci8.events = Off 1113 | 1114 | ; Tuning: This option enables statement caching, and specifies how 1115 | ; many statements to cache. Using 0 disables statement caching. 1116 | ; http://php.net/oci8.statement-cache-size 1117 | ;oci8.statement_cache_size = 20 1118 | 1119 | ; Tuning: Enables statement prefetching and sets the default number of 1120 | ; rows that will be fetched automatically after statement execution. 1121 | ; http://php.net/oci8.default-prefetch 1122 | ;oci8.default_prefetch = 100 1123 | 1124 | ; Compatibility. Using On means oci_close() will not close 1125 | ; oci_connect() and oci_new_connect() connections. 1126 | ; http://php.net/oci8.old-oci-close-semantics 1127 | ;oci8.old_oci_close_semantics = Off 1128 | 1129 | [PostgreSQL] 1130 | ; Allow or prevent persistent links. 1131 | ; http://php.net/pgsql.allow-persistent 1132 | pgsql.allow_persistent = On 1133 | 1134 | ; Detect broken persistent links always with pg_pconnect(). 1135 | ; Auto reset feature requires a little overheads. 1136 | ; http://php.net/pgsql.auto-reset-persistent 1137 | pgsql.auto_reset_persistent = Off 1138 | 1139 | ; Maximum number of persistent links. -1 means no limit. 1140 | ; http://php.net/pgsql.max-persistent 1141 | pgsql.max_persistent = -1 1142 | 1143 | ; Maximum number of links (persistent+non persistent). -1 means no limit. 1144 | ; http://php.net/pgsql.max-links 1145 | pgsql.max_links = -1 1146 | 1147 | ; Ignore PostgreSQL backends Notice message or not. 1148 | ; Notice message logging require a little overheads. 1149 | ; http://php.net/pgsql.ignore-notice 1150 | pgsql.ignore_notice = 0 1151 | 1152 | ; Log PostgreSQL backends Notice message or not. 1153 | ; Unless pgsql.ignore_notice=0, module cannot log notice message. 1154 | ; http://php.net/pgsql.log-notice 1155 | pgsql.log_notice = 0 1156 | 1157 | [Sybase-CT] 1158 | ; Allow or prevent persistent links. 1159 | ; http://php.net/sybct.allow-persistent 1160 | sybct.allow_persistent = On 1161 | 1162 | ; Maximum number of persistent links. -1 means no limit. 1163 | ; http://php.net/sybct.max-persistent 1164 | sybct.max_persistent = -1 1165 | 1166 | ; Maximum number of links (persistent + non-persistent). -1 means no limit. 1167 | ; http://php.net/sybct.max-links 1168 | sybct.max_links = -1 1169 | 1170 | ; Minimum server message severity to display. 1171 | ; http://php.net/sybct.min-server-severity 1172 | sybct.min_server_severity = 10 1173 | 1174 | ; Minimum client message severity to display. 1175 | ; http://php.net/sybct.min-client-severity 1176 | sybct.min_client_severity = 10 1177 | 1178 | ; Set per-context timeout 1179 | ; http://php.net/sybct.timeout 1180 | ;sybct.timeout= 1181 | 1182 | ;sybct.packet_size 1183 | 1184 | ; The maximum time in seconds to wait for a connection attempt to succeed before returning failure. 1185 | ; Default: one minute 1186 | ;sybct.login_timeout= 1187 | 1188 | ; The name of the host you claim to be connecting from, for display by sp_who. 1189 | ; Default: none 1190 | ;sybct.hostname= 1191 | 1192 | ; Allows you to define how often deadlocks are to be retried. -1 means "forever". 1193 | ; Default: 0 1194 | ;sybct.deadlock_retry_count= 1195 | 1196 | [bcmath] 1197 | ; Number of decimal digits for all bcmath functions. 1198 | ; http://php.net/bcmath.scale 1199 | bcmath.scale = 0 1200 | 1201 | [browscap] 1202 | ; http://php.net/browscap 1203 | ;browscap = extra/browscap.ini 1204 | 1205 | [Session] 1206 | ; Handler used to store/retrieve data. 1207 | ; http://php.net/session.save-handler 1208 | session.save_handler = files 1209 | 1210 | ; Argument passed to save_handler. In the case of files, this is the path 1211 | ; where data files are stored. Note: Windows users have to change this 1212 | ; variable in order to use PHP's session functions. 1213 | ; 1214 | ; The path can be defined as: 1215 | ; 1216 | ; session.save_path = "N;/path" 1217 | ; 1218 | ; where N is an integer. Instead of storing all the session files in 1219 | ; /path, what this will do is use subdirectories N-levels deep, and 1220 | ; store the session data in those directories. This is useful if you 1221 | ; or your OS have problems with lots of files in one directory, and is 1222 | ; a more efficient layout for servers that handle lots of sessions. 1223 | ; 1224 | ; NOTE 1: PHP will not create this directory structure automatically. 1225 | ; You can use the script in the ext/session dir for that purpose. 1226 | ; NOTE 2: See the section on garbage collection below if you choose to 1227 | ; use subdirectories for session storage 1228 | ; 1229 | ; The file storage module creates files using mode 600 by default. 1230 | ; You can change that by using 1231 | ; 1232 | ; session.save_path = "N;MODE;/path" 1233 | ; 1234 | ; where MODE is the octal representation of the mode. Note that this 1235 | ; does not overwrite the process's umask. 1236 | ; http://php.net/session.save-path 1237 | ;session.save_path = "/tmp" 1238 | 1239 | ; Whether to use cookies. 1240 | ; http://php.net/session.use-cookies 1241 | session.use_cookies = 1 1242 | 1243 | ; http://php.net/session.cookie-secure 1244 | session.cookie_secure = On 1245 | 1246 | ; This option forces PHP to fetch and use a cookie for storing and maintaining 1247 | ; the session id. We encourage this operation as it's very helpful in combatting 1248 | ; session hijacking when not specifying and managing your own session id. It is 1249 | ; not the end all be all of session hijacking defense, but it's a good start. 1250 | ; http://php.net/session.use-only-cookies 1251 | session.use_only_cookies = 1 1252 | 1253 | ; Name of the session (used as cookie name). 1254 | ; http://php.net/session.name 1255 | session.name = PHPSESSID 1256 | 1257 | ; Initialize session on request startup. 1258 | ; http://php.net/session.auto-start 1259 | session.auto_start = 0 1260 | 1261 | ; Lifetime in seconds of cookie or, if 0, until browser is restarted. 1262 | ; http://php.net/session.cookie-lifetime 1263 | session.cookie_lifetime = 0 1264 | 1265 | ; The path for which the cookie is valid. 1266 | ; http://php.net/session.cookie-path 1267 | session.cookie_path = / 1268 | 1269 | ; The domain for which the cookie is valid. 1270 | ; http://php.net/session.cookie-domain 1271 | session.cookie_domain = 1272 | 1273 | ; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. 1274 | ; http://php.net/session.cookie-httponly 1275 | session.cookie_httponly = On 1276 | 1277 | ; Handler used to serialize data. php is the standard serializer of PHP. 1278 | ; http://php.net/session.serialize-handler 1279 | session.serialize_handler = php 1280 | 1281 | ; Defines the probability that the 'garbage collection' process is started 1282 | ; on every session initialization. The probability is calculated by using 1283 | ; gc_probability/gc_divisor. Where session.gc_probability is the numerator 1284 | ; and gc_divisor is the denominator in the equation. Setting this value to 1 1285 | ; when the session.gc_divisor value is 100 will give you approximately a 1% chance 1286 | ; the gc will run on any give request. 1287 | ; Default Value: 1 1288 | ; Development Value: 1 1289 | ; Production Value: 1 1290 | ; http://php.net/session.gc-probability 1291 | session.gc_probability = 0 1292 | 1293 | ; Defines the probability that the 'garbage collection' process is started on every 1294 | ; session initialization. The probability is calculated by using the following equation: 1295 | ; gc_probability/gc_divisor. Where session.gc_probability is the numerator and 1296 | ; session.gc_divisor is the denominator in the equation. Setting this value to 1 1297 | ; when the session.gc_divisor value is 100 will give you approximately a 1% chance 1298 | ; the gc will run on any give request. Increasing this value to 1000 will give you 1299 | ; a 0.1% chance the gc will run on any give request. For high volume production servers, 1300 | ; this is a more efficient approach. 1301 | ; Default Value: 100 1302 | ; Development Value: 1000 1303 | ; Production Value: 1000 1304 | ; http://php.net/session.gc-divisor 1305 | session.gc_divisor = 1000 1306 | 1307 | ; After this number of seconds, stored data will be seen as 'garbage' and 1308 | ; cleaned up by the garbage collection process. 1309 | ; http://php.net/session.gc-maxlifetime 1310 | session.gc_maxlifetime = 1440 1311 | 1312 | ; NOTE: If you are using the subdirectory option for storing session files 1313 | ; (see session.save_path above), then garbage collection does *not* 1314 | ; happen automatically. You will need to do your own garbage 1315 | ; collection through a shell script, cron entry, or some other method. 1316 | ; For example, the following script would is the equivalent of 1317 | ; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): 1318 | ; find /path/to/sessions -cmin +24 | xargs rm 1319 | 1320 | ; PHP 4.2 and less have an undocumented feature/bug that allows you to 1321 | ; to initialize a session variable in the global scope, even when register_globals 1322 | ; is disabled. PHP 4.3 and later will warn you, if this feature is used. 1323 | ; You can disable the feature and the warning separately. At this time, 1324 | ; the warning is only displayed, if bug_compat_42 is enabled. This feature 1325 | ; introduces some serious security problems if not handled correctly. It's 1326 | ; recommended that you do not use this feature on production servers. But you 1327 | ; should enable this on development servers and enable the warning as well. If you 1328 | ; do not enable the feature on development servers, you won't be warned when it's 1329 | ; used and debugging errors caused by this can be difficult to track down. 1330 | ; Default Value: On 1331 | ; Development Value: On 1332 | ; Production Value: Off 1333 | ; http://php.net/session.bug-compat-42 1334 | session.bug_compat_42 = Off 1335 | 1336 | ; This setting controls whether or not you are warned by PHP when initializing a 1337 | ; session value into the global space. session.bug_compat_42 must be enabled before 1338 | ; these warnings can be issued by PHP. See the directive above for more information. 1339 | ; Default Value: On 1340 | ; Development Value: On 1341 | ; Production Value: Off 1342 | ; http://php.net/session.bug-compat-warn 1343 | session.bug_compat_warn = Off 1344 | 1345 | ; Check HTTP Referer to invalidate externally stored URLs containing ids. 1346 | ; HTTP_REFERER has to contain this substring for the session to be 1347 | ; considered as valid. 1348 | ; http://php.net/session.referer-check 1349 | session.referer_check = 1350 | 1351 | ; How many bytes to read from the file. 1352 | ; http://php.net/session.entropy-length 1353 | session.entropy_length = 0 1354 | 1355 | ; Specified here to create the session id. 1356 | ; http://php.net/session.entropy-file 1357 | ; On systems that don't have /dev/urandom /dev/arandom can be used 1358 | ; On windows, setting the entropy_length setting will activate the 1359 | ; Windows random source (using the CryptoAPI) 1360 | ;session.entropy_file = /dev/urandom 1361 | 1362 | ; Set to {nocache,private,public,} to determine HTTP caching aspects 1363 | ; or leave this empty to avoid sending anti-caching headers. 1364 | ; http://php.net/session.cache-limiter 1365 | session.cache_limiter = nocache 1366 | 1367 | ; Document expires after n minutes. 1368 | ; http://php.net/session.cache-expire 1369 | session.cache_expire = 180 1370 | 1371 | ; trans sid support is disabled by default. 1372 | ; Use of trans sid may risk your users security. 1373 | ; Use this option with caution. 1374 | ; - User may send URL contains active session ID 1375 | ; to other person via. email/irc/etc. 1376 | ; - URL that contains active session ID may be stored 1377 | ; in publically accessible computer. 1378 | ; - User may access your site with the same session ID 1379 | ; always using URL stored in browser's history or bookmarks. 1380 | ; http://php.net/session.use-trans-sid 1381 | session.use_trans_sid = 0 1382 | 1383 | ; Select a hash function for use in generating session ids. 1384 | ; Possible Values 1385 | ; 0 (MD5 128 bits) 1386 | ; 1 (SHA-1 160 bits) 1387 | ; This option may also be set to the name of any hash function supported by 1388 | ; the hash extension. A list of available hashes is returned by the hash_algos() 1389 | ; function. 1390 | ; http://php.net/session.hash-function 1391 | session.hash_function = 0 1392 | 1393 | ; Define how many bits are stored in each character when converting 1394 | ; the binary hash data to something readable. 1395 | ; Possible values: 1396 | ; 4 (4 bits: 0-9, a-f) 1397 | ; 5 (5 bits: 0-9, a-v) 1398 | ; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") 1399 | ; Default Value: 4 1400 | ; Development Value: 5 1401 | ; Production Value: 5 1402 | ; http://php.net/session.hash-bits-per-character 1403 | session.hash_bits_per_character = 5 1404 | 1405 | ; The URL rewriter will look for URLs in a defined set of HTML tags. 1406 | ; form/fieldset are special; if you include them here, the rewriter will 1407 | ; add a hidden field with the info which is otherwise appended 1408 | ; to URLs. If you want XHTML conformity, remove the form entry. 1409 | ; Note that all valid entries require a "=", even if no value follows. 1410 | ; Default Value: "a=href,area=href,frame=src,form=,fieldset=" 1411 | ; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry" 1412 | ; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry" 1413 | ; http://php.net/url-rewriter.tags 1414 | url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" 1415 | 1416 | [MSSQL] 1417 | ; Allow or prevent persistent links. 1418 | mssql.allow_persistent = On 1419 | 1420 | ; Maximum number of persistent links. -1 means no limit. 1421 | mssql.max_persistent = -1 1422 | 1423 | ; Maximum number of links (persistent+non persistent). -1 means no limit. 1424 | mssql.max_links = -1 1425 | 1426 | ; Minimum error severity to display. 1427 | mssql.min_error_severity = 10 1428 | 1429 | ; Minimum message severity to display. 1430 | mssql.min_message_severity = 10 1431 | 1432 | ; Compatibility mode with old versions of PHP 3.0. 1433 | mssql.compatability_mode = Off 1434 | 1435 | ; Connect timeout 1436 | ;mssql.connect_timeout = 5 1437 | 1438 | ; Query timeout 1439 | ;mssql.timeout = 60 1440 | 1441 | ; Valid range 0 - 2147483647. Default = 4096. 1442 | ;mssql.textlimit = 4096 1443 | 1444 | ; Valid range 0 - 2147483647. Default = 4096. 1445 | ;mssql.textsize = 4096 1446 | 1447 | ; Limits the number of records in each batch. 0 = all records in one batch. 1448 | ;mssql.batchsize = 0 1449 | 1450 | ; Specify how datetime and datetim4 columns are returned 1451 | ; On => Returns data converted to SQL server settings 1452 | ; Off => Returns values as YYYY-MM-DD hh:mm:ss 1453 | ;mssql.datetimeconvert = On 1454 | 1455 | ; Use NT authentication when connecting to the server 1456 | mssql.secure_connection = Off 1457 | 1458 | ; Specify max number of processes. -1 = library default 1459 | ; msdlib defaults to 25 1460 | ; FreeTDS defaults to 4096 1461 | ;mssql.max_procs = -1 1462 | 1463 | ; Specify client character set. 1464 | ; If empty or not set the client charset from freetds.conf is used 1465 | ; This is only used when compiled with FreeTDS 1466 | ;mssql.charset = "ISO-8859-1" 1467 | 1468 | [Assertion] 1469 | ; Assert(expr); active by default. 1470 | ; http://php.net/assert.active 1471 | ;assert.active = On 1472 | 1473 | ; Issue a PHP warning for each failed assertion. 1474 | ; http://php.net/assert.warning 1475 | ;assert.warning = On 1476 | 1477 | ; Don't bail out by default. 1478 | ; http://php.net/assert.bail 1479 | ;assert.bail = Off 1480 | 1481 | ; User-function to be called if an assertion fails. 1482 | ; http://php.net/assert.callback 1483 | ;assert.callback = 0 1484 | 1485 | ; Eval the expression with current error_reporting(). Set to true if you want 1486 | ; error_reporting(0) around the eval(). 1487 | ; http://php.net/assert.quiet-eval 1488 | ;assert.quiet_eval = 0 1489 | 1490 | [COM] 1491 | ; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs 1492 | ; http://php.net/com.typelib-file 1493 | ;com.typelib_file = 1494 | 1495 | ; allow Distributed-COM calls 1496 | ; http://php.net/com.allow-dcom 1497 | ;com.allow_dcom = true 1498 | 1499 | ; autoregister constants of a components typlib on com_load() 1500 | ; http://php.net/com.autoregister-typelib 1501 | ;com.autoregister_typelib = true 1502 | 1503 | ; register constants casesensitive 1504 | ; http://php.net/com.autoregister-casesensitive 1505 | ;com.autoregister_casesensitive = false 1506 | 1507 | ; show warnings on duplicate constant registrations 1508 | ; http://php.net/com.autoregister-verbose 1509 | ;com.autoregister_verbose = true 1510 | 1511 | ; The default character set code-page to use when passing strings to and from COM objects. 1512 | ; Default: system ANSI code page 1513 | ;com.code_page= 1514 | 1515 | [mbstring] 1516 | ; language for internal character representation. 1517 | ; http://php.net/mbstring.language 1518 | ;mbstring.language = Japanese 1519 | 1520 | ; internal/script encoding. 1521 | ; Some encoding cannot work as internal encoding. 1522 | ; (e.g. SJIS, BIG5, ISO-2022-*) 1523 | ; http://php.net/mbstring.internal-encoding 1524 | ;mbstring.internal_encoding = EUC-JP 1525 | 1526 | ; http input encoding. 1527 | ; http://php.net/mbstring.http-input 1528 | ;mbstring.http_input = auto 1529 | 1530 | ; http output encoding. mb_output_handler must be 1531 | ; registered as output buffer to function 1532 | ; http://php.net/mbstring.http-output 1533 | ;mbstring.http_output = SJIS 1534 | 1535 | ; enable automatic encoding translation according to 1536 | ; mbstring.internal_encoding setting. Input chars are 1537 | ; converted to internal encoding by setting this to On. 1538 | ; Note: Do _not_ use automatic encoding translation for 1539 | ; portable libs/applications. 1540 | ; http://php.net/mbstring.encoding-translation 1541 | ;mbstring.encoding_translation = Off 1542 | 1543 | ; automatic encoding detection order. 1544 | ; auto means 1545 | ; http://php.net/mbstring.detect-order 1546 | ;mbstring.detect_order = auto 1547 | 1548 | ; substitute_character used when character cannot be converted 1549 | ; one from another 1550 | ; http://php.net/mbstring.substitute-character 1551 | ;mbstring.substitute_character = none; 1552 | 1553 | ; overload(replace) single byte functions by mbstring functions. 1554 | ; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), 1555 | ; etc. Possible values are 0,1,2,4 or combination of them. 1556 | ; For example, 7 for overload everything. 1557 | ; 0: No overload 1558 | ; 1: Overload mail() function 1559 | ; 2: Overload str*() functions 1560 | ; 4: Overload ereg*() functions 1561 | ; http://php.net/mbstring.func-overload 1562 | ;mbstring.func_overload = 0 1563 | 1564 | ; enable strict encoding detection. 1565 | ;mbstring.strict_detection = Off 1566 | 1567 | ; This directive specifies the regex pattern of content types for which mb_output_handler() 1568 | ; is activated. 1569 | ; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) 1570 | ;mbstring.http_output_conv_mimetype= 1571 | 1572 | ; Allows to set script encoding. Only affects if PHP is compiled with --enable-zend-multibyte 1573 | ; Default: "" 1574 | ;mbstring.script_encoding= 1575 | 1576 | [gd] 1577 | ; Tell the jpeg decode to ignore warnings and try to create 1578 | ; a gd image. The warning will then be displayed as notices 1579 | ; disabled by default 1580 | ; http://php.net/gd.jpeg-ignore-warning 1581 | ;gd.jpeg_ignore_warning = 0 1582 | 1583 | [exif] 1584 | ; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. 1585 | ; With mbstring support this will automatically be converted into the encoding 1586 | ; given by corresponding encode setting. When empty mbstring.internal_encoding 1587 | ; is used. For the decode settings you can distinguish between motorola and 1588 | ; intel byte order. A decode setting cannot be empty. 1589 | ; http://php.net/exif.encode-unicode 1590 | ;exif.encode_unicode = ISO-8859-15 1591 | 1592 | ; http://php.net/exif.decode-unicode-motorola 1593 | ;exif.decode_unicode_motorola = UCS-2BE 1594 | 1595 | ; http://php.net/exif.decode-unicode-intel 1596 | ;exif.decode_unicode_intel = UCS-2LE 1597 | 1598 | ; http://php.net/exif.encode-jis 1599 | ;exif.encode_jis = 1600 | 1601 | ; http://php.net/exif.decode-jis-motorola 1602 | ;exif.decode_jis_motorola = JIS 1603 | 1604 | ; http://php.net/exif.decode-jis-intel 1605 | ;exif.decode_jis_intel = JIS 1606 | 1607 | [Tidy] 1608 | ; The path to a default tidy configuration file to use when using tidy 1609 | ; http://php.net/tidy.default-config 1610 | ;tidy.default_config = /usr/local/lib/php/default.tcfg 1611 | 1612 | ; Should tidy clean and repair output automatically? 1613 | ; WARNING: Do not use this option if you are generating non-html content 1614 | ; such as dynamic images 1615 | ; http://php.net/tidy.clean-output 1616 | tidy.clean_output = Off 1617 | 1618 | [soap] 1619 | ; Enables or disables WSDL caching feature. 1620 | ; http://php.net/soap.wsdl-cache-enabled 1621 | soap.wsdl_cache_enabled=1 1622 | 1623 | ; Sets the directory name where SOAP extension will put cache files. 1624 | ; http://php.net/soap.wsdl-cache-dir 1625 | soap.wsdl_cache_dir="/tmp" 1626 | 1627 | ; (time to live) Sets the number of second while cached file will be used 1628 | ; instead of original one. 1629 | ; http://php.net/soap.wsdl-cache-ttl 1630 | soap.wsdl_cache_ttl=86400 1631 | 1632 | ; Sets the size of the cache limit. (Max. number of WSDL files to cache) 1633 | soap.wsdl_cache_limit = 5 1634 | 1635 | [sysvshm] 1636 | ; A default size of the shared memory segment 1637 | ;sysvshm.init_mem = 10000 1638 | 1639 | [ldap] 1640 | ; Sets the maximum number of open links or -1 for unlimited. 1641 | ldap.max_links = -1 1642 | 1643 | [dba] 1644 | ;dba.default_handler= 1645 | 1646 | [xsl] 1647 | ; Write operations from within XSLT are disabled by default. 1648 | ; XSL_SECPREF_CREATE_DIRECTORY | XSL_SECPREF_WRITE_NETWORK | XSL_SECPREF_WRITE_FILE = 44 1649 | ; Set it to 0 to allow all operations 1650 | ;xsl.security_prefs = 44 1651 | 1652 | ; Local Variables: 1653 | ; tab-width: 4 1654 | ; End: 1655 | -------------------------------------------------------------------------------- /5.6/php_debug.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "the image has the the xdebug module installed" { 4 | run docker run --rm ${container} php -m 5 | echo 'status:' $status 6 | echo 'output:' $output 7 | [ "$status" -eq 0 ] 8 | [[ "${output}" == *xdebug* ]] 9 | } 10 | -------------------------------------------------------------------------------- /5.6/tags.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "the main tags are created" { 4 | id=`bash -c "docker images graze/php-alpine:5.6 --format '{{.ID}}'"` 5 | run bash -c "docker images graze/php-alpine --format '{{.ID}} ({{.Tag}})' | grep $id" 6 | echo 'status:' $status 7 | echo 'output:' $output 8 | [ "$status" -eq 0 ] 9 | [[ "$output" == *"(5)"* ]] 10 | [[ "$output" == *"(5.6)"* ]] 11 | [[ "$output" != *"(latest)"* ]] 12 | 13 | [[ "$output" != *"(5-test)"* ]] 14 | [[ "$output" != *"(5.6-test)"* ]] 15 | [[ "$output" != *"(test)"* ]] 16 | } 17 | 18 | @test "the test tags are created" { 19 | id=`bash -c "docker images graze/php-alpine:5.6-test --format '{{.ID}}'"` 20 | run bash -c "docker images graze/php-alpine --format '{{.ID}} ({{.Tag}})' | grep $id" 21 | echo 'status:' $status 22 | echo 'output:' $output 23 | [ "$status" -eq 0 ] 24 | [[ "$output" == *"(5-test)"* ]] 25 | [[ "$output" == *"(5.6-test)"* ]] 26 | [[ "$output" != *"(test)"* ]] 27 | 28 | [[ "$output" != *"(5)"* ]] 29 | [[ "$output" != *"(5.6)"* ]] 30 | [[ "$output" != *"(latest)"* ]] 31 | } 32 | -------------------------------------------------------------------------------- /7.0/.dockerignore: -------------------------------------------------------------------------------- 1 | *.bats 2 | -------------------------------------------------------------------------------- /7.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.5 2 | 3 | LABEL maintainer="developers@graze.com" \ 4 | license="MIT" \ 5 | org.label-schema.schema-version="1.0" \ 6 | org.label-schema.vendor="graze" \ 7 | org.label-schema.name="php-alpine" \ 8 | org.label-schema.description="small php image based on alpine" \ 9 | org.label-schema.vcs-url="https://github.com/graze/docker-php-alpine" 10 | 11 | RUN apk add --no-cache \ 12 | ca-certificates \ 13 | curl \ 14 | openssh-client \ 15 | pcre \ 16 | libmemcached-libs \ 17 | libevent \ 18 | libssl1.0 \ 19 | zlib \ 20 | php7 \ 21 | php7-bcmath \ 22 | php7-ctype \ 23 | php7-curl \ 24 | php7-dom \ 25 | php7-iconv \ 26 | php7-intl \ 27 | php7-json \ 28 | php7-openssl \ 29 | php7-opcache \ 30 | php7-mbstring \ 31 | php7-mysqlnd \ 32 | php7-mysqli \ 33 | php7-pcntl \ 34 | php7-pgsql \ 35 | php7-pdo_mysql \ 36 | php7-pdo_pgsql \ 37 | php7-pdo_sqlite \ 38 | php7-phar \ 39 | php7-posix \ 40 | php7-session \ 41 | php7-soap \ 42 | php7-sockets \ 43 | php7-xml \ 44 | php7-xmlreader \ 45 | php7-zip \ 46 | php7-zlib \ 47 | # alpine 3.10 is the first version that provides a gnu-libiconv with the preload library needed 48 | && apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.10/community/ --allow-untrusted \ 49 | gnu-libiconv 50 | 51 | # install and remove building packages 52 | ENV PHPIZE_DEPS autoconf file g++ gcc libc-dev make pkgconf re2c php7-dev php7-pear \ 53 | pcre-dev zlib-dev libmemcached-dev cyrus-sasl-dev libevent-dev openssl-dev 54 | 55 | ENV PHP_INI_DIR /etc/php7 56 | 57 | RUN set -xe \ 58 | && apk add --no-cache \ 59 | --virtual .phpize-deps \ 60 | $PHPIZE_DEPS \ 61 | && sed -i 's/^exec $PHP -C -n/exec $PHP -C/g' $(which pecl) \ 62 | && pecl channel-update pecl.php.net \ 63 | && pecl install apcu memcached event \ 64 | && echo "extension=apcu.so" > $PHP_INI_DIR/conf.d/01_apcu.ini \ 65 | && echo "extension=event.so" > $PHP_INI_DIR/conf.d/01_event.ini \ 66 | && echo "extension=memcached.so" > $PHP_INI_DIR/conf.d/20_memcached.ini \ 67 | && rm -rf /usr/share/php7 \ 68 | && rm -rf /tmp/* \ 69 | && apk del .phpize-deps 70 | 71 | RUN ln -s /usr/bin/php7 /usr/bin/php 72 | 73 | COPY php/php.ini $PHP_INI_DIR/ 74 | 75 | WORKDIR /srv 76 | 77 | ARG BUILD_DATE 78 | ARG VCS_REF 79 | 80 | LABEL org.label-schema.vcs-ref=$VCS_REF \ 81 | org.label-schema.build-date=$BUILD_DATE 82 | 83 | # Fix for iconv: https://github.com/docker-library/php/issues/240 84 | ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php 85 | -------------------------------------------------------------------------------- /7.0/debug.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM graze/php-alpine:7.0 2 | 3 | RUN apk add --no-cache \ 4 | php7-phpdbg 5 | 6 | ARG BUILD_DATE 7 | ARG VCS_REF 8 | 9 | LABEL org.label-schema.vcs-ref=$VCS_REF \ 10 | org.label-schema.build-date=$BUILD_DATE 11 | -------------------------------------------------------------------------------- /7.0/php.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "php version is correct" { 4 | run docker run --rm ${container} php -v 5 | echo 'status:' $status 6 | echo 'output:' $output 7 | version="$(echo $output | sed 's/.*PHP \([0-9].[0-9]\).*/\1/')" 8 | echo 'version:' $version 9 | [ "$status" -eq 0 ] 10 | [[ "$version" == "7.0" ]] 11 | } 12 | 13 | @test "the image has the correct php modules installed" { 14 | run docker run --rm ${container} php -m 15 | echo 'status:' $status 16 | echo 'output:' $output 17 | [ "$status" -eq 0 ] 18 | [[ "${output}" == *"apcu"* ]] 19 | [[ "${output}" == *"bcmath"* ]] 20 | [[ "${output}" == *"Core"* ]] 21 | [[ "${output}" == *"ctype"* ]] 22 | [[ "${output}" == *"curl"* ]] 23 | [[ "${output}" == *"date"* ]] 24 | [[ "${output}" == *"dom"* ]] 25 | [[ "${output}" == *"event"* ]] 26 | [[ "${output}" == *"fileinfo"* ]] 27 | [[ "${output}" == *"filter"* ]] 28 | [[ "${output}" == *"hash"* ]] 29 | [[ "${output}" == *"iconv"* ]] 30 | [[ "${output}" == *"intl"* ]] 31 | [[ "${output}" == *"json"* ]] 32 | [[ "${output}" == *"libxml"* ]] 33 | [[ "${output}" == *"mbstring"* ]] 34 | [[ "${output}" == *"memcached"* ]] 35 | [[ "${output}" == *"mysqli"* ]] 36 | [[ "${output}" == *"mysqlnd"* ]] 37 | [[ "${output}" == *"openssl"* ]] 38 | [[ "${output}" == *"pcre"* ]] 39 | [[ "${output}" == *"pcntl"* ]] 40 | [[ "${output}" == *"PDO"* ]] 41 | [[ "${output}" == *"pdo_mysql"* ]] 42 | [[ "${output}" == *"pdo_pgsql"* ]] 43 | [[ "${output}" == *"pdo_sqlite"* ]] 44 | [[ "${output}" == *"pgsql"* ]] 45 | [[ "${output}" == *"Phar"* ]] 46 | [[ "${output}" == *"posix"* ]] 47 | [[ "${output}" == *"readline"* ]] 48 | [[ "${output}" == *"Reflection"* ]] 49 | [[ "${output}" == *"session"* ]] 50 | [[ "${output}" == *"SimpleXML"* ]] 51 | [[ "${output}" == *"soap"* ]] 52 | [[ "${output}" == *"sockets"* ]] 53 | [[ "${output}" == *"SPL"* ]] 54 | [[ "${output}" == *"standard"* ]] 55 | [[ "${output}" == *"tokenizer"* ]] 56 | [[ "${output}" == *"xml"* ]] 57 | [[ "${output}" == *"xmlreader"* ]] 58 | [[ "${output}" == *"xmlwriter"* ]] 59 | [[ "${output}" == *"Zend OPcache"* ]] 60 | [[ "${output}" == *"zip"* ]] 61 | [[ "${output}" == *"zlib"* ]] 62 | } 63 | -------------------------------------------------------------------------------- /7.0/php/php.ini: -------------------------------------------------------------------------------- 1 | [PHP] 2 | 3 | ;;;;;;;;;;;;;;;;;;;; 4 | ; Language Options ; 5 | ;;;;;;;;;;;;;;;;;;;; 6 | 7 | ; Enable the PHP scripting language engine under Apache. 8 | ; http://php.net/engine 9 | engine = On 10 | 11 | ; This directive determines whether or not PHP will recognize code between 12 | ; tags as PHP source which should be processed as such. It's been 13 | ; recommended for several years that you not use the short tag "short cut" and 14 | ; instead to use the full tag combination. With the wide spread use 15 | ; of XML and use of these tags by other languages, the server can become easily 16 | ; confused and end up parsing the wrong code in the wrong context. But because 17 | ; this short cut has been a feature for such a long time, it's currently still 18 | ; supported for backwards compatibility, but we recommend you don't use them. 19 | ; Default Value: On 20 | ; Development Value: Off 21 | ; Production Value: Off 22 | ; http://php.net/short-open-tag 23 | short_open_tag = On 24 | 25 | ; Allow ASP-style tags. 26 | ; http://php.net/asp-tags 27 | asp_tags = Off 28 | 29 | ; The number of significant digits displayed in floating point numbers. 30 | ; http://php.net/precision 31 | precision = 14 32 | 33 | ; Enforce year 2000 compliance (will cause problems with non-compliant browsers) 34 | ; http://php.net/y2k-compliance 35 | y2k_compliance = On 36 | 37 | ; Output buffering is a mechanism for controlling how much output data 38 | ; (excluding headers and cookies) PHP should keep internally before pushing that 39 | ; data to the client. If your application's output exceeds this setting, PHP 40 | ; will send that data in chunks of roughly the size you specify. 41 | ; Turning on this setting and managing its maximum buffer size can yield some 42 | ; interesting side-effects depending on your application and web server. 43 | ; You may be able to send headers and cookies after you've already sent output 44 | ; through print or echo. You also may see performance benefits if your server is 45 | ; emitting less packets due to buffered output versus PHP streaming the output 46 | ; as it gets it. On production servers, 4096 bytes is a good setting for performance 47 | ; reasons. 48 | ; Note: Output buffering can also be controlled via Output Buffering Control 49 | ; functions. 50 | ; Possible Values: 51 | ; On = Enabled and buffer is unlimited. (Use with caution) 52 | ; Off = Disabled 53 | ; Integer = Enables the buffer and sets its maximum size in bytes. 54 | ; Note: This directive is hardcoded to Off for the CLI SAPI 55 | ; Default Value: Off 56 | ; Development Value: 4096 57 | ; Production Value: 4096 58 | ; http://php.net/output-buffering 59 | output_buffering = 4096 60 | 61 | ; You can redirect all of the output of your scripts to a function. For 62 | ; example, if you set output_handler to "mb_output_handler", character 63 | ; encoding will be transparently converted to the specified encoding. 64 | ; Setting any output handler automatically turns on output buffering. 65 | ; Note: People who wrote portable scripts should not depend on this ini 66 | ; directive. Instead, explicitly set the output handler using ob_start(). 67 | ; Using this ini directive may cause problems unless you know what script 68 | ; is doing. 69 | ; Note: You cannot use both "mb_output_handler" with "ob_iconv_handler" 70 | ; and you cannot use both "ob_gzhandler" and "zlib.output_compression". 71 | ; Note: output_handler must be empty if this is set 'On' !!!! 72 | ; Instead you must use zlib.output_handler. 73 | ; http://php.net/output-handler 74 | ;output_handler = 75 | 76 | ; Transparent output compression using the zlib library 77 | ; Valid values for this option are 'off', 'on', or a specific buffer size 78 | ; to be used for compression (default is 4KB) 79 | ; Note: Resulting chunk size may vary due to nature of compression. PHP 80 | ; outputs chunks that are few hundreds bytes each as a result of 81 | ; compression. If you prefer a larger chunk size for better 82 | ; performance, enable output_buffering in addition. 83 | ; Note: You need to use zlib.output_handler instead of the standard 84 | ; output_handler, or otherwise the output will be corrupted. 85 | ; http://php.net/zlib.output-compression 86 | zlib.output_compression = Off 87 | 88 | ; http://php.net/zlib.output-compression-level 89 | ;zlib.output_compression_level = -1 90 | 91 | ; You cannot specify additional output handlers if zlib.output_compression 92 | ; is activated here. This setting does the same as output_handler but in 93 | ; a different order. 94 | ; http://php.net/zlib.output-handler 95 | ;zlib.output_handler = 96 | 97 | ; Implicit flush tells PHP to tell the output layer to flush itself 98 | ; automatically after every output block. This is equivalent to calling the 99 | ; PHP function flush() after each and every call to print() or echo() and each 100 | ; and every HTML block. Turning this option on has serious performance 101 | ; implications and is generally recommended for debugging purposes only. 102 | ; http://php.net/implicit-flush 103 | ; Note: This directive is hardcoded to On for the CLI SAPI 104 | implicit_flush = Off 105 | 106 | ; The unserialize callback function will be called (with the undefined class' 107 | ; name as parameter), if the unserializer finds an undefined class 108 | ; which should be instantiated. A warning appears if the specified function is 109 | ; not defined, or if the function doesn't include/implement the missing class. 110 | ; So only set this entry, if you really want to implement such a 111 | ; callback-function. 112 | unserialize_callback_func = 113 | 114 | ; When floats & doubles are serialized store serialize_precision significant 115 | ; digits after the floating point. The default value ensures that when floats 116 | ; are decoded with unserialize, the data will remain the same. 117 | serialize_precision = 17 118 | 119 | ; This directive allows you to enable and disable warnings which PHP will issue 120 | ; if you pass a value by reference at function call time. Passing values by 121 | ; reference at function call time is a deprecated feature which will be removed 122 | ; from PHP at some point in the near future. The acceptable method for passing a 123 | ; value by reference to a function is by declaring the reference in the functions 124 | ; definition, not at call time. This directive does not disable this feature, it 125 | ; only determines whether PHP will warn you about it or not. These warnings 126 | ; should enabled in development environments only. 127 | ; Default Value: On (Suppress warnings) 128 | ; Development Value: Off (Issue warnings) 129 | ; Production Value: Off (Issue warnings) 130 | ; http://php.net/allow-call-time-pass-reference 131 | allow_call_time_pass_reference = Off 132 | 133 | ; Safe Mode 134 | ; http://php.net/safe-mode 135 | safe_mode = Off 136 | 137 | ; By default, Safe Mode does a UID compare check when 138 | ; opening files. If you want to relax this to a GID compare, 139 | ; then turn on safe_mode_gid. 140 | ; http://php.net/safe-mode-gid 141 | safe_mode_gid = Off 142 | 143 | ; When safe_mode is on, UID/GID checks are bypassed when 144 | ; including files from this directory and its subdirectories. 145 | ; (directory must also be in include_path or full path must 146 | ; be used when including) 147 | ; http://php.net/safe-mode-include-dir 148 | safe_mode_include_dir = 149 | 150 | ; When safe_mode is on, only executables located in the safe_mode_exec_dir 151 | ; will be allowed to be executed via the exec family of functions. 152 | ; http://php.net/safe-mode-exec-dir 153 | safe_mode_exec_dir = 154 | 155 | ; Setting certain environment variables may be a potential security breach. 156 | ; This directive contains a comma-delimited list of prefixes. In Safe Mode, 157 | ; the user may only alter environment variables whose names begin with the 158 | ; prefixes supplied here. By default, users will only be able to set 159 | ; environment variables that begin with PHP_ (e.g. PHP_FOO=BAR). 160 | ; Note: If this directive is empty, PHP will let the user modify ANY 161 | ; environment variable! 162 | ; http://php.net/safe-mode-allowed-env-vars 163 | safe_mode_allowed_env_vars = PHP_ 164 | 165 | ; This directive contains a comma-delimited list of environment variables that 166 | ; the end user won't be able to change using putenv(). These variables will be 167 | ; protected even if safe_mode_allowed_env_vars is set to allow to change them. 168 | ; http://php.net/safe-mode-protected-env-vars 169 | safe_mode_protected_env_vars = LD_LIBRARY_PATH 170 | 171 | ; open_basedir, if set, limits all file operations to the defined directory 172 | ; and below. This directive makes most sense if used in a per-directory 173 | ; or per-virtualhost web server configuration file. This directive is 174 | ; *NOT* affected by whether Safe Mode is turned On or Off. 175 | ; http://php.net/open-basedir 176 | ;open_basedir = 177 | 178 | ; This directive allows you to disable certain functions for security reasons. 179 | ; It receives a comma-delimited list of function names. This directive is 180 | ; *NOT* affected by whether Safe Mode is turned On or Off. 181 | ; http://php.net/disable-functions 182 | disable_functions = 183 | 184 | ; This directive allows you to disable certain classes for security reasons. 185 | ; It receives a comma-delimited list of class names. This directive is 186 | ; *NOT* affected by whether Safe Mode is turned On or Off. 187 | ; http://php.net/disable-classes 188 | disable_classes = 189 | 190 | ; Colors for Syntax Highlighting mode. Anything that's acceptable in 191 | ; would work. 192 | ; http://php.net/syntax-highlighting 193 | ;highlight.string = #DD0000 194 | ;highlight.comment = #FF9900 195 | ;highlight.keyword = #007700 196 | ;highlight.bg = #FFFFFF 197 | ;highlight.default = #0000BB 198 | ;highlight.html = #000000 199 | 200 | ; If enabled, the request will be allowed to complete even if the user aborts 201 | ; the request. Consider enabling it if executing long requests, which may end up 202 | ; being interrupted by the user or a browser timing out. PHP's default behavior 203 | ; is to disable this feature. 204 | ; http://php.net/ignore-user-abort 205 | ;ignore_user_abort = On 206 | 207 | ; Determines the size of the realpath cache to be used by PHP. This value should 208 | ; be increased on systems where PHP opens many files to reflect the quantity of 209 | ; the file operations performed. 210 | ; http://php.net/realpath-cache-size 211 | ;realpath_cache_size = 16k 212 | 213 | ; Duration of time, in seconds for which to cache realpath information for a given 214 | ; file or directory. For systems with rarely changing files, consider increasing this 215 | ; value. 216 | ; http://php.net/realpath-cache-ttl 217 | ;realpath_cache_ttl = 120 218 | 219 | ; Enables or disables the circular reference collector. 220 | ; http://php.net/zend.enable-gc 221 | zend.enable_gc = On 222 | 223 | ;;;;;;;;;;;;;;;;; 224 | ; Miscellaneous ; 225 | ;;;;;;;;;;;;;;;;; 226 | 227 | ; Decides whether PHP may expose the fact that it is installed on the server 228 | ; (e.g. by adding its signature to the Web server header). It is no security 229 | ; threat in any way, but it makes it possible to determine whether you use PHP 230 | ; on your server or not. 231 | ; http://php.net/expose-php 232 | expose_php = Off 233 | 234 | ;;;;;;;;;;;;;;;;;;; 235 | ; Resource Limits ; 236 | ;;;;;;;;;;;;;;;;;;; 237 | 238 | ; Maximum execution time of each script, in seconds 239 | ; http://php.net/max-execution-time 240 | ; Note: This directive is hardcoded to 0 for the CLI SAPI 241 | max_execution_time = 300 242 | 243 | ; Maximum amount of time each script may spend parsing request data. It's a good 244 | ; idea to limit this time on productions servers in order to eliminate unexpectedly 245 | ; long running scripts. 246 | ; Note: This directive is hardcoded to -1 for the CLI SAPI 247 | ; Default Value: -1 (Unlimited) 248 | ; Development Value: 60 (60 seconds) 249 | ; Production Value: 60 (60 seconds) 250 | ; http://php.net/max-input-time 251 | max_input_time = 60 252 | 253 | ; Maximum input variable nesting level 254 | ; http://php.net/max-input-nesting-level 255 | ;max_input_nesting_level = 64 256 | 257 | ; How many GET/POST/COOKIE input variables may be accepted 258 | ; max_input_vars = 1000 259 | 260 | ; Maximum amount of memory a script may consume (128MB) 261 | ; http://php.net/memory-limit 262 | memory_limit = 1024M 263 | 264 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 265 | ; Error handling and logging ; 266 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 267 | 268 | ; This directive informs PHP of which errors, warnings and notices you would like 269 | ; it to take action for. The recommended way of setting values for this 270 | ; directive is through the use of the error level constants and bitwise 271 | ; operators. The error level constants are below here for convenience as well as 272 | ; some common settings and their meanings. 273 | ; By default, PHP is set to take action on all errors, notices and warnings EXCEPT 274 | ; those related to E_NOTICE and E_STRICT, which together cover best practices and 275 | ; recommended coding standards in PHP. For performance reasons, this is the 276 | ; recommend error reporting setting. Your production server shouldn't be wasting 277 | ; resources complaining about best practices and coding standards. That's what 278 | ; development servers and development settings are for. 279 | ; Note: The php.ini-development file has this setting as E_ALL | E_STRICT. This 280 | ; means it pretty much reports everything which is exactly what you want during 281 | ; development and early testing. 282 | ; 283 | ; Error Level Constants: 284 | ; E_ALL - All errors and warnings (includes E_STRICT as of PHP 6.0.0) 285 | ; E_ERROR - fatal run-time errors 286 | ; E_RECOVERABLE_ERROR - almost fatal run-time errors 287 | ; E_WARNING - run-time warnings (non-fatal errors) 288 | ; E_PARSE - compile-time parse errors 289 | ; E_NOTICE - run-time notices (these are warnings which often result 290 | ; from a bug in your code, but it's possible that it was 291 | ; intentional (e.g., using an uninitialized variable and 292 | ; relying on the fact it's automatically initialized to an 293 | ; empty string) 294 | ; E_STRICT - run-time notices, enable to have PHP suggest changes 295 | ; to your code which will ensure the best interoperability 296 | ; and forward compatibility of your code 297 | ; E_CORE_ERROR - fatal errors that occur during PHP's initial startup 298 | ; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's 299 | ; initial startup 300 | ; E_COMPILE_ERROR - fatal compile-time errors 301 | ; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) 302 | ; E_USER_ERROR - user-generated error message 303 | ; E_USER_WARNING - user-generated warning message 304 | ; E_USER_NOTICE - user-generated notice message 305 | ; E_DEPRECATED - warn about code that will not work in future versions 306 | ; of PHP 307 | ; E_USER_DEPRECATED - user-generated deprecation warnings 308 | ; 309 | ; Common Values: 310 | ; E_ALL & ~E_NOTICE (Show all errors, except for notices and coding standards warnings.) 311 | ; E_ALL & ~E_NOTICE | E_STRICT (Show all errors, except for notices) 312 | ; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) 313 | ; E_ALL | E_STRICT (Show all errors, warnings and notices including coding standards.) 314 | ; Default Value: E_ALL & ~E_NOTICE 315 | ; Development Value: E_ALL | E_STRICT 316 | ; Production Value: E_ALL & ~E_DEPRECATED 317 | ; http://php.net/error-reporting 318 | error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT 319 | 320 | ; This directive controls whether or not and where PHP will output errors, 321 | ; notices and warnings too. Error output is very useful during development, but 322 | ; it could be very dangerous in production environments. Depending on the code 323 | ; which is triggering the error, sensitive information could potentially leak 324 | ; out of your application such as database usernames and passwords or worse. 325 | ; It's recommended that errors be logged on production servers rather than 326 | ; having the errors sent to STDOUT. 327 | ; Possible Values: 328 | ; Off = Do not display any errors 329 | ; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) 330 | ; On or stdout = Display errors to STDOUT 331 | ; Default Value: On 332 | ; Development Value: On 333 | ; Production Value: Off 334 | ; http://php.net/display-errors 335 | display_errors = 336 | 337 | ; The display of errors which occur during PHP's startup sequence are handled 338 | ; separately from display_errors. PHP's default behavior is to suppress those 339 | ; errors from clients. Turning the display of startup errors on can be useful in 340 | ; debugging configuration problems. But, it's strongly recommended that you 341 | ; leave this setting off on production servers. 342 | ; Default Value: Off 343 | ; Development Value: On 344 | ; Production Value: Off 345 | ; http://php.net/display-startup-errors 346 | display_startup_errors = Off 347 | 348 | ; Besides displaying errors, PHP can also log errors to locations such as a 349 | ; server-specific log, STDERR, or a location specified by the error_log 350 | ; directive found below. While errors should not be displayed on productions 351 | ; servers they should still be monitored and logging is a great way to do that. 352 | ; Default Value: Off 353 | ; Development Value: On 354 | ; Production Value: On 355 | ; http://php.net/log-errors 356 | log_errors = On 357 | 358 | ; Set maximum length of log_errors. In error_log information about the source is 359 | ; added. The default is 1024 and 0 allows to not apply any maximum length at all. 360 | ; http://php.net/log-errors-max-len 361 | log_errors_max_len = 1024 362 | 363 | ; Do not log repeated messages. Repeated errors must occur in same file on same 364 | ; line unless ignore_repeated_source is set true. 365 | ; http://php.net/ignore-repeated-errors 366 | ignore_repeated_errors = Off 367 | 368 | ; Ignore source of message when ignoring repeated messages. When this setting 369 | ; is On you will not log errors with repeated messages from different files or 370 | ; source lines. 371 | ; http://php.net/ignore-repeated-source 372 | ignore_repeated_source = Off 373 | 374 | ; If this parameter is set to Off, then memory leaks will not be shown (on 375 | ; stdout or in the log). This has only effect in a debug compile, and if 376 | ; error reporting includes E_WARNING in the allowed list 377 | ; http://php.net/report-memleaks 378 | report_memleaks = On 379 | 380 | ; This setting is on by default. 381 | ;report_zend_debug = 0 382 | 383 | ; Store the last error/warning message in $php_errormsg (boolean). Setting this value 384 | ; to On can assist in debugging and is appropriate for development servers. It should 385 | ; however be disabled on production servers. 386 | ; Default Value: Off 387 | ; Development Value: On 388 | ; Production Value: Off 389 | ; http://php.net/track-errors 390 | track_errors = Off 391 | 392 | ; Turn off normal error reporting and emit XML-RPC error XML 393 | ; http://php.net/xmlrpc-errors 394 | ;xmlrpc_errors = 0 395 | 396 | ; An XML-RPC faultCode 397 | ;xmlrpc_error_number = 0 398 | 399 | ; When PHP displays or logs an error, it has the capability of inserting html 400 | ; links to documentation related to that error. This directive controls whether 401 | ; those HTML links appear in error messages or not. For performance and security 402 | ; reasons, it's recommended you disable this on production servers. 403 | ; Note: This directive is hardcoded to Off for the CLI SAPI 404 | ; Default Value: On 405 | ; Development Value: On 406 | ; Production value: Off 407 | ; http://php.net/html-errors 408 | html_errors = Off 409 | 410 | ; If html_errors is set On PHP produces clickable error messages that direct 411 | ; to a page describing the error or function causing the error in detail. 412 | ; You can download a copy of the PHP manual from http://php.net/docs 413 | ; and change docref_root to the base URL of your local copy including the 414 | ; leading '/'. You must also specify the file extension being used including 415 | ; the dot. PHP's default behavior is to leave these settings empty. 416 | ; Note: Never use this feature for production boxes. 417 | ; http://php.net/docref-root 418 | ; Examples 419 | ;docref_root = "/phpmanual/" 420 | 421 | ; http://php.net/docref-ext 422 | ;docref_ext = .html 423 | 424 | ; String to output before an error message. PHP's default behavior is to leave 425 | ; this setting blank. 426 | ; http://php.net/error-prepend-string 427 | ; Example: 428 | ;error_prepend_string = "" 429 | 430 | ; String to output after an error message. PHP's default behavior is to leave 431 | ; this setting blank. 432 | ; http://php.net/error-append-string 433 | ; Example: 434 | ;error_append_string = "" 435 | 436 | ; Log errors to specified file. PHP's default behavior is to leave this value 437 | ; empty. 438 | ; http://php.net/error-log 439 | ; Example: 440 | ;error_log = php_errors.log 441 | ; Log errors to syslog (Event Log on NT, not valid in Windows 95). 442 | ;error_log = syslog 443 | 444 | ;windows.show_crt_warning 445 | ; Default value: 0 446 | ; Development value: 0 447 | ; Production value: 0 448 | 449 | ;;;;;;;;;;;;;;;;; 450 | ; Data Handling ; 451 | ;;;;;;;;;;;;;;;;; 452 | 453 | ; The separator used in PHP generated URLs to separate arguments. 454 | ; PHP's default setting is "&". 455 | ; http://php.net/arg-separator.output 456 | ; Example: 457 | ;arg_separator.output = "&" 458 | 459 | ; List of separator(s) used by PHP to parse input URLs into variables. 460 | ; PHP's default setting is "&". 461 | ; NOTE: Every character in this directive is considered as separator! 462 | ; http://php.net/arg-separator.input 463 | ; Example: 464 | ;arg_separator.input = ";&" 465 | 466 | ; This directive determines which super global arrays are registered when PHP 467 | ; starts up. If the register_globals directive is enabled, it also determines 468 | ; what order variables are populated into the global space. G,P,C,E & S are 469 | ; abbreviations for the following respective super globals: GET, POST, COOKIE, 470 | ; ENV and SERVER. There is a performance penalty paid for the registration of 471 | ; these arrays and because ENV is not as commonly used as the others, ENV is 472 | ; is not recommended on productions servers. You can still get access to 473 | ; the environment variables through getenv() should you need to. 474 | ; Default Value: "EGPCS" 475 | ; Development Value: "GPCS" 476 | ; Production Value: "GPCS"; 477 | ; http://php.net/variables-order 478 | variables_order = "GPCS" 479 | 480 | ; This directive determines which super global data (G,P,C,E & S) should 481 | ; be registered into the super global array REQUEST. If so, it also determines 482 | ; the order in which that data is registered. The values for this directive are 483 | ; specified in the same manner as the variables_order directive, EXCEPT one. 484 | ; Leaving this value empty will cause PHP to use the value set in the 485 | ; variables_order directive. It does not mean it will leave the super globals 486 | ; array REQUEST empty. 487 | ; Default Value: None 488 | ; Development Value: "GP" 489 | ; Production Value: "GP" 490 | ; http://php.net/request-order 491 | request_order = "GP" 492 | 493 | ; Whether or not to register the EGPCS variables as global variables. You may 494 | ; want to turn this off if you don't want to clutter your scripts' global scope 495 | ; with user data. 496 | ; You should do your best to write your scripts so that they do not require 497 | ; register_globals to be on; Using form variables as globals can easily lead 498 | ; to possible security problems, if the code is not very well thought of. 499 | ; http://php.net/register-globals 500 | register_globals = Off 501 | 502 | ; Determines whether the deprecated long $HTTP_*_VARS type predefined variables 503 | ; are registered by PHP or not. As they are deprecated, we obviously don't 504 | ; recommend you use them. They are on by default for compatibility reasons but 505 | ; they are not recommended on production servers. 506 | ; Default Value: On 507 | ; Development Value: Off 508 | ; Production Value: Off 509 | ; http://php.net/register-long-arrays 510 | register_long_arrays = Off 511 | 512 | ; This directive determines whether PHP registers $argv & $argc each time it 513 | ; runs. $argv contains an array of all the arguments passed to PHP when a script 514 | ; is invoked. $argc contains an integer representing the number of arguments 515 | ; that were passed when the script was invoked. These arrays are extremely 516 | ; useful when running scripts from the command line. When this directive is 517 | ; enabled, registering these variables consumes CPU cycles and memory each time 518 | ; a script is executed. For performance reasons, this feature should be disabled 519 | ; on production servers. 520 | ; Note: This directive is hardcoded to On for the CLI SAPI 521 | ; Default Value: On 522 | ; Development Value: Off 523 | ; Production Value: Off 524 | ; http://php.net/register-argc-argv 525 | register_argc_argv = Off 526 | 527 | ; When enabled, the SERVER and ENV variables are created when they're first 528 | ; used (Just In Time) instead of when the script starts. If these variables 529 | ; are not used within a script, having this directive on will result in a 530 | ; performance gain. The PHP directives register_globals, register_long_arrays, 531 | ; and register_argc_argv must be disabled for this directive to have any affect. 532 | ; http://php.net/auto-globals-jit 533 | auto_globals_jit = On 534 | 535 | ; Maximum size of POST data that PHP will accept. 536 | ; http://php.net/post-max-size 537 | post_max_size = 8M 538 | 539 | ; Magic quotes are a preprocessing feature of PHP where PHP will attempt to 540 | ; escape any character sequences in GET, POST, COOKIE and ENV data which might 541 | ; otherwise corrupt data being placed in resources such as databases before 542 | ; making that data available to you. Because of character encoding issues and 543 | ; non-standard SQL implementations across many databases, it's not currently 544 | ; possible for this feature to be 100% accurate. PHP's default behavior is to 545 | ; enable the feature. We strongly recommend you use the escaping mechanisms 546 | ; designed specifically for the database your using instead of relying on this 547 | ; feature. Also note, this feature has been deprecated as of PHP 5.3.0 and is 548 | ; scheduled for removal in PHP 6. 549 | ; Default Value: On 550 | ; Development Value: Off 551 | ; Production Value: Off 552 | ; http://php.net/magic-quotes-gpc 553 | magic_quotes_gpc = Off 554 | 555 | ; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc. 556 | ; http://php.net/magic-quotes-runtime 557 | magic_quotes_runtime = Off 558 | 559 | ; Use Sybase-style magic quotes (escape ' with '' instead of \'). 560 | ; http://php.net/magic-quotes-sybase 561 | magic_quotes_sybase = Off 562 | 563 | ; Automatically add files before PHP document. 564 | ; http://php.net/auto-prepend-file 565 | auto_prepend_file = 566 | 567 | ; Automatically add files after PHP document. 568 | ; http://php.net/auto-append-file 569 | auto_append_file = 570 | 571 | ; By default, PHP will output a character encoding using 572 | ; the Content-type: header. To disable sending of the charset, simply 573 | ; set it to be empty. 574 | ; 575 | ; PHP's built-in default is text/html 576 | ; http://php.net/default-mimetype 577 | default_mimetype = "text/html" 578 | 579 | ; PHP's default character set is set to empty. 580 | ; http://php.net/default-charset 581 | ;default_charset = "iso-8859-1" 582 | 583 | ; Always populate the $HTTP_RAW_POST_DATA variable. PHP's default behavior is 584 | ; to disable this feature. 585 | ; http://php.net/always-populate-raw-post-data 586 | ;always_populate_raw_post_data = On 587 | 588 | ;;;;;;;;;;;;;;;;;;;;;;;;; 589 | ; Paths and Directories ; 590 | ;;;;;;;;;;;;;;;;;;;;;;;;; 591 | 592 | ; UNIX: "/path1:/path2" 593 | ;include_path = ".:/usr/share/php" 594 | ; 595 | ; Windows: "\path1;\path2" 596 | ;include_path = ".;c:\php\includes" 597 | ; 598 | ; PHP's default setting for include_path is ".;/path/to/php/pear" 599 | ; http://php.net/include-path 600 | 601 | ; The root of the PHP pages, used only if nonempty. 602 | ; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root 603 | ; if you are running php as a CGI under any web server (other than IIS) 604 | ; see documentation for security issues. The alternate is to use the 605 | ; cgi.force_redirect configuration below 606 | ; http://php.net/doc-root 607 | doc_root = 608 | 609 | ; The directory under which PHP opens the script using /~username used only 610 | ; if nonempty. 611 | ; http://php.net/user-dir 612 | user_dir = 613 | 614 | ; Directory in which the loadable extensions (modules) reside. 615 | ; http://php.net/extension-dir 616 | ; extension_dir = "./" 617 | ; On windows: 618 | ; extension_dir = "ext" 619 | 620 | ; Whether or not to enable the dl() function. The dl() function does NOT work 621 | ; properly in multithreaded servers, such as IIS or Zeus, and is automatically 622 | ; disabled on them. 623 | ; http://php.net/enable-dl 624 | enable_dl = Off 625 | 626 | ; cgi.force_redirect is necessary to provide security running PHP as a CGI under 627 | ; most web servers. Left undefined, PHP turns this on by default. You can 628 | ; turn it off here AT YOUR OWN RISK 629 | ; **You CAN safely turn this off for IIS, in fact, you MUST.** 630 | ; http://php.net/cgi.force-redirect 631 | ;cgi.force_redirect = 1 632 | 633 | ; if cgi.nph is enabled it will force cgi to always sent Status: 200 with 634 | ; every request. PHP's default behavior is to disable this feature. 635 | ;cgi.nph = 1 636 | 637 | ; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape 638 | ; (iPlanet) web servers, you MAY need to set an environment variable name that PHP 639 | ; will look for to know it is OK to continue execution. Setting this variable MAY 640 | ; cause security issues, KNOW WHAT YOU ARE DOING FIRST. 641 | ; http://php.net/cgi.redirect-status-env 642 | ;cgi.redirect_status_env = ; 643 | 644 | ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's 645 | ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok 646 | ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting 647 | ; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting 648 | ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts 649 | ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. 650 | ; http://php.net/cgi.fix-pathinfo 651 | ;cgi.fix_pathinfo=1 652 | 653 | ; FastCGI under IIS (on WINNT based OS) supports the ability to impersonate 654 | ; security tokens of the calling client. This allows IIS to define the 655 | ; security context that the request runs under. mod_fastcgi under Apache 656 | ; does not currently support this feature (03/17/2002) 657 | ; Set to 1 if running under IIS. Default is zero. 658 | ; http://php.net/fastcgi.impersonate 659 | ;fastcgi.impersonate = 1; 660 | 661 | ; Disable logging through FastCGI connection. PHP's default behavior is to enable 662 | ; this feature. 663 | ;fastcgi.logging = 0 664 | 665 | ; cgi.rfc2616_headers configuration option tells PHP what type of headers to 666 | ; use when sending HTTP response code. If it's set 0 PHP sends Status: header that 667 | ; is supported by Apache. When this option is set to 1 PHP will send 668 | ; RFC2616 compliant header. 669 | ; Default is zero. 670 | ; http://php.net/cgi.rfc2616-headers 671 | ;cgi.rfc2616_headers = 0 672 | 673 | ;;;;;;;;;;;;;;;; 674 | ; File Uploads ; 675 | ;;;;;;;;;;;;;;;; 676 | 677 | ; Whether to allow HTTP file uploads. 678 | ; http://php.net/file-uploads 679 | file_uploads = On 680 | 681 | ; Temporary directory for HTTP uploaded files (will use system default if not 682 | ; specified). 683 | ; http://php.net/upload-tmp-dir 684 | ;upload_tmp_dir = 685 | 686 | ; Maximum allowed size for uploaded files. 687 | ; http://php.net/upload-max-filesize 688 | upload_max_filesize = 2M 689 | 690 | ; Maximum number of files that can be uploaded via a single request 691 | max_file_uploads = 20 692 | 693 | ;;;;;;;;;;;;;;;;;; 694 | ; Fopen wrappers ; 695 | ;;;;;;;;;;;;;;;;;; 696 | 697 | ; Whether to allow the treatment of URLs (like http:// or ftp://) as files. 698 | ; http://php.net/allow-url-fopen 699 | allow_url_fopen = On 700 | 701 | ; Whether to allow include/require to open URLs (like http:// or ftp://) as files. 702 | ; http://php.net/allow-url-include 703 | allow_url_include = Off 704 | 705 | ; Define the anonymous ftp password (your email address). PHP's default setting 706 | ; for this is empty. 707 | ; http://php.net/from 708 | ;from="john@doe.com" 709 | 710 | ; Define the User-Agent string. PHP's default setting for this is empty. 711 | ; http://php.net/user-agent 712 | ;user_agent="PHP" 713 | 714 | ; Default timeout for socket based streams (seconds) 715 | ; http://php.net/default-socket-timeout 716 | default_socket_timeout = 60 717 | 718 | ; If your scripts have to deal with files from Macintosh systems, 719 | ; or you are running on a Mac and need to deal with files from 720 | ; unix or win32 systems, setting this flag will cause PHP to 721 | ; automatically detect the EOL character in those files so that 722 | ; fgets() and file() will work regardless of the source of the file. 723 | ; http://php.net/auto-detect-line-endings 724 | ;auto_detect_line_endings = Off 725 | 726 | ;;;;;;;;;;;;;;;;;;;;;; 727 | ; Dynamic Extensions ; 728 | ;;;;;;;;;;;;;;;;;;;;;; 729 | 730 | ; If you wish to have an extension loaded automatically, use the following 731 | ; syntax: 732 | ; 733 | ; extension=modulename.extension 734 | ; 735 | ; For example, on Windows: 736 | ; 737 | ; extension=msql.dll 738 | ; 739 | ; ... or under UNIX: 740 | ; 741 | ; extension=msql.so 742 | ; 743 | ; ... or with a path: 744 | ; 745 | ; extension=/path/to/extension/msql.so 746 | ; 747 | ; If you only provide the name of the extension, PHP will look for it in its 748 | ; default extension directory. 749 | ;;;;;;;;;;;;;;;;;;; 750 | ; Module Settings ; 751 | ;;;;;;;;;;;;;;;;;;; 752 | 753 | [Date] 754 | ; Defines the default timezone used by the date functions 755 | ; http://php.net/date.timezone 756 | date.timezone = UTC 757 | 758 | ; http://php.net/date.default-latitude 759 | ;date.default_latitude = 31.7667 760 | 761 | ; http://php.net/date.default-longitude 762 | ;date.default_longitude = 35.2333 763 | 764 | ; http://php.net/date.sunrise-zenith 765 | ;date.sunrise_zenith = 90.583333 766 | 767 | ; http://php.net/date.sunset-zenith 768 | ;date.sunset_zenith = 90.583333 769 | 770 | [filter] 771 | ; http://php.net/filter.default 772 | ;filter.default = unsafe_raw 773 | 774 | ; http://php.net/filter.default-flags 775 | ;filter.default_flags = 776 | 777 | [iconv] 778 | ;iconv.input_encoding = ISO-8859-1 779 | ;iconv.internal_encoding = ISO-8859-1 780 | ;iconv.output_encoding = ISO-8859-1 781 | 782 | [intl] 783 | ;intl.default_locale = 784 | ; This directive allows you to produce PHP errors when some error 785 | ; happens within intl functions. The value is the level of the error produced. 786 | ; Default is 0, which does not produce any errors. 787 | ;intl.error_level = E_WARNING 788 | 789 | [sqlite] 790 | ; http://php.net/sqlite.assoc-case 791 | ;sqlite.assoc_case = 0 792 | 793 | [sqlite3] 794 | ;sqlite3.extension_dir = 795 | 796 | [Pcre] 797 | ;PCRE library backtracking limit. 798 | ; http://php.net/pcre.backtrack-limit 799 | ;pcre.backtrack_limit=100000 800 | 801 | ;PCRE library recursion limit. 802 | ;Please note that if you set this value to a high number you may consume all 803 | ;the available process stack and eventually crash PHP (due to reaching the 804 | ;stack size limit imposed by the Operating System). 805 | ; http://php.net/pcre.recursion-limit 806 | ;pcre.recursion_limit=100000 807 | 808 | [Pdo] 809 | ; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" 810 | ; http://php.net/pdo-odbc.connection-pooling 811 | ;pdo_odbc.connection_pooling=strict 812 | 813 | ;pdo_odbc.db2_instance_name 814 | 815 | [Pdo_mysql] 816 | ; If mysqlnd is used: Number of cache slots for the internal result set cache 817 | ; http://php.net/pdo_mysql.cache_size 818 | pdo_mysql.cache_size = 2000 819 | 820 | ; Default socket name for local MySQL connects. If empty, uses the built-in 821 | ; MySQL defaults. 822 | ; http://php.net/pdo_mysql.default-socket 823 | pdo_mysql.default_socket= 824 | 825 | [Phar] 826 | ; http://php.net/phar.readonly 827 | ;phar.readonly = On 828 | 829 | ; http://php.net/phar.require-hash 830 | ;phar.require_hash = On 831 | 832 | ;phar.cache_list = 833 | 834 | [Syslog] 835 | ; Whether or not to define the various syslog variables (e.g. $LOG_PID, 836 | ; $LOG_CRON, etc.). Turning it off is a good idea performance-wise. In 837 | ; runtime, you can define these variables by calling define_syslog_variables(). 838 | ; http://php.net/define-syslog-variables 839 | define_syslog_variables = Off 840 | 841 | [mail function] 842 | ; For Win32 only. 843 | ; http://php.net/smtp 844 | SMTP = localhost 845 | ; http://php.net/smtp-port 846 | smtp_port = 25 847 | 848 | ; For Win32 only. 849 | ; http://php.net/sendmail-from 850 | ;sendmail_from = me@example.com 851 | 852 | ; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). 853 | ; http://php.net/sendmail-path 854 | ;sendmail_path = 855 | 856 | ; Force the addition of the specified parameters to be passed as extra parameters 857 | ; to the sendmail binary. These parameters will always replace the value of 858 | ; the 5th parameter to mail(), even in safe mode. 859 | ;mail.force_extra_parameters = 860 | 861 | ; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename 862 | mail.add_x_header = On 863 | 864 | ; The path to a log file that will log all mail() calls. Log entries include 865 | ; the full path of the script, line number, To address and headers. 866 | ;mail.log = 867 | 868 | [SQL] 869 | ; http://php.net/sql.safe-mode 870 | sql.safe_mode = Off 871 | 872 | [ODBC] 873 | ; http://php.net/odbc.default-db 874 | ;odbc.default_db = Not yet implemented 875 | 876 | ; http://php.net/odbc.default-user 877 | ;odbc.default_user = Not yet implemented 878 | 879 | ; http://php.net/odbc.default-pw 880 | ;odbc.default_pw = Not yet implemented 881 | 882 | ; Controls the ODBC cursor model. 883 | ; Default: SQL_CURSOR_STATIC (default). 884 | ;odbc.default_cursortype 885 | 886 | ; Allow or prevent persistent links. 887 | ; http://php.net/odbc.allow-persistent 888 | odbc.allow_persistent = On 889 | 890 | ; Check that a connection is still valid before reuse. 891 | ; http://php.net/odbc.check-persistent 892 | odbc.check_persistent = On 893 | 894 | ; Maximum number of persistent links. -1 means no limit. 895 | ; http://php.net/odbc.max-persistent 896 | odbc.max_persistent = -1 897 | 898 | ; Maximum number of links (persistent + non-persistent). -1 means no limit. 899 | ; http://php.net/odbc.max-links 900 | odbc.max_links = -1 901 | 902 | ; Handling of LONG fields. Returns number of bytes to variables. 0 means 903 | ; passthru. 904 | ; http://php.net/odbc.defaultlrl 905 | odbc.defaultlrl = 4096 906 | 907 | ; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. 908 | ; See the documentation on odbc_binmode and odbc_longreadlen for an explanation 909 | ; of odbc.defaultlrl and odbc.defaultbinmode 910 | ; http://php.net/odbc.defaultbinmode 911 | odbc.defaultbinmode = 1 912 | 913 | ;birdstep.max_links = -1 914 | 915 | [Interbase] 916 | ; Allow or prevent persistent links. 917 | ibase.allow_persistent = 1 918 | 919 | ; Maximum number of persistent links. -1 means no limit. 920 | ibase.max_persistent = -1 921 | 922 | ; Maximum number of links (persistent + non-persistent). -1 means no limit. 923 | ibase.max_links = -1 924 | 925 | ; Default database name for ibase_connect(). 926 | ;ibase.default_db = 927 | 928 | ; Default username for ibase_connect(). 929 | ;ibase.default_user = 930 | 931 | ; Default password for ibase_connect(). 932 | ;ibase.default_password = 933 | 934 | ; Default charset for ibase_connect(). 935 | ;ibase.default_charset = 936 | 937 | ; Default timestamp format. 938 | ibase.timestampformat = "%Y-%m-%d %H:%M:%S" 939 | 940 | ; Default date format. 941 | ibase.dateformat = "%Y-%m-%d" 942 | 943 | ; Default time format. 944 | ibase.timeformat = "%H:%M:%S" 945 | 946 | [MySQL] 947 | ; Allow accessing, from PHP's perspective, local files with LOAD DATA statements 948 | ; http://php.net/mysql.allow_local_infile 949 | mysql.allow_local_infile = On 950 | 951 | ; Allow or prevent persistent links. 952 | ; http://php.net/mysql.allow-persistent 953 | mysql.allow_persistent = On 954 | 955 | ; If mysqlnd is used: Number of cache slots for the internal result set cache 956 | ; http://php.net/mysql.cache_size 957 | mysql.cache_size = 2000 958 | 959 | ; Maximum number of persistent links. -1 means no limit. 960 | ; http://php.net/mysql.max-persistent 961 | mysql.max_persistent = -1 962 | 963 | ; Maximum number of links (persistent + non-persistent). -1 means no limit. 964 | ; http://php.net/mysql.max-links 965 | mysql.max_links = -1 966 | 967 | ; Default port number for mysql_connect(). If unset, mysql_connect() will use 968 | ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the 969 | ; compile-time value defined MYSQL_PORT (in that order). Win32 will only look 970 | ; at MYSQL_PORT. 971 | ; http://php.net/mysql.default-port 972 | mysql.default_port = 973 | 974 | ; Default socket name for local MySQL connects. If empty, uses the built-in 975 | ; MySQL defaults. 976 | ; http://php.net/mysql.default-socket 977 | mysql.default_socket = 978 | 979 | ; Default host for mysql_connect() (doesn't apply in safe mode). 980 | ; http://php.net/mysql.default-host 981 | mysql.default_host = 982 | 983 | ; Default user for mysql_connect() (doesn't apply in safe mode). 984 | ; http://php.net/mysql.default-user 985 | mysql.default_user = 986 | 987 | ; Default password for mysql_connect() (doesn't apply in safe mode). 988 | ; Note that this is generally a *bad* idea to store passwords in this file. 989 | ; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password") 990 | ; and reveal this password! And of course, any users with read access to this 991 | ; file will be able to reveal the password as well. 992 | ; http://php.net/mysql.default-password 993 | mysql.default_password = 994 | 995 | ; Maximum time (in seconds) for connect timeout. -1 means no limit 996 | ; http://php.net/mysql.connect-timeout 997 | mysql.connect_timeout = 60 998 | 999 | ; Trace mode. When trace_mode is active (=On), warnings for table/index scans and 1000 | ; SQL-Errors will be displayed. 1001 | ; http://php.net/mysql.trace-mode 1002 | mysql.trace_mode = Off 1003 | 1004 | [MySQLi] 1005 | ; Maximum number of persistent links. -1 means no limit. 1006 | ; http://php.net/mysqli.max-persistent 1007 | mysqli.max_persistent = -1 1008 | 1009 | ; Allow accessing, from PHP's perspective, local files with LOAD DATA statements 1010 | ; http://php.net/mysqli.allow_local_infile 1011 | ;mysqli.allow_local_infile = On 1012 | 1013 | ; Allow or prevent persistent links. 1014 | ; http://php.net/mysqli.allow-persistent 1015 | mysqli.allow_persistent = On 1016 | 1017 | ; Maximum number of links. -1 means no limit. 1018 | ; http://php.net/mysqli.max-links 1019 | mysqli.max_links = -1 1020 | 1021 | ; If mysqlnd is used: Number of cache slots for the internal result set cache 1022 | ; http://php.net/mysqli.cache_size 1023 | mysqli.cache_size = 2000 1024 | 1025 | ; Default port number for mysqli_connect(). If unset, mysqli_connect() will use 1026 | ; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the 1027 | ; compile-time value defined MYSQL_PORT (in that order). Win32 will only look 1028 | ; at MYSQL_PORT. 1029 | ; http://php.net/mysqli.default-port 1030 | mysqli.default_port = 3306 1031 | 1032 | ; Default socket name for local MySQL connects. If empty, uses the built-in 1033 | ; MySQL defaults. 1034 | ; http://php.net/mysqli.default-socket 1035 | mysqli.default_socket = 1036 | 1037 | ; Default host for mysql_connect() (doesn't apply in safe mode). 1038 | ; http://php.net/mysqli.default-host 1039 | mysqli.default_host = 1040 | 1041 | ; Default user for mysql_connect() (doesn't apply in safe mode). 1042 | ; http://php.net/mysqli.default-user 1043 | mysqli.default_user = 1044 | 1045 | ; Default password for mysqli_connect() (doesn't apply in safe mode). 1046 | ; Note that this is generally a *bad* idea to store passwords in this file. 1047 | ; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") 1048 | ; and reveal this password! And of course, any users with read access to this 1049 | ; file will be able to reveal the password as well. 1050 | ; http://php.net/mysqli.default-pw 1051 | mysqli.default_pw = 1052 | 1053 | ; Allow or prevent reconnect 1054 | mysqli.reconnect = Off 1055 | 1056 | [mysqlnd] 1057 | ; Enable / Disable collection of general statistics by mysqlnd which can be 1058 | ; used to tune and monitor MySQL operations. 1059 | ; http://php.net/mysqlnd.collect_statistics 1060 | mysqlnd.collect_statistics = On 1061 | 1062 | ; Enable / Disable collection of memory usage statistics by mysqlnd which can be 1063 | ; used to tune and monitor MySQL operations. 1064 | ; http://php.net/mysqlnd.collect_memory_statistics 1065 | mysqlnd.collect_memory_statistics = Off 1066 | 1067 | ; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. 1068 | ; http://php.net/mysqlnd.net_cmd_buffer_size 1069 | ;mysqlnd.net_cmd_buffer_size = 2048 1070 | 1071 | ; Size of a pre-allocated buffer used for reading data sent by the server in 1072 | ; bytes. 1073 | ; http://php.net/mysqlnd.net_read_buffer_size 1074 | ;mysqlnd.net_read_buffer_size = 32768 1075 | 1076 | [OCI8] 1077 | 1078 | ; Connection: Enables privileged connections using external 1079 | ; credentials (OCI_SYSOPER, OCI_SYSDBA) 1080 | ; http://php.net/oci8.privileged-connect 1081 | ;oci8.privileged_connect = Off 1082 | 1083 | ; Connection: The maximum number of persistent OCI8 connections per 1084 | ; process. Using -1 means no limit. 1085 | ; http://php.net/oci8.max-persistent 1086 | ;oci8.max_persistent = -1 1087 | 1088 | ; Connection: The maximum number of seconds a process is allowed to 1089 | ; maintain an idle persistent connection. Using -1 means idle 1090 | ; persistent connections will be maintained forever. 1091 | ; http://php.net/oci8.persistent-timeout 1092 | ;oci8.persistent_timeout = -1 1093 | 1094 | ; Connection: The number of seconds that must pass before issuing a 1095 | ; ping during oci_pconnect() to check the connection validity. When 1096 | ; set to 0, each oci_pconnect() will cause a ping. Using -1 disables 1097 | ; pings completely. 1098 | ; http://php.net/oci8.ping-interval 1099 | ;oci8.ping_interval = 60 1100 | 1101 | ; Connection: Set this to a user chosen connection class to be used 1102 | ; for all pooled server requests with Oracle 11g Database Resident 1103 | ; Connection Pooling (DRCP). To use DRCP, this value should be set to 1104 | ; the same string for all web servers running the same application, 1105 | ; the database pool must be configured, and the connection string must 1106 | ; specify to use a pooled server. 1107 | ;oci8.connection_class = 1108 | 1109 | ; High Availability: Using On lets PHP receive Fast Application 1110 | ; Notification (FAN) events generated when a database node fails. The 1111 | ; database must also be configured to post FAN events. 1112 | ;oci8.events = Off 1113 | 1114 | ; Tuning: This option enables statement caching, and specifies how 1115 | ; many statements to cache. Using 0 disables statement caching. 1116 | ; http://php.net/oci8.statement-cache-size 1117 | ;oci8.statement_cache_size = 20 1118 | 1119 | ; Tuning: Enables statement prefetching and sets the default number of 1120 | ; rows that will be fetched automatically after statement execution. 1121 | ; http://php.net/oci8.default-prefetch 1122 | ;oci8.default_prefetch = 100 1123 | 1124 | ; Compatibility. Using On means oci_close() will not close 1125 | ; oci_connect() and oci_new_connect() connections. 1126 | ; http://php.net/oci8.old-oci-close-semantics 1127 | ;oci8.old_oci_close_semantics = Off 1128 | 1129 | [PostgreSQL] 1130 | ; Allow or prevent persistent links. 1131 | ; http://php.net/pgsql.allow-persistent 1132 | pgsql.allow_persistent = On 1133 | 1134 | ; Detect broken persistent links always with pg_pconnect(). 1135 | ; Auto reset feature requires a little overheads. 1136 | ; http://php.net/pgsql.auto-reset-persistent 1137 | pgsql.auto_reset_persistent = Off 1138 | 1139 | ; Maximum number of persistent links. -1 means no limit. 1140 | ; http://php.net/pgsql.max-persistent 1141 | pgsql.max_persistent = -1 1142 | 1143 | ; Maximum number of links (persistent+non persistent). -1 means no limit. 1144 | ; http://php.net/pgsql.max-links 1145 | pgsql.max_links = -1 1146 | 1147 | ; Ignore PostgreSQL backends Notice message or not. 1148 | ; Notice message logging require a little overheads. 1149 | ; http://php.net/pgsql.ignore-notice 1150 | pgsql.ignore_notice = 0 1151 | 1152 | ; Log PostgreSQL backends Notice message or not. 1153 | ; Unless pgsql.ignore_notice=0, module cannot log notice message. 1154 | ; http://php.net/pgsql.log-notice 1155 | pgsql.log_notice = 0 1156 | 1157 | [Sybase-CT] 1158 | ; Allow or prevent persistent links. 1159 | ; http://php.net/sybct.allow-persistent 1160 | sybct.allow_persistent = On 1161 | 1162 | ; Maximum number of persistent links. -1 means no limit. 1163 | ; http://php.net/sybct.max-persistent 1164 | sybct.max_persistent = -1 1165 | 1166 | ; Maximum number of links (persistent + non-persistent). -1 means no limit. 1167 | ; http://php.net/sybct.max-links 1168 | sybct.max_links = -1 1169 | 1170 | ; Minimum server message severity to display. 1171 | ; http://php.net/sybct.min-server-severity 1172 | sybct.min_server_severity = 10 1173 | 1174 | ; Minimum client message severity to display. 1175 | ; http://php.net/sybct.min-client-severity 1176 | sybct.min_client_severity = 10 1177 | 1178 | ; Set per-context timeout 1179 | ; http://php.net/sybct.timeout 1180 | ;sybct.timeout= 1181 | 1182 | ;sybct.packet_size 1183 | 1184 | ; The maximum time in seconds to wait for a connection attempt to succeed before returning failure. 1185 | ; Default: one minute 1186 | ;sybct.login_timeout= 1187 | 1188 | ; The name of the host you claim to be connecting from, for display by sp_who. 1189 | ; Default: none 1190 | ;sybct.hostname= 1191 | 1192 | ; Allows you to define how often deadlocks are to be retried. -1 means "forever". 1193 | ; Default: 0 1194 | ;sybct.deadlock_retry_count= 1195 | 1196 | [bcmath] 1197 | ; Number of decimal digits for all bcmath functions. 1198 | ; http://php.net/bcmath.scale 1199 | bcmath.scale = 0 1200 | 1201 | [browscap] 1202 | ; http://php.net/browscap 1203 | ;browscap = extra/browscap.ini 1204 | 1205 | [Session] 1206 | ; Handler used to store/retrieve data. 1207 | ; http://php.net/session.save-handler 1208 | session.save_handler = files 1209 | 1210 | ; Argument passed to save_handler. In the case of files, this is the path 1211 | ; where data files are stored. Note: Windows users have to change this 1212 | ; variable in order to use PHP's session functions. 1213 | ; 1214 | ; The path can be defined as: 1215 | ; 1216 | ; session.save_path = "N;/path" 1217 | ; 1218 | ; where N is an integer. Instead of storing all the session files in 1219 | ; /path, what this will do is use subdirectories N-levels deep, and 1220 | ; store the session data in those directories. This is useful if you 1221 | ; or your OS have problems with lots of files in one directory, and is 1222 | ; a more efficient layout for servers that handle lots of sessions. 1223 | ; 1224 | ; NOTE 1: PHP will not create this directory structure automatically. 1225 | ; You can use the script in the ext/session dir for that purpose. 1226 | ; NOTE 2: See the section on garbage collection below if you choose to 1227 | ; use subdirectories for session storage 1228 | ; 1229 | ; The file storage module creates files using mode 600 by default. 1230 | ; You can change that by using 1231 | ; 1232 | ; session.save_path = "N;MODE;/path" 1233 | ; 1234 | ; where MODE is the octal representation of the mode. Note that this 1235 | ; does not overwrite the process's umask. 1236 | ; http://php.net/session.save-path 1237 | ;session.save_path = "/tmp" 1238 | 1239 | ; Whether to use cookies. 1240 | ; http://php.net/session.use-cookies 1241 | session.use_cookies = 1 1242 | 1243 | ; http://php.net/session.cookie-secure 1244 | session.cookie_secure = On 1245 | 1246 | ; This option forces PHP to fetch and use a cookie for storing and maintaining 1247 | ; the session id. We encourage this operation as it's very helpful in combatting 1248 | ; session hijacking when not specifying and managing your own session id. It is 1249 | ; not the end all be all of session hijacking defense, but it's a good start. 1250 | ; http://php.net/session.use-only-cookies 1251 | session.use_only_cookies = 1 1252 | 1253 | ; Name of the session (used as cookie name). 1254 | ; http://php.net/session.name 1255 | session.name = PHPSESSID 1256 | 1257 | ; Initialize session on request startup. 1258 | ; http://php.net/session.auto-start 1259 | session.auto_start = 0 1260 | 1261 | ; Lifetime in seconds of cookie or, if 0, until browser is restarted. 1262 | ; http://php.net/session.cookie-lifetime 1263 | session.cookie_lifetime = 0 1264 | 1265 | ; The path for which the cookie is valid. 1266 | ; http://php.net/session.cookie-path 1267 | session.cookie_path = / 1268 | 1269 | ; The domain for which the cookie is valid. 1270 | ; http://php.net/session.cookie-domain 1271 | session.cookie_domain = 1272 | 1273 | ; Whether or not to add the httpOnly flag to the cookie, which makes it inaccessible to browser scripting languages such as JavaScript. 1274 | ; http://php.net/session.cookie-httponly 1275 | session.cookie_httponly = On 1276 | 1277 | ; Handler used to serialize data. php is the standard serializer of PHP. 1278 | ; http://php.net/session.serialize-handler 1279 | session.serialize_handler = php 1280 | 1281 | ; Defines the probability that the 'garbage collection' process is started 1282 | ; on every session initialization. The probability is calculated by using 1283 | ; gc_probability/gc_divisor. Where session.gc_probability is the numerator 1284 | ; and gc_divisor is the denominator in the equation. Setting this value to 1 1285 | ; when the session.gc_divisor value is 100 will give you approximately a 1% chance 1286 | ; the gc will run on any give request. 1287 | ; Default Value: 1 1288 | ; Development Value: 1 1289 | ; Production Value: 1 1290 | ; http://php.net/session.gc-probability 1291 | session.gc_probability = 0 1292 | 1293 | ; Defines the probability that the 'garbage collection' process is started on every 1294 | ; session initialization. The probability is calculated by using the following equation: 1295 | ; gc_probability/gc_divisor. Where session.gc_probability is the numerator and 1296 | ; session.gc_divisor is the denominator in the equation. Setting this value to 1 1297 | ; when the session.gc_divisor value is 100 will give you approximately a 1% chance 1298 | ; the gc will run on any give request. Increasing this value to 1000 will give you 1299 | ; a 0.1% chance the gc will run on any give request. For high volume production servers, 1300 | ; this is a more efficient approach. 1301 | ; Default Value: 100 1302 | ; Development Value: 1000 1303 | ; Production Value: 1000 1304 | ; http://php.net/session.gc-divisor 1305 | session.gc_divisor = 1000 1306 | 1307 | ; After this number of seconds, stored data will be seen as 'garbage' and 1308 | ; cleaned up by the garbage collection process. 1309 | ; http://php.net/session.gc-maxlifetime 1310 | session.gc_maxlifetime = 1440 1311 | 1312 | ; NOTE: If you are using the subdirectory option for storing session files 1313 | ; (see session.save_path above), then garbage collection does *not* 1314 | ; happen automatically. You will need to do your own garbage 1315 | ; collection through a shell script, cron entry, or some other method. 1316 | ; For example, the following script would is the equivalent of 1317 | ; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): 1318 | ; find /path/to/sessions -cmin +24 | xargs rm 1319 | 1320 | ; PHP 4.2 and less have an undocumented feature/bug that allows you to 1321 | ; to initialize a session variable in the global scope, even when register_globals 1322 | ; is disabled. PHP 4.3 and later will warn you, if this feature is used. 1323 | ; You can disable the feature and the warning separately. At this time, 1324 | ; the warning is only displayed, if bug_compat_42 is enabled. This feature 1325 | ; introduces some serious security problems if not handled correctly. It's 1326 | ; recommended that you do not use this feature on production servers. But you 1327 | ; should enable this on development servers and enable the warning as well. If you 1328 | ; do not enable the feature on development servers, you won't be warned when it's 1329 | ; used and debugging errors caused by this can be difficult to track down. 1330 | ; Default Value: On 1331 | ; Development Value: On 1332 | ; Production Value: Off 1333 | ; http://php.net/session.bug-compat-42 1334 | session.bug_compat_42 = Off 1335 | 1336 | ; This setting controls whether or not you are warned by PHP when initializing a 1337 | ; session value into the global space. session.bug_compat_42 must be enabled before 1338 | ; these warnings can be issued by PHP. See the directive above for more information. 1339 | ; Default Value: On 1340 | ; Development Value: On 1341 | ; Production Value: Off 1342 | ; http://php.net/session.bug-compat-warn 1343 | session.bug_compat_warn = Off 1344 | 1345 | ; Check HTTP Referer to invalidate externally stored URLs containing ids. 1346 | ; HTTP_REFERER has to contain this substring for the session to be 1347 | ; considered as valid. 1348 | ; http://php.net/session.referer-check 1349 | session.referer_check = 1350 | 1351 | ; How many bytes to read from the file. 1352 | ; http://php.net/session.entropy-length 1353 | session.entropy_length = 0 1354 | 1355 | ; Specified here to create the session id. 1356 | ; http://php.net/session.entropy-file 1357 | ; On systems that don't have /dev/urandom /dev/arandom can be used 1358 | ; On windows, setting the entropy_length setting will activate the 1359 | ; Windows random source (using the CryptoAPI) 1360 | ;session.entropy_file = /dev/urandom 1361 | 1362 | ; Set to {nocache,private,public,} to determine HTTP caching aspects 1363 | ; or leave this empty to avoid sending anti-caching headers. 1364 | ; http://php.net/session.cache-limiter 1365 | session.cache_limiter = nocache 1366 | 1367 | ; Document expires after n minutes. 1368 | ; http://php.net/session.cache-expire 1369 | session.cache_expire = 180 1370 | 1371 | ; trans sid support is disabled by default. 1372 | ; Use of trans sid may risk your users security. 1373 | ; Use this option with caution. 1374 | ; - User may send URL contains active session ID 1375 | ; to other person via. email/irc/etc. 1376 | ; - URL that contains active session ID may be stored 1377 | ; in publically accessible computer. 1378 | ; - User may access your site with the same session ID 1379 | ; always using URL stored in browser's history or bookmarks. 1380 | ; http://php.net/session.use-trans-sid 1381 | session.use_trans_sid = 0 1382 | 1383 | ; Select a hash function for use in generating session ids. 1384 | ; Possible Values 1385 | ; 0 (MD5 128 bits) 1386 | ; 1 (SHA-1 160 bits) 1387 | ; This option may also be set to the name of any hash function supported by 1388 | ; the hash extension. A list of available hashes is returned by the hash_algos() 1389 | ; function. 1390 | ; http://php.net/session.hash-function 1391 | session.hash_function = 0 1392 | 1393 | ; Define how many bits are stored in each character when converting 1394 | ; the binary hash data to something readable. 1395 | ; Possible values: 1396 | ; 4 (4 bits: 0-9, a-f) 1397 | ; 5 (5 bits: 0-9, a-v) 1398 | ; 6 (6 bits: 0-9, a-z, A-Z, "-", ",") 1399 | ; Default Value: 4 1400 | ; Development Value: 5 1401 | ; Production Value: 5 1402 | ; http://php.net/session.hash-bits-per-character 1403 | session.hash_bits_per_character = 5 1404 | 1405 | ; The URL rewriter will look for URLs in a defined set of HTML tags. 1406 | ; form/fieldset are special; if you include them here, the rewriter will 1407 | ; add a hidden field with the info which is otherwise appended 1408 | ; to URLs. If you want XHTML conformity, remove the form entry. 1409 | ; Note that all valid entries require a "=", even if no value follows. 1410 | ; Default Value: "a=href,area=href,frame=src,form=,fieldset=" 1411 | ; Development Value: "a=href,area=href,frame=src,input=src,form=fakeentry" 1412 | ; Production Value: "a=href,area=href,frame=src,input=src,form=fakeentry" 1413 | ; http://php.net/url-rewriter.tags 1414 | url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry" 1415 | 1416 | [MSSQL] 1417 | ; Allow or prevent persistent links. 1418 | mssql.allow_persistent = On 1419 | 1420 | ; Maximum number of persistent links. -1 means no limit. 1421 | mssql.max_persistent = -1 1422 | 1423 | ; Maximum number of links (persistent+non persistent). -1 means no limit. 1424 | mssql.max_links = -1 1425 | 1426 | ; Minimum error severity to display. 1427 | mssql.min_error_severity = 10 1428 | 1429 | ; Minimum message severity to display. 1430 | mssql.min_message_severity = 10 1431 | 1432 | ; Compatibility mode with old versions of PHP 3.0. 1433 | mssql.compatability_mode = Off 1434 | 1435 | ; Connect timeout 1436 | ;mssql.connect_timeout = 5 1437 | 1438 | ; Query timeout 1439 | ;mssql.timeout = 60 1440 | 1441 | ; Valid range 0 - 2147483647. Default = 4096. 1442 | ;mssql.textlimit = 4096 1443 | 1444 | ; Valid range 0 - 2147483647. Default = 4096. 1445 | ;mssql.textsize = 4096 1446 | 1447 | ; Limits the number of records in each batch. 0 = all records in one batch. 1448 | ;mssql.batchsize = 0 1449 | 1450 | ; Specify how datetime and datetim4 columns are returned 1451 | ; On => Returns data converted to SQL server settings 1452 | ; Off => Returns values as YYYY-MM-DD hh:mm:ss 1453 | ;mssql.datetimeconvert = On 1454 | 1455 | ; Use NT authentication when connecting to the server 1456 | mssql.secure_connection = Off 1457 | 1458 | ; Specify max number of processes. -1 = library default 1459 | ; msdlib defaults to 25 1460 | ; FreeTDS defaults to 4096 1461 | ;mssql.max_procs = -1 1462 | 1463 | ; Specify client character set. 1464 | ; If empty or not set the client charset from freetds.conf is used 1465 | ; This is only used when compiled with FreeTDS 1466 | ;mssql.charset = "ISO-8859-1" 1467 | 1468 | [Assertion] 1469 | ; Assert(expr); active by default. 1470 | ; http://php.net/assert.active 1471 | ;assert.active = On 1472 | 1473 | ; Issue a PHP warning for each failed assertion. 1474 | ; http://php.net/assert.warning 1475 | ;assert.warning = On 1476 | 1477 | ; Don't bail out by default. 1478 | ; http://php.net/assert.bail 1479 | ;assert.bail = Off 1480 | 1481 | ; User-function to be called if an assertion fails. 1482 | ; http://php.net/assert.callback 1483 | ;assert.callback = 0 1484 | 1485 | ; Eval the expression with current error_reporting(). Set to true if you want 1486 | ; error_reporting(0) around the eval(). 1487 | ; http://php.net/assert.quiet-eval 1488 | ;assert.quiet_eval = 0 1489 | 1490 | [COM] 1491 | ; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs 1492 | ; http://php.net/com.typelib-file 1493 | ;com.typelib_file = 1494 | 1495 | ; allow Distributed-COM calls 1496 | ; http://php.net/com.allow-dcom 1497 | ;com.allow_dcom = true 1498 | 1499 | ; autoregister constants of a components typlib on com_load() 1500 | ; http://php.net/com.autoregister-typelib 1501 | ;com.autoregister_typelib = true 1502 | 1503 | ; register constants casesensitive 1504 | ; http://php.net/com.autoregister-casesensitive 1505 | ;com.autoregister_casesensitive = false 1506 | 1507 | ; show warnings on duplicate constant registrations 1508 | ; http://php.net/com.autoregister-verbose 1509 | ;com.autoregister_verbose = true 1510 | 1511 | ; The default character set code-page to use when passing strings to and from COM objects. 1512 | ; Default: system ANSI code page 1513 | ;com.code_page= 1514 | 1515 | [mbstring] 1516 | ; language for internal character representation. 1517 | ; http://php.net/mbstring.language 1518 | ;mbstring.language = Japanese 1519 | 1520 | ; internal/script encoding. 1521 | ; Some encoding cannot work as internal encoding. 1522 | ; (e.g. SJIS, BIG5, ISO-2022-*) 1523 | ; http://php.net/mbstring.internal-encoding 1524 | ;mbstring.internal_encoding = EUC-JP 1525 | 1526 | ; http input encoding. 1527 | ; http://php.net/mbstring.http-input 1528 | ;mbstring.http_input = auto 1529 | 1530 | ; http output encoding. mb_output_handler must be 1531 | ; registered as output buffer to function 1532 | ; http://php.net/mbstring.http-output 1533 | ;mbstring.http_output = SJIS 1534 | 1535 | ; enable automatic encoding translation according to 1536 | ; mbstring.internal_encoding setting. Input chars are 1537 | ; converted to internal encoding by setting this to On. 1538 | ; Note: Do _not_ use automatic encoding translation for 1539 | ; portable libs/applications. 1540 | ; http://php.net/mbstring.encoding-translation 1541 | ;mbstring.encoding_translation = Off 1542 | 1543 | ; automatic encoding detection order. 1544 | ; auto means 1545 | ; http://php.net/mbstring.detect-order 1546 | ;mbstring.detect_order = auto 1547 | 1548 | ; substitute_character used when character cannot be converted 1549 | ; one from another 1550 | ; http://php.net/mbstring.substitute-character 1551 | ;mbstring.substitute_character = none; 1552 | 1553 | ; overload(replace) single byte functions by mbstring functions. 1554 | ; mail(), ereg(), etc are overloaded by mb_send_mail(), mb_ereg(), 1555 | ; etc. Possible values are 0,1,2,4 or combination of them. 1556 | ; For example, 7 for overload everything. 1557 | ; 0: No overload 1558 | ; 1: Overload mail() function 1559 | ; 2: Overload str*() functions 1560 | ; 4: Overload ereg*() functions 1561 | ; http://php.net/mbstring.func-overload 1562 | ;mbstring.func_overload = 0 1563 | 1564 | ; enable strict encoding detection. 1565 | ;mbstring.strict_detection = Off 1566 | 1567 | ; This directive specifies the regex pattern of content types for which mb_output_handler() 1568 | ; is activated. 1569 | ; Default: mbstring.http_output_conv_mimetype=^(text/|application/xhtml\+xml) 1570 | ;mbstring.http_output_conv_mimetype= 1571 | 1572 | ; Allows to set script encoding. Only affects if PHP is compiled with --enable-zend-multibyte 1573 | ; Default: "" 1574 | ;mbstring.script_encoding= 1575 | 1576 | [gd] 1577 | ; Tell the jpeg decode to ignore warnings and try to create 1578 | ; a gd image. The warning will then be displayed as notices 1579 | ; disabled by default 1580 | ; http://php.net/gd.jpeg-ignore-warning 1581 | ;gd.jpeg_ignore_warning = 0 1582 | 1583 | [exif] 1584 | ; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. 1585 | ; With mbstring support this will automatically be converted into the encoding 1586 | ; given by corresponding encode setting. When empty mbstring.internal_encoding 1587 | ; is used. For the decode settings you can distinguish between motorola and 1588 | ; intel byte order. A decode setting cannot be empty. 1589 | ; http://php.net/exif.encode-unicode 1590 | ;exif.encode_unicode = ISO-8859-15 1591 | 1592 | ; http://php.net/exif.decode-unicode-motorola 1593 | ;exif.decode_unicode_motorola = UCS-2BE 1594 | 1595 | ; http://php.net/exif.decode-unicode-intel 1596 | ;exif.decode_unicode_intel = UCS-2LE 1597 | 1598 | ; http://php.net/exif.encode-jis 1599 | ;exif.encode_jis = 1600 | 1601 | ; http://php.net/exif.decode-jis-motorola 1602 | ;exif.decode_jis_motorola = JIS 1603 | 1604 | ; http://php.net/exif.decode-jis-intel 1605 | ;exif.decode_jis_intel = JIS 1606 | 1607 | [Tidy] 1608 | ; The path to a default tidy configuration file to use when using tidy 1609 | ; http://php.net/tidy.default-config 1610 | ;tidy.default_config = /usr/local/lib/php/default.tcfg 1611 | 1612 | ; Should tidy clean and repair output automatically? 1613 | ; WARNING: Do not use this option if you are generating non-html content 1614 | ; such as dynamic images 1615 | ; http://php.net/tidy.clean-output 1616 | tidy.clean_output = Off 1617 | 1618 | [soap] 1619 | ; Enables or disables WSDL caching feature. 1620 | ; http://php.net/soap.wsdl-cache-enabled 1621 | soap.wsdl_cache_enabled=1 1622 | 1623 | ; Sets the directory name where SOAP extension will put cache files. 1624 | ; http://php.net/soap.wsdl-cache-dir 1625 | soap.wsdl_cache_dir="/tmp" 1626 | 1627 | ; (time to live) Sets the number of second while cached file will be used 1628 | ; instead of original one. 1629 | ; http://php.net/soap.wsdl-cache-ttl 1630 | soap.wsdl_cache_ttl=86400 1631 | 1632 | ; Sets the size of the cache limit. (Max. number of WSDL files to cache) 1633 | soap.wsdl_cache_limit = 5 1634 | 1635 | [sysvshm] 1636 | ; A default size of the shared memory segment 1637 | ;sysvshm.init_mem = 10000 1638 | 1639 | [ldap] 1640 | ; Sets the maximum number of open links or -1 for unlimited. 1641 | ldap.max_links = -1 1642 | 1643 | [dba] 1644 | ;dba.default_handler= 1645 | 1646 | [xsl] 1647 | ; Write operations from within XSLT are disabled by default. 1648 | ; XSL_SECPREF_CREATE_DIRECTORY | XSL_SECPREF_WRITE_NETWORK | XSL_SECPREF_WRITE_FILE = 44 1649 | ; Set it to 0 to allow all operations 1650 | ;xsl.security_prefs = 44 1651 | 1652 | ; Local Variables: 1653 | ; tab-width: 4 1654 | ; End: 1655 | -------------------------------------------------------------------------------- /7.0/php_debug.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "the image has phpdbg" { 4 | run docker run ${container} which phpdbg7 5 | echo 'status:' $status 6 | echo 'output:' $output 7 | [ "$status" -eq 0 ] 8 | [[ "${output}" == *"phpdbg7"* ]] 9 | } 10 | -------------------------------------------------------------------------------- /7.0/tags.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "the main tags are created" { 4 | id=`bash -c "docker images graze/php-alpine:7.0 --format '{{.ID}}'"` 5 | run bash -c "docker images graze/php-alpine --format '{{.ID}} ({{.Tag}})' | grep $id" 6 | echo 'status:' $status 7 | echo 'output:' $output 8 | [ "$status" -eq 0 ] 9 | [[ "$output" == *"(7.0"* ]] 10 | 11 | [[ "$output" != *"(7)"* ]] 12 | [[ "$output" != *"(latest)"* ]] 13 | 14 | [[ "$output" != *"(7-test)"* ]] 15 | [[ "$output" != *"(7.0-test)"* ]] 16 | [[ "$output" != *"(test)"* ]] 17 | } 18 | 19 | @test "the test tags are created" { 20 | id=`bash -c "docker images graze/php-alpine:7.0-test --format '{{.ID}}'"` 21 | run bash -c "docker images graze/php-alpine --format '{{.ID}} ({{.Tag}})' | grep $id" 22 | echo 'status:' $status 23 | echo 'output:' $output 24 | [ "$status" -eq 0 ] 25 | [[ "$output" == *"(7.0-test)"* ]] 26 | 27 | [[ "$output" != *"(7-test)"* ]] 28 | [[ "$output" != *"(test)"* ]] 29 | 30 | [[ "$output" != *"(7)"* ]] 31 | [[ "$output" != *"(7.0)"* ]] 32 | [[ "$output" != *"(latest)"* ]] 33 | } 34 | -------------------------------------------------------------------------------- /7.1/.dockerignore: -------------------------------------------------------------------------------- 1 | *.bats 2 | -------------------------------------------------------------------------------- /7.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.7 2 | 3 | LABEL maintainer="developers@graze.com" \ 4 | license="MIT" \ 5 | org.label-schema.schema-version="1.0" \ 6 | org.label-schema.vendor="graze" \ 7 | org.label-schema.name="php-alpine" \ 8 | org.label-schema.description="small php image based on alpine" \ 9 | org.label-schema.vcs-url="https://github.com/graze/docker-php-alpine" 10 | 11 | RUN set -xe \ 12 | && echo "@php http://dl-cdn.alpinelinux.org/alpine/v3.7/community" >> /etc/apk/repositories \ 13 | && apk add --update --no-cache \ 14 | ca-certificates \ 15 | curl \ 16 | openssh-client \ 17 | libmemcached-libs \ 18 | libevent \ 19 | libssl1.0 \ 20 | musl \ 21 | yaml \ 22 | php7 \ 23 | php7-apcu \ 24 | php7-bcmath \ 25 | php7-ctype \ 26 | php7-curl \ 27 | php7-dom \ 28 | php7-fileinfo \ 29 | php7-iconv \ 30 | php7-intl \ 31 | php7-json \ 32 | php7-openssl \ 33 | php7-opcache \ 34 | php7-mbstring \ 35 | php7-memcached \ 36 | php7-mysqlnd \ 37 | php7-mysqli \ 38 | php7-pcntl \ 39 | php7-pgsql \ 40 | php7-pdo_mysql \ 41 | php7-pdo_pgsql \ 42 | php7-pdo_sqlite \ 43 | php7-phar \ 44 | php7-posix \ 45 | php7-session \ 46 | php7-simplexml \ 47 | php7-soap \ 48 | php7-sockets \ 49 | php7-tokenizer \ 50 | php7-xml \ 51 | php7-xmlreader \ 52 | php7-xmlwriter \ 53 | php7-zip \ 54 | php7-zlib \ 55 | # alpine 3.10 is the first version that provides a gnu-libiconv with the preload library needed 56 | && apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.10/community/ --allow-untrusted \ 57 | gnu-libiconv \ 58 | php7-common=~7.1 59 | 60 | 61 | # install and remove building packages 62 | ENV PHPIZE_DEPS autoconf file g++ gcc libc-dev make pkgconf re2c php7-dev php7-pear \ 63 | yaml-dev libevent-dev openssl-dev 64 | 65 | ENV PHP_INI_DIR /etc/php7 66 | 67 | RUN set -xe \ 68 | && apk add --no-cache \ 69 | --virtual .phpize-deps \ 70 | $PHPIZE_DEPS \ 71 | && sed -i 's/^exec $PHP -C -n/exec $PHP -C/g' $(which pecl) \ 72 | && pecl channel-update pecl.php.net \ 73 | && pecl install yaml event \ 74 | && echo "extension=yaml.so" > $PHP_INI_DIR/conf.d/01_yaml.ini \ 75 | && echo "extension=event.so" > $PHP_INI_DIR/conf.d/01_event.ini \ 76 | && rm -rf /usr/share/php7 \ 77 | && rm -rf /tmp/* \ 78 | && apk del .phpize-deps 79 | 80 | COPY php/conf.d/*.ini $PHP_INI_DIR/conf.d/ 81 | 82 | WORKDIR /srv 83 | 84 | ARG BUILD_DATE 85 | ARG VCS_REF 86 | 87 | LABEL org.label-schema.vcs-ref=$VCS_REF \ 88 | org.label-schema.build-date=$BUILD_DATE 89 | 90 | # Fix for iconv: https://github.com/docker-library/php/issues/240 91 | ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php 92 | -------------------------------------------------------------------------------- /7.1/debug.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM graze/php-alpine:7.1 2 | 3 | RUN apk add --no-cache \ 4 | php7-phpdbg 5 | 6 | ARG BUILD_DATE 7 | ARG VCS_REF 8 | 9 | LABEL org.label-schema.vcs-ref=$VCS_REF \ 10 | org.label-schema.build-date=$BUILD_DATE 11 | -------------------------------------------------------------------------------- /7.1/php.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "php version is correct" { 4 | run docker run --rm ${container} php -v 5 | echo 'status:' $status 6 | echo 'output:' $output 7 | version="$(echo $output | sed 's/.*PHP \([0-9].[0-9]\).*/\1/')" 8 | echo 'version:' $version 9 | [ "$status" -eq 0 ] 10 | [[ "$version" == "7.1" ]] 11 | } 12 | 13 | @test "the image has the correct php modules installed" { 14 | run docker run --rm ${container} php -m 15 | echo 'status:' $status 16 | echo 'output:' $output 17 | [ "$status" -eq 0 ] 18 | [[ "${output}" == *"apcu"* ]] 19 | [[ "${output}" == *"bcmath"* ]] 20 | [[ "${output}" == *"Core"* ]] 21 | [[ "${output}" == *"ctype"* ]] 22 | [[ "${output}" == *"curl"* ]] 23 | [[ "${output}" == *"date"* ]] 24 | [[ "${output}" == *"dom"* ]] 25 | [[ "${output}" == *"event"* ]] 26 | [[ "${output}" == *"fileinfo"* ]] 27 | [[ "${output}" == *"filter"* ]] 28 | [[ "${output}" == *"hash"* ]] 29 | [[ "${output}" == *"iconv"* ]] 30 | [[ "${output}" == *"intl"* ]] 31 | [[ "${output}" == *"json"* ]] 32 | [[ "${output}" == *"libxml"* ]] 33 | [[ "${output}" == *"mbstring"* ]] 34 | [[ "${output}" == *"memcached"* ]] 35 | [[ "${output}" == *"mysqli"* ]] 36 | [[ "${output}" == *"mysqlnd"* ]] 37 | [[ "${output}" == *"openssl"* ]] 38 | [[ "${output}" == *"pcre"* ]] 39 | [[ "${output}" == *"pcntl"* ]] 40 | [[ "${output}" == *"PDO"* ]] 41 | [[ "${output}" == *"pdo_mysql"* ]] 42 | [[ "${output}" == *"pdo_pgsql"* ]] 43 | [[ "${output}" == *"pdo_sqlite"* ]] 44 | [[ "${output}" == *"pgsql"* ]] 45 | [[ "${output}" == *"Phar"* ]] 46 | [[ "${output}" == *"posix"* ]] 47 | [[ "${output}" == *"readline"* ]] 48 | [[ "${output}" == *"Reflection"* ]] 49 | [[ "${output}" == *"session"* ]] 50 | [[ "${output}" == *"SimpleXML"* ]] 51 | [[ "${output}" == *"soap"* ]] 52 | [[ "${output}" == *"sockets"* ]] 53 | [[ "${output}" == *"SPL"* ]] 54 | [[ "${output}" == *"standard"* ]] 55 | [[ "${output}" == *"tokenizer"* ]] 56 | [[ "${output}" == *"xml"* ]] 57 | [[ "${output}" == *"xmlreader"* ]] 58 | [[ "${output}" == *"xmlwriter"* ]] 59 | [[ "${output}" == *"yaml"* ]] 60 | [[ "${output}" == *"Zend OPcache"* ]] 61 | [[ "${output}" == *"zip"* ]] 62 | [[ "${output}" == *"zlib"* ]] 63 | } 64 | -------------------------------------------------------------------------------- /7.1/php/conf.d/00_memlimit.ini: -------------------------------------------------------------------------------- 1 | ; Maximum amount of memory a script may consume (128MB) 2 | ; http://php.net/memory-limit 3 | memory_limit = 1024M 4 | -------------------------------------------------------------------------------- /7.1/php/conf.d/00_short_open_tag.ini: -------------------------------------------------------------------------------- 1 | ; This directive determines whether or not PHP will recognize code between 2 | ; tags as PHP source which should be processed as such. It's been 3 | ; recommended for several years that you not use the short tag "short cut" and 4 | ; instead to use the full tag combination. With the wide spread use 5 | ; of XML and use of these tags by other languages, the server can become easily 6 | ; confused and end up parsing the wrong code in the wrong context. But because 7 | ; this short cut has been a feature for such a long time, it's currently still 8 | ; supported for backwards compatibility, but we recommend you don't use them. 9 | ; Default Value: On 10 | ; Development Value: Off 11 | ; Production Value: Off 12 | ; http://php.net/short-open-tag 13 | short_open_tag = On 14 | -------------------------------------------------------------------------------- /7.1/php_debug.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "the image has phpdbg" { 4 | run docker run ${container} which phpdbg7 5 | echo 'status:' $status 6 | echo 'output:' $output 7 | [ "$status" -eq 0 ] 8 | [[ "${output}" == *"phpdbg7"* ]] 9 | } 10 | -------------------------------------------------------------------------------- /7.1/tags.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "the main tags are created" { 4 | id=`bash -c "docker images graze/php-alpine:7.1 --format '{{.ID}}'"` 5 | run bash -c "docker images graze/php-alpine --format '{{.ID}} ({{.Tag}})' | grep $id" 6 | echo 'status:' $status 7 | echo 'output:' $output 8 | [ "$status" -eq 0 ] 9 | [[ "$output" == *"(7.1"* ]] 10 | 11 | [[ "$output" != *"(7)"* ]] 12 | [[ "$output" != *"(latest)"* ]] 13 | 14 | [[ "$output" != *"(7-test)"* ]] 15 | [[ "$output" != *"(7.1-test)"* ]] 16 | [[ "$output" != *"(test)"* ]] 17 | } 18 | 19 | @test "the test tags are created" { 20 | id=`bash -c "docker images graze/php-alpine:7.1-test --format '{{.ID}}'"` 21 | run bash -c "docker images graze/php-alpine --format '{{.ID}} ({{.Tag}})' | grep $id" 22 | echo 'status:' $status 23 | echo 'output:' $output 24 | [ "$status" -eq 0 ] 25 | [[ "$output" == *"(7.1-test)"* ]] 26 | 27 | [[ "$output" != *"(7-test)"* ]] 28 | [[ "$output" != *"(test)"* ]] 29 | 30 | [[ "$output" != *"(7)"* ]] 31 | [[ "$output" != *"(7.1)"* ]] 32 | [[ "$output" != *"(latest)"* ]] 33 | } 34 | -------------------------------------------------------------------------------- /7.2/.dockerignore: -------------------------------------------------------------------------------- 1 | *.bats 2 | -------------------------------------------------------------------------------- /7.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.8 2 | 3 | LABEL maintainer="developers@graze.com" \ 4 | license="MIT" \ 5 | org.label-schema.schema-version="1.0" \ 6 | org.label-schema.vendor="graze" \ 7 | org.label-schema.name="php-alpine" \ 8 | org.label-schema.description="small php image based on alpine" \ 9 | org.label-schema.vcs-url="https://github.com/graze/docker-php-alpine" 10 | 11 | RUN set -xe \ 12 | && echo "@php http://dl-cdn.alpinelinux.org/alpine/v3.8/community" >> /etc/apk/repositories \ 13 | && apk add --update --no-cache \ 14 | ca-certificates \ 15 | curl \ 16 | openssh-client \ 17 | libmemcached-libs \ 18 | libevent \ 19 | libssl1.0 \ 20 | musl \ 21 | yaml \ 22 | php7 \ 23 | php7-apcu \ 24 | php7-bcmath \ 25 | php7-ctype \ 26 | php7-curl \ 27 | php7-dom \ 28 | php7-fileinfo \ 29 | php7-iconv \ 30 | php7-intl \ 31 | php7-json \ 32 | php7-openssl \ 33 | php7-opcache \ 34 | php7-mbstring \ 35 | php7-memcached \ 36 | php7-mysqlnd \ 37 | php7-mysqli \ 38 | php7-pcntl \ 39 | php7-pgsql \ 40 | php7-pdo_mysql \ 41 | php7-pdo_pgsql \ 42 | php7-pdo_sqlite \ 43 | php7-phar \ 44 | php7-posix \ 45 | php7-session \ 46 | php7-simplexml \ 47 | php7-soap \ 48 | php7-sockets \ 49 | php7-sodium \ 50 | php7-tokenizer \ 51 | php7-xml \ 52 | php7-xmlreader \ 53 | php7-xmlwriter \ 54 | php7-yaml \ 55 | php7-zip \ 56 | php7-zlib \ 57 | # alpine 3.10 is the first version that provides a gnu-libiconv with the preload library needed 58 | && apk add --no-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.10/community/ --allow-untrusted \ 59 | gnu-libiconv 60 | 61 | # install and remove building packages 62 | ENV PHPIZE_DEPS autoconf file g++ gcc libc-dev make pkgconf re2c php7-dev php7-pear \ 63 | libevent-dev openssl-dev 64 | 65 | ENV PHP_INI_DIR /etc/php7 66 | 67 | RUN set -xe \ 68 | && apk add --no-cache \ 69 | --virtual .phpize-deps \ 70 | $PHPIZE_DEPS \ 71 | && sed -i 's/^exec $PHP -C -n/exec $PHP -C/g' $(which pecl) \ 72 | && pecl channel-update pecl.php.net \ 73 | && pecl install event \ 74 | && echo "extension=event.so" > $PHP_INI_DIR/conf.d/01_event.ini \ 75 | && rm -rf /usr/share/php7 \ 76 | && rm -rf /tmp/* \ 77 | && apk del .phpize-deps 78 | 79 | COPY php/conf.d/*.ini $PHP_INI_DIR/conf.d/ 80 | 81 | WORKDIR /srv 82 | 83 | ARG BUILD_DATE 84 | ARG VCS_REF 85 | 86 | LABEL org.label-schema.vcs-ref=$VCS_REF \ 87 | org.label-schema.build-date=$BUILD_DATE 88 | 89 | # Fix for iconv: https://github.com/docker-library/php/issues/240 90 | ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php 91 | -------------------------------------------------------------------------------- /7.2/debug.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM graze/php-alpine:7.2 2 | 3 | RUN apk add --update --no-cache \ 4 | php7-phpdbg 5 | 6 | ARG BUILD_DATE 7 | ARG VCS_REF 8 | 9 | LABEL org.label-schema.vcs-ref=$VCS_REF \ 10 | org.label-schema.build-date=$BUILD_DATE 11 | -------------------------------------------------------------------------------- /7.2/php.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "php version is correct" { 4 | run docker run --rm ${container} php -v 5 | echo 'status:' $status 6 | echo 'output:' $output 7 | version="$(echo $output | sed 's/.*PHP \([0-9].[0-9]\).*/\1/')" 8 | echo 'version:' $version 9 | [ "$status" -eq 0 ] 10 | [[ "$version" == "7.2" ]] 11 | } 12 | 13 | @test "the image has the correct php modules installed" { 14 | run docker run --rm ${container} php -m 15 | echo 'status:' $status 16 | echo 'output:' $output 17 | [ "$status" -eq 0 ] 18 | [[ "${output}" == *"apcu"* ]] 19 | [[ "${output}" == *"bcmath"* ]] 20 | [[ "${output}" == *"Core"* ]] 21 | [[ "${output}" == *"ctype"* ]] 22 | [[ "${output}" == *"curl"* ]] 23 | [[ "${output}" == *"date"* ]] 24 | [[ "${output}" == *"dom"* ]] 25 | [[ "${output}" == *"event"* ]] 26 | [[ "${output}" == *"fileinfo"* ]] 27 | [[ "${output}" == *"filter"* ]] 28 | [[ "${output}" == *"hash"* ]] 29 | [[ "${output}" == *"iconv"* ]] 30 | [[ "${output}" == *"intl"* ]] 31 | [[ "${output}" == *"json"* ]] 32 | [[ "${output}" == *"libxml"* ]] 33 | [[ "${output}" == *"mbstring"* ]] 34 | [[ "${output}" == *"memcached"* ]] 35 | [[ "${output}" == *"mysqli"* ]] 36 | [[ "${output}" == *"mysqlnd"* ]] 37 | [[ "${output}" == *"openssl"* ]] 38 | [[ "${output}" == *"pcre"* ]] 39 | [[ "${output}" == *"pcntl"* ]] 40 | [[ "${output}" == *"PDO"* ]] 41 | [[ "${output}" == *"pdo_mysql"* ]] 42 | [[ "${output}" == *"pdo_pgsql"* ]] 43 | [[ "${output}" == *"pdo_sqlite"* ]] 44 | [[ "${output}" == *"pgsql"* ]] 45 | [[ "${output}" == *"Phar"* ]] 46 | [[ "${output}" == *"posix"* ]] 47 | [[ "${output}" == *"readline"* ]] 48 | [[ "${output}" == *"Reflection"* ]] 49 | [[ "${output}" == *"session"* ]] 50 | [[ "${output}" == *"SimpleXML"* ]] 51 | [[ "${output}" == *"soap"* ]] 52 | [[ "${output}" == *"sodium"* ]] 53 | [[ "${output}" == *"sockets"* ]] 54 | [[ "${output}" == *"SPL"* ]] 55 | [[ "${output}" == *"standard"* ]] 56 | [[ "${output}" == *"tokenizer"* ]] 57 | [[ "${output}" == *"xml"* ]] 58 | [[ "${output}" == *"xmlreader"* ]] 59 | [[ "${output}" == *"xmlwriter"* ]] 60 | [[ "${output}" == *"yaml"* ]] 61 | [[ "${output}" == *"Zend OPcache"* ]] 62 | [[ "${output}" == *"zip"* ]] 63 | [[ "${output}" == *"zlib"* ]] 64 | } 65 | -------------------------------------------------------------------------------- /7.2/php/conf.d/00_memlimit.ini: -------------------------------------------------------------------------------- 1 | ; Maximum amount of memory a script may consume (128MB) 2 | ; http://php.net/memory-limit 3 | memory_limit = 1024M 4 | -------------------------------------------------------------------------------- /7.2/php/conf.d/00_short_open_tag.ini: -------------------------------------------------------------------------------- 1 | ; This directive determines whether or not PHP will recognize code between 2 | ; tags as PHP source which should be processed as such. It's been 3 | ; recommended for several years that you not use the short tag "short cut" and 4 | ; instead to use the full tag combination. With the wide spread use 5 | ; of XML and use of these tags by other languages, the server can become easily 6 | ; confused and end up parsing the wrong code in the wrong context. But because 7 | ; this short cut has been a feature for such a long time, it's currently still 8 | ; supported for backwards compatibility, but we recommend you don't use them. 9 | ; Default Value: On 10 | ; Development Value: Off 11 | ; Production Value: Off 12 | ; http://php.net/short-open-tag 13 | short_open_tag = On 14 | -------------------------------------------------------------------------------- /7.2/php_debug.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "the image has phpdbg" { 4 | run docker run ${container} which phpdbg7 5 | echo 'status:' $status 6 | echo 'output:' $output 7 | [ "$status" -eq 0 ] 8 | [[ "${output}" == *"phpdbg7"* ]] 9 | } 10 | -------------------------------------------------------------------------------- /7.2/tags.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "the main tags are created" { 4 | id=`bash -c "docker images graze/php-alpine:7.2 --format '{{.ID}}'"` 5 | run bash -c "docker images graze/php-alpine --format '{{.ID}} ({{.Tag}})' | grep $id" 6 | echo 'status:' $status 7 | echo 'output:' $output 8 | [ "$status" -eq 0 ] 9 | [[ "$output" == *"(7.2"* ]] 10 | 11 | [[ "$output" != *"(7)"* ]] 12 | [[ "$output" != *"(latest)"* ]] 13 | 14 | [[ "$output" != *"(7-test)"* ]] 15 | [[ "$output" != *"(7.2-test)"* ]] 16 | [[ "$output" != *"(test)"* ]] 17 | } 18 | 19 | @test "the test tags are created" { 20 | id=`bash -c "docker images graze/php-alpine:7.2-test --format '{{.ID}}'"` 21 | run bash -c "docker images graze/php-alpine --format '{{.ID}} ({{.Tag}})' | grep $id" 22 | echo 'status:' $status 23 | echo 'output:' $output 24 | [ "$status" -eq 0 ] 25 | [[ "$output" == *"(7.2-test)"* ]] 26 | 27 | [[ "$output" != *"(7-test)"* ]] 28 | [[ "$output" != *"(test)"* ]] 29 | 30 | [[ "$output" != *"(7)"* ]] 31 | [[ "$output" != *"(7.1)"* ]] 32 | [[ "$output" != *"(latest)"* ]] 33 | } 34 | -------------------------------------------------------------------------------- /7.3/.dockerignore: -------------------------------------------------------------------------------- 1 | *.bats 2 | -------------------------------------------------------------------------------- /7.3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.12 2 | 3 | LABEL maintainer="developers@graze.com" \ 4 | license="MIT" \ 5 | org.label-schema.schema-version="1.0" \ 6 | org.label-schema.vendor="graze" \ 7 | org.label-schema.name="php-alpine" \ 8 | org.label-schema.description="small php image based on alpine" \ 9 | org.label-schema.vcs-url="https://github.com/graze/docker-php-alpine" 10 | 11 | RUN set -xe \ 12 | && echo "@php http://dl-cdn.alpinelinux.org/alpine/v3.12/community" >> /etc/apk/repositories \ 13 | && apk add --update --no-cache \ 14 | gnu-libiconv \ 15 | ca-certificates \ 16 | curl \ 17 | openssh-client \ 18 | libmemcached-libs \ 19 | libevent \ 20 | libssl1.1 \ 21 | musl \ 22 | yaml \ 23 | php7 \ 24 | php7-pecl-apcu \ 25 | php7-pecl-event \ 26 | php7-pecl-memcached \ 27 | php7-pecl-yaml \ 28 | php7-bcmath \ 29 | php7-ctype \ 30 | php7-curl \ 31 | php7-dom \ 32 | php7-fileinfo \ 33 | php7-iconv \ 34 | php7-intl \ 35 | php7-json \ 36 | php7-openssl \ 37 | php7-opcache \ 38 | php7-mbstring \ 39 | php7-mysqlnd \ 40 | php7-mysqli \ 41 | php7-pcntl \ 42 | php7-pgsql \ 43 | php7-pdo_mysql \ 44 | php7-pdo_pgsql \ 45 | php7-pdo_sqlite \ 46 | php7-phar \ 47 | php7-posix \ 48 | php7-simplexml \ 49 | php7-session \ 50 | php7-soap \ 51 | php7-sockets \ 52 | php7-sodium \ 53 | php7-tokenizer \ 54 | php7-xml \ 55 | php7-xmlreader \ 56 | php7-xmlwriter \ 57 | php7-zip \ 58 | php7-zlib 59 | 60 | ENV PHP_INI_DIR /etc/php7 61 | 62 | COPY php/conf.d/*.ini $PHP_INI_DIR/conf.d/ 63 | 64 | WORKDIR /srv 65 | 66 | ARG BUILD_DATE 67 | ARG VCS_REF 68 | 69 | LABEL org.label-schema.vcs-ref=$VCS_REF \ 70 | org.label-schema.build-date=$BUILD_DATE 71 | 72 | # Fix for iconv: https://github.com/docker-library/php/issues/240 73 | ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php 74 | -------------------------------------------------------------------------------- /7.3/debug.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM graze/php-alpine:7.3 2 | 3 | RUN apk add --update --no-cache \ 4 | php-phpdbg 5 | 6 | ARG BUILD_DATE 7 | ARG VCS_REF 8 | 9 | LABEL org.label-schema.vcs-ref=$VCS_REF \ 10 | org.label-schema.build-date=$BUILD_DATE 11 | -------------------------------------------------------------------------------- /7.3/php.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "php version is correct" { 4 | run docker run --rm ${container} php -v 5 | echo 'status:' $status 6 | echo 'output:' $output 7 | version="$(echo $output | sed 's/.*PHP \([0-9].[0-9]\).*/\1/')" 8 | echo 'version:' $version 9 | [ "$status" -eq 0 ] 10 | [[ "$version" == "7.3" ]] 11 | } 12 | 13 | @test "the image has the correct php modules installed" { 14 | run docker run --rm ${container} php -m 15 | echo 'status:' $status 16 | echo 'output:' $output 17 | [ "$status" -eq 0 ] 18 | [[ "${output}" == *"apcu"* ]] 19 | [[ "${output}" == *"bcmath"* ]] 20 | [[ "${output}" == *"Core"* ]] 21 | [[ "${output}" == *"ctype"* ]] 22 | [[ "${output}" == *"curl"* ]] 23 | [[ "${output}" == *"date"* ]] 24 | [[ "${output}" == *"dom"* ]] 25 | [[ "${output}" == *"event"* ]] 26 | [[ "${output}" == *"fileinfo"* ]] 27 | [[ "${output}" == *"filter"* ]] 28 | [[ "${output}" == *"hash"* ]] 29 | [[ "${output}" == *"iconv"* ]] 30 | [[ "${output}" == *"intl"* ]] 31 | [[ "${output}" == *"json"* ]] 32 | [[ "${output}" == *"libxml"* ]] 33 | [[ "${output}" == *"mbstring"* ]] 34 | [[ "${output}" == *"memcached"* ]] 35 | [[ "${output}" == *"mysqli"* ]] 36 | [[ "${output}" == *"mysqlnd"* ]] 37 | [[ "${output}" == *"openssl"* ]] 38 | [[ "${output}" == *"pcre"* ]] 39 | [[ "${output}" == *"pcntl"* ]] 40 | [[ "${output}" == *"PDO"* ]] 41 | [[ "${output}" == *"pdo_mysql"* ]] 42 | [[ "${output}" == *"pdo_pgsql"* ]] 43 | [[ "${output}" == *"pdo_sqlite"* ]] 44 | [[ "${output}" == *"pgsql"* ]] 45 | [[ "${output}" == *"Phar"* ]] 46 | [[ "${output}" == *"posix"* ]] 47 | [[ "${output}" == *"readline"* ]] 48 | [[ "${output}" == *"Reflection"* ]] 49 | [[ "${output}" == *"session"* ]] 50 | [[ "${output}" == *"SimpleXML"* ]] 51 | [[ "${output}" == *"soap"* ]] 52 | [[ "${output}" == *"sodium"* ]] 53 | [[ "${output}" == *"sockets"* ]] 54 | [[ "${output}" == *"SPL"* ]] 55 | [[ "${output}" == *"standard"* ]] 56 | [[ "${output}" == *"tokenizer"* ]] 57 | [[ "${output}" == *"xml"* ]] 58 | [[ "${output}" == *"xmlreader"* ]] 59 | [[ "${output}" == *"xmlwriter"* ]] 60 | [[ "${output}" == *"yaml"* ]] 61 | [[ "${output}" == *"Zend OPcache"* ]] 62 | [[ "${output}" == *"zip"* ]] 63 | [[ "${output}" == *"zlib"* ]] 64 | } 65 | -------------------------------------------------------------------------------- /7.3/php/conf.d/00_memlimit.ini: -------------------------------------------------------------------------------- 1 | ; Maximum amount of memory a script may consume (128MB) 2 | ; http://php.net/memory-limit 3 | memory_limit = 1024M 4 | -------------------------------------------------------------------------------- /7.3/php/conf.d/00_short_open_tag.ini: -------------------------------------------------------------------------------- 1 | ; This directive determines whether or not PHP will recognize code between 2 | ; tags as PHP source which should be processed as such. It's been 3 | ; recommended for several years that you not use the short tag "short cut" and 4 | ; instead to use the full tag combination. With the wide spread use 5 | ; of XML and use of these tags by other languages, the server can become easily 6 | ; confused and end up parsing the wrong code in the wrong context. But because 7 | ; this short cut has been a feature for such a long time, it's currently still 8 | ; supported for backwards compatibility, but we recommend you don't use them. 9 | ; Default Value: On 10 | ; Development Value: Off 11 | ; Production Value: Off 12 | ; http://php.net/short-open-tag 13 | short_open_tag = On 14 | -------------------------------------------------------------------------------- /7.3/php_debug.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "the image has phpdbg" { 4 | run docker run ${container} which phpdbg7 5 | echo 'status:' $status 6 | echo 'output:' $output 7 | [ "$status" -eq 0 ] 8 | [[ "${output}" == *"phpdbg7"* ]] 9 | } 10 | -------------------------------------------------------------------------------- /7.3/tags.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "the main tags are created" { 4 | run bash -c "docker images graze/php-alpine --format '{{.ID}} ({{.Tag}})' | grep "$(docker images graze/php-alpine:7.3 --format '{{.ID}}')"" 5 | echo 'output:' $output 6 | [[ "$output" == *"(7.3)"* ]] 7 | } 8 | 9 | @test "the test tags are created" { 10 | run bash -c "docker images graze/php-alpine --format '{{.ID}} ({{.Tag}})' | grep "$(docker images graze/php-alpine:7.3-test --format '{{.ID}}')"" 11 | echo 'output:' $output 12 | [[ "$output" == *"(7.3-test)"* ]] 13 | } 14 | -------------------------------------------------------------------------------- /7.4/.dockerignore: -------------------------------------------------------------------------------- 1 | *.bats 2 | -------------------------------------------------------------------------------- /7.4/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.13 2 | 3 | LABEL maintainer="developers@graze.com" \ 4 | license="MIT" \ 5 | org.label-schema.schema-version="1.0" \ 6 | org.label-schema.vendor="graze" \ 7 | org.label-schema.name="php-alpine" \ 8 | org.label-schema.description="small php image based on alpine" \ 9 | org.label-schema.vcs-url="https://github.com/graze/docker-php-alpine" 10 | 11 | RUN set -xe \ 12 | && echo "@php http://dl-cdn.alpinelinux.org/alpine/v3.13/community" >> /etc/apk/repositories \ 13 | && apk add --update --no-cache \ 14 | ca-certificates \ 15 | curl \ 16 | gnu-libiconv \ 17 | openssh-client \ 18 | libmemcached-libs \ 19 | libevent \ 20 | libssl1.1 \ 21 | musl \ 22 | yaml \ 23 | php7 \ 24 | php7-pecl-apcu \ 25 | php7-pecl-event \ 26 | php7-pecl-memcached \ 27 | php7-pecl-yaml \ 28 | php7-bcmath \ 29 | php7-ctype \ 30 | php7-curl \ 31 | php7-dom \ 32 | php7-fileinfo \ 33 | php7-iconv \ 34 | php7-intl \ 35 | php7-json \ 36 | php7-openssl \ 37 | php7-opcache \ 38 | php7-mbstring \ 39 | php7-mysqlnd \ 40 | php7-mysqli \ 41 | php7-pcntl \ 42 | php7-pgsql \ 43 | php7-pdo_mysql \ 44 | php7-pdo_pgsql \ 45 | php7-pdo_sqlite \ 46 | php7-phar \ 47 | php7-posix \ 48 | php7-simplexml \ 49 | php7-session \ 50 | php7-soap \ 51 | php7-sockets \ 52 | php7-sodium \ 53 | php7-tokenizer \ 54 | php7-xml \ 55 | php7-xmlreader \ 56 | php7-xmlwriter \ 57 | php7-zip \ 58 | php7-zlib 59 | 60 | ENV PHP_INI_DIR /etc/php7 61 | 62 | COPY php/conf.d/*.ini $PHP_INI_DIR/conf.d/ 63 | 64 | WORKDIR /srv 65 | 66 | ARG BUILD_DATE 67 | ARG VCS_REF 68 | 69 | LABEL org.label-schema.vcs-ref=$VCS_REF \ 70 | org.label-schema.build-date=$BUILD_DATE 71 | 72 | # Fix for iconv: https://github.com/docker-library/php/issues/240 73 | ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php 74 | -------------------------------------------------------------------------------- /7.4/debug.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM graze/php-alpine:7.4 2 | 3 | RUN apk add --update --no-cache \ 4 | php-phpdbg 5 | 6 | ARG BUILD_DATE 7 | ARG VCS_REF 8 | 9 | LABEL org.label-schema.vcs-ref=$VCS_REF \ 10 | org.label-schema.build-date=$BUILD_DATE 11 | -------------------------------------------------------------------------------- /7.4/php.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "php version is correct" { 4 | run docker run --rm ${container} php -v 5 | echo 'status:' $status 6 | echo 'output:' $output 7 | version="$(echo $output | sed 's/.*PHP \([0-9].[0-9]\).*/\1/')" 8 | echo 'version:' $version 9 | [ "$status" -eq 0 ] 10 | [[ "$version" == "7.4" ]] 11 | } 12 | 13 | @test "the image has the correct php modules installed" { 14 | run docker run --rm ${container} php -m 15 | echo 'status:' $status 16 | echo 'output:' $output 17 | [ "$status" -eq 0 ] 18 | [[ "${output}" == *"apcu"* ]] 19 | [[ "${output}" == *"bcmath"* ]] 20 | [[ "${output}" == *"Core"* ]] 21 | [[ "${output}" == *"ctype"* ]] 22 | [[ "${output}" == *"curl"* ]] 23 | [[ "${output}" == *"date"* ]] 24 | [[ "${output}" == *"dom"* ]] 25 | [[ "${output}" == *"event"* ]] 26 | [[ "${output}" == *"fileinfo"* ]] 27 | [[ "${output}" == *"filter"* ]] 28 | [[ "${output}" == *"hash"* ]] 29 | [[ "${output}" == *"iconv"* ]] 30 | [[ "${output}" == *"intl"* ]] 31 | [[ "${output}" == *"json"* ]] 32 | [[ "${output}" == *"libxml"* ]] 33 | [[ "${output}" == *"mbstring"* ]] 34 | [[ "${output}" == *"memcached"* ]] 35 | [[ "${output}" == *"mysqli"* ]] 36 | [[ "${output}" == *"mysqlnd"* ]] 37 | [[ "${output}" == *"openssl"* ]] 38 | [[ "${output}" == *"pcre"* ]] 39 | [[ "${output}" == *"pcntl"* ]] 40 | [[ "${output}" == *"PDO"* ]] 41 | [[ "${output}" == *"pdo_mysql"* ]] 42 | [[ "${output}" == *"pdo_pgsql"* ]] 43 | [[ "${output}" == *"pdo_sqlite"* ]] 44 | [[ "${output}" == *"pgsql"* ]] 45 | [[ "${output}" == *"Phar"* ]] 46 | [[ "${output}" == *"posix"* ]] 47 | [[ "${output}" == *"readline"* ]] 48 | [[ "${output}" == *"Reflection"* ]] 49 | [[ "${output}" == *"session"* ]] 50 | [[ "${output}" == *"SimpleXML"* ]] 51 | [[ "${output}" == *"soap"* ]] 52 | [[ "${output}" == *"sodium"* ]] 53 | [[ "${output}" == *"sockets"* ]] 54 | [[ "${output}" == *"SPL"* ]] 55 | [[ "${output}" == *"standard"* ]] 56 | [[ "${output}" == *"tokenizer"* ]] 57 | [[ "${output}" == *"xml"* ]] 58 | [[ "${output}" == *"xmlreader"* ]] 59 | [[ "${output}" == *"xmlwriter"* ]] 60 | [[ "${output}" == *"yaml"* ]] 61 | [[ "${output}" == *"Zend OPcache"* ]] 62 | [[ "${output}" == *"zip"* ]] 63 | [[ "${output}" == *"zlib"* ]] 64 | } 65 | -------------------------------------------------------------------------------- /7.4/php/conf.d/00_memlimit.ini: -------------------------------------------------------------------------------- 1 | ; Maximum amount of memory a script may consume (128MB) 2 | ; http://php.net/memory-limit 3 | memory_limit = 1024M 4 | -------------------------------------------------------------------------------- /7.4/php/conf.d/00_short_open_tag.ini: -------------------------------------------------------------------------------- 1 | ; This directive determines whether or not PHP will recognize code between 2 | ; tags as PHP source which should be processed as such. It's been 3 | ; recommended for several years that you not use the short tag "short cut" and 4 | ; instead to use the full tag combination. With the wide spread use 5 | ; of XML and use of these tags by other languages, the server can become easily 6 | ; confused and end up parsing the wrong code in the wrong context. But because 7 | ; this short cut has been a feature for such a long time, it's currently still 8 | ; supported for backwards compatibility, but we recommend you don't use them. 9 | ; Default Value: On 10 | ; Development Value: Off 11 | ; Production Value: Off 12 | ; http://php.net/short-open-tag 13 | short_open_tag = On 14 | -------------------------------------------------------------------------------- /7.4/php_debug.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "the image has phpdbg" { 4 | run docker run ${container} which phpdbg7 5 | echo 'status:' $status 6 | echo 'output:' $output 7 | [ "$status" -eq 0 ] 8 | [[ "${output}" == *"phpdbg7"* ]] 9 | } 10 | -------------------------------------------------------------------------------- /7.4/tags.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "the main tags are created" { 4 | run bash -c "docker images graze/php-alpine --format '{{.ID}} ({{.Tag}})' | grep "$(docker images graze/php-alpine:7.4 --format '{{.ID}}')"" 5 | echo 'output:' $output 6 | [[ "$output" == *"(7.4)"* ]] 7 | } 8 | 9 | @test "the test tags are created" { 10 | run bash -c "docker images graze/php-alpine --format '{{.ID}} ({{.Tag}})' | grep "$(docker images graze/php-alpine:7.4-test --format '{{.ID}}')"" 11 | echo 'output:' $output 12 | [[ "$output" == *"(7.4-test)"* ]] 13 | } 14 | -------------------------------------------------------------------------------- /8.0/.dockerignore: -------------------------------------------------------------------------------- 1 | *.bats 2 | -------------------------------------------------------------------------------- /8.0/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.13 2 | 3 | LABEL maintainer="developers@graze.com" \ 4 | license="MIT" \ 5 | org.label-schema.schema-version="1.0" \ 6 | org.label-schema.vendor="graze" \ 7 | org.label-schema.name="php-alpine" \ 8 | org.label-schema.description="small php image based on alpine" \ 9 | org.label-schema.vcs-url="https://github.com/graze/docker-php-alpine" 10 | 11 | RUN set -xe \ 12 | && echo "@php http://dl-cdn.alpinelinux.org/alpine/v3.13/community" >> /etc/apk/repositories \ 13 | && apk add --update --no-cache \ 14 | ca-certificates \ 15 | curl \ 16 | gnu-libiconv \ 17 | openssh-client \ 18 | libmemcached-libs \ 19 | libevent \ 20 | libssl1.1 \ 21 | musl \ 22 | yaml \ 23 | php8 \ 24 | php8-pecl-apcu \ 25 | php8-pecl-event \ 26 | php8-pecl-memcached \ 27 | php8-pecl-yaml \ 28 | php8-bcmath \ 29 | php8-common \ 30 | php8-ctype \ 31 | php8-curl \ 32 | php8-dom \ 33 | php8-fileinfo \ 34 | php8-iconv \ 35 | php8-intl \ 36 | php8-openssl \ 37 | php8-opcache \ 38 | php8-mbstring \ 39 | php8-mysqlnd \ 40 | php8-mysqli \ 41 | php8-pcntl \ 42 | php8-pgsql \ 43 | php8-pdo_mysql \ 44 | php8-pdo_pgsql \ 45 | php8-pdo_sqlite \ 46 | php8-phar \ 47 | php8-posix \ 48 | php8-simplexml \ 49 | php8-session \ 50 | php8-soap \ 51 | php8-sockets \ 52 | php8-sodium \ 53 | php8-tokenizer \ 54 | php8-xml \ 55 | php8-xmlreader \ 56 | php8-xmlwriter \ 57 | php8-zip \ 58 | php8-zlib 59 | 60 | ENV PHP_INI_DIR /etc/php8 61 | 62 | RUN ln -s /usr/bin/php8 /usr/bin/php 63 | RUN ln -s /usr/bin/pecl8 /usr/bin/pecl 64 | 65 | COPY php/conf.d/*.ini $PHP_INI_DIR/conf.d/ 66 | 67 | WORKDIR /srv 68 | 69 | ARG BUILD_DATE 70 | ARG VCS_REF 71 | 72 | LABEL org.label-schema.vcs-ref=$VCS_REF \ 73 | org.label-schema.build-date=$BUILD_DATE 74 | 75 | # Fix for iconv: https://github.com/docker-library/php/issues/240 76 | ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php 77 | -------------------------------------------------------------------------------- /8.0/debug.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM graze/php-alpine:8.0 2 | 3 | RUN apk add --update --no-cache \ 4 | php8-phpdbg 5 | 6 | ARG BUILD_DATE 7 | ARG VCS_REF 8 | 9 | LABEL org.label-schema.vcs-ref=$VCS_REF \ 10 | org.label-schema.build-date=$BUILD_DATE 11 | -------------------------------------------------------------------------------- /8.0/php.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "php version is correct" { 4 | run docker run --rm ${container} php -v 5 | echo 'status:' $status 6 | echo 'output:' $output 7 | version="$(echo $output | sed 's/.*PHP \([0-9].[0-9]\).*/\1/')" 8 | echo 'version:' $version 9 | [ "$status" -eq 0 ] 10 | [[ "$version" == "8.0" ]] 11 | } 12 | 13 | @test "the image has the correct php modules installed" { 14 | run docker run --rm ${container} php -m 15 | echo 'status:' $status 16 | echo 'output:' $output 17 | [ "$status" -eq 0 ] 18 | [[ "${output}" == *"apcu"* ]] 19 | [[ "${output}" == *"bcmath"* ]] 20 | [[ "${output}" == *"Core"* ]] 21 | [[ "${output}" == *"ctype"* ]] 22 | [[ "${output}" == *"curl"* ]] 23 | [[ "${output}" == *"date"* ]] 24 | [[ "${output}" == *"dom"* ]] 25 | [[ "${output}" == *"event"* ]] 26 | [[ "${output}" == *"fileinfo"* ]] 27 | [[ "${output}" == *"filter"* ]] 28 | [[ "${output}" == *"hash"* ]] 29 | [[ "${output}" == *"iconv"* ]] 30 | [[ "${output}" == *"intl"* ]] 31 | [[ "${output}" == *"json"* ]] 32 | [[ "${output}" == *"libxml"* ]] 33 | [[ "${output}" == *"mbstring"* ]] 34 | [[ "${output}" == *"memcached"* ]] 35 | [[ "${output}" == *"mysqli"* ]] 36 | [[ "${output}" == *"mysqlnd"* ]] 37 | [[ "${output}" == *"openssl"* ]] 38 | [[ "${output}" == *"pcre"* ]] 39 | [[ "${output}" == *"pcntl"* ]] 40 | [[ "${output}" == *"PDO"* ]] 41 | [[ "${output}" == *"pdo_mysql"* ]] 42 | [[ "${output}" == *"pdo_pgsql"* ]] 43 | [[ "${output}" == *"pdo_sqlite"* ]] 44 | [[ "${output}" == *"pgsql"* ]] 45 | [[ "${output}" == *"Phar"* ]] 46 | [[ "${output}" == *"posix"* ]] 47 | [[ "${output}" == *"readline"* ]] 48 | [[ "${output}" == *"Reflection"* ]] 49 | [[ "${output}" == *"session"* ]] 50 | [[ "${output}" == *"SimpleXML"* ]] 51 | [[ "${output}" == *"soap"* ]] 52 | [[ "${output}" == *"sodium"* ]] 53 | [[ "${output}" == *"sockets"* ]] 54 | [[ "${output}" == *"SPL"* ]] 55 | [[ "${output}" == *"standard"* ]] 56 | [[ "${output}" == *"tokenizer"* ]] 57 | [[ "${output}" == *"xml"* ]] 58 | [[ "${output}" == *"xmlreader"* ]] 59 | [[ "${output}" == *"xmlwriter"* ]] 60 | [[ "${output}" == *"yaml"* ]] 61 | [[ "${output}" == *"Zend OPcache"* ]] 62 | [[ "${output}" == *"zip"* ]] 63 | [[ "${output}" == *"zlib"* ]] 64 | } 65 | -------------------------------------------------------------------------------- /8.0/php/conf.d/00_memlimit.ini: -------------------------------------------------------------------------------- 1 | ; Maximum amount of memory a script may consume (128MB) 2 | ; http://php.net/memory-limit 3 | memory_limit = 1024M 4 | -------------------------------------------------------------------------------- /8.0/php/conf.d/00_short_open_tag.ini: -------------------------------------------------------------------------------- 1 | ; This directive determines whether or not PHP will recognize code between 2 | ; tags as PHP source which should be processed as such. It's been 3 | ; recommended for several years that you not use the short tag "short cut" and 4 | ; instead to use the full tag combination. With the wide spread use 5 | ; of XML and use of these tags by other languages, the server can become easily 6 | ; confused and end up parsing the wrong code in the wrong context. But because 7 | ; this short cut has been a feature for such a long time, it's currently still 8 | ; supported for backwards compatibility, but we recommend you don't use them. 9 | ; Default Value: On 10 | ; Development Value: Off 11 | ; Production Value: Off 12 | ; http://php.net/short-open-tag 13 | short_open_tag = On 14 | -------------------------------------------------------------------------------- /8.0/php_debug.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "the image has phpdbg" { 4 | run docker run ${container} which phpdbg8 5 | echo 'status:' $status 6 | echo 'output:' $output 7 | [ "$status" -eq 0 ] 8 | [[ "${output}" == *"phpdbg8"* ]] 9 | } 10 | -------------------------------------------------------------------------------- /8.0/tags.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "the main tags are created" { 4 | run bash -c "docker images graze/php-alpine --format '{{.ID}} ({{.Tag}})' | grep "$(docker images graze/php-alpine:8.0 --format '{{.ID}}')"" 5 | echo 'output:' $output 6 | [[ "$output" == *"(8.0)"* ]] 7 | } 8 | 9 | @test "the test tags are created" { 10 | run bash -c "docker images graze/php-alpine --format '{{.ID}} ({{.Tag}})' | grep "$(docker images graze/php-alpine:8.0-test --format '{{.ID}}')"" 11 | echo 'output:' $output 12 | [[ "$output" == *"(8.0-test)"* ]] 13 | } 14 | -------------------------------------------------------------------------------- /8.1/.dockerignore: -------------------------------------------------------------------------------- 1 | *.bats 2 | -------------------------------------------------------------------------------- /8.1/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.18 2 | 3 | LABEL maintainer="developers@graze.com" \ 4 | license="MIT" \ 5 | org.label-schema.schema-version="1.0" \ 6 | org.label-schema.vendor="graze" \ 7 | org.label-schema.name="php-alpine" \ 8 | org.label-schema.description="small php image based on alpine" \ 9 | org.label-schema.vcs-url="https://github.com/graze/docker-php-alpine" 10 | 11 | # Fix for iconv: https://github.com/docker-library/php/issues/240 12 | RUN apk add gnu-libiconv=1.15-r3 --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.13/community/ --allow-untrusted 13 | 14 | RUN set -xe \ 15 | && echo "@php http://dl-cdn.alpinelinux.org/alpine/v3.18/community" >> /etc/apk/repositories \ 16 | && apk add --update --no-cache \ 17 | ca-certificates \ 18 | curl \ 19 | openssh-client \ 20 | libmemcached-libs \ 21 | libevent \ 22 | libssl1.1 \ 23 | musl \ 24 | yaml \ 25 | php81 \ 26 | php81-pecl-apcu \ 27 | php81-pecl-event \ 28 | php81-pecl-memcached \ 29 | php81-pecl-yaml \ 30 | php81-bcmath \ 31 | php81-common \ 32 | php81-ctype \ 33 | php81-curl \ 34 | php81-dom \ 35 | php81-fileinfo \ 36 | php81-iconv \ 37 | php81-intl \ 38 | php81-openssl \ 39 | php81-opcache \ 40 | php81-mbstring \ 41 | php81-mysqlnd \ 42 | php81-mysqli \ 43 | php81-pcntl \ 44 | php81-pgsql \ 45 | php81-pdo_mysql \ 46 | php81-pdo_pgsql \ 47 | php81-pdo_sqlite \ 48 | php81-phar \ 49 | php81-posix \ 50 | php81-simplexml \ 51 | php81-session \ 52 | php81-soap \ 53 | php81-sockets \ 54 | php81-sodium \ 55 | php81-tokenizer \ 56 | php81-xml \ 57 | php81-xmlreader \ 58 | php81-xmlwriter \ 59 | php81-zip \ 60 | php81-zlib 61 | 62 | ENV PHP_INI_DIR /etc/php81 63 | 64 | #RUN ln -s /usr/bin/php81 /usr/bin/php 65 | #RUN ln -s /usr/bin/pecl81 /usr/bin/pecl 66 | 67 | COPY php/conf.d/*.ini $PHP_INI_DIR/conf.d/ 68 | 69 | WORKDIR /srv 70 | 71 | ARG BUILD_DATE 72 | ARG VCS_REF 73 | 74 | LABEL org.label-schema.vcs-ref=$VCS_REF \ 75 | org.label-schema.build-date=$BUILD_DATE 76 | 77 | # Fix for iconv: https://github.com/docker-library/php/issues/240 78 | ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php 79 | -------------------------------------------------------------------------------- /8.1/debug.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM graze/php-alpine:8.1 2 | 3 | RUN apk add --update --no-cache \ 4 | php81-phpdbg 5 | 6 | ARG BUILD_DATE 7 | ARG VCS_REF 8 | 9 | LABEL org.label-schema.vcs-ref=$VCS_REF \ 10 | org.label-schema.build-date=$BUILD_DATE 11 | -------------------------------------------------------------------------------- /8.1/php.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "php version is correct" { 4 | run docker run --rm ${container} php -v 5 | echo 'status:' $status 6 | echo 'output:' $output 7 | version="$(echo $output | sed 's/.*PHP \([0-9].[0-9]\).*/\1/')" 8 | echo 'version:' $version 9 | [ "$status" -eq 0 ] 10 | [[ "$version" == "8.1" ]] 11 | } 12 | 13 | @test "the image has the correct php modules installed" { 14 | run docker run --rm ${container} php -m 15 | echo 'status:' $status 16 | echo 'output:' $output 17 | [ "$status" -eq 0 ] 18 | [[ "${output}" == *"apcu"* ]] 19 | [[ "${output}" == *"bcmath"* ]] 20 | [[ "${output}" == *"Core"* ]] 21 | [[ "${output}" == *"ctype"* ]] 22 | [[ "${output}" == *"curl"* ]] 23 | [[ "${output}" == *"date"* ]] 24 | [[ "${output}" == *"dom"* ]] 25 | [[ "${output}" == *"event"* ]] 26 | [[ "${output}" == *"fileinfo"* ]] 27 | [[ "${output}" == *"filter"* ]] 28 | [[ "${output}" == *"hash"* ]] 29 | [[ "${output}" == *"iconv"* ]] 30 | [[ "${output}" == *"intl"* ]] 31 | [[ "${output}" == *"json"* ]] 32 | [[ "${output}" == *"libxml"* ]] 33 | [[ "${output}" == *"mbstring"* ]] 34 | [[ "${output}" == *"memcached"* ]] 35 | [[ "${output}" == *"mysqli"* ]] 36 | [[ "${output}" == *"mysqlnd"* ]] 37 | [[ "${output}" == *"openssl"* ]] 38 | [[ "${output}" == *"pcre"* ]] 39 | [[ "${output}" == *"pcntl"* ]] 40 | [[ "${output}" == *"PDO"* ]] 41 | [[ "${output}" == *"pdo_mysql"* ]] 42 | [[ "${output}" == *"pdo_pgsql"* ]] 43 | [[ "${output}" == *"pdo_sqlite"* ]] 44 | [[ "${output}" == *"pgsql"* ]] 45 | [[ "${output}" == *"Phar"* ]] 46 | [[ "${output}" == *"posix"* ]] 47 | [[ "${output}" == *"readline"* ]] 48 | [[ "${output}" == *"Reflection"* ]] 49 | [[ "${output}" == *"session"* ]] 50 | [[ "${output}" == *"SimpleXML"* ]] 51 | [[ "${output}" == *"soap"* ]] 52 | [[ "${output}" == *"sodium"* ]] 53 | [[ "${output}" == *"sockets"* ]] 54 | [[ "${output}" == *"SPL"* ]] 55 | [[ "${output}" == *"standard"* ]] 56 | [[ "${output}" == *"tokenizer"* ]] 57 | [[ "${output}" == *"xml"* ]] 58 | [[ "${output}" == *"xmlreader"* ]] 59 | [[ "${output}" == *"xmlwriter"* ]] 60 | [[ "${output}" == *"yaml"* ]] 61 | [[ "${output}" == *"Zend OPcache"* ]] 62 | [[ "${output}" == *"zip"* ]] 63 | [[ "${output}" == *"zlib"* ]] 64 | } 65 | -------------------------------------------------------------------------------- /8.1/php/conf.d/00_memlimit.ini: -------------------------------------------------------------------------------- 1 | ; Maximum amount of memory a script may consume (128MB) 2 | ; http://php.net/memory-limit 3 | memory_limit = 1024M 4 | -------------------------------------------------------------------------------- /8.1/php/conf.d/00_short_open_tag.ini: -------------------------------------------------------------------------------- 1 | ; This directive determines whether or not PHP will recognize code between 2 | ; tags as PHP source which should be processed as such. It's been 3 | ; recommended for several years that you not use the short tag "short cut" and 4 | ; instead to use the full tag combination. With the wide spread use 5 | ; of XML and use of these tags by other languages, the server can become easily 6 | ; confused and end up parsing the wrong code in the wrong context. But because 7 | ; this short cut has been a feature for such a long time, it's currently still 8 | ; supported for backwards compatibility, but we recommend you don't use them. 9 | ; Default Value: On 10 | ; Development Value: Off 11 | ; Production Value: Off 12 | ; http://php.net/short-open-tag 13 | short_open_tag = On 14 | -------------------------------------------------------------------------------- /8.1/php_debug.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "the image has phpdbg" { 4 | run docker run ${container} which phpdbg81 5 | echo 'status:' $status 6 | echo 'output:' $output 7 | [ "$status" -eq 0 ] 8 | [[ "${output}" == *"phpdbg81"* ]] 9 | } 10 | -------------------------------------------------------------------------------- /8.1/tags.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "the main tags are created" { 4 | run bash -c "docker images graze/php-alpine --format '{{.ID}} ({{.Tag}})' | grep "$(docker images graze/php-alpine:8.0 --format '{{.ID}}')"" 5 | echo 'output:' $output 6 | [[ "$output" == *"(8.1)"* ]] 7 | } 8 | 9 | @test "the test tags are created" { 10 | run bash -c "docker images graze/php-alpine --format '{{.ID}} ({{.Tag}})' | grep "$(docker images graze/php-alpine:8.0-test --format '{{.ID}}')"" 11 | echo 'output:' $output 12 | [[ "$output" == *"(8.1-test)"* ]] 13 | } 14 | -------------------------------------------------------------------------------- /8.2/.dockerignore: -------------------------------------------------------------------------------- 1 | *.bats 2 | -------------------------------------------------------------------------------- /8.2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.18 2 | 3 | LABEL maintainer="developers@graze.com" \ 4 | license="MIT" \ 5 | org.label-schema.schema-version="1.0" \ 6 | org.label-schema.vendor="graze" \ 7 | org.label-schema.name="php-alpine" \ 8 | org.label-schema.description="small php image based on alpine" \ 9 | org.label-schema.vcs-url="https://github.com/graze/docker-php-alpine" 10 | 11 | # Fix for iconv: https://github.com/docker-library/php/issues/240 12 | RUN apk add gnu-libiconv=1.15-r3 --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.13/community/ --allow-untrusted 13 | 14 | RUN set -xe \ 15 | && echo "@php http://dl-cdn.alpinelinux.org/alpine/v3.18/community" >> /etc/apk/repositories \ 16 | && apk add --update --no-cache \ 17 | ca-certificates \ 18 | curl \ 19 | gnu-libiconv \ 20 | openssh-client \ 21 | libmemcached-libs \ 22 | libevent \ 23 | libssl1.1 \ 24 | musl \ 25 | yaml \ 26 | php82 \ 27 | php82-pecl-apcu \ 28 | php82-pecl-memcached \ 29 | php82-pecl-yaml \ 30 | php82-bcmath \ 31 | php82-common \ 32 | php82-ctype \ 33 | php82-curl \ 34 | php82-dom \ 35 | php82-fileinfo \ 36 | php82-iconv \ 37 | php82-intl \ 38 | php82-openssl \ 39 | php82-opcache \ 40 | php82-mbstring \ 41 | php82-mysqlnd \ 42 | php82-mysqli \ 43 | php82-pcntl \ 44 | php82-pgsql \ 45 | php82-pdo_mysql \ 46 | php82-pdo_pgsql \ 47 | php82-pdo_sqlite \ 48 | php82-phar \ 49 | php82-posix \ 50 | php82-simplexml \ 51 | php82-session \ 52 | php82-soap \ 53 | php82-sockets \ 54 | php82-sodium \ 55 | php82-tokenizer \ 56 | php82-xml \ 57 | php82-xmlreader \ 58 | php82-xmlwriter \ 59 | php82-zip \ 60 | php82-zlib 61 | 62 | # Fix for php82 pecl event not in v3.18 63 | RUN apk add php82-pecl-event --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.19/community/ --allow-untrusted 64 | 65 | ENV PHP_INI_DIR /etc/php82 66 | 67 | RUN ln -s /usr/bin/php82 /usr/bin/php 68 | RUN ln -s /usr/bin/pecl82 /usr/bin/pecl 69 | 70 | COPY php/conf.d/*.ini $PHP_INI_DIR/conf.d/ 71 | 72 | WORKDIR /srv 73 | 74 | ARG BUILD_DATE 75 | ARG VCS_REF 76 | 77 | LABEL org.label-schema.vcs-ref=$VCS_REF \ 78 | org.label-schema.build-date=$BUILD_DATE 79 | 80 | # Fix for iconv: https://github.com/docker-library/php/issues/240 81 | ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so php 82 | -------------------------------------------------------------------------------- /8.2/debug.Dockerfile: -------------------------------------------------------------------------------- 1 | FROM graze/php-alpine:8.2 2 | 3 | RUN apk add --update --no-cache \ 4 | php82-phpdbg 5 | 6 | ARG BUILD_DATE 7 | ARG VCS_REF 8 | 9 | LABEL org.label-schema.vcs-ref=$VCS_REF \ 10 | org.label-schema.build-date=$BUILD_DATE 11 | -------------------------------------------------------------------------------- /8.2/php.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "php version is correct" { 4 | run docker run --rm ${container} php -v 5 | echo 'status:' $status 6 | echo 'output:' $output 7 | version="$(echo $output | sed 's/.*PHP \([0-9].[0-9]\).*/\1/')" 8 | echo 'version:' $version 9 | [ "$status" -eq 0 ] 10 | [[ "$version" == "8.2" ]] 11 | } 12 | 13 | @test "the image has the correct php modules installed" { 14 | run docker run --rm ${container} php -m 15 | echo 'status:' $status 16 | echo 'output:' $output 17 | [ "$status" -eq 0 ] 18 | [[ "${output}" == *"apcu"* ]] 19 | [[ "${output}" == *"bcmath"* ]] 20 | [[ "${output}" == *"Core"* ]] 21 | [[ "${output}" == *"ctype"* ]] 22 | [[ "${output}" == *"curl"* ]] 23 | [[ "${output}" == *"date"* ]] 24 | [[ "${output}" == *"dom"* ]] 25 | [[ "${output}" == *"event"* ]] 26 | [[ "${output}" == *"fileinfo"* ]] 27 | [[ "${output}" == *"filter"* ]] 28 | [[ "${output}" == *"hash"* ]] 29 | [[ "${output}" == *"iconv"* ]] 30 | [[ "${output}" == *"intl"* ]] 31 | [[ "${output}" == *"json"* ]] 32 | [[ "${output}" == *"libxml"* ]] 33 | [[ "${output}" == *"mbstring"* ]] 34 | [[ "${output}" == *"memcached"* ]] 35 | [[ "${output}" == *"mysqli"* ]] 36 | [[ "${output}" == *"mysqlnd"* ]] 37 | [[ "${output}" == *"openssl"* ]] 38 | [[ "${output}" == *"pcre"* ]] 39 | [[ "${output}" == *"pcntl"* ]] 40 | [[ "${output}" == *"PDO"* ]] 41 | [[ "${output}" == *"pdo_mysql"* ]] 42 | [[ "${output}" == *"pdo_pgsql"* ]] 43 | [[ "${output}" == *"pdo_sqlite"* ]] 44 | [[ "${output}" == *"pgsql"* ]] 45 | [[ "${output}" == *"Phar"* ]] 46 | [[ "${output}" == *"posix"* ]] 47 | [[ "${output}" == *"readline"* ]] 48 | [[ "${output}" == *"Reflection"* ]] 49 | [[ "${output}" == *"session"* ]] 50 | [[ "${output}" == *"SimpleXML"* ]] 51 | [[ "${output}" == *"soap"* ]] 52 | [[ "${output}" == *"sodium"* ]] 53 | [[ "${output}" == *"sockets"* ]] 54 | [[ "${output}" == *"SPL"* ]] 55 | [[ "${output}" == *"standard"* ]] 56 | [[ "${output}" == *"tokenizer"* ]] 57 | [[ "${output}" == *"xml"* ]] 58 | [[ "${output}" == *"xmlreader"* ]] 59 | [[ "${output}" == *"xmlwriter"* ]] 60 | [[ "${output}" == *"yaml"* ]] 61 | [[ "${output}" == *"Zend OPcache"* ]] 62 | [[ "${output}" == *"zip"* ]] 63 | [[ "${output}" == *"zlib"* ]] 64 | } 65 | -------------------------------------------------------------------------------- /8.2/php/conf.d/00_memlimit.ini: -------------------------------------------------------------------------------- 1 | ; Maximum amount of memory a script may consume (128MB) 2 | ; http://php.net/memory-limit 3 | memory_limit = 1024M 4 | -------------------------------------------------------------------------------- /8.2/php/conf.d/00_short_open_tag.ini: -------------------------------------------------------------------------------- 1 | ; This directive determines whether or not PHP will recognize code between 2 | ; tags as PHP source which should be processed as such. It's been 3 | ; recommended for several years that you not use the short tag "short cut" and 4 | ; instead to use the full tag combination. With the wide spread use 5 | ; of XML and use of these tags by other languages, the server can become easily 6 | ; confused and end up parsing the wrong code in the wrong context. But because 7 | ; this short cut has been a feature for such a long time, it's currently still 8 | ; supported for backwards compatibility, but we recommend you don't use them. 9 | ; Default Value: On 10 | ; Development Value: Off 11 | ; Production Value: Off 12 | ; http://php.net/short-open-tag 13 | short_open_tag = On 14 | -------------------------------------------------------------------------------- /8.2/php_debug.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "the image has phpdbg" { 4 | run docker run ${container} which phpdbg82 5 | echo 'status:' $status 6 | echo 'output:' $output 7 | [ "$status" -eq 0 ] 8 | [[ "${output}" == *"phpdbg82"* ]] 9 | } 10 | -------------------------------------------------------------------------------- /8.2/tags.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "the main tags are created" { 4 | run bash -c "docker images graze/php-alpine --format '{{.ID}} ({{.Tag}})' | grep "$(docker images graze/php-alpine:8.0 --format '{{.ID}}')"" 5 | echo 'output:' $output 6 | [[ "$output" == *"(8.2)"* ]] 7 | } 8 | 9 | @test "the test tags are created" { 10 | run bash -c "docker images graze/php-alpine --format '{{.ID}} ({{.Tag}})' | grep "$(docker images graze/php-alpine:8.0-test --format '{{.ID}}')"" 11 | echo 'output:' $output 12 | [[ "$output" == *"(8.2-test)"* ]] 13 | } 14 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 graze.com 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | SHELL = /bin/bash 2 | 3 | UNAME := $(shell uname -m) 4 | PLATFORM = amd64 5 | ifeq ($(UNAME), arm64) 6 | PLATFORM = arm64 7 | extra_bats_path = ./common/php-arm64.bats 8 | endif 9 | 10 | docker_bats := docker run --rm \ 11 | --platform linux/${PLATFORM} \ 12 | -v $$(pwd):/app -v /var/run/docker.sock:/var/run/docker.sock \ 13 | -e container \ 14 | graze/bats 15 | 16 | build_args := --build-arg BUILD_DATE=$(shell date -u +"%Y-%m-%dT%H:%M:%SZ") \ 17 | --build-arg VCS_REF=$(shell git rev-parse --short HEAD) 18 | 19 | latest_5 := 5.6 20 | latest_7 := 7.4 21 | latest_8 := 8.2 22 | latest := 8.2 23 | 24 | .PHONY: build build-quick 25 | .PHONY: tag 26 | .PHONY: test 27 | .PHONY: push 28 | .PHONY: clean 29 | .PHONY: deploy 30 | .PHONY: prod-build prod-build-quick 31 | 32 | .DEFAULT: build 33 | build: build-5.6 build-7.0 build-7.1 build-7.2 build-7.3 build-7.4 build-8.0 build-8.1 build-8.2 34 | build-quick: 35 | make build cache="" pull="" 36 | 37 | build-quick-%: 38 | make build-$* cache="" pull="" 39 | 40 | prod-build: prod-build-5.6 prod-build-7.0 prod-build-7.1 prod-build-7.2 prod-build-7.3 prod-build-7.4 prod-build-8.0 prod-build-8.1 prod-build-8.2 41 | prod-build-quick: 42 | make prod-build cache="" pull="" 43 | 44 | prod-build-quick-%: 45 | make prod-build-$* cache="" pull="" 46 | 47 | tag: tag-5.6 tag-7.0 tag-7.1 tag-7.2 tag-7.3 tag-7.4 tag-8.0 tag-8.1 test-8.2 48 | test: test-5.6 test-7.0 test-7.1 test-7.2 test-7.3 test-7.4 test-8.0 test-8.1 test-8.2 49 | push: push-5.6 push-7.0 push-7.1 push-7.2 push-7.3 push-7.4 push-8.0 push-8.1 push-8.2 50 | clean: clean-5.6 clean-7.0 clean-7.1 clean-7.2 clean-7.3 clean-7.4 clean-8.0 clean-8.1 clean-8.2 51 | deploy: deploy-5.6 deploy-7.0 deploy-7.1 deploy-7.2 deploy-7.3 deploy-7.4 deploy-8.0 deploy-8.1 deploy-8.2 52 | 53 | build-%: cache ?= --no-cache 54 | build-%: pull ?= --pull 55 | build-%: platform ?= --platform=linux/amd64,linux/arm64,linux/arm/v7 56 | build-%: output-type ?= --output=type=docker 57 | build-%: ## build a generic image 58 | docker buildx build ${output-type} ${platform} ${build_args} ${cache} ${pull} -t graze/php-alpine:$* $*/. 59 | docker buildx build ${output-type} ${platform} ${build_args} ${cache} -t graze/php-alpine:$*-test -f $*/debug.Dockerfile $*/. 60 | 61 | prod-build-%: cache ?= --no-cache 62 | prod-build-%: pull ?= --pull 63 | prod-build-%: platform ?= --platform=linux/amd64,linux/arm64,linux/arm/v7 64 | prod-build-%: output-type ?= --output=type=docker 65 | prod-build-%: 66 | docker buildx build ${output-type} ${platform} ${build_args} ${cache} ${pull} -t graze/php-alpine:$* $*/. 67 | 68 | clean-%: ## Clean up the images 69 | docker rmi $$(docker images -q graze/php-alpine:$**) || echo "no images" 70 | 71 | deploy-%: ## Deploy a specific version 72 | make tag-$* push-$* 73 | 74 | test-%: ## Test a version 75 | container=graze/php-alpine:$* ${docker_bats} ${extra_bats_path} ./common/php.bats ./$*/php.bats 76 | container=graze/php-alpine:$*-test ${docker_bats} ${extra_bats_path} ./common/php.bats ./$*/php.bats ./$*/php_debug.bats 77 | ${docker_bats} ./$*/tags.bats 78 | 79 | prod-test-%: ## Test a version 80 | container=graze/php-alpine:$* ${docker_bats} ${extra_bats_path} ./common/php.bats ./$*/php.bats 81 | 82 | tag-%: ## Tag an image 83 | @if [ "$*" = "${latest_5}" ]; then \ 84 | echo "Tagging latest 5.x version ($*)"; \ 85 | docker tag graze/php-alpine:$*-test graze/php-alpine:5-test; \ 86 | docker tag graze/php-alpine:$* graze/php-alpine:5; \ 87 | fi 88 | @if [ "$*" = "${latest_7}" ]; then \ 89 | echo "Tagging latest 7.x version ($*)"; \ 90 | docker tag graze/php-alpine:$*-test graze/php-alpine:7-test; \ 91 | docker tag graze/php-alpine:$* graze/php-alpine:7; \ 92 | fi 93 | @if [ "$*" = "${latest_8}" ]; then \ 94 | echo "Tagging latest 8.x version ($*)"; \ 95 | docker tag graze/php-alpine:$*-test graze/php-alpine:8-test; \ 96 | docker tag graze/php-alpine:$* graze/php-alpine:8; \ 97 | fi 98 | @if [ "$*" = "${latest}" ]; then \ 99 | echo "Tagging latest version ($*)"; \ 100 | docker tag graze/php-alpine:$*-test graze/php-alpine:test; \ 101 | docker tag graze/php-alpine:$* graze/php-alpine:latest; \ 102 | fi 103 | 104 | push-%: ## Push an image 105 | docker push graze/php-alpine:$*-test 106 | docker push graze/php-alpine:$* 107 | @if [ "$*" = "${latest_5}" ]; then \ 108 | echo "Pushing latest 5.x version ($*)"; \ 109 | docker push graze/php-alpine:5-test; \ 110 | docker push graze/php-alpine:5; \ 111 | fi 112 | @if [ "$*" = "${latest_7}" ]; then \ 113 | echo "Pushing latest 7.x version ($*)"; \ 114 | docker push graze/php-alpine:7-test; \ 115 | docker push graze/php-alpine:7; \ 116 | fi 117 | @if [ "$*" = "${latest_8}" ]; then \ 118 | echo "Pushing latest 8.x version ($*)"; \ 119 | docker push graze/php-alpine:8-test; \ 120 | docker push graze/php-alpine:8; \ 121 | fi 122 | @if [ "$*" = "${latest}" ]; then \ 123 | echo "Pushing latest version ($*)"; \ 124 | docker push graze/php-alpine:test; \ 125 | docker push graze/php-alpine:latest; \ 126 | fi 127 | 128 | prod-push-%: ## Push an image 129 | docker push graze/php-alpine:$* -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PHP Alpine Base Images 2 | 3 | [![Build Status](https://img.shields.io/travis/graze/docker-php-alpine/master.svg)](https://travis-ci.org/graze/docker-php-alpine) 4 | [![Docker Pulls](https://img.shields.io/docker/pulls/graze/php-alpine.svg)](https://hub.docker.com/r/graze/php-alpine/) 5 | [![Image Size](https://images.microbadger.com/badges/image/graze/php-alpine.svg)](https://microbadger.com/images/graze/php-alpine) 6 | 7 | Public image for php in alpine with a set of common extensions 8 | 9 | ## Images 10 | 11 | - `8.0`, `8`, `latest` [8.0/Dockerfile](https://github.com/graze/docker-php-alpine/blob/master/8.0/Dockerfile) 12 | - `7.4`, `7` [7.4/Dockerfile](https://github.com/graze/docker-php-alpine/blob/master/7.4/Dockerfile) 13 | - `7.3` [7.3/Dockerfile](https://github.com/graze/docker-php-alpine/blob/master/7.3/Dockerfile) 14 | - `7.2` [7.2/Dockerfile](https://github.com/graze/docker-php-alpine/blob/master/7.2/Dockerfile) 15 | - `7.1` [7.1/Dockerfile](https://github.com/graze/docker-php-alpine/blob/master/7.1/Dockerfile) 16 | - `7.0` [7.0/Dockerfile](https://github.com/graze/docker-php-alpine/blob/master/7.0/Dockerfile) 17 | - `5.6`, `5` [5.6/Dockerfile](https://github.com/graze/docker-php-alpine/blob/master/5.6/Dockerfile) 18 | 19 | ### PHP Modules 20 | 21 | [apcu](http://php.net/manual/en/book.apcu.php) (PHP 7.0 +), [bcmath](http://php.net/manual/en/book.bc.php), Core, 22 | [ctype](http://php.net/manual/en/book.ctype.php), [curl](http://php.net/manual/en/book.curl.php), 23 | [date](http://php.net/manual/en/book.datetime.php), [dom](http://php.net/manual/en/book.dom.php), 24 | [ev](http://php.net/manual/en/book.ev.php), [fileinfo](http://php.net/manual/en/book.fileinfo.php), 25 | [filter](http://php.net/manual/en/book.filter.php), [hash](http://php.net/manual/en/book.hash.php), 26 | [iconv](http://php.net/manual/en/book.iconv.php) (with a [fix](https://github.com/docker-library/php/issues/240)), 27 | [intl](http://php.net/manual/en/book.intl.php), [json](http://php.net/manual/en/book.json.php), 28 | [libxml](http://php.net/manual/en/book.libxml.php), [mbstring](http://php.net/manual/en/book.mbstring.php), 29 | [memcached](http://php.net/manual/en/book.memcached.php), [mysqli](http://php.net/manual/en/book.mysqli.php), 30 | [mysqlnd](http://php.net/manual/en/book.mysqlnd.php), [openssl](http://php.net/manual/en/book.openssl.php), 31 | [pcre](http://php.net/manual/en/book.pcre.php), [PDO](http://php.net/manual/en/book.pdo.php), 32 | [pdo_mysql](http://php.net/manual/en/ref.pdo-mysql.php), [pdo_pgsql](http://php.net/manual/en/ref.pdo-pgsql.php), 33 | [pdo_sqlite](http://php.net/manual/en/ref.pdo-sqlite.php), [pgsql](http://php.net/manual/en/book.pgsql.php), 34 | [Phar](http://php.net/manual/en/book.phar.php), [posix](http://php.net/manual/en/book.posix.php), 35 | [readline](http://php.net/manual/en/book.readline.php), [Reflection](http://php.net/manual/en/book.reflection.php), 36 | [session](http://php.net/manual/en/book.session.php), [SimpleXML](http://php.net/manual/en/book.simplexml.php), 37 | [soap](http://php.net/manual/en/book.soap.php), [sockets](http://php.net/manual/en/book.sockets.php), 38 | [sodium](http://php.net/manual/en/book.sodium.php) (PHP 7.2 +), [SPL](http://php.net/manual/en/book.spl.php), 39 | standard, [tokenizer](http://php.net/manual/en/book.tokenizer.php), [xml](http://php.net/manual/en/book.xml.php), 40 | [xmlreader](http://php.net/manual/en/book.xmlreader.php), [xmlwriter](http://php.net/manual/en/book.xmlwriter.php), 41 | [yaml](http://php.net/manual/en/book.yaml.php) (not PHP 7.0), [Zend OPcache](http://php.net/manual/en/book.opcache.php), 42 | [zip](http://php.net/manual/en/book.zip.php), [zlib](http://php.net/manual/en/book.zlib.php) 43 | 44 | ## Testing Images 45 | 46 | Testing images are the same as the standard, but with xdebug (php 5.6) or phpdbg (php 7.* and 8.*) 47 | 48 | - `8.0-test`, `8-test`, `test` [8.0/debug.Dockerfile](https://github.com/graze/docker-php-alpine/blob/master/8.0/debug.Dockerfile) 49 | - `7.4-test`, `7-test` [7.4/debug.Dockerfile](https://github.com/graze/docker-php-alpine/blob/master/7.4/debug.Dockerfile) 50 | - `7.3-test` [7.3/debug.Dockerfile](https://github.com/graze/docker-php-alpine/blob/master/7.3/debug.Dockerfile) 51 | - `7.2-test` [7.2/debug.Dockerfile](https://github.com/graze/docker-php-alpine/blob/master/7.2/debug.Dockerfile) 52 | - `7.1-test` [7.1/debug.Dockerfile](https://github.com/graze/docker-php-alpine/blob/master/7.1/debug.Dockerfile) 53 | - `7.0-test` [7.0/debug.Dockerfile](https://github.com/graze/docker-php-alpine/blob/master/7.0/debug.Dockerfile) 54 | - `5.6-test`, `5-test` [5.6/debug.Dockerfile](https://github.com/graze/docker-php-alpine/blob/master/5.6/debug.Dockerfile) 55 | 56 | ## Testing PHP Modules 57 | 58 | All of the above modules, [xdebug](https://xdebug.org/) (PHP 5.6 only, PHP 7.0+ uses phpdbg) 59 | 60 | ## Dev 61 | 62 | ``` 63 | make build-quick 64 | make tag test 65 | ``` 66 | 67 | ## Pulling 68 | 69 | ``` 70 | docker pull graze/php-alpine 71 | ``` 72 | 73 | ## Usage 74 | 75 | ``` 76 | docker run --rm graze/php-alpine -v $(pwd):/srv php some/script.php 77 | ``` 78 | 79 | ## Running with phpdbg 80 | 81 | ``` 82 | docker run --rm graze/php-alpine:test -v $(pwd):/srv phpdbg7 some/script.php 83 | ``` 84 | 85 | -------------------------------------------------------------------------------- /common/php-arm64.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "the image does not return any warnings" { 4 | run docker run --platform linux/arm64 ${container} php -m 5 | echo 'status:' $status 6 | echo 'output:' $output 7 | [ "$status" -eq 0 ] 8 | [[ "${output}" != *"PHP Warning"* ]] 9 | [[ "${output}" != *"PHP Notice"* ]] 10 | } 11 | -------------------------------------------------------------------------------- /common/php.bats: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bats 2 | 3 | @test "the image has a MIT license" { 4 | run bash -c "docker inspect ${container} | jq -r '.[].Config.Labels.license'" 5 | echo 'status:' $status 6 | echo 'output:' $output 7 | [ "$status" -eq 0 ] 8 | [ "$output" = "MIT" ] 9 | } 10 | 11 | @test "the image has a maintainer" { 12 | run bash -c "docker inspect ${container} | jq -r '.[].Config.Labels.maintainer'" 13 | echo 'status:' $status 14 | echo 'output:' $output 15 | [ "$status" -eq 0 ] 16 | [ "$output" = "developers@graze.com" ] 17 | } 18 | 19 | @test "the image uses label-schema.org" { 20 | run bash -c "docker inspect ${container} | jq -r '.[].Config.Labels.\"org.label-schema.schema-version\"'" 21 | echo 'status:' $status 22 | echo 'output:' $output 23 | [ "$status" -eq 0 ] 24 | [ "$output" = "1.0" ] 25 | } 26 | 27 | @test "the image has a vcs-url label" { 28 | run bash -c "docker inspect ${container} | jq -r '.[].Config.Labels.\"org.label-schema.vcs-url\"'" 29 | echo 'status:' $status 30 | echo 'output:' $output 31 | [ "$status" -eq 0 ] 32 | [ "$output" = "https://github.com/graze/docker-php-alpine" ] 33 | } 34 | 35 | @test "the image has a vcs-ref label set to the current head commit in github" { 36 | run bash -c "docker inspect ${container} | jq -r '.[].Config.Labels.\"org.label-schema.vcs-ref\"'" 37 | echo 'status:' $status 38 | echo 'output:' $output 39 | [ "$status" -eq 0 ] 40 | [ "$output" = `git rev-parse --short HEAD` ] 41 | } 42 | 43 | @test "the image has a build-date label" { 44 | run bash -c "docker inspect ${container} | jq -r '.[].Config.Labels.\"org.label-schema.build-date\"'" 45 | echo 'status:' $status 46 | echo 'output:' $output 47 | [ "$status" -eq 0 ] 48 | [ "$output" != "null" ] 49 | } 50 | 51 | @test "the image has a vendor label" { 52 | run bash -c "docker inspect ${container} | jq -r '.[].Config.Labels.\"org.label-schema.vendor\"'" 53 | echo 'status:' $status 54 | echo 'output:' $output 55 | [ "$status" -eq 0 ] 56 | [ "$output" = "graze" ] 57 | } 58 | 59 | @test "the image has a name label" { 60 | run bash -c "docker inspect ${container} | jq -r '.[].Config.Labels.\"org.label-schema.name\"'" 61 | echo 'status:' $status 62 | echo 'output:' $output 63 | [ "$status" -eq 0 ] 64 | [ "$output" = "php-alpine" ] 65 | } 66 | 67 | @test "the image does not return any warnings" { 68 | run docker run ${container} php -m 69 | echo 'status:' $status 70 | echo 'output:' $output 71 | [ "$status" -eq 0 ] 72 | [[ "${output}" != *"PHP Warning"* ]] 73 | [[ "${output}" != *"PHP Notice"* ]] 74 | } 75 | 76 | @test "the image has an empty entrypoint" { 77 | run bash -c "docker inspect ${container} | jq -r '.[]?.Config.Entrypoint[]?'" 78 | echo 'status:' $status 79 | echo 'output:' $output 80 | [ "$status" -eq 0 ] 81 | [ "$output" = "" ] 82 | } 83 | 84 | @test "php should have a memory limit of 1024M" { 85 | run bash -c "docker run --rm ${container} php -i | grep memory_limit" 86 | echo "status: $status" 87 | echo "output: $output" 88 | [ "$status" -eq 0 ] 89 | [ "$output" = "memory_limit => 1024M => 1024M" ] 90 | } 91 | 92 | @test "the image uses a fixed iconv module" { 93 | run bash -c "docker inspect ${container} | jq -r '.[]?.Config.Env[]'" 94 | echo "status: $status" 95 | echo "output: $output" 96 | [ "$status" -eq 0 ] 97 | [[ "${output}" == *"LD_PRELOAD=/usr/lib/preloadable_libiconv.so php"* ]] 98 | } 99 | 100 | @test "iconv works" { 101 | run docker run ${container} php -r 'echo iconv("UTF-8", "ASCII//TRANSLIT", "foobar");' 102 | echo "status: $status" 103 | echo "output: $output" 104 | [ "$status" -eq 0 ] 105 | [ "$output" = "foobar" ] 106 | [[ "${output}" != *"PHP Notice"* ]] 107 | } 108 | 109 | @test "the image has curl installed" { 110 | run docker run --rm --entrypoint=/bin/sh ${container} -c '[ -x /usr/bin/curl ]' 111 | echo 'status:' $status 112 | [ "$status" -eq 0 ] 113 | } 114 | 115 | @test "short open tag enabled" { 116 | run bash -c "docker run ${container} php -i | grep -w short_open_tag" 117 | echo "status: $status" 118 | echo "output: $output" 119 | [ "$status" -eq 0 ] 120 | [ "$output" == "short_open_tag => On => On" ] 121 | } 122 | --------------------------------------------------------------------------------