# Before you install

What every Qdev product needs from the server, and the four checks that save the most time.

All our products are Laravel applications, so they share the same basics. The exact PHP version and extensions are in each product's requirements page.

| What | What it needs |
| --- | --- |
| Web server | Apache with `mod_rewrite`, Nginx or LiteSpeed |
| Document root | The product's `public/` folder |
| PHP | The version the product's guide asks for, with its extensions |
| Database | MySQL or MariaDB |
| Writable folders | `storage/` and `bootstrap/cache/`, by the web server's user |
| Scheduler | A cron job running `php artisan schedule:run` every minute |
| HTTPS | A certificate on your domain |

## Four checks that save the most time

1. **Point the domain at `public/`.** If your address ends up with `/public` in it, the document root is the product folder instead of its `public/` folder. Fix the document root; don't move files around.
2. **Upload the hidden files.** `.env` and `.htaccess` start with a dot, and many FTP apps and file managers hide them. Upload the archive and extract it on the server, or turn on hidden files first.
3. **Run the scheduler as the web server's user.** Add the cron line to the crontab of the user your web server runs as, such as `www-data`, not to root's. Files the scheduler creates as root can't be changed by the site afterwards.
4. **Use the same PHP on the command line.** Servers with several PHP versions often run an older one for cron. Check with `php -v` and, if needed, use the full path to the right version.

<CodeGroup>
```bash title="Ubuntu or Debian"
# Edit the web server user's crontab
sudo crontab -u www-data -e

# Then add this line
* * * * * cd /var/www/your-app && php artisan schedule:run >> /dev/null 2>&1
```

```bash title="cPanel or Plesk"
# Cron Jobs: add a job that runs every minute, with this command
cd /home/your-user/your-app && /usr/local/bin/php artisan schedule:run >> /dev/null 2>&1
```
</CodeGroup>

<Info>
Installation help is available as a paid service. See [Contact support](https://justdocs.qdev.tech/docs/help/contact-support).
</Info>
