Installation Guide
Install CloudBill Pro on your server in minutes using the web-based installer.
Step 1 — Upload Files
Extract the downloaded ZIP and upload all files to your web server. The application should be accessible at your domain root (e.g., https://billing.yourdomain.com/) or a subdirectory.
marketing/ folder to your live installation directory. That folder is the CodeCanyon marketing website, not part of the billing app.Step 2 — File Permissions
Set the following directories to be writable by the web server:
chmod 775 config/
chmod 775 cache/
chmod 775 logs/
chmod 775 uploads/
chmod 775 uploads/tickets/
chmod 775 uploads/invoices/
Step 3 — Create a Database
Create a new MySQL database and user. Via command line:
CREATE DATABASE cloudbillpro CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'cbpuser'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON cloudbillpro.* TO 'cbpuser'@'localhost';
FLUSH PRIVILEGES;
Or use your hosting control panel (cPanel → MySQL Databases).
Step 4 — Web Installer
Visit https://yourdomain.com/install in your browser. You'll be guided through 5 steps:
Step 5 — Configure Cron Job
Add this cron job to run every minute for automated billing:
* * * * * php /home/user/public_html/crons/cron.php >> /home/user/logs/cbpro-cron.log 2>&1
Or via web URL (add your cron secret from Settings → System):
* * * * * curl -s "https://yourdomain.com/cron?secret=YOUR_SECRET" > /dev/null
Step 6 — Secure the Install Folder
After installation, either delete or restrict access to the install/ directory:
rm -rf /path/to/install/
# OR rename it
mv install install_bak_$(date +%Y%m%d)
Nginx Configuration
If using Nginx instead of Apache, add this to your server block:
server {
listen 80;
server_name billing.yourdomain.com;
root /home/user/public_html;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
# Block sensitive directories
location ~* ^/(config|core|logs|cache|install)/ {
deny all;
return 403;
}
location ~ /\.(env|git) {
deny all;
return 403;
}
}
Troubleshooting
| Problem | Solution |
|---|---|
| White screen / 500 error | Check logs/error.log. Enable display_errors temporarily: add ini_set('display_errors',1); to the top of index.php |
| 404 on all pages | Ensure mod_rewrite is enabled (a2enmod rewrite) and AllowOverride All is set for your document root |
| Database connection failed | Verify host, port, name, username, and password in config/config.php |
| File upload errors | Check permissions on uploads/ directory — must be writable (chmod 775) |
| Installer loops or won't proceed | Delete config/config.php if it exists and restart the installer |