Changes

no edit summary
This article describes how I setup a webtrees server on a [https://www.debian.org/ Debian] 9 based [https://linuxcontainers.org/ Linux Container (LXC)] under [https://www.proxmox.com/en/ Proxmox] and made the page available on the internet using an [https://httpd.apache.org/ Apache2] [https://en.wikipedia.org/wiki/Reverse_proxy Reverse Proxy]
=Setup the Container=
#Using the Proxmox web interface, create a new Container using the Debian 9 template.
##Log into the container, with the root account, using the Proxmox web console##Update, Upgrade, and Install a few packages###run ''apt update''###run ''apt upgrade''###run ''apt install sudo unzip''##Update the timezone###run ''timedatectl set-timezone America/New_York''###*change ''America/New_York'' to a location relevant to your physical location using the "TZ database name" in this [https://en.wikipedia.org/wiki/List_of_tz_database_time_zones table]##Add a user and give them sudo access###useradd admin###usermod -aG sudo admin##Exit the web console and ssh in as the admin user#=Setup a [https://mariadb.org/ MariaDB] database=##install the necessary packages, secure the installation, and log into the mysql database###run ''sudo apt install mariadb-server mariadb-client''###run ''sudo mysql_secure_installation''####The current root password is blank####Create a new root password####Answer Yes to all questions###run ''sudo mysql'' to login as root##Create a database and user for webtrees###run ''CREATE DATABASE webtreesDB;''###run ''GRANT ALL PRIVILEGES ON webtreesDB.* TO 'webtrees'@'localhost' IDENTIFIED BY 'webtreespassword';''###run ''FLUSH PRIVILEGES;''###run ''exit''#=Setup an [https://httpd.apache.org/ Apache2] webserver=##run ''sudo apt install apache2''##check http://<containername>/ and you should see the default Apache2 server page#=Setup [https://www.php.net/ PHP]7=##run ''sudo apt install php libapache2-mod-php php-mysql php-apcu php-xml php-gd''##run ''systemctl restart apache2''##run ''sudo nano /var/www/html/info.php'' and type the following in. The save and exit nano.
<nowiki><?php
phpinfo();
?></nowiki>
##go to ''http://<containername>/info.php and you should see the default PHP info page##run ''sudo rm /var/www/html/info.php#=Setup webtrees=##run ''cd /var/www/html''##run ''sudo wget https://github.com/fisharebest/webtrees/releases/download/1.7.13/webtrees-1.7.13.zip''##*You can change the version number at the end of the above command to reflect the latest stable release available at https://github.com/fisharebest/webtrees/releases##run ''sudo unzip webtrees-1.7.13.zip''##run ''sudo rm webtrees-1.7.13.zip''##visit http://containername/webtrees/ to finish the setup###fix any server configuration or server capacity problems (there shouldn't be any if the above packages were installed)###for the database login info enter ''webtrees'' as the user and ''webtreespassword'' as the password###for the database name enter ''webtreesDB''###you can leave the table prefix name ''<blank>'' since this is a container and you probably shouldn't be sharing the database with other webtrees installations###Enter your name, select a username, select a password, and select an email for the next sections.###Sign in to Webtrees using the username and password you just picked out###Create a new family tree named something like "Conan the Barbarian Family Tree"###Give it a short name like "conan"###Under ''Website preferences''####Select ''America/New_York'' (or whatever your location is) for the timezone####Make sure "Show list of family trees" is set to ''yes'' if you think you'll ever have more than one family tree on your page.###Under ''Sign-in and registration''####Set ''Welcome text on sign-in page'' to ''Predefined text that states that only family members can request a user account'' (or whatever you want)####Set ''Show acceptable use agreement on "Request a new user account" page'' to ''no'' (or whatever you want)###Under ''Languages''####uncheck any languages you don't want to support####check any extra languages you do want to support#=Setup the Reverse Proxy=##On your webtrees container modify line 173 of ''/var/www/html/webtrees/includes/sessions.php''###*'''from''' ''define('WT_BASE_URL', $base_uri);''###*'''to''' ''define('WT_BASE_URL', 'https://mypublicdomain.com/webtrees/');''##Log into your Reverse Proxy machine/container (assumed to be on Debian 9 with permanent redirects from http to https)##If you want to put an htpasswd based password on the front of the site then do the following###run ''sudo htpasswd -c /etc/apache2/.webtrees_htpasswd username''##add the following to ''/etc/apache2/sites-enabled/000-default.conf''
<nowiki>Redirect permanent /webtrees https://steamforge.net/webtrees</nowiki>
##add the following to ''/etc/apache2/sites-enabled/000-default-ssl.conf'' (leave off the first block about Authentication if you didn't create ''.webtrees_htpasswd'')
<nowiki>#webtrees
<Location /webtrees> AuthType Basic AuthName "Enter username/password to access webtrees" AuthBasicProvider file AuthUserFile "/etc/apache2/.webtrees_htpasswd" Require valid-user
ProxyPreserveHost On ProxyPass http://containername/webtrees ProxyPassReverse http://containername/webtrees </Location></nowiki>