It is not easy to upgrade PHP 5.5 to 5.6 in FreeBSD. Without proper preparation, the upgrade process may drive you nut. Before you decide to get your hands wet, here are what I recommend you to do:
- Back up your files
- Test your website in a PHP 5.6 environment on a different server. It is because PHP 5.6 has introduced some backward incompatibilities. Some of the codes written in the prior versions may introduce run time error. See here for more information.
- Schedule a down time. Depending on your CPU speed / typing speed / trouble-shooting skill, it may take you an hour.
I am assuming that you use PHP for web purposes (rather than command line / CLI only), and I am assuming that you are using PHP with Apache. Here are the ports you will need to touch:
- Apache: /usr/ports/www/apache22 or /usr/ports/www/apache24
- Apache-PHP: /usr/ports/www/mod_php56
- PHP: /usr/ports/lang/php56
- PHP Extensions: /usr/ports/lang/php56-extensions
1. Remove the old PHP and extensions
cd /usr/ports/lang/php55 sudo make deinstall clean cd /usr/ports/lang/php55-extensions sudo make deinstall clean
2. Install PHP 5.6
cd /usr/ports/lang/php56 #Don't forget enable ZTS if you have threaded Apache. sudo make install clean
3. Install PHP 5.6 Extensions
cd /usr/ports/lang/php56-extensions sudo make install clean
4. Test PHP and its extensions
php -v php -m Clean up the error by removing the duplicated entries in: /usr/local/etc/php/extensions.ini
5. Rebuild the Apache-PHP Bridge
cd /usr/ports/www/mod_php55 sudo make deinstall clean cd /usr/ports/www/mod_php56 #Don't forget enable ZTS if you have threaded Apache. sudo make install clean
6. Restart Apache
sudo /usr/local/etc/rc.d/apache restart
7. Test PHP using phpinfo
Create a code called test.php to display phpinfo. Verify that everything is okay.
< ?php phpinfo(); ?>
8. Reinstall Apache (optional)
If you experience any problem, try to reinstall the following ports:
Apache: /usr/ports/www/apache22 or /usr/ports/www/apache24 Apache-PHP: /usr/ports/www/mod_php56
That’s it! Enjoy the new PHP!