This guide assumes you are running a Debian-based Linux distribution like Ubuntu for package management - consult your operating system's documentation and open source project documentation as appropriate to complete installation.
You will need access to the production server to complete this guide.
- Fork the repository at GitHub
sudo apt-get update && sudo apt-get install apache2 mysql-server libapache2-mod-php mcrypt php-curl php-dev php-fpm php-gd php-imagick php-mcrypt php-mysql php-mbstring php-pear php-xml php-xmlrpc php-zip- Install the LAMP stack and supporting software for Craft (Note: You may also want to install Ruby, npm, and a number of project dependencies to work with the frontend - these steps are beyond the scope of this document at this time)git clone https://github.com/{username}/FreeUKGenealogy- Clone the repositorysudo chown -R ${USER}:www-data FreeUKGenealogy && chmod -R g+w FreeUKGenealogy- Change file group ownership and write permissionsscp -r ${CRAFT_HOST}:${CRAFT_PATH}/config ./FreeUKGenealogy/craft/ && scp -r ${CRAFT_HOST}:${CRAFT_PATH}/storage ./FreeUKGenealogy/craft/(where$CRAFT_HOSTis the production web server and$CRAFT_PATHis the filesystem path) - Pull down configuration and database dumpsmysql+CREATE DATABASE freeukgenealogy;- Log in to your local MySQL instance and create a database for the Craft CMS installationmysql freeukgenealogy < "$( ls ./FreeUKGenealogy/craft/storage/backups/ | tail -n1 )"- Import the most recent database backupsudo a2enmod rewrite && sudo a2enmod ssl && sudo cp ./FreeUKGenealogy/etc/localhost/local.freeukgenealogy.conf /etc/apache2/sites-available && a2ensite local.freeukgenealogy && sudo apache2ctl restart- Enable Apache2 mods, copy the site configuration, enable the site, and restartapache2sudo echo -e "\n\n# freeukgenealogy.org.uk\n127.0.0.1\tfreeukgenealogy.local" >> /etc/hosts- Add an/etc/hostsdirective for your local instance
If everything worked as expected, you should now be able to browse to https://freeukgenealogy.local/ to work on the site and manage code changes using git.