– The following instructions provide steps to setup FarmOS 3.2.2 on a fresh/default AMI install of Ubuntu 24.04 in AWS
- Log in to your instance and run updates and upgrades
sudo apt update -y
sudo apt upgrade -y
- Install dependent applications
sudo apt install apache2 mysql-server php php-cli php-mysql php-gd php-curl php-xml php-mbstring libapache2-mod-php unzip -y
– These can probably be included in the command above. If not, you can run them any time to resolve the warnings found in FarmOS Status Report
sudo apt install php-bcmath -y
sudo apt install php-geos -y
- Deploy FarmOS web app
cd /var/www/html
sudo wget https://github.com/farmOS/farmOS/releases/download/3.2.2/farmOS-3.2.2.tar.gz
sudo gunzip farmOS-3.2.2.tar.gz
sudo tar -xvf farmOS-3.2.2.tar
sudo rm farmOS-3.2.2.tar
– Let’s be consistent with the use of letter case; Set owner and permissions
sudo mv farmOS farmos
sudo chown -R www-data:www-data farmos
sudo chmod -R 755 farmos
- Setup the web config file
sudo nano /etc/apache2/sites-available/farmos.conf
– add stuff in block below replacing anything between {} with values specific to you
<VirtualHost *:80>
ServerAdmin {your email address}
DocumentRoot /var/www/html/farmos/web
ServerName {your server name}
<Directory /var/www/html/farmos/web>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/farmos_error.log
CustomLog ${APACHE_LOG_DIR}/farmos_access.log combined
</VirtualHost>
- Add rewrite mod; Enable FarmOS site and disable the default Apache2 site
sudo a2ensite farmos.conf
sudo a2dissite 000-default.conf
sudo a2enmod rewrite
sudo systemctl restart apache2
- Setup the Database and secure it; Replace {your password} with the value you want
sudo mysql -u root -p
– no password for root yet so hit enter
ALTER USER 'root'@'localhost' IDENTIFIED BY '{your password}';
CREATE DATABASE farmos;
CREATE USER 'farmos_user'@'localhost' IDENTIFIED BY '{your password}';
GRANT ALL PRIVILEGES ON farmos.* TO 'farmos_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
– You may choose to further secure the MySQL instance with the following wizard
sudo mysql_secure_installation
-
Use a browser to finish setting up and configuring your installation
For instance, if your server name is foo.bar.com, go to http://foo.bar.com
Follow the prompts to finish your install -
Additional follow up after FarmOS running.
Go to Administration → Reports → Status report
You will see some or all of the errors/warnings below:
Errors
- Transaction isolation level:
The following table(s) do not have a primary key: data_stream_basic.
/fix to be added/
Warnings
- File system: Writable (private download method)
- Trusted Host Settings: Not enabled
To fix the two above, create a backup copy of and edit the following file
/var/www/html/farmos/web/sites/default/settings.php
Uncomment and modify the line as shown below (search for file_private_path)
$settings[‘file_private_path’] = ‘/var/www/html/farmos/web/private:’;
Also uncomment and edit the line below (search for trusted_host_patterns)
$settings[‘trusted_host_patterns’] = [‘^foo.bar.com$’];
Once settings.php is modified, run the following
sudo /var/www/html/farmOS/vendor/bin/drush cr
sudo systemctl restart apache2
- Drupal core security coverage
/fix to be added/ - Drupal core update status
/fix to be added/ - Module and theme update status
/fix to be added/