Skip to content

LMMS/lmms.io

Repository files navigation

lmms.io

This repository contains the source for LMMS's website, live at https://lmms.io.

How to test the website locally

Linux

  1. Fork the repository here
  2. Clone the forked repository.
git clone https://github.com/<your-username>/lmms.io.git
  1. Get Composer

This project uses Composer for dependency management. You'll have to fetch those dependencies using Composer. For this, you must have Composer installed on your system. For quickly installing Composer locally on *nix, run:

Install PHP 8.2 and the required components.
These commands are for Linux. It may be different from how it is installed on other OSes.

sudo add-apt-repository ppa:ondrej/php
sudo apt install curl php8.2 php8.2-xml php8.2-gd php8.2-intl php-symfony
cd lmms.io
curl -sS https://getcomposer.org/installer | php

Note: You need to add php.exe to the Windows PATH, usually located in c:\wamp\bin\php\phpx.y.z For instructions for other OSes or for installing globally, visit Composer's Getting Started document.

  1. Fetch dependencies using Composer.

After downloading Composer locally using the instructions above, fetch the dependencies by running the command below.

php composer.phar install

You'll have to run this command every time the dependencies in composer.json change.

Windows

A convenient setup script is provided in dev/windows/setup.ps1. You just need to provide the path of where you've installed PHP, and it will setup PHP, install Composer, and install the project's dependencies on its own.

If you skipped automatic .ini validation or modification, there are some changes you'll need to make to your configuration file manually:

  1. Locate php.ini-development or php.ini in the folder where you've installed/extracted the PHP release. This folder should also be where php.exe resides
    • If you have the php.ini-development file, remove the -development suffix from the file extension, the resulting file name should just be php.ini
    • If you would like to just edit your existing php.ini, leave it be.
  2. Edit the file, and uncomment these lines:
    1. ;extension_dir = "ext"
    2. ;extension=gd
    3. ;extension=intl
    4. ;extension=openssl
    5. ;extension=pdo_mysql
  3. Save your edits, then re-run the setup script.

Not only does this allow the automatic script to execute, but also enable the local development server to function at all.

macOS

Note: For macOS, some dependencies must be installed manually.

  1. Start the local server.
php -S localhost:8000 -t ./public/

You can then open http://localhost:8000/ in a browser.

  1. Optionally, configure the local apache and nginx instances.

With Apache:

 <Directory /home/user/lmms.io/public/>
  # add fallback resource to Apache config
  FallbackResource /index.php
 </Directory>

With Nginx:

 # go to our front controller if none of them exists
 location / {
  try_files $uri $uri/ /index.php?$args;
 }