ftp and bcmath are optional