A working Apache2 server with PHP7.4

I was in need of a server solution that could be quickly deployed as a VM.

      1. Install Debian 11 as a VM with web- and SSH server
      2. Create a USER next to your root account during the installation
      3. Find the IP address of the new installation. The easiest is if you have NoVNC running. Log in as USER and type
        ip a
      4. Time to so the sudo thing
        su

        log in as root

        apt-get update && apt-get install -y sudo
        usermod -aG sudo USER
        exit
        exit

        log back in as USER

      5. Okay, let’s install some more stuff but first we do an update
        sudo apt-get update && sudo apt-get upgrade -y

        Now we want some essentials

        sudo apt-get install -y dirmngr gnupg2 nano wget gpg curl fail2ban ufw software-properties-common

        Preparing the PHP install

        wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add -
        echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
        sudo apt-get update
        sudo apt-get install -y php7.4 libapache2-mod-php7.4 php7.4-mysql php7.4-curl php7.4-gd php7.4-mbstring php7.4-xml php7.4-xmlrpc php7.4-zip

        And restart the Apache2 Webserver

        sudo systemctl restart apache2
      6. Alright, that’s done. Next step is to test things.
        sudo nano /var/www/html/test.php

        Enter this into the php file and press Control X and type Y to save and exit.

        <?php
        // Show all PHP information
        phpinfo();
        ?>
      7. Go to the IP address of the server you just created and type
        HTTP://IP ADDRESS/test.php
        

        If you see a PHP page with all sorts of data, you’re good. If not, go fix. Don’t ask me, I’m not there yet!

Brutally brief: Create a new database and or user in MYSQL

Log in:

mysql -u root -p

Create a user:

create user 'newuser'@'localhost' IDENTIFIED BY 'password';

Give them all the power:

grant all privileges on * . * TO 'newuser'@'localhost';

Reload privileges:

flush privileges;

Ditch a user: (Optional)

drop user 'newuser'@'localhost';

Log out:

\q

—————-

Log in:

mysql -u newuser -p

Create a database for the user:

create database db_name;

List databases: (Optional)

show databases;

Ditch database: (Optional)

drop database db_name;

Log out:

\q

Done.

How to fix “Maintenance Mode” in NextCloud

Super annoying when you get locked out, innit?

It depends a bit how you have installed NextCloud but here are two possible locations for your config file:

/var/www/htdocs/nextcloud/config/config.php 
("regular" apache install)
/config/www/nextcloud/config/config.php
(when using a Docker install)

Open the config.php file and look for

 'maintenance' => true,

And change this to

 'maintenance' => false,

Done.

Archivebox Docker superuser root issues

Since unraid forum is throwing a hissyfit with its captcha thing, I’ll just post it on my own website.

Issue:

root@<containername>:/data# archivebox manage createsuperuser
[i] [2021-11-11 14:29:07] ArchiveBox v0.6.2: archivebox manage createsuperuser
> /data

[i] ArchiveBox should never be run as root!
For more information, see the security overview documentation:
https://github.com/ArchiveBox/ArchiveBox/wiki/Security-Overview#do-not-run-as-root

Oh noes. Open the unraid console and type:

$ sudo docker exec -it --user archivebox <containername> /bin/bash

If you do not know the name of your docker, open the console panel of the archivebox docker and search in the url for “container=”. The number behind that is the name of your docker.

So your prompt looks like this:

archivebox@<containerid>:/data$

Then run:

archivebox manage createsuperuser

Sauce: https://forums.unraid.net/topic/95296-run-docker-as-another-user/?do=findComment&comment=993988

How to GIT

UPDATE

git pull

make new local branch:

git checkout -b [name]

CHANGES
make changes, then add all:

git add .

commit:

git commit -m "comment"

push changes and create new branch:

git push

TO GET THE LATEST VERSION

git checkout master
git pull
git checkout [USER]
git rebase master

Step 1. Fetch and check out the branch for this merge request

git fetch origin
git checkout -b [USER] origin/[USER]

Step 2. Review the changes locally

Step 3. Merge the branch and fix any conflicts that come up

git fetch origin
git checkout origin/master
git merge --no-ff [USER]

Step 4. Push the result of the merge to GitLab

git push origin master

(In this case [USER] is foxsan. And you are not him.)

IMAPSYNC for Debian 8 installation

  1. apt-get update
  2. apt-get upgrade
  3. apt-install git libjson-webtoken-perl libauthen-ntlm-perl libcgi-pm-perl libcrypt-openssl-rsa-perl libdata-uniqid-perl libfile-copy-recursive-perl libio-socket-inet6-perl libio-socket-ssl-perl libio-tee-perl libhtml-parser-perl libjson-webtoken-perl libmail-imapclient-perl libparse-recdescent-perl libmodule-scandeps-perl libreadonly-perl libregexp-common-perl libsys-meminfo-perl libterm-readkey-perl libtest-mockobject-perl libtest-pod-perl libunicode-string-perl liburi-perl libwww-perl libtest-nowarnings-perl libtest-deep-perl libtest-warn-perl make cpanminus
  4. cd /home
  5. git clone https://github.com/imapsync/imapsync.git
  6. cd imapsync
  7. chmod +x imapsync
  8. Test it by typing
    ./imapsync
  9. You may need to install some extras by entering
    cpanm File::Tail
  10. cp imapsync /usr/bin/

Done!

Item 10 is to make sure you can use this command anywhere on the server. Have fun!

Force a file scan in NextCloud

To force a scan after a manual file transfer, for example, can be done as follows:

sudo -u [USER] php occ files:scan --all

for example:

sudo -u john php occ files:scan --all
Usage:
  files:scan [-p|--path="..."] [-q|--quiet] [-v|vv|vvv --verbose] [--all]
  [user_id1] ... [user_idN]

Arguments:
  user_id               will rescan all files of the given user(s)

Options:
  --path                limit rescan to the user/path given
  --all                 will rescan all files of all known users
  --quiet               suppress any output
  --verbose             files and directories being processed are shown
                        additionally during scanning
  --unscanned           scan only previously unscanned files

Source: https://docs.nextcloud.com/server/15/admin_manual/configuration_server/occ_command.html