I want to install the latest PHP 7.0 on an AWS EC2 T2.Micro Instance. So far I have read that currently AWS do not support PHP 7. But hey.. This is just a virtual server in the cloud with me having the full control over its configuration, so there must be some way to get PHP 7 running on this one.
Any help much appreciated.
My box is as below
$ cat /etc/*-release
---------------------------------------
NAME="Amazon Linux AMI"
VERSION="2015.09"
ID="amzn"
ID_LIKE="rhel fedora"
VERSION_ID="2015.09"
PRETTY_NAME="Amazon Linux AMI 2015.09"
ANSI_COLOR="0;33"
CPE_NAME="[*not significant*]"
HOME_URL="http://aws.amazon.com/amazon-linux-ami/"
Amazon Linux AMI release 2015.09
$ uname -a
---------------------------------------
Linux ip-xxx-xxx-xxx-xxx 4.1.13-18.26.amzn1.x86_64 #1 [date] x86_64 x86_64 x86_64 GNU/Linux
$ uname -mrs
---------------------------------------
Linux 4.1.13-18.26.amzn1.x86_64 x86_64
$ cat /proc/version
---------------------------------------
Linux version 4.1.13-18.26.amzn1.x86_64 (mockbuild@gobi-build-64010) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) )
You can now use the official php7 packages. Here an easy to follow guide.
1. Install Apache 2.4 and PHP 7.0 on Amazon Linux AMI
# Remove current apache & php
sudo yum remove httpd* php*
# Install Apache 2.4
sudo yum install httpd24
# Install PHP 7.0
# automatically includes php70-cli php70-common php70-json php70-process php70-xml
sudo yum install php70
# Install additional commonly used php packages
sudo yum install php70-gd
sudo yum install php70-imap
sudo yum install php70-mbstring
sudo yum install php70-mysqlnd
sudo yum install php70-opcache
sudo yum install php70-pdo
sudo yum install php70-pecl-apcu
2. Modify DirectoryIndex to include index.php
sudo nano /etc/httpd/conf/httpd.conf
find this:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
and modify it to look like this:
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
If a directory contains an index.html and an index.php, the server will serve the index.html with this setup. If you do not want that to happen, you have the following options:
Reverse the order, so index.php is served when both files exist:
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
Only use index.php as the DirectoryIndex:
<IfModule dir_module>
DirectoryIndex index.php
</IfModule>
3. Start the Apache web server
sudo service httpd start
4. Configure the Apache web server to start at each system boot
sudo chkconfig httpd on
5. Test your installation
Create phpinfo.php:
echo '<?php print phpinfo();' | sudo tee --append /var/www/html/phpinfo.php
Open your browser and enter your instance's public IP in the address bar followed by /phpinfo.php
Example: http://xxx.xxx.xxx.xxx/phpinfo.php
Note: Don't forget to allow incoming connections for HTTP (port 80) in the Security Groups of your instance, else your request will time out.