The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
CLI
Show errors when executing in CLI
$ php -d display_errors myscript.php
PHP 7.2
Installing mcrypt on PHP 7.2 FPM
- Last tested on Ubuntu 16.04.4 LTS (xenial)
- install required packages
mhan@host:~/dev $ sudo apt-get -y install gcc make autoconf libc-dev pkg-config
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'libc6-dev' instead of 'libc-dev'
autoconf is already the newest version (2.69-9).
gcc is already the newest version (4:5.3.1-1ubuntu1).
make is already the newest version (4.1-6).
pkg-config is already the newest version (0.29.1-0ubuntu1).
libc6-dev is already the newest version (2.23-0ubuntu10).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
mhan@host:~/dev $ sudo apt-get -y install libmcrypt-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
libmcrypt-dev is already the newest version (2.5.8-3.3).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
mhan@host:~/dev $ sudo apt-get install php7.2-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
php7.2-dev
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 557 kB of archives.
After this operation, 5,669 kB of additional disk space will be used.
Get:1 http://ppa.launchpad.net/ondrej/php/ubuntu xenial/main amd64 php7.2-dev amd64 7.2.4-1+ubuntu16.04.1+deb.sury.org+1 [557 kB]
Fetched 557 kB in 1s (475 kB/s)
[master 5187285] saving uncommitted changes in /etc prior to apt run
4 files changed, 10 insertions(+), 4 deletions(-)
Selecting previously unselected package php7.2-dev.
(Reading database ... 176836 files and directories currently installed.)
Preparing to unpack .../php7.2-dev_7.2.4-1+ubuntu16.04.1+deb.sury.org+1_amd64.deb ...
Unpacking php7.2-dev (7.2.4-1+ubuntu16.04.1+deb.sury.org+1) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up php7.2-dev (7.2.4-1+ubuntu16.04.1+deb.sury.org+1) ...
update-alternatives: using /usr/bin/php-config7.2 to provide /usr/bin/php-config (php-config) in auto mode
update-alternatives: using /usr/bin/phpize7.2 to provide /usr/bin/phpize (phpize) in auto mode
[master b808f2b] committing changes in /etc after apt run
4 files changed, 4 insertions(+), 4 deletions(-)
- install mcrypt-1.0.1
mhan@host:~/dev $ sudo pecl install mcrypt-1.0.1
WARNING: channel "pecl.php.net" has updated its protocols, use "pecl channel-update pecl.php.net" to update
downloading mcrypt-1.0.1.tgz ...
Starting to download mcrypt-1.0.1.tgz (33,782 bytes)
.........done: 33,782 bytes
6 source files, building
running: phpize
Configuring for:
PHP Api Version: 20170718
Zend Module Api No: 20170718
Zend Extension Api No: 320170718
libmcrypt prefix? [autodetect] :
building in /tmp/pear/temp/pear-build-rootD4MO1w/mcrypt-1.0.1
running: /tmp/pear/temp/mcrypt/configure --with-php-config=/usr/bin/php-config --with-mcrypt
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for a sed that does not truncate output... /bin/sed
checking for cc... cc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
...
If you ever happen to want to link against installed libraries [3/531]
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the 'LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the 'LD_RUN_PATH' environment variable
during linking
- use the '-Wl,-rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to '/etc/ld.so.conf'
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Build complete.
Don't forget to run 'make test'.
running: make INSTALL_ROOT="/tmp/pear/temp/pear-build-rootD4MO1w/install-mcrypt-1.0.1" install
Installing shared extensions: /tmp/pear/temp/pear-build-rootD4MO1w/install-mcrypt-1.0.1/usr/lib/php/20170718/
running: find "/tmp/pear/temp/pear-build-rootD4MO1w/install-mcrypt-1.0.1" | xargs ls -dils
26300 4 drwxr-xr-x 3 root root 4096 Apr 24 11:14 /tmp/pear/temp/pear-build-rootD4MO1w/install-mcrypt-1.0.1
27940 4 drwxr-xr-x 3 root root 4096 Apr 24 11:14 /tmp/pear/temp/pear-build-rootD4MO1w/install-mcrypt-1.0.1/usr
27945 4 drwxr-xr-x 3 root root 4096 Apr 24 11:14 /tmp/pear/temp/pear-build-rootD4MO1w/install-mcrypt-1.0.1/usr/lib
28355 4 drwxr-xr-x 3 root root 4096 Apr 24 11:14 /tmp/pear/temp/pear-build-rootD4MO1w/install-mcrypt-1.0.1/usr/lib/php
28368 4 drwxr-xr-x 2 root root 4096 Apr 24 11:14 /tmp/pear/temp/pear-build-rootD4MO1w/install-mcrypt-1.0.1/usr/lib/php/20170718
27762 164 -rwxr-xr-x 1 root root 164976 Apr 24 11:14 /tmp/pear/temp/pear-build-rootD4MO1w/install-mcrypt-1.0.1/usr/lib/php/20170718/mcrypt.so
Build process completed successfully
Installing '/usr/lib/php/20170718/mcrypt.so'
install ok: channel://pecl.php.net/mcrypt-1.0.1
configuration option "php_ini" is not set to php.ini location
You should add "extension=mcrypt.so" to php.ini
- create a
/etc/php/7.2/mods-available/mcrypt.ini
; configuration for php mcrypt module
; priority=20
extension=mcrypt.so
- create a symlink for mcrypt under fpm
root@hydrogen:/etc/php/7.2# cd fpm/conf.d
root@hydrogen:/etc/php/7.2/fpm/conf.d# ln -s ../../mods-available/mcrypt.ini 20-mcrypt.ini
- restart fpm service
root@hydrogen:/etc/php/7.2/fpm/conf.d# systemctl restart php7.2-fpm.service