Installing Silverstripe on live server (without SSH)

Hey guys I’ve got an issue here I’ve been stuck on for days. My domain is timothystannard.com

I’m trying to move my localhost (MAMP) Silverstripe 4 site onto live hosting. I’m on a GoDaddy hosting plan which doesn’t allow SSH so have decided to do it via FTP. What I’m getting is a default Silverstripe homepage and I’m unable to login to admin panel to dev/build and flush. If I try to access timothystannard.com/admin it redirects to a blank page with my navigation bar at the top (all links go to localhost).

What I’ve done so far:

  1. Copied all files in my local Silverstripe folder (the folder containing app, public, themes, & vendor folders) across to public_html folder

  2. Created a new DB on live server, imported the local db, and connected this with .env file

.env file reads like this:

SS_DATABASE_CLASS="MySQLDatabase"
SS_DATABASE_NAME="db_ss"
SS_DATABASE_PASSWORD="(hidden)"
SS_DATABASE_SERVER="localhost"
SS_DATABASE_USERNAME="tim"
  1. Edited my .htaccess file in public_html folder to read like this:

        RewriteEngine On
        RewriteRule ^(.*)$ public/$1
    

I can’t figure out what’s causing the issue here, would really appreciate a bit of help!

What’s different between your local environment and the ftp’d webserver? I could bet, locally you have symlinks for exposed resources (in public/resources), and those are not copied over to the server. To fix this you can tell your local environment to copy the files on composer vendor-expose either by modifying public/resources/.method or by adding an environment variable SS_VENDOR_METHOD=copy.

Hey thanks for the reply. I figured it out. If anyone else has this issue:

  • I had to set the site in dev mode to dev/build and flush.
  • my Controller namespaces had a misspelt capital letter in them which still worked on localhost but broke the live site