Related Topics
No topics are associated with this blog
Philadelphia Reflections is a traditional LAMP application:
The original ISP for Philadelphia Reflections had hardware problems in early 2019, an annual feature of these people, and when they finally came back online after weeks of darkness, they supported only PDO as a MySQL interface to PHP.
Since I had to convert to PDO anyway, I decided to move to AWS so that I would have end-to-end control and eliminate my reliance on an unreliable ISP. Turns out it’s a lot cheaper, too, and works like a champ. PDO happens to be an improvement as well.
As of August 2019, the conversion was complete. The configuration is:
The whole thing was loaded with the bash script below; it worked immediately and has not needed any modification since. I was pretty good at AWS already, but I think it would be pretty simple for anyone. Note that this is an AWS Linux AMI; Linux 2 has some differences.
I use an .htaccess file to control Apache for URL conversion, security, error pages and compression. Much easier than futzing with comf files.
FileZilla Pro gives GUI SSL access to both EC2 and S3 which makes routine updates and backups very easy. I have long used PHPStorm and Twig, which I highly recommend. phpMyAdmin is a must.
#!/bin/bash # # update all software # install apache, php, mysql # start apache, set to auto-start, set permissions # yum update -y yum install -y httpd24 php70 mysql56-server php70-mysqlnd php70-gd php70-common yum install php70-mbstring.x86_64 php70-zip.x86_64 -y service httpd start sudo chkconfig httpd on usermod -a -G apache ec2-user chown -R ec2-user:apache /var/www chmod 2775 /var/www find /var/www -type f -exec sudo chmod 0664 {} \; # # set Apache default timezone ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime # # install SSL/TLS software # yum install -y mod24_ssl service httpd restart mkdir -p /etc/httpd_backup cp -r /etc/httpd /etc/httpd_backup yum-config-manager --enable epel # # start mysql # install phpmyadmin service mysqld start cd /var/www/html wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz mkdir phpMyAdmin && tar -xvzf phpMyAdmin-latest-all-languages.tar.gz -C phpMyAdmin --strip-components 1 rm phpMyAdmin-latest-all-languages.tar.gz cd # # start mysql, set auto-start # download the latest philad backup & installation script # service mysqld start chkconfig mysqld on mysql -u xxxx -e "SET PASSWORD FOR xxxx@localhost = PASSWORD('xxxxx')"; mkdir /home/ec2-user/sql-backup aws s3 cp s3://xxxxx/philad_philadelphiareflectionscom-2019-07-20.sql.gz /home/ec2-user/sql-backup gunzip /home/ec2-user/sql-backup/philad_philadelphiareflectionscom-2019-07-20.sql.gz aws s3 cp s3://xxxxxxx/setup-philad.sql /xxxxx/sql-backup # # give ec2-user access to /var/www setfacl -Rm d:u:ec2-user:rwX,u:ec2-user:rwX /var/www # manual configurations after the initial instance creation # ######################################################### # # MANUAL Enable .htaccess # sudo nano /etc/httpd/conf/httpd.conf # search ^W for AllowOverride # AllowOverride None ==> AllowOverride All for /var/www and /var/www/html # sudo service httpd restart # # # # MANUAL set default php timezone # sudo nano /etc/php.ini # date.timezone = "America/New_York" # #
Originally published: Sunday, September 01, 2019; most-recently modified: Monday, September 02, 2019