Skip to main content

Built LAMP on AWS AMI, and update/install Python3.6, pip v20, Apache wsgi and Flask



I got one half day free and I spent it on building a LAMP on AWS AMI. I also wanted to squeeze Flask into Apache. So I also install/update Python 3.6, pip V.20.1, Apache wsgi and Flask. I wrapped up progress for now before I forgot all resources. 
 


On AWS marketplace, everyone can pay for a good suit such as Django. I’m not interested in content creation unless there are interesting topics to resolve. I don’t know what left to do if I bought a solution; and I may get annoyed like everyone else if the solution causes more problems. To build on my own is more realistic and practical.


Installing a LAMP (Linux, Apache, MySQL, PHP) was smooth while following AWS tutorial.

Tutorial: Install a LAMP Web Server with the Amazon Linux AMI

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html


To build Flask is absolutely a different thing….  still failed before I fell asleep...

If I choose AWS EC2 Ubuntu instance, most tutorials are based on this Linux version. Unfortunately I often am not one of the ‘most’.... I chose AMI because it already got many built-ins. AMI Linux 2 is much like a purified environment. AWS also provides Red Hat, SUSE, Ubuntu, IIS, etc. If I want to use IIS, I try on Azure. Since I’m using AWS, I prefer to try AMI. But there are obvious obstacles…..


Here are some notes when I tried to fix dependencies. Installing Flask requires pip, python3 and apache wsgi module.


My original AMI was equipped with python2.7. I saw python 3.6 and pip 3.6 in the folder, but sudo wasn't able to use it. So I reinstalled them. (pip always complains about version updates anyway...)


1)

Here is a great indication to install python3 on AMI, but some directories are different. Sudo seems designed to refer to /etc/alternatives/ if commands were not found in /usr/bin

How to install Python 3.x on Amazon Linux EC2 instance
https://sixbyseven.dev/how-to-install-python-3-x-on-amazon-ec2-instance/


2)

Here is the resource to install pip

Install Python, pip, and the EB CLI on Linux
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/eb-cli3-install-linux.html


3)

After I changed references to latest python3 and pip3.6(v.20.1)

sudo pip install Flask

Finally working.


4)

It’s a little difficult to find Apache wsgi module for AMI. Most tutorials are for Ubuntu. Finally I found a sample…

How to deploy Python Flask app to Apache (Httpd) running on Amazon Linux EC2 instance
https://issue.life/questions/35385431

sudo yum install mod24_wsgi



Currently posed here. There were other attempts to make Apache work for python, without wsgi’s help, configurations for Apache such as WSGIDaemonProcess, WSGIApplicationGroup wouldn’t work. I fixed wsgi fist and successfully started Apache before fixing python3 and pip. Apache still didn’t run python. But if I use python to start a web service, it works…… just not working within Apache’s folders….


There are still ways to go. I may already see the dawn, right?

Comments

Popular posts from this blog

Bookmark service (MongoDB & Spring REST) -2/2

    I accidentally deleted my development VM. I got lucky having the habit of taking notes. This blog is useful. Development VM is doom to be lost. Rebuild it waste time, but having a clean slate is refreshing~. What concerns me more is my AWS free quota this month is reaching 85%. The second VM I launched but never being used might be the one to blame. (Of course, my mistake.) I terminated the wrong VM. Now I got Linux 2 built. Great, just threw away everything happened on AMI.  1st layer: Page Page class   Originally, I need to prepare getter/setter for all class properties for Spring. By using lombok, I only need to create constructors. lombok will deal with getter/setter and toString(). But there are chances to call getter/setter, but how? .......Naming convention.... Capitalize the 1st character with the prefix get/set.  Annotation @Data was used on this class.  Repository class Spring Docs: Repository https://docs.spring.io/spring-data/mongodb/docs/3....

Guide to Preserving HuggingFace Models in Google Colab Environments

Conclusion:  Step 1:  find the model path: ls ~/.cache  Step 2:  Copy the entire folder to Google Drive:  Step 3:  Set model path to the subfolder under snapshot: My Story: I initially began exploring Generative AI (GAI) and Google Colab through Stable Diffusion. In the past, as I mainly wrote server services and console applications, I was less familiar with data science modes like R and Jupyter that can maintain a paused state. I didn't quite understand the heavy burden on Colab of creating a temporary Stable Diffusion WebUI with .ipynb, as suggested by popular guides. I just found it troublesome that connections often took a long time and then dropped, requiring a restart. Recently, while testing new versions of the Stable Diffusion model, and facing challenges due to Colab's policies making various versions of WebUI difficult to run successfully, I started researching how to write my own test programs in Colab. Eventually, I understood that Colab is ess...

Setup Maven and two basic projects

    The interesting implementation of Java I proceed to is Spring. And, only getting Java running is not enough. I also need to set up Maven. This name is new to me, and I found many Spring tutorials just skip this part. At least I need Maven to generate templates for me. I should learn it more. ( I knew there is a great tool -- Eclipse -- can make tedious things disappear. I’m taking a strategy to install all experiments I want to try and throw away when it's full. And that's an external VM, not my PC. I, not yet, want to do research about installing Eclipse on AMI. )    Upgrade to Java 8     First is to upgrade Java on AMI to Java8. AWS provides advanced tools for Linux 2. And DIY for Linux2. At least there are solutions for my choice.  Amazon Corretto 8 Installation Instructions for Amazon Linux 2 https://docs.aws.amazon.com/corretto/latest/corretto-8-ug/amazon-linux-install.html Here are commands I used: >wget */amazon-corretto-8-x64-linux-jdk.d...