Project

General

Profile

Install on Ubuntu 2204 2210 » History » Revision 46

Revision 45 (Gareth Eaton, 10/15/2023 11:36 PM) → Revision 46/57 (Gareth Eaton, 10/15/2023 11:36 PM)

h1. Install on Ubuntu 2204 

 <pre> 
 h1. Install on Ubuntu 20.04 / 22.10 
 </pre> 
 h2. Requirements 

 * A server running Ubuntu 20.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. 

 * install software-properties-common 

 <pre> 
 sudo apt update 
 sudo apt install software-properties-common 
 </pre> 

 After successfully installing software-properties-common, you can add the PHP PPA as follows: 

 <pre> 
 sudo add-apt-repository ppa:ondrej/php 
 </pre> 


 Before starting, LAMP stack must be installed on your server. If not installed, you can install it with the following command: 

 NOTE: If you are installing Nextcloud 26 + on Ubuntu 20.04, you will need php8, this so use this LAMP stack  
 <pre> 
 sudo apt install apache2 mariadb-server php8.1 php8.1-cli php8.1-fpm php8.1-intl php8.1-imagick php8.1-pdo php8.1-mysql php8.1-zip php8.1-gd php8.1-mbstring php8.1-curl php8.1-xml php8.1-bcmath libapache2-mod-php8.1 -y 

 </pre> 

 After installing all packages, edit the PHP configuration file and change some default settings: 

 Use php -v to check which php is installed, and change the #.# with the right numbers 
 in my case it say, *PHP 8.1* 8.1.24* 

 <pre> 
 nano /etc/php/#.#/apache2/php.ini 
 </pre> 

 Change the following lines: 

 <pre> 
 date.timezone = UTC or what ever time zone you are in 
 memory_limit = 512M 
 upload_max_filesize = 500M 
 post_max_size = 500M 
 max_execution_time = 300 
 </pre> 


 Note: https://www.php.net/manual/en/timezones.php 

 Save and close the file then restart the Apache service to apply the changes: 

 <pre> 
 systemctl restart apache2 
 </pre> 

 &nbsp; 

 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: 

 *NOTE: Change the 'password' to the password you would like to use.* 

 <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> 

 &nbsp; 

 h2. Download Nextcloud 

 --- 

 At the time of of updateing this article, the latest version of Nextcloud is -26.0.2.-    It is now nextcloud-27.0.2.zip - You can download it with the following command: 
 *NOTE: you can go to    https://download.nextcloud.com/server/releases/ to check which is the latest version* 

 <pre> 
 wget https://download.nextcloud.com/server/releases/nextcloud-27.0.2.zip 
 </pre> 

 Once the download is completed, unzip the downloaded file with the following command: 

 <pre> 
 unzip nextcloud-27.0.2.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> 

 &nbsp; 

 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: 

 *NOTE: Change the [email protected] and next.example.com, to the right one for you* 

 <pre> 
 <VirtualHost *:80> 
      ServerAdmin [email protected] 
      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> 

 &nbsp; 


 Now in a web-browser go to your nextcloud address(http://next.example.com) and finish the install,   

 Set up an admin user account, and    for the database it should be, 

 <pre> 
 Database user: nextcloud 
 Database password: what ever you used 
 Database name: nextcloud 
 Database hose:localhost 
 </pre> 

 --- 

 [["Adding default phone region to Nextcloud config file for validating phone numbers in profile settings."]] 

 --- 

 The install should now be complete. 

 --- 

 [["Configure a Memcache for Better Performance in Nextcloud"]] 

 --- 

 Depending on how you setup your network and server you might have to install a SSL more information on how to do that below. 

 You should also go to "Administration Settings" and in the Overview tab, see the    Security & setup warning, see https://lightningcr.com/projects/nextcloud/wiki to help you with each warning you get. 

 also setup your Email Server,    this is found in Basic setting, again see https://lightningcr.com/projects/nextcloud/wiki to help you with this. 

 --- 

 h3. [[Installing SSL with Let's Encrypt SSL]] 
 [[Installing on with a Nginx with a reverse proxy using a Nginx Proxy Manager]]