BMLT Installation
This guide covers installing the BMLT Server on your configured LAMP stack.
Download BMLT Server
Get Latest Release
Download the latest stable version from GitHub:
# Navigate to web directory
cd /var/www/your-domain.com
# Download BMLT Server (current stable version)
sudo wget https://github.com/bmlt-enabled/bmlt-server/releases/download/4.0.2/bmlt-server.zip
# Extract the archive
sudo unzip bmlt-server.zip
# Remove the zip file
sudo rm bmlt-server.zip
# Set proper ownership
sudo chown -R www-data:www-data main_server
# Set proper permissions
sudo chmod -R 755 main_server
Configure Virtual Host (Recommended)
If using a domain name, create an Apache virtual host:
Create Virtual Host Configuration
sudo nano /etc/apache2/sites-available/your-domain.com.conf
Add this configuration:
<VirtualHost *:80>
ServerAdmin webmaster@your-domain.com
ServerName your-domain.com
DocumentRoot /var/www/your-domain.com
ErrorLog ${APACHE_LOG_DIR}/your-domain.com_error.log
CustomLog ${APACHE_LOG_DIR}/your-domain.com_access.log combined
<Directory "/var/www/your-domain.com">
AllowOverride All
Require all granted
</Directory>
# Optional: Redirect to HTTPS (after SSL setup)
# RewriteEngine on
# RewriteCond %{SERVER_NAME} =your-domain.com
# RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
Enable the Site
# Enable your site
sudo a2ensite your-domain.com.conf
# Disable default site (optional)
sudo a2dissite 000-default.conf
# Test configuration
sudo apache2ctl configtest
# Reload Apache
sudo systemctl reload apache2
Run BMLT Installation Wizard
Access Installation
Navigate to your BMLT installation in a web browser:
With Domain:
http://your-domain.com/main_server
With IP Only:
http://your-server-ip/main_server
Installation Steps
Adding the auto-config File
Download the file initial-auto-config.txt from github at https://raw.githubusercontent.com/bmlt-enabled/bmlt-server/refs/heads/main/installation/initial-auto-config.txt.
Upload this file to your server, put it in the directory that holds your main_server directory, and rename it to auto-config.inc.php. This file should have the permissions -rw-r--r-- (0644 in octal). This means that the owner of the file can read and write it, and the owning group and others can read it.
Note that the file auto-config.inc.php is not inside main_server, but rather at the same level. This is a little weird, but does have the advantage that you can upload a new version of the server easily without touching the auto-config.inc.php file. So your directory structure should look something like this:
public_html
auto-config.inc.php
main_server
app
bootstrap
......
Now edit the auto-config.inc.php file with new parameters as needed. You can do this using the edit command on cPanel. There are two parameters you definitely need to update, namely $dbUser and $dbPassword (the user and password for your server database). You also need to either update the parameter $gkey if you are using Google Maps, or else delete this parameter altogether if you are using OSM (Open Street Maps) for maps and nominatim for geocoding.
There are various other parameters in the file, but the default values may well be what you want.
Alternatively, you can edit the initial-auto-config.txt file on your local machine, and then upload the edited file, thus avoiding needing to edit it on your web host. If you do that, be sure and use an editor intended for editing source code and not something like Microsoft Word.
Post-Installation Configuration
Remove Installation Files (Security)
After successful installation:
# Navigate to BMLT directory
cd /var/www/your-domain.com/main_server
Set File Permissions
Ensure proper security permissions:
# Set ownership
sudo chown -R www-data:www-data /var/www/your-domain.com/main_server
# Set directory permissions
sudo find /var/www/your-domain.com/main_server -type d -exec chmod 755 {} \;
# Set file permissions
sudo find /var/www/your-domain.com/main_server -type f -exec chmod 644 {} \;
# Secure configuration file
sudo chmod 600 /var/www/your-domain.com/auto-config.inc.php
Verify Installation
Test BMLT Access
Visit your BMLT installation:
- Main Interface:
http://your-domain.com/main_server - Admin Panel:
http://your-domain.com/main_server/admin
Check Configuration
Verify the auto-config file was created:
# Check if config file exists
ls -la /var/www/your-domain.com/auto-config.inc.php
# View configuration (be careful not to expose passwords)
sudo grep -v password /var/www/your-domain.com/auto-config.inc.php
Test Database Connection
Verify BMLT can connect to the database:
# Check MySQL connection from BMLT user
mysql -u bmlt -p
# List tables (should show BMLT tables)
USE bmlt;
SHOW TABLES;
EXIT;
Basic BMLT Configuration
Access Admin Panel
- Navigate to:
http://your-domain.com/main_server/admin - Log in with the administrator credentials you created
- You'll see the BMLT administration interface
Initial Setup Tasks
- Configure Service Bodies: Add your area/region structure
- Set up Meetings: Import or add meeting data
- Configure Formats: Set up meeting formats (Open, Closed, etc.)
- User Management: Add additional administrators if needed
Troubleshooting
Common Installation Issues
Database Connection Failed:
# Verify database user
mysql -u bmlt -p
# Check database exists
mysql -u root -p
SHOW DATABASES;
Permission Errors:
# Fix ownership
sudo chown -R www-data:www-data /var/www/your-domain.com/main_server
# Check Apache error log
sudo tail -f /var/log/apache2/error.log
White Screen/PHP Errors:
# Check PHP error log
sudo tail -f /var/log/apache2/error.log
# Verify PHP extensions
php -m | grep -E "(mysql|curl|gd|zip|mbstring|xml)"
Apache Configuration Issues
Site Not Loading:
# Check virtual host configuration
sudo apache2ctl -S
# Test configuration
sudo apache2ctl configtest
# Check if site is enabled
sudo a2ensite your-domain.com.conf
sudo systemctl reload apache2
Performance Optimization
Enable PHP OPcache (Optional):
# Install OPcache
sudo apt install php-opcache -y
# Restart Apache
sudo systemctl restart apache2
Security Hardening
Hide PHP Version
Edit PHP configuration:
sudo nano /etc/php/8.1/apache2/php.ini
Set:
expose_php = Off
Secure Auto-Config File
# Ensure only web server can read config
sudo chmod 600 /var/www/your-domain.com/auto-config.inc.php
sudo chown www-data:www-data /var/www/your-domain.com/auto-config.inc.php
Add Security Headers
Create .htaccess file in BMLT directory:
sudo nano /var/www/your-domain.com/main_server/.htaccess
Add security headers:
# Security headers
Header always set X-Content-Type-Options nosniff
Header always set X-Frame-Options DENY
Header always set X-XSS-Protection "1; mode=block"
# Hide server information
ServerTokens Prod
Backup Configuration
Create initial backup after successful installation:
# Backup database
sudo mysqldump bmlt > ~/bmlt-initial-backup.sql
# Backup configuration file
sudo cp /var/www/your-domain.com/auto-config.inc.php ~/auto-config-backup.php
Next Steps
With BMLT successfully installed:
- Configure SSL: SSL Setup for HTTPS access
- Install YAP: YAP Installation if you need phone services
- Set up backups: Configure automated backups
- Add meeting data: Import your meeting information
- Configure users: Set up additional administrators
BMLT Resources
- User Manual: bmlt.app/documentation
- Administrator Guide: Available in BMLT admin panel
- GitHub Repository: github.com/bmlt-enabled/bmlt-server
- Support Forums: Community support available
Document your admin credentials and database passwords in a secure location. You'll need them for maintenance and troubleshooting.
Always test BMLT functionality after installation. Verify meeting searches, admin access, and any integrations work properly before going live.