Hello good folks. This month I decided to give FreeBSD a try and see if can use it as my blog hosting server. As part of learning, I’m writing this article on how to install PHP 7.2 on FreeBSD 12.x.
For PHP 7.3, use: How to Install PHP 7.3 on FreeBSD 12
FreeBSD is a free and open-source Unix-like operating system which provides some good features such as preemptive multitasking, memory protection, virtual memory, support for jails, multi-user facilities, SMP support, Extensive security features e.t.c.
Follow the steps below to have PHP 7.2 installed on your FreeBSD server.
Step 1: Update ports tree
Start by updating your FreeBSD server Ports tree using the
$ [email protected]:~ % su - Password: [email protected]:~# portsnap fetch update Looking up portsnap.FreeBSD.org mirrors... 5 mirrors found. Fetching public key from ec2-ap-southeast-2.portsnap.freebsd.org... done. Fetching snapshot tag from ec2-ap-southeast-2.portsnap.freebsd.org... done. Fetching snapshot metadata... done. Fetching snapshot generated at Sun Dec 9 00:19:28 UTC 2018: Extracting snapshot... done. Verifying snapshot integrity... done. Fetching snapshot tag from ec2-ap-southeast-2.portsnap.freebsd.org... done. Fetching snapshot metadata... done. Updating from Sun Dec 9 00:19:28 UTC 2018 to Sun Dec 9 19:15:19 UTC 2018. Fetching 5 metadata patches... done. Applying metadata patches... done. Fetching 0 metadata files... done. Fetching 78 patches. (78/78) 100.00% done. done. Applying patches... done. Fetching 3 new ports or files... done. /usr/ports was not created by portsnap. You must run 'portsnap extract' before running 'portsnap update'.
When running Portsnap for the first time, you need to extract the snapshot into /usr/ports:
# portsnap extract
You should get the message below at the end of the output.
Building new INDEX files... done.
Confirm that everything is up to date.
# portsnap fetch update Looking up portsnap.FreeBSD.org mirrors... 5 mirrors found. Fetching snapshot tag from ec2-eu-west-1.portsnap.freebsd.org... done. Latest snapshot on server matches what we already have. No updates needed. Ports tree is already up to date.
By default, the Ports Collection itself is stored as a subdirectory of
Step 2: Install PHP 7.2 on FreeBSD
There are two ways you can install PHP 7.2 on FreeBSD.
- Install from Binary packages
- Install from source using ports
Method 1: Install PHP 7.2 on FreeBSD from binary
Download and install
pkg if not already done:
# /usr/sbin/pkg The package management tool is not yet installed on your system. Do you want to fetch and install it now? [y/N]: y Bootstrapping pkg from pkg+http://pkg.FreeBSD.org/FreeBSD:13:amd64/latest, please wait... Verifying signature with trusted certificate pkg.freebsd.org.2013102301... done Installing pkg-1.10.5_5... the most recent version of pkg-1.10.5_5 is installed
Then install PHP 7.2
# pkg install php72 Updating FreeBSD repository catalogue... FreeBSD repository is up to date. All repositories are up to date. The following 3 package(s) will be affected (of 0 checked): New packages to be INSTALLED: php72: 7.2.10 libargon2: 20171227_1 pcre: 8.42 Number of packages to be installed: 3 The process will require 31 MiB more space. 5 MiB to be downloaded. Proceed with this action? [y/N]: y [1/3] Fetching php72-7.2.10.txz: 100% 3 MiB 192.9kB/s 00:18 [2/3] Fetching libargon2-20171227_1.txz: 100% 64 KiB 65.3kB/s 00:01 [3/3] Fetching pcre-8.42.txz: 100% 1 MiB 44.9kB/s 00:28 Checking integrity... done (0 conflicting) [1/3] Installing libargon2-20171227_1... [1/3] Extracting libargon2-20171227_1: 100% [2/3] Installing pcre-8.42... [2/3] Extracting pcre-8.42: 100% [3/3] Installing php72-7.2.10... [3/3] Extracting php72-7.2.10: 100%
Confirm PHP version installed.
# php -v PHP 7.2.10 (cli) (built: Dec 1 2018 01:31:03) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
Install PHP 7.2 Extensions on FreeBSD
Extensions can be installed using syntax
php72-<extension>. See example below which installs standard extensions.
# pkg install php72-curl php72-extensions php72-json php72-xml \ php72-zip php72-intl php72-mysqli php72-pdo_mysql php72-pdo \ php72-pear php72-soap php72-phar
You can view loaded modules with:
# php -m
Method 1: Install PHP 7.2 on FreeBSD from ports
Change your working directory to PHP 7.2 ports folder
# cd /usr/ports/lang/php72
Then build and install PHP 7.2
# make install clean
To install PHP 7.2 extensions on FreeBSD, do it like below:
# cd /usr/ports/lang/php72-extensions/ # make install clean
That’s all. You now have PHP 7.2 installed on your FreeBSD server.