How to launch a composer project into production? - apache

I am using Stripe's subscription use case code exampe (https://github.com/stripe-samples/subscription-use-cases/tree/main/fixed-price-subscriptions) with php-slim, and composer, and vanillajs as the front-end.
I am wondering how to start a composer project into production. By default, Stripe uses this composer.json file which has the following line:
"scripts": {
"start": "php -S 0.0.0.0:4242 index.php"
}
I'm running the project on a remote server hosted in AWS, so I cannot just open the browser and go to 0.0.0.0:4242. I need it to run on the Apache server so I can access it remotely via port 80 or 443. How do I do this?
Note: Sorry for the noob question, I have been googling but I haven't been able to find the answer to this.

Related

I want to turn my localhost server into a real website

I created an application that runs on a localhost server using expressjs. And I also bought a domain.
I'm wondering if there is a way to take that localhost server and turn it into a real shared server
I tried once to use a hosting service like hostgator but I still don't know how I can turn the express app into a real website.
I have no experience with any web development services so please don't tell me to use ....... whatever because I will have no idea what that is.
For one thing it is not clear how your website actually works: if it is only express does it generate HTML or is it purely JSON passed to browser clients via get requests (to each their own).
There are so many options as to how you might do this: one of the best options is to first make sure your server runs on Docker. Find a tutorial on YouTube/google/Stack Overflow/Blogs on how to run your Express server with docker. If you do that you can deploy it to a Container manager like Google/Amazon/Digital Ocean. If this seems hard to you there are other options.
Presumably you run your server with something like npm start. This guide can show you how to do essentially that but on a cloud computer.
Before you begin make sure that you're locally working server is checked in to a cloud Git provider like Github, GitLab, Bitbucket, etc.
Since Amazon AWS, and Google Cloud have free tier or options for hosting for free for a certain amount of time (AWS 1 year) or for a certain amount of money (Google Cloud). These two seem like viable place to start.
If you find the option that you'd like you'll need to:
create an account
Create a server (choose a cheap one especially initially like mice/small/cheap etc).
Find a tutorial on how to "SSH" into that server (which basically means remotely control the terminal on that server). Google actually makes this fairly easy there's a big button that says SSH into this server.
Once you've logged into that Computer you'll be able to run the same commands you probably normally do on your home computer:
The computer you'll be getting is likely to be a virtual Linux Computer probably something like Linux Ubuntu. Find a tutorial on how to get git and node installed there (but it's something like sudo apt-get update && sudo apt-get install git node).
Once you have git and node try mkdir www and cd into that: mkdir www && cd project (This isn't critical but conventional.)
Copy the link that allows you to "Clone your repo using HTTPS" (there's a link at the top right of your GitHub (or others) repo that allows you to do that. You'll need to enter your password
Now all the files that you had on your computer are on this new computer.
Next you'll have to probably npm i to install your dependent NPM packages. (This assumes you properly used .gitignore to prevent GitHub from being filled with extra copies of your npm packages.)
Now you should be able to run your code as usual: npm run start
If all those steps work you'll want to get something that will run these "forever" like https://www.npmjs.com/package/forever npm i -g forever or even better: https://www.npmjs.com/package/pm2 will allow you to continuously run your express server.
Finally, you'll need to configure this server on AWS/Google/whatever service you're using to push traffic coming in on port 80 and 443 to port 3000 and open traffic to all. And depending on the service you chose that's different so find a tutorial for doing just that part.
This will only allow people across the internet to see your service on an AWS URL or a google URL. But it's a good chance to make sure everything works perfectly. Once you're happy with everything associate your purchased domain with that special AWS/Google domain. You can do that on the AWS side, or the GoDaddy/NameCheap/where-ever you bought your domain side.
For the docker option you can download aws-cli tools and upload your built docker container to AWS and have it available. Find a tutorial to do that.
Essentially your question is very broad so I sometimes brushed over some details, but this is essentially what you have to do.

How do you install an apache server (httpd) on codenvy?

I would like to have a simple httpd server on my codenvy machine in order to run a front-end web app. How do I install it?
Create a workspace with the template "php-default", then a php project. Try run, access the url the "start apache" gave you, and it should work ! I got a running app in less than 3 minutes.

Laravel serve getting ERR_CONNECTION_REFUSED on localhost

I'm having an issue with my local laravel server. I'm building an API, and I need to test from another device, but the only url which is working is:
localhost:8000
If I try
127.0.0.1:8000
or using my machine local IP
192.168.0.6:8000
I have a ERR_CONNECTION_REFUSED from chrome (I tried with safari too).
There is no 'blocking' extensions
I found the answer: artisan serve isolates the host, so if I want to specify it, I need to do:
php artisan serve --host=127.0.0.1
Depending on what project you may in! In our case we had a bought project!
And https is configured by default! So https://..../app.css will not be accessible!
When you visit the link again in chrome it switch to http://.../app.css and it will work!
For our bought base code an env variable was setup and i just disabled it as bellow:
You may like to disable it in development!
This link may be helpful too!
How to force Laravel Project to use HTTPS for all routes?
Otherwise you can setup https to work well! Check how to do that with apache! Or nginx !
Otherwise know that you can't do it with php artisan serve! And you'll need to disable force https!
See the option bellow! (check the first answer to see if you can still use php artisan serve! And read the second one! To get why php artisan serve doesn't support https)
Laravel php artisan serve to mimic HTTPS
I hope this may help some! That fall on the same problem! Which is a line of things to check to add to the list here!
php artisan serve :
Laravel development server started on http://localhost:8000/
so you can only access to this server by http://localhost:8000/
I had that problem because I forgot to execute npm run devto launch Vite server.
Open up the terminal window in your working directory and run
php artisan serve
You will then be able to access your laravel local development through your browser by using the URL http://localhost:8000

Move files from node.js to apache server

Is there any possible for moving files from platform like Heroku to second server like Apache? I want to create application and push it to Heroku, but I have also Apache server and I want send to this server all images which I upload from frontend forms.
EDIT
ok so You want to use Heroku as the main application server. But then Heroku makes HTTP/HTTPS requests to the Apache server?
I think thats what you are asking.
Yeah no issues with that. if you want to set up API id go with Laravel 5.3 and use its passport function on your Apache server ( but this is not required, this is only for security.)
https://laravel.com/docs/5.3/passport
END OF EDIT
what the web server is really does not matter at all.
Its about if the server has internet access and im pretty sure they do.
Easiest way is ftp,SSH,or git. unless they both have a web server then id just zip up your app without the node_modules folder and move it into the web directory. then go to the address of your server in a web browser. eg. http://mywebsite.com/files-i-just-zipped.zip and download them. (i normally log onto the new server via SSH and do wget http://mywebsite.com/files-i-just-zipped.zip)
I need more info but yeah. once you unzip then you need to install node but my guess is they already have it.
then do npm install in the package.json directory.

Laravel - connect to development server

I just installed laravel and need some clues regarding "development server" and how I can run a project.
I connected to laravel development center which opened port 8000 on localhost. So I access my project at
localhost:8000
It wouldn't work if I typed in localhost/thelaravelproject/somepage , as I do with other php projects during development.
After closing the command line tool, localhost:8000 became inactive, so I opened the command line again, entered the path, and then
php artisan serve
and then it was running again. Does this mean that I have to do this every time?
On this page laravel.com/docs/4.2/quick it says something about "Local Development Environment" and it mentions Laravel Homestead. Is this something that is needed to run laravel using localhost the way I normally work with php?
I follow tutorials, but it's strange how they leave out very important details.
I found out that localhost works the normal way, I just have to add the 'public' directory.
So if I type in
localhost/thelaravelproject/public
it shows the 'you have arrived' page.
In laravel project Directory every things first goes to the public/index.php.
so it have to be in that directory.
you have to start from this
localhost/thelaravelproject/public.
following link will help you.