@johnw65 depending on your hosting environment, you should already have apache or nginx installed and it should boot automatically (and be managed by your ISP).
'php artisan serve' command is rather like running php's local server
php -s localhost:8000
neither of these should be used for production.
As for 'someone doesn't accidentally run a command' - that'll be limited by whoever has commandline access. That should just be you or colleagues.
As for deploying files. You should be using a version control system such as git. As such you could also use git on your remote server and pulling the files directly from there.
if its a shared host, you may not have commandline or git access, so you'll need to get your files there someway else. You'd can do this using ssh, scp or rsync to copy files from your local to remote server. You could also use a sftp client to copy files from local to remote, by dragging up but that's a bit of a pain as you would usually replace all the files even though you might only change a few files.
For me, to get round the lack of git on one of my remotes, I use a service called deployhq.com
This allows you to register a repository and then the service can deploy from your repo via ssh to the server and it means you can deploy when you push up new file changes.
For other sites I'm using bitbucket pipelines, and doing something similar to deployhq where I run a specific deploy script to run tests, and then publish files to server by ssh.