Installing SuiteCRM 8.6 on Siteground

Your cache folder seems to be not writable by Apache webserver (as it should). Make sure you’ve run these commands from the your hoster’s command line (ssh):

sudo chown -R www-data:www-data .   #the user name your webserver uses.
sudo chmod -R 755 .
sudo chmod -R 775 cache custom modules themes data upload
sudo chmod 775 config_override.php 2>/dev/null

according to SuiteCRM installation steps.

The console doesn’t seem to give me anything more than 403 access forbidden.

I’m using the file manager, not terminal access. I don’t know what username the web server uses by default.

All of /crm folder has 755 permissions (this includes /crm/cache.

How to manage file permissions with File Manager.

To manage your File/Folders permissions, select the file/folder, and click Change Permissions (the key icon).

A pop-up window will appear where you can customize the permissions for your website, file, or folder. If you are changing the permissions of a folder and you want to apply them to the subfolders and files, select Recursive. Once ready, click Confirm.

Thank you so much for your patience. Siteground support has helped with permissions.

This is a new install. There is no custom modules themes data upload folders.

There is no config_override.php

I can’t find the page to start the install. What is the url for the UI installer?

Be sure to first set the DocumentRoot.

You say you’re running on the same domain as your website, so then create a subdomain (crm.mydomain.tld), and set the full path to your subdomain’s base folder plus /crm/public, for example, /home/username/public_html/domains/crm.mysite.tld/crm/public to be the DocumentRoot - so that you’re not using the website domain mysite.com which is in use by your website www.mysite.tld.

Then, browse to your subdomain, and it will show you the web installer.

I must be missing something incredibly basic.

I want the url for suitecrm to be www.mysite.tld/crm, not crm.mysite.tld.

There is nothing that explains how to launch the pre-check page. I thought the UI installer would be to launch a script at www.mysite.tld/crm from my web browser. There is no index.html or index.php in this location.

I think I’m getting confused by document root.

Your hoster’s tech support should help you to make it so your Apache web server will have www.mysite.tld/crm to be served from www.mysite.tld/crm/public or /home/username/public_html/crm/public.

These steps are close to, yet not exactly, what you need.

How to change my document root folder using an .htaccess file?

By default, your main website is loaded from the public_html folder of your account. The public_html directory is also called web root folder or document root folder. If you would like to keep your site’s files in a subfolder of the public_html, and do not want the subfolder to appear as a part of the URL to your website, you can mask the subfolder from the URL by placing the following directives in the .htaccess file inside the public_html folder:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain-name.tld$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.domain-name.tld$
RewriteCond %{REQUEST_URI} !folder/
RewriteRule (.*) /folder/$1 [L]

In the above lines you should replace the following:

domain-name.tld – Type your own domain name
folder – Type the name of the subfolder which has the test/development website

If there is no .htaccess file in the public_html folder you can create one using Site Tools > Site >File Manager. Then, type your domain name in a browser and you should see the website which is in your subfolder.

Thank you. I just found www.mysite.tld/crm/public. I think I understand it now. I can access www.mysite.tld/crm/public and see the pre-check page. If I’m ok using the url www.mysite.tld/crm/public will this still work without doing the document root setup?

Setting the document root essentially redirects www.mysite.tld/crm to www.mysite.tld/crm/public.

Last question… what is your recommendation? Creating a separate host like crm.mysite.tld and use document root so that www.mysite.tld/crm is redirected to crm.mysite.tld/public?

It’s late but I’ll do the recommended document root setup tomorrow and start the install.

I’d do the separate subdomain crm.mysite.tld, it’s simpler and safer having your crm app run in its own subdomain and in a different directory, than your website app.

I have created crm.mysite.tld. I uploaded the SuiteCRM 8 installation ZIP. I’ve unzipped and set folder permissions.

SuiteCRM url is https://crm.mysite.tld/public. Path is ./public_html/public. How and where do I set document root so I can access as https://crm.mysite.tld? Ultimately, I want to access as https://mysite.tld/crm.

You could

I hope you got https certificate for your https://crm.mysite.tld.
You need to download and place that certificate on your web server.
Once you have it in server then do Apache configuration and set server root and domain name.
You could find lots of tutorial online about it.

Let us know if you have any other questions.

the certificates are installed.

I just dont understand how I do the document root configuration. I create a .htaccess file? What do I need to put in the htaccess file?

Maybe this is helpful:

It’s not clear what .htaccess should be for a default install… even if I keep the url as https://crm.mysite.tld

Suite CRM is installed in /public_html/. As I understand the requirement, I need to make /public_html/public the document root. Not sure how this is done with .htaccess.

Is document root supposed to be /public_html/public or /public_html/public/legacy?

I cant find a sample htaccess file with Suite CRM files on the root of /public_html.

You need find sample on this forum, you need to search it.

.htaccess

Document root should be “public”.

That is not done with .htaccess, it’s done with Apache configuration files

Ir’s a shored host, I dont believe I have access to Apache configuration file.

Thank you @chris001

I created /public_html/.htaccess

Note: There is /public_html/public/.htaccess but I didn’t modify this.

This is what I used:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^mysite.tld$ [NC,OR]
RewriteCond %{HTTP_HOST} ^crm.mysite.tld$ 
RewriteCond %{REQUEST_URI} !public/
RewriteRule (.*) /public/$1 [L]

Now I can access the site using https://crm.mysite.tld

1 Like