Guide to deploy Laravel 5 app to shared hosting (1and1/ionos)
⚠️ Important This is a very old article and I've published another one which is better explained and, even though is meant for Namecheap servers, it should be very similar if you are using 1and1 or Ionos. You can find it here: How to deploy Laravel to shared hosting
In this article I'm going to explain how to deploy a Laravel 5 application to a shared hosting using 1and1 as a reference. If you are using a different hosting provider some steps can be different, like the ones involving the control panel, but other should be pretty similar. Hope it helps you.
A Laravel application running in your local PC.
Access via FTP and SSH to your 1and1 hosting.
Step by step guide
1.- Connect via FTP and create a folder for your application, for example "myWebApp".
2.- Copy in it all the archives and directories from your local PC. You'll have directories like app, config, routes public etc ...
3.- In the file /public/.htaccess modify the line
RewriteRule ^ index.php
RewriteRule ^ /index.php
4.- Now you have to configure your domain to point to the /public folder of your app; in our case myWebApp/public. Go to the 1and1 Control Panel > Domains and configure where your domain is pointing.
5.- Configure the PHP version that is running for your domain. In the 1and1 Control Panel, search for an option called PHP configuration, select your domain and choose PHP version 7.0.0.
6.- At this point you can try to access your application by it's domain. You might have a paermission error in some folders like /storage. If so you need to connect to your server via SSH to grant the application permission to write in the folder. Go back to the 1and1 Control Panel, to the Secure FTP section. Once there, search for SSH access and configure a user and password. Also make sure to copy the host address. Now open a Terminal in your PC and run the command:
(it will ask you the password)
Once connected we can grant permissions to the folder with the command
$chmod 777 myWebApp/storage
Apply to any neccesary folder.
Once completed, your application should be running in the 1and1 servers without issues.
Configure a MySQL database
If your application requires a MySQL database to run, the first thing you need to do is obtain an export sql file with the queries to create all the tables.
7.- Go to MySQL databases section in the 1and1 Control Panel and create a new database. Configure a username and password to access and make sure to also copy the host details.
8.- Import your SQL file to create all tables in the database.
9.- Go back to your local PC and modify the file .env (in the root of your project) with the connection details to your database and upload the file to the server via FTP. 1and1 usually assign a prefix to the database name when you create it, make sure you configure it correctly.
10.- Give it a try :)
If you enjoyed this article consider sharing it on social media or buying me a coffee ✌️
Oh! and don't forget to follow me on Twitter where I share tons of dev tips 🤙