FreeBSD:php
This will install the PHP 5 base system on your FreeBSD machine from the ports tree, and clean up everything when it's done.
# cd /usr/ports/lang/php5/ && make install distclean
often you will need a php extension installed. In order to help the various people who are stuck like I was, here is a list of possible extensions you may need/want:
BCMATH "bc style precision math functions" off \ BZ2 "bzip2 library support" off \ CALENDAR "calendar conversion support" off \ CTYPE "ctype functions" on \ CURL "CURL support" off \ DBA "dba support" off \ DBASE "dBase library support" off \ DOM "DOM support" on \ EXIF "EXIF support" off \ FILEINFO "fileinfo support" off \ FILEPRO "filePro support" off \ FRIBIDI "FriBidi support" off \ FTP "FTP support" off \ GD "GD library support" off \ GETTEXT "gettext library support" off \ GMP "GNU MP support" off \ HASH "HASH Message Digest Framework" on \ ICONV "iconv support" on \ IMAGICK "ImageMagick support" off \ IMAP "IMAP support" off \ INTERBASE "Interbase 6 database support (Firebird)" off \ LDAP "OpenLDAP support" off \ MBSTRING "multibyte string support" off \ MCRYPT "Encryption support" off \ MHASH "Crypto-hashing support" off \ MING "ming shockwave flash support" off \ MSSQL "MS-SQL database support" off \ MYSQL "MySQL database support" off \ MYSQLI "MySQLi database support" off \ NCURSES "ncurses support (CLI only)" off \ ODBC "unixODBC support" off \ OPENSSL "OpenSSL support" off \ PANDA "panda support" off \ PCNTL "pcntl support (CLI only)" off \ PCRE "Perl Compatible Regular Expression support" on \ PDF "PDFlib support (implies GD)" off \ PDO "PHP Data Objects Interface (PDO)" on \ PGSQL "PostgreSQL database support" off \ POSIX "POSIX-like functions" on \ PSPELL "pspell support" off \ READLINE "readline support (CLI only)" off \ RECODE "recode support" off \ SESSION "session support" on \ SHMOP "shmop support" off \ SIMPLEXML "simplexml support" on \ SNMP "SNMP support" off \ SOAP "SOAP support" off \ SOCKETS "sockets support" off \ SQLITE "sqlite support" on \ SYBASE_CT "Sybase database support" off \ SYSVMSG "System V message support" off \ SYSVSEM "System V semaphore support" off \ SYSVSHM "System V shared memory support" off \ TIDY "TIDY support" off \ TOKENIZER "tokenizer support" on \ WDDX "WDDX support (implies XML)" off \ XML "XML support" on \ XMLREADER "XMLReader support" on \ XMLRPC "XMLRPC-EPI support" off \ XMLWRITER "XMLWriter support" on \ XSL "XSL support (Implies DOM)" off \ YAZ "YAZ support (ANSI/NISO Z39.50)" off \ ZIP "ZIP support" off \ ZLIB "ZLIB support" off
Initially my searches online led me to know I needed the session extension for php. As it wasn't intuitive to me, I manually added "--enable-session" to the Makefile in /usr/ports/lang/php5/. I was told this is the wrong approach, and it could affect me later. So there are two approaches from here. One way to find the two approaches:
# ( cd /usr/ports && make search key=pcre | grep Path: | grep php5 ) Path: /usr/ports/devel/php5-pcre Path: /usr/ports/lang/php5-extensions Path: /usr/ports/www/horde-php5
so if I just want to install a single extension, it's probably found in /usr/ports/devel/php5-pcre or if I want to install several, I can install each individually, or go into the php extensions meta port
# cd /usr/ports/lang/php5-extensions && make config
will give me an ncurses based window to go through and pick the extensions I want. After that I can do
# make install distclean
as long as I'm still in the usr/ports/lang/php5-extensions directory.
Errors
Fatal error: Call to undefined function preg_match() in
This means you will want to install the pcre extension.