Install on Ubuntu 2204 2210 » History » Revision 11
Revision 10 (Gareth Eaton, 06/03/2023 02:12 PM) → Revision 11/57 (Gareth Eaton, 06/03/2023 06:58 PM)
h1. Install on Ubuntu 2204 h2. Requirements * A server running Ubuntu 22.04. * A valid domain name pointed to the server or Nginx Proxy Manager IP. See "A Record":https://lightningcr.com/projects/dns/wiki/A_record * A root password is configured on your server. Before starting, LAMP stack must be installed on your server. If not installed, you can install it with the following command: <pre> apt install apache2 mariadb-server php php-cli php-fpm php-json php-intl php-imagick php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath apache2 libapache2-mod-php -y </pre> After installing all packages, edit the PHP configuration file and change some default settings: NOTE: The command sudo nano /etc/php/7.4/apache2/php.ini assumes that you have PHP 7.4 installed with Apache on Ubuntu and that the configuration file is located in that particular path. To determine the exact location of the PHP configuration file for your system, you can use the following command to search for it: php --ini | grep "Loaded Configuration File" <pre> nano /etc/php/7.4/apache2/php.ini </pre> Change the following lines: <pre> date.timezone = UTC memory_limit = 512M upload_max_filesize = 500M post_max_size = 500M max_execution_time = 300 </pre> Save and close the file then restart the Apache service to apply the changes: <pre> systemctl restart apache2 </pre> h2. Create a Database for Nextcloud --- Nextcloud uses a MariaDB database as a database backend so you will need to create a database and user in MariaDB. First, connect to the MariaDB shell with the following command: <pre> mysql </pre> Once you are connected to the MariaDB, create a database and user with the following command: <pre> CREATE DATABASE nextcloud; CREATE USER 'nextcloud'@'localhost' identified by 'password'; </pre> Next, grant all the privileges to the Nextcloud database with the following command: <pre> GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost'; </pre> Next, flush the privileges and exit from the MariaDB with the following command: <pre> FLUSH PRIVILEGES; QUIT; </pre> h2. Download Nextcloud --- At the time of writing the article, the latest version of Nextcloud is 25.0.6. You can download it with the following command: <pre> wget https://download.nextcloud.com/server/releases/nextcloud-25.0.6.zip </pre> Once the download is completed, unzip the downloaded file with the following command: <pre> unzip nextcloud-26.0.2.zip nextcloud-24.0.1.zip </pre> Next, move the extracted directory to the Apache web root with the following command: <pre> mv nextcloud /var/www/html/ </pre> Next, change the ownership and permission of the Nextcloud directory using the following command: <pre> chown -R www-data:www-data /var/www/html/nextcloud chmod -R 775 /var/www/html/nextcloud </pre> h2. Create an Apache Virtual Host for Nextcloud --- Next, you will need to create an Apache virtual host configuration file for Nextcloud. You can create it with the following command: <pre> nano /etc/apache2/sites-available/next.conf </pre> Add the following lines: <pre> <VirtualHost *:80> ServerAdmin admin@example.com DocumentRoot /var/www/html/nextcloud ServerName next.example.com ErrorLog /var/log/apache2/nextcloud-error.log CustomLog /var/log/apache2/nextcloud-access.log combined <Directory /var/www/html/nextcloud> Options +FollowSymlinks AllowOverride All Require all granted SetEnv HOME /var/www/html/nextcloud SetEnv HTTP_HOME /var/www/html/nextcloud <IfModule mod_dav.c> Dav off </IfModule> </Directory> </VirtualHost> </pre> Save and close the file then activate the Apache virtual host and other required Apache modules with the following command: <pre> a2ensite next a2enmod rewrite dir mime env headers </pre> Next, restart the Apache service to apply the changes: <pre> systemctl restart apache2 </pre> NOTE: we have had it where the default site configuration was overriding my vhost configuration, if this happens to you you can disable the default configuration. <pre> sudo a2dissite 000-default.conf service apache2 reload </pre> --- h3. [[Installing SSL with Let's Encrypt SSL]] [[Installing on with a Nginx with a reverse proxy using a Nginx Proxy Manager]]