Just found this amazing shell script to quickly get PHP7 running on AWS. Make sure you launch an instance of Amazon Linux AMI 2015.09.1 (HVM), SSD Volume Type – ami-bff32ccc . https://gist.github.com/phpdave/c6a5bb73b5e29cd7cfba
Basically you just download the shell script from gist.github.com, give it execute permissions and then run it
[code language=”powershell”]
wget https://gist.githubusercontent.com/phpdave/c6a5bb73b5e29cd7cfba/raw/c706ff60e3ae48b21675ba53dbe59745fde9638c/InitAmazonLinux_201509_for_PHP7.sh
chmod 700 InitAmazonLinux_201509_for_PHP7.sh
— Execute the script
./InitAmazonLinux_201509_for_PHP7.sh
[/code]
Shell script
#!/bin/bash -xv | |
# Initialize Amazon Linux AMI 2015.09 for PHP7 Web Application | |
# yum | |
# update default | |
sudo yum upgrade –enablerepo="*" -y | |
# install php | |
for i in $(seq 3) | |
do | |
[ ! -s remi-release-6.rpm ] && curl –connect-timeout 3 http://remi.kazukioishi.net/enterprise/remi-release-6.rpm > remi-release-6.rpm | |
done | |
sudo yum localinstall -y remi-release-6.rpm | |
sudo yum install unixODBC -y | |
sudo yum install scl-utils –enablerepo="*" -y | |
sudo yum install httpd –enablerepo="*" -y | |
sudo yum install mysql –enablerepo="*" -y | |
sudo yum install php –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-fpm –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-bcmath –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-cli –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-common –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-debuginfo –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-json –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-ldap –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-litespeed –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-mbstring –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-mysqlnd –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-odbc –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-opcache –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-pdo –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-pecl-lzf –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-pecl-lzf-debuginfo –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-pecl-msgpack –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-pecl-uuid –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-pecl-uuid-debuginfo –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-pecl-xmldiff –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-pecl-redis –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-process –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-zip –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install php-pecl-redis –enablerepo="remi,remi-test,remi-php56*" –disablerepo="amzn*" -y | |
# install others | |
sudo yum install nginx –enablerepo="remi,remi-test,remi-php70*" -y | |
sudo yum install git –enablerepo="epel*,remi,remi-test,remi-php70*" -y | |
sudo yum install tig –enablerepo="epel*,remi,remi-test,remi-php70*" -y | |
sudo yum install redis –enablerepo="epel*,remi,remi-test,remi-php70*" –disablerepo="amzn*" -y | |
sudo yum install perl gawk bash zsh sed wget s3cmd rsync htop dstat memcached spawn-fcgi –enablerepo="*" -y | |
# New Relic | |
[ ! -s newrelic-repo-5-3.noarch.rpm ] && curl 'http://download.newrelic.com/pub/newrelic/el5/x86_64/newrelic-repo-5-3.noarch.rpm' > newrelic-repo-5-3.noarch.rpm | |
sudo yum localinstall newrelic-repo-5-3.noarch.rpm -y | |
sudo yum install newrelic-sysmond -y | |
sudo nrsysmond-config –set license_key=LICENSE_KEY # LICENSE_KEY required | |
sudo /etc/init.d/newrelic-sysmond start | |
sudo chkconfig newrelic-sysmond on | |
sudo yum install newrelic-php5 -y | |
sudo newrelic-install install | |
# Additional manual configration required for New Relic. | |
# See below. | |
# https://docs.newrelic.com/docs/agents/php-agent/installation/php-agent-installation-redhat-centos | |
# https://docs.newrelic.com/docs/agents/php-agent/advanced-installation/php-agent-installation-non-standard-php-advanced | |
# edit php.ini | |
if [ -s /etc/php.ini ]; then | |
timezone_exists=$(sudo cat /etc/php.ini | egrep "^date.timezone = " | head -1 | awk '{if($1 ~ /date\.timezone/){print "true"}else{print "false";}}') | |
if [ "${timezone_exists:-_false}" != "true" ]; then | |
echo 'date.timezone = "Asia/Tokyo"' | | |
sudo cat /etc/php.ini – > ./php.ini.new | |
sudo cp -p /etc/php.ini /etc/php.ini.bak.$(date +%Y%m%d%H%M%S) | |
sudo mv -f ./php.ini.new /etc/php.ini | |
fi | |
fi | |
# Install composer for global. | |
if [ ! -s /opt/composer/composer.phar ]; then | |
mkdir -p /opt/composer | |
pushd /opt/composer | |
wget https://getcomposer.org/composer.phar | |
if [ -s composer.phar ]; then | |
php composer.phar global require symfony/console=~2.3 | |
# Install psysh | |
php composer.phar global require psy/psysh:dev-master | |
# Install Laravel | |
php composer.phar global require "laravel/installer=~1.1" | |
# Install Lumen | |
php composer.phar global require "laravel/lumen-installer=~1.0" | |
php composer.phar update | |
fi | |
popd | |
echo 'export PATH=/opt/composer/:$PATH' >> .bash_profile | |
ln -s /opt/composer/composer.phar /opt/composer/composer | |
chmod +x /opt/composer/composer.phar | |
echo 'export PATH=/opt/composer/vendor/bin:$PATH' >> .bash_profile | |
source .bash_profile | |
fi | |
# FuelPHP | |
curl 'http://get.fuelphp.com/oil' | sh | |
# TODO : configuration of nginx,php-fpm | |
# add www user | |
sudo groupadd www | |
sudo useradd www -g www | |
sudo chown -R www:www /var/www | |
sudo chmod 2775 /var/www | |
sudo find /var/www -type d -exec sudo chmod 2775 {} + | |
sudo find /var/www -type f -exec sudo chmod 0664 {} + | |
# override php-fpm.d/www.conf | |
sudo cp -p /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.bat.$(date +%Y%m%d%H%M%S) | |
wget https://gist.githubusercontent.com/YU81/375a0e91b9cfd15d4f2c/raw/php-fpm_d_www.conf | |
sudo cp -p php-fpm_d_www.conf /etc/php-fpm.d/www.conf | |
# override nginx.conf | |
sudo cp -p /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak.$(date +%Y%m%d%H%M%S) | |
wget https://gist.githubusercontent.com/YU81/b1b7ce53389374ca2711/raw/fuelphp_nginx.conf | |
sudo cp -p fuelphp_nginx.conf /etc/nginx/nginx.conf | |