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

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...

docker: storage and services

Docker Volume Without going through Docker, accessing files within a Docker image is not easy. Therefore, Docker has a volume feature that allows users to specify the location on the host file system to serve as the access directory for Docker. In other words, a volume is the NFS of a Docker image. Example: Using a volume to store SQLite files. ref:  SQLite for NodeJS: https://www.sqlitetutorial.net/sqlite-nodejs/ Initialize the project. # Setup ExpressJS framework express --view=pug 240324_ejs_sqlite_docker npm init npm install express npm install sqlite3 Test: npm start Initialize docker  Since the directory already contains NodeJS, the Docker Daemon will assist in the setup. Create new docker image docker build -t atfuture7/sqlite01 . Create a folder for Docker, create a container, run it.  mkdir docker_vol docker run -p 3000:3000 -v ./docker_vol:/data --name exp_sqlite atfuture7/sqlite01 After confirming that the container can run co...

Bookmark service (MongoDB & Spring REST)

Completed a working version of Bookmark service. Feeling great~~ ha! ha! Finding something to practice is an efficient way of learning. The project concept is redesigned from a MongoDB project. Weeks ago, I was learning MongoDB and NodeJS. Mixing everything together is my hobby. There might be conflictions, but putting all strengths together has higher potential to resolve difficult and complex problems. Elites getting together might sometimes not be easy, I mean technology, of course. Nice things deserve practice.  Building your first application with MongoDB: Creating a REST API using the MEAN Stack https://www.mongodb.com/blog/post/building-your-first-application-mongodb-creating-rest-api-using-mean-stack-part-1   After redesign…… is ….extremely simple…. But contains enough new topics for me to explore. I’m just a starter of Spring (and a veteran of OO and Cloud programming). Keep everything simple and fast.    I applied to cloud services (like AWS), online artist...