Get Ready for PHP7

The release date for PHP7 is November 12. Some of our users will continue to use PHP5 for a while, but will upgrade to v7 when it becomes available. We wanted to make sure ActiveCollab was working on v7 so we started testing it earlier. You can find it here:https://github.com/rlerdorf/php7devThe installation is as easy as running a couple of commands:git clone https://github.com/rlerdorf/php7dev.git
cd php7dev && vagrant up
vagrant ssh
Once you are in VM, type:makephp 7.
php -v
The last command will tell you that you’re running PHP 7 (currently the exact version number is PHP 7.1.0-dev).We then downloaded ActiveCollab 5.0.91 and unpacked it to `/var/www/activecollab`. We needed to set up vhost for testing. VM has nginx and PHP-FPM, so we added `/etc/nginx/conf.d/activecollab.conf` with the following settings:server { listen 80; server_name php7talk; root /var/www/activecollab/public; index router.php; access_log /var/log/nginx/activecollab-access.log; error_log /var/log/nginx/activecollab-error.log debug; if (!-e $request_filename) { rewrite ^//assets/(. *)$ //assets/$1 last; rewrite ^/avatars/(. *)$ /avatars/$1 last; rewrite ^/wallpapers/(. *)$ /wallpapers/$1 last; rewrite ^/verify-existence$ /verify.php last; rewrite ^/proxy.php$ /proxy.php last; rewrite ^/api/v([0-9]*)/(. *)$ /api.php?path_info=$2&api_version=$1 last; rewrite ^$ /router.php last; rewrite ^(. *) /router.php?path_info=$1 last; } include php.conf;} Finally, we added php7dev to `/etc/hosts` on the machine that was running the VM – and we were ready to go.When we first ran the ActiveCollab installer, it reported a couple of errors.The first one happened because version_compare()function said PHP 7.0.0-dev is lower than 7.0.0 (being a dev release). We quickly fixed the problem and discovered that Phar extension was not installed by default. After adding it to the file php.ini and restarting PHP7, the installer allowed us to proceed to the next step. The database connection step went without problems so we added the test credentials and were immediately greeted by a 500 Internal Server error. This was caused by code errors in the module definition. These errors didn’t cause any problems with PHP5 but did in PHP7. These were easily fixed, but then we ran into the next problem: PHP7 introduced Error classin global namespace. ActiveCollab had a class with the exact same name since forever so we had to move it under Angie. After the refactoring was completed, ActiveCollab was successfully installed by the installer. This is the key difference between PHP5 and PHP7. In some cases, it can even exceed 100% according to the PHP team. It was put to the test by creating a script that made 830 requests on a sample data set. We then measured how fast it ran with PHP5.6 and PHP7 (same machine, 5 consecutive runs). Here are the results. The new release will include some interesting new features, stability enhancements, and experimental PHP7 support for those who are eager to play with it.

Related Posts

Drive Letters

By Val Bakh 2.4.1 Drive letters (part 1)Disk drives can be referred to using alphabet letters. Drives A and C were used commonly for floppy disk drives….

Drive Letters (Part 2)

By Val Bakh 2.4.2 Drive letters (part 2) In the first part, we covered the basics of drive letter assignment and the changes that Windows Vista has…

Activation Part 2

2.2.2 A product code in an answer file. Let’s say you have a WIM image of Windows 7 Enterprise and a Multiple Activation Key (MAK). How do…

Activation Part 1

By Val Bakh2.2 Activation 2.2.1 Volume activation Every Windows 7 installation must be activated. It is a legal requirement to ensure that the operating system is properly…

Microsoft Vista Tips and Tricks

By Val Bakh 1. Vista 1.1. Boot architecture All Windows versions that are designed for business, starting with Windows NT include built-in support to multiboot configurations. Multiple…

Multicloud Storage Service Spans AWS Microsoft Azure Nimble Storage Inc. has today launched a beta offering that claims to be the only enterprise-grade multicloud block store service for Amazon Web Services Inc. (AWS), and Microsoft Azure public cloud. The product is called Nimble Cloud Volumes, and its enterprise-grade availability as well as data services can be used to help organizations move new types enterprise apps to the cloud. Nimble Storage believes that the first wave cloud apps will be mostly content-centric, native Web and mobile apps. They lack enterprise-friendly features like data durability and data services such as snapshots, and the ability to share the same volumes with multiple hosts. The next wave of cloud applications comprises traditional transactional-centric workloads — like transactional databases — moving to the public cloud space, with stringent storage requirements. The company stated that NCV flash-based storage could provide enterprise functionality, opening up new frontiers. It also offers other benefits, such as the elimination of cloud vendor lock-in, better data reliability, and uninterrupted data access. Ajay Singh, a senior executive at AWS, stated that the NCV service delivers flash storage volumes or block storage to AWS EC2 instances and Azure Virtual machines. It offers significant advantages over native cloud block storage services such as Amazon EBS and Azure Disk Volumes. The company highlighted the following three main benefits of the new NCV service:

Data mobility between public clouds or on-premises datacenters is easy without large data egress fees. Global visibility and predictive analytics allow for information such as usage history,…