Skip to content

Instantly share code, notes, and snippets.

Last active January 10, 2023 11:55
Star You must be signed in to star a gist
What would you like to do?
Install PHP and NGINX on Amazon Linux AMI
## Install NGINX
## when installing on Amazon Linux AMI, use:
$ sudo yum install nginx -y
## when installing on Amazon Linux 2 AMI, use
$ sudo amazon-linux-extras install nginx1.12 -y
## Install PHP and PHP-FPM
# for PHP version 7.1 use php71 and php71-fpm instead
$ sudo yum install php -y
$ sudo yum install php-fpm -y
## Configure NGINX (see below)
$ sudo nano /etc/nginx/conf.d/default.conf
## Configure PHP-FPM (see below)
$ sudo nano /etc/php-fpm.d/www.conf
## Add NGINX and PHP-FPM service start to boot sequence
$ sudo chkconfig nginx on
$ sudo chkconfig php-fpm on
## Start NGINX and PHP-FPM service
$ sudo service nginx start
$ sudo service php-fpm start
## Add <file>.php to /var/www/html
## Verify configuration via<file>.php
server {
listen 80;
listen [::]:80;
location / {
root /var/www/html;
index index.php index.html index.htm;
location ~ \.php$ {
root /var/www/html;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
## Config associated with PHP-FPM version 7.1
## Comment out the following entries (with ;)
;listen.acl_users = apache,nginx
;listen.owner = nobody
; = nobody
;listen.mode = 0666
;user = apache
;group = apache
## Add the following values instead
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx = nginx
listen.mode = 0664
user = nginx
group = nginx
Copy link

xird commented May 6, 2019

This no longer works on the latest Amazon Linux images, as nginx isn't included in the default packages. See

Copy link

bgbruno commented Jul 7, 2019

@xird agree

sudo yum install nginx -y
sudo amazon-linux-extras install nginx1.12 -y

Copy link

nrollr commented Jul 7, 2019

@xird @bgbruno
Agree, a different command is required IF it concerns a type Amazon Linux 2 AMI.
The Amazon Linux AMI still accepts the sudo yum install nginx -y -command (tested with ami-05b93cd5a1b552734)

Added the command + some comments when installing on Amazon Linux 2 AMI

Copy link

bgbruno commented Jul 8, 2019

@nrollr yap it was Amazon Linux 2 AMI

Copy link

does this work on Amazon Linux 2 AMI? I cant get it to work, although all of these commands does not return any error when I tried em

Copy link

@eaponiente just ran a test with amzn2-ami-hvm-2.0.20190618-x86_64-gp2 (ami-0adcddd3324248c4c) and followed the procedure step-by-step, and it works fine. Make sure the security group attached to your EC2 instance allows inbound access on port 80

Copy link

thanks for Amazon Linux 2 part

Copy link

dumim commented May 6, 2020

Thanks for this mate, helped out so much!

Copy link

LosD commented May 30, 2021

The nginx1.12 topic is WAY outdated (and marked as such by the amazon-linux-extras command, if you have the topic enabled. It's hidden if you don't). Use the topic nginx1 instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment