Symfony is a robust PHP framework that provides a wide range of functionalities for web development. Deploying Symfony applications on shared hosting with cPanel can be daunting for beginners. However, with the right guidance, it can be a simple process. In this tutorial, I’ll guide you through the steps of deploying a Symfony application on shared hosting.
Before you can deploy your Symfony application, you need to choose the right hosting provider. Shared hosting can be a good option for small to medium-sized projects that do not require high levels of customization or scalability. When selecting a hosting provider, look for one that supports the latest version of PHP and has a control panel that allows you to manage your files and databases.
Assuming that you already have your application code prepared for deployment, let’s proceed with the deployment of your application on shared hosting with Apache and cPanel.
Prepare your Symfony Application
Once you have chosen your hosting provider, you need to prepare your Symfony application for deployment. Here are the specific folders and files (including subfolders and files as they are) that the Symfony framework requires for proper functionality.
Configure Apache to read .env file
Apache does not read the
.env file by default. The
.env file is used by Symfony to store environment-specific configuration variables, such as database credentials and API keys. The reason Apache does not read the
.env file is that it is typically located outside of the web root directory and contains sensitive information that should not be accessible by anyone with access to the web server.
To make the environment variables defined in the
.env file available to your Symfony application running on Apache, you need to use an environment variable loader. The environment variable loader will read the
.env file and make the variables available to your application.
One popular environment variable loader for Symfony is the DotEnv component, which can be installed using Composer by running the following command:
After installing the DotEnv component, you need to load the environment variables in your application’s
public/index.php file by adding the following code at the top of the file:
Finally, the following code should be present in the
This code will load the environment variables from the
.env file to the Symfony application.
Setting up the .htaccess file
.htaccess file is a critical file in Symfony applications, as it controls how URLs are handled by the web server. Ensure that your
.htaccess file is correctly configured for your shared hosting account. In order to configure the rewrite rules file correctly on the Apache server we need to install the following package.
This pack installs a
.htaccess file in the
public directory that contains the rewrite rules needed to serve the Symfony application.
In addition to the
.htaccess file located above, it is necessary to create another
.htaccess file in the
root directory and include the following code. This will enable Apache to redirect its search to the
It is important to create two separate
.htaccessfiles. The first should be located within the
publicdirectory, which is automatically generated by the
symfony/apache-packpackage to handle URLs. The second
.htaccessfile should be created in the
rootdirectory to instruct Apache to search the “public” directory.
Set up the Database – MySQL
If your application requires data management using a database, you will need to set it up. You can do this using the control panel provided by your hosting provider.
Create a new MySQL Database and User. Make sure to grant all privileges to the user on the database. Once you have created the database and user, update the database configuration in the
.env file of your Symfony application.
database_name with the
password, and the
database name you created earlier.
Uploading Your Symfony Application Files
After preparing your application, you need to upload it to your hosting server. You can do this using either FTP or a web-based file manager provided by your hosting provider.
Upload all the files and directories from your Symfony project directory to the desired directory on your hosting server. Ensure that the directory structure remains intact.
Testing your Symfony Application
After configuring your Symfony application, it is essential to test it to ensure it works correctly on your shared hosting account. Visit your application’s URL in a web browser and verify that it loads correctly. You should also test your application’s functionality to ensure everything works as expected.
Deploying Symfony applications on shared hosting can be straightforward for beginners if done correctly. With this article and the code examples provided, you should have the knowledge you need to get started and deploy your Symfony application on shared hosting.
If you face any difficulties while deploying your Symfony application on shared hosting, don’t hesitate to ask for help. Feel free to leave a comment below, and I’ll be happy to assist you.