Installing BibleSuperSearch on Debian
Basic software
- Apache2
- MariaDB
sudo apt update && sudo apt install apache2 mariadb-server
Laravel dependencies
Reference: https://shape.host/resources/laravel-setup-debian-12-tutorial
Install Laravel dependencies:
sudo apt install php php-curl php-bcmath php-json php-mysql php-mbstring php-xml php-tokenizer php-zip
Bible SuperSearch source
Install Bible SuperSearch source files:
- API: https://www.biblesupersearch.com/downloads/
- Client: https://sourceforge.net/projects/biblesuper/files/
Extract and copy to:
/var/www/html/biblesupersearch_api/
/var/www/html/biblesupersearch_client/
This assumes you're using the default site, otherwise copy into the directory for whichever Apache 'site' is enabled.
Configure Apache
Edit apache.conf:
sudo nano /etc/apache2/apache2.conf
AllowOverride All:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All # change from None to All
Require all granted
</Directory>
Configure PHP:
sudo a2enmod php8.2 # change 8.2 to your version
sudo a2enmod rewrite
sudo systemctl restart apache2
Restart Apache:
sudo systemctl restart apache2
Configure MariaDB
References:
- https://www.digitalocean.com/community/tutorials/how-to-install-mariadb-on-debian-11
- https://raspberrytips.com/install-mariadb-raspberry-pi/
Start the MariaDB installation:
sudo mysql_secure_installation
Answer the following prompts:
- Enter current password for root (enter for none): Leave blank, press enter
- Switch to unix_socket authentication [Y/n] n Not necessary, enter n
- Change the root password? [Y/n] n Should not change, enter n
- Enter Y (default) for all remaining questions
Start the DB prompt:
sudo mariadb
Create an admin account (set my_admin_password):
GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY '<my_admin_password>' WITH GRANT OPTION;
Create a biblesupersearch user (set my_password):
CREATE USER 'biblesupersearch'@'localhost' IDENTIFIED BY '<my_password>';
Create a biblesupersearch database:
CREATE DATABASE biblesupersearch;
Grant privileges:
GRANT ALL PRIVILEGES ON biblesupersearch.* TO 'biblesupersearch'@'localhost';
Flush privileges:
FLUSH PRIVILEGES;
Exit the DB prompt:
exit
Configure Bible SuperSearch
Change ownership recursively to the httpd user (www-data) for biblesupersearch_api and biblesupersearch_client directories:
cd /var/www/html
sudo chown -R www-data biblesupersearch_*
Copy .env.example to .env and edit:
sudo cp .env.example .env
sudo nano .env
Update the following lines:
APP_URL=http://bible.local/biblesupersearch_api/ # or whatever your root path is
DB_DATABASE=biblesupersearch
DB_USERNAME=biblesupersearch
DB_PASSWORD=<my_password> # whatever database password was configured
Bible SuperSearch admin console
Open the /public
directory in a browser (relative to whatever the root path is):
http://bible.local/biblesupersearch_api/public
If you get a 404 not found error, try adding /index.php
. If that appears to work, then Apache is not rewriting Laravel routes correctly. This will need to be troubleshot and fixed before the admin console will work correctly.