The Basics
Creating sites, installing applications, and managing your server.
Creating Sites
When creating a new site on your Forge server, a variety of configuration options are available to you:
- Root Domain: The domain name that the server should respond to.
- Aliases: Additional domains that the site should respond to.
- Project Type: This configuration setting indicates if the project installed for your site will be a General PHP / Laravel / Symfony project or a static HTML site. This setting is used to determine the structure of the Nginx configuration file that is created for your site.
- Web Directory: The directory that should be publicly accessible via the Internet. For Laravel applications, this is typically the
/public
directory. - PHP Version: If you have multiple versions of PHP installed on your server, you can select which one should be used to serve the site.
- Nginx Template: If you have configured any Nginx Templates for you server, you will have the option to select one as the site’s Nginx configuration, otherwise Forge will utilise its default Nginx configuration for you new site.
- Wildcard Sub-Domains: This configuration setting will enable the site to respond to any subdomain under its configured root domain.
- Website Isolation: This configuration setting indicates whether the PHP-FPM process should run under its own user account. You may learn more about website isolation by consulting the full documentation regarding this feature.
- Create Database: This setting indicates if you would like a new database to be created for your site.
Automatic Redirects
When creating your site, Forge will automatically create a redirect from the www
subdomain to the root domain.
For example, if you create a site with the root domain example.com
, Forge will automatically create a redirect from www.example.com
to example.com
.
Likewise, if your site’s domain is www.example.com
, Forge will automatically create a redirect from example.com
to www.example.com
.
Circle Permissions
You may grant a circle member authority to create and delete sites by granting the site:create
and site:delete
permissions.
Apps / Projects
Once the site has been created in Forge, you can then install an application or project. Projects contain the actual source code of your application. Forge can install three types of applications: an application that exists within a Git repository, WordPress, or phpMyAdmin.
Git Repository
Before you can install a Git repository, you must first ensure that you have connected your source control provider to your Forge account.
Once you have connected your source control provider accounts, you may choose the provider from one of the available options. If you’re self-hosting your own code or using a provider that Forge doesn’t include first-party support for, you may select the Custom option. When using either the Bitbucket or Custom provider option, you will need to manually add the Forge SSH key to the provider.
You will also need to provide the repository name. For GitHub, GitLab, and Bitbucket providers, you should provide the name in user/repository
format, e.g. laravel/laravel
. Self-hosted projects should use the full SSH URL, e.g. [email protected]:laravel/laravel.git
.
Before you install the repository, you can also decide whether or not to install Composer dependencies. If your project does not contain a composer.json
file, you should uncheck this option.
Deploy Keys
Sometimes you may wish to only grant the Forge user access to a specific repository. This is typically accomplished by adding an SSH key to that repository’s “Deploy Keys” on the repository’s GitHub, GitLab, or Bitbucket dashboard.
When adding a new site to the server, you may choose to generate a Deploy Key for that application. Once the key has been generated, you can add it to the repository of your choice via your source control provider’s dashboard - allowing the server to clone that specific repository.
WordPress
Forge can also install WordPress for you, so you can get right into writing your next blog post.
If you haven’t done so already, you should create a new database and database user. This is used by WordPress to store all of your blog posts.
Once WordPress has been installed, you can visit your site’s domain name and continue the WordPress installation from your browser.
When installing WordPress for your site, Forge will also install the WordPress CLI so that you can manage your installation with the wp
terminal command.
You should continue installing WordPress as soon as Forge has installed it for you, so that it’s made secure with your username and password. You could also choose to create a new Security Rule before you install WordPress so that your installation is password protected.
phpMyAdmin
Forge also supports installing phpMyAdmin, so you can manage your databases from anywhere.
If you haven’t done so already, you should create a new database and database user. This is used by phpMyAdmin to store the configuration of your databases and users.
Once Forge has installed phpMyAdmin, you can then log in to your installation using any of your database username and password combinations.
Some very small server sizes, such as t2.nano
on AWS, do not have enough resources to run an application like phpMyAdmin.
Default Sites
When you initially provision a Forge server, Forge creates a single site on the server named default
. This site may be accessed by visiting the IP address of your server in your web browser. This is convenient because sometimes you may not have a particular domain you want to associate with a given server immediately after provisioning.
When you are ready to transition your application to an official domain name, you may rename the site in the Settings tab of the site’s management panel. After renaming the site, you will no longer be able to access it using the server’s IP address. After renaming the site, you should add a DNS A
record for the domain that points to your server’s IP address.
Nginx Configuration
Below is an example of the default Nginx site configuration that is used by Laravel Forge. Additional Nginx templates may be created in Forge using the “Nginx Templates” panel within your server’s management dashboard.
Once your site has been created, you may edit the Nginx configuration on a site-by-site basis. This is done by accessing the Edit Files drop down at the top right of the site management panel and using the Edit Nginx Configuration action.
Protecting Against Unconfigured Domains
When provisioning your server, Forge will automatically create a “catch-all” site for your server at /etc/nginx/sites-available/000-catch-all
. This is a special site that is used to stop domains that are not configured on your server from being served. This site will respond with a special Nginx 444
status code for any request that does not match a configured domain.
PHP Version
If your server has multiple versions of PHP installed, you can switch the version used by your site at any time by using the site’s Settings tab in the Forge dashboard.
Changing A Site’s Installed PHP Version
When switching the version used by your site, you should ensure that your server has any additional PHP extensions / modules installed for that version. Failure to install additional modules may make your site unresponsive.
You will also need to update your site’s deployment script to reload the correct version of PHP-FPM and invoke the correct version of PHP when running any PHP commands.
Site Logs
Forge also provides the ability to view a site’s log files from within the dashboard.
For performance reasons, Forge will only return the last 500 lines from a file. The log file path will be shown in both the dropdown and at the bottom of the log output.
Forge is only able to display log files from Laravel 5+ applications. Both daily
and single
log formats are supported. Forge will automatically read the last updated file.
Was this page helpful?