> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/ovh/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Web Hosting

> Host your website on OVHcloud's shared hosting infrastructure with built-in databases, FTP access, and SSL.

OVHcloud Web Hosting gives you shared hosting infrastructure to deploy websites and web applications without managing server administration. Each plan includes disk storage, databases, email accounts, and an SSL certificate — all managed from the OVHcloud Control Panel.

## Plans overview

| Feature                  | Starter | Basic   | Pro     | Performance |
| ------------------------ | ------- | ------- | ------- | ----------- |
| Storage                  | 100 GB  | 250 GB  | 500 GB  | 1000 GB     |
| Databases                | 1       | 1       | 3       | Up to 43    |
| Email accounts           | 5       | 10      | 100     | 1000        |
| SSH access               | No      | No      | Yes     | Yes         |
| Free SSL (Let's Encrypt) | Yes     | Yes     | Yes     | Yes         |
| PHP versions             | 8.0–8.5 | 8.0–8.5 | 8.0–8.5 | 8.0–8.5     |

<Note>
  SSH access is only available on the Pro plan and above. All plans include FTP and SFTP access.
</Note>

***

## Publishing your first website

<Steps>
  <Step title="Retrieve your FTP credentials">
    Log in to the [OVHcloud Control Panel](https://www.ovh.com/manager/), go to **Web Cloud** > **Hosting plans**, and select your plan. Click the **FTP - SSH** tab.

    Note the following values:

    * **FTP and SFTP server**: `ftp.clusterXXX.hosting.ovh.net`
    * **Main login**: your FTP username
    * **FTP port**: `21`
    * **SFTP port**: `22`

    If you have forgotten your FTP password, use the **Change password** option on the same tab.
  </Step>

  <Step title="Connect with an FTP client">
    Open your FTP client and enter the credentials from the previous step. Use SFTP (port 22) when possible — it encrypts all data in transit.

    <Tabs>
      <Tab title="FileZilla">
        1. Download [FileZilla](https://filezilla-project.org/download.php) and open it.
        2. In the **Quickconnect** bar at the top, enter:
           * **Host**: `sftp://ftp.clusterXXX.hosting.ovh.net`
           * **Username**: your FTP login
           * **Password**: your FTP password
           * **Port**: `22`
        3. Click **Quickconnect**.
        4. Accept the server key fingerprint if prompted.
        5. The right panel shows your hosting's remote directory tree. Navigate to the `www/` folder.
      </Tab>

      <Tab title="Cyberduck">
        1. Download [Cyberduck](https://cyberduck.io/) and open it.
        2. Click **Open Connection**.
        3. Select **SFTP (SSH File Transfer Protocol)** from the dropdown.
        4. Enter:
           * **Server**: `ftp.clusterXXX.hosting.ovh.net`
           * **Port**: `22`
           * **Username**: your FTP login
           * **Password**: your FTP password
        5. Click **Connect**.
      </Tab>

      <Tab title="Command line (sftp)">
        ```bash theme={null}
        sftp -P 22 your-login@ftp.clusterXXX.hosting.ovh.net
        ```

        Enter your password when prompted.
      </Tab>
    </Tabs>
  </Step>

  <Step title="Upload your website files">
    In your FTP client, navigate to the `www/` folder on the remote side. Drag your website files from your local machine into this directory.

    Your website's entry point (typically `index.html` or `index.php`) must be placed directly in `www/` or in the subdirectory mapped to your domain.

    <Warning>
      If you upload files to a non-empty directory, existing files with the same name will be overwritten. Back up your current files before uploading new ones.
    </Warning>
  </Step>

  <Step title="Point your domain to the hosting plan">
    Go to **Web Cloud** > **Hosting plans** > **Multisites** in the Control Panel. Confirm that your domain is listed and the root directory matches where you uploaded your files.

    If your domain is not yet associated, click **Add a domain or subdomain** and follow the wizard. DNS propagation can take up to 24 hours.
  </Step>

  <Step title="Verify your website is live">
    Open a browser and navigate to your domain. If you see your uploaded content, the deployment is complete.

    If you see an OVHcloud placeholder page, wait for DNS propagation to complete or clear your browser cache.
  </Step>
</Steps>

***

## Managing databases

OVHcloud Web Hosting includes MySQL databases accessible via phpMyAdmin.

### Create a database

1. Go to **Web Cloud** > **Hosting plans** > **Databases**.
2. Click **Create a database**.
3. Enter a name, username, and password.
4. Click **Confirm**.

The database server hostname is shown in the database list. It follows the format `nameofdb.mysql.db` for included databases, or `OVHID-XXX.eu.clouddb.ovh.net` for Web Cloud Databases instances.

### Access phpMyAdmin

On the **Databases** tab, click the **phpMyAdmin** link next to your database. Log in with your database username and password.

<Tip>
  Use phpMyAdmin to import/export SQL dumps, run queries, and inspect table structures. For automated backups, use the Control Panel's one-click backup feature.
</Tip>

**MySQL connection details for your application:**

| Setting       | Value                              |
| ------------- | ---------------------------------- |
| Host          | `nameofdb.mysql.db`                |
| Port          | `3306`                             |
| Username      | Your database username             |
| Password      | Your database password             |
| Database name | The name you chose during creation |

***

## SSH access

SSH access lets you connect to your hosting plan's file system from a terminal. It is available on Pro plans and above.

### Enable SSH for a user

1. Go to **FTP - SSH** tab on your hosting plan.
2. In the user table, find the login you want to use and click **Edit**.
3. Under **Connection protocols**, select **FTP, SFTP and SSH**, then click **Next**.

### Connect via SSH

```bash theme={null}
ssh your-login@ftp.clusterXXX.hosting.ovh.net -p 22
```

Replace `your-login` with your FTP/SSH username and `clusterXXX` with the cluster shown in the Control Panel.

<Note>
  SSH on Web Hosting is restricted to your own file system. You cannot switch users or access system-level files.
</Note>

***

## Enabling SSL (Let's Encrypt)

All OVHcloud Web Hosting plans include a free Let's Encrypt SSL certificate.

### Activate the certificate

1. Go to **Web Cloud** > **Hosting plans** > **General information**.
2. In the **Configuration** section, click the **...** menu next to **SSL certificate**.
3. Select **Order an SSL certificate**, choose **Free certificate (Let's Encrypt)**, and confirm.

The certificate is provisioned within a few minutes. Once active, force HTTPS by adding the following rewrite rule to your `.htaccess` file:

```apache theme={null}
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
```

<Warning>
  After enabling HTTPS, check that all resources (images, scripts, stylesheets) on your site are loaded over HTTPS. Mixed content will trigger browser warnings and may block some resources.
</Warning>

***

## Configuring .htaccess

The `.htaccess` file is placed in the `www/` directory (or a subdirectory) and controls Apache behaviour for that directory and all its subdirectories.

**Redirect HTTP to HTTPS:**

```apache theme={null}
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
```

**Redirect non-www to www:**

```apache theme={null}
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com$
RewriteRule ^(.*) https://www.example.com/$1 [QSA,L,R=301]
```

**Password-protect a directory:**

```apache theme={null}
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /home/your-login/www/.htpasswd
Require valid-user
```

**Block a specific IP address:**

```apache theme={null}
<RequireAll>
    Require all granted
    Require not ip 198.51.100.0
</RequireAll>
```

<Note>
  Only one `.htaccess` file is permitted per directory. Settings cascade to subdirectories. Always test changes after uploading, since a syntax error in `.htaccess` causes a 500 error.
</Note>

***

## Deploying a CMS with the 1-click installer

OVHcloud provides a 1-click installer for WordPress, Joomla!, Drupal, and PrestaShop.

### Install a CMS

1. Go to **Web Cloud** > **Hosting plans** > **1-click modules**.
2. Click **Add a module**.
3. Select your CMS (WordPress, Joomla!, Drupal, or PrestaShop).
4. Choose the domain name to install on. The domain must already be set up as a multisite on your hosting plan.
5. For a quick installation, leave **Installation in advanced mode** unchecked and click **Install**.

OVHcloud creates the database and installs the CMS automatically. You receive the admin credentials by email within 15 minutes.

<Tip>
  Use **Advanced installation** to specify an existing database, choose the installation directory, set the admin username, and configure the language during setup.
</Tip>

### Advanced installation options

| Setting           | Description                                                   |
| ----------------- | ------------------------------------------------------------- |
| Database server   | `nameofdb.mysql.db` (port `3306`) for included databases      |
| Installation path | The subdirectory within your FTP space (leave blank for root) |
| CMS language      | Sets the default language for the admin interface             |
| Admin credentials | Username and password for the CMS back office                 |

***

## PHP version and runtime environment

You can change the PHP version and runtime environment from the Control Panel or via the `.ovhconfig` file.

### Change PHP version in the Control Panel

1. Go to **Web Cloud** > **Hosting plans** > **General information**.
2. In the **Configuration** section, click the **Edit configuration** button.
3. Select a **Runtime environment** and **PHP version**, then confirm.

Available PHP versions: `8.0`, `8.1`, `8.2`, `8.3`, `8.4`, `8.5` (requires `stable64` environment).

### Configure via .ovhconfig

Upload an `.ovhconfig` file to the FTP root of your hosting plan:

```ini theme={null}
app.engine=php
app.engine.version=8.3
http.firewall=none
environment=production
container.image=stable64
```

<Warning>
  Changing the PHP version may break compatibility with older plugins or code. Test on a staging environment first, and verify your CMS's minimum PHP version requirements.
</Warning>

***

## Troubleshooting

<AccordionGroup>
  <Accordion title="Website shows a blank page or 500 error">
    A syntax error in `.htaccess` or an incompatible PHP version typically causes this. Check the error log at **FTP - SSH** > **Logs**, or connect via FTP and review `/logs/`. Try renaming `.htaccess` to `.htaccess.bak` temporarily to rule it out.
  </Accordion>

  <Accordion title="FTP connection refused">
    Confirm you are using the correct FTP server hostname from the **FTP - SSH** tab. Use SFTP (port 22) if FTP (port 21) is blocked by your firewall. Re-check your password — if forgotten, reset it from the Control Panel.
  </Accordion>

  <Accordion title="File permission errors">
    Files should be `644` and directories `755` for standard web use. Connect via SSH and run:

    ```bash theme={null}
    find /home/your-login/www -type f -exec chmod 644 {} \;
    find /home/your-login/www -type d -exec chmod 755 {} \;
    ```
  </Accordion>

  <Accordion title="Database connection error">
    Verify the hostname, port (`3306`), username, password, and database name in your application's configuration file. The hostname must be the value shown in the **Databases** tab of the Control Panel, not `localhost`.
  </Accordion>

  <Accordion title="SSL certificate not activating">
    The domain must point to your hosting plan before Let's Encrypt can issue a certificate. Confirm the DNS A record resolves to your hosting plan's IP, then re-order the certificate. Propagation can take up to 24 hours.
  </Accordion>
</AccordionGroup>
