Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to install PHP 7 on EC2 t2.micro Instance running Amazon Linux Distro

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) ) 
like image 326
Rahul Kate Avatar asked Jan 19 '16 09:01

Rahul Kate


1 Answers

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.

like image 109
Johano Fierra Avatar answered Sep 20 '22 17:09

Johano Fierra