Icons, billeder brugt til illustration.
Generer adgangskode.
Degenerer adgangskode.
Foreløbig laves en dørstation til Videx. Og denne model af en website er et mix af kode samt anvendeligheden af de enkelte komponenter. Jeg tror at hvis kode, forretnings model samt tydelig forklaring for at producere et produkt er en rød tråd gennem dette website. Kan der laves en skabelon der får produkter hurtigt gennem udvikling. Med andre ord skal enhver kunne producere ud fra dette websites opskrifter.
I sidste ende er en kode idé ikke meget værd, hvis ikke den kan gøres til en forretning, som vi tjener penge på. Men vigtigst er at idé som kode beskyttes. Arbejder på det.
En DNS Server som FreeDNS, gør at man kan bruge navne som vist på billedet. Og ud fra et Domain som man ejer, kan skabe lige så mange navne man vil, ud fra sit Domain navn. Dette er en gratis løsning for at give vor kunder, eller enheder, som kameraer et web navn f.eks. kamera99.doordk.com eller hansi.doordk.com.
adresse1.doordk.com
adresse2.doordk.com
adresse3.doordk.com
adresse4.doordk.com
adresse5.doordk.com
osv.doordk.com
Under menu'en DNS ACME, ses hvordan man laver en secure HTTPS:// adresse med FreeDNS.
Link. FreeDNS https://freedns.afraid.org/På den lange bane, må vi selv have(lave) en DNS server. Og ikke være afhængig af FreeDNS.
aplay --list-devices
arecord --list-devices
sudo nano ~/.asoundrc
sudo nano /etc/asound.conf
pcm.!default {
type asym
capture.pcm "mic"
playback.pcm "speaker"
}
pcm.mic {
type plug
slave {
pcm "hw:2,0"
}
}
pcm.speaker {
type plug
slave {
pcm "hw:2,0"
}
}
Update Firmware.
Når man forsøger at update Rocken. Går den i ged??.
Løsningen er at update key filen.
Update key.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 9B98116C9AA302C7
sudo apt update && sudo apt upgrade -y && sudo apt autoremove && sudo apt autoclean
sudo timedatectl set-timezone Europe/Copenhagen
sudo nano /etc/hosts
sudo nano /etc/hostname
sudo hostnamectl --static set-hostname rockpi4b
sudo chown -R rock:rock /home/rock
echo "rock:spacewalk" | sudo chpasswd
sudo reboot
After backup. Clean Up.
cd ~
rm cmake-3.29.0.tar.gz && sudo rm -R cmake-3.29.0
alsamixer
sudo alsactl store
aplay /usr/share/sounds/alsa/Front_Center.wav
arecord -D plughw:2,0 --duration=3 test.wav && aplay test.wav
sudo apt install -y libc++-dev curl libcurl4-openssl-dev git socat certbot dnsutils zip unzip cron locales
nano wwan0_sim7600.shMake it exe ready, and run it.
chmod u+x wwan0_sim7600.sh
sudo ./wwan0_sim7600.shIf no output after run. Alles OK. Create a cron job that run every minute. To check if IP addresse has changed?.
sudo crontab -e
* * * * * /home/rock/wwan0_sim7600.sh >> /home/rock/wwan0_sim7600.log 2>&1 &
nano ip_pub.shMake it exe ready, and run it.
chmod u+x ip_pub.sh
sudo ./ip_pub.shIf no output after run. Alles OK. Create a cron job that run every minute. To check if IP addresse has changed?.
sudo crontab -e
* * * * * /home/rock/ip_pub.sh >> /home/rock/ip_pub.log 2>&1 &
sudo systemctl restart cron
sudo systemctl status cron
dig +short -t a doordk.com
dig +short -t a doorbell.doordk.com
dig +short -t a aldersrogade.doordk.com
sudo -i
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail "users FreeDns email"
source ~/.bashrc
sudo -i
cd ./acme.sh
export FREEDNS_User="users FreeDns email"
export FREEDNS_Password="password"
./acme.sh --issue --dns dns_freedns -d doorbell.doordk.com --keylength 4096 --force
sudo zip -r ~/acme_doorbell_doordk_com_bak.zip /root/.acme.sh
sudo unzip ~/acme_doorbell_doordk_com_bak.zip -d /
sudo -i
cd .acme.sh
./acme.sh --upgrade --auto-upgrade
./acme.sh --renew-all --force
./acme.sh --renew -d doorbell.doordk.com --force
./acme.sh --showcsr --csr /root/.acme.sh/doorbell.doordk.com/doorbell.doordk.com.csr
mkdir -p /home/rock/certs/doorbell.doordk.com
exit
sudo chown -R -v www-data:www-data /home/rock/certs
sudo chown -R -v www-data /home/rock/certs
sudo chmod -R 775 ~/certs
sudo usermod -a -G www-data rock
cd /home/rock/certs/doorbell.doordk.com
openssl dhparam -out dh.pem 4096
sudo cp dh.pem /home/rock/certs/doorbell.doordk.com
rm dh.pem
sudo nano /root/.acme.sh/account.conf
dig whoami.cloudflare ch txt @1.1.1.1 +short | awk -F'"' '{print $2}'
ping -4 doorbell.doordk.com
tar xfz libserialport_bac.tar.gz
cd libserialport/
sudo make install
cd ~
rm libserialport_bac.tar.gz && sudo rm -R libserialport
SerialClass *serial=NULL;
serial=new SerialClass();
serial->set_port("/dev/ttyUSB2");
if( !serial->Start() ){
std::cout << "error findig port? " << std::endl;
letter = 'x';
}
Når programmet kører tast "a" og Enter for test.
Sender "AT\r" til modemet, og forventer at få svaret "OK".
time_out=3; Giver modemet 3seconds max, Har modemet ikke svaret inden kommer en fejl meddelse "Time OUT????".
ellers "Hurray: expected: OK"
std::string ttyUSB_port="";
std::string ttySIM_port="/dev/ttySIM02";
std::string ret=ExecCmd("ls -l /dev/ttySIM0*");
int pos = ret.find(ttySIM_port);
if( pos > 0 ){
// Copy substring after pos
std::string str = ret.substr(pos + 1);
boost::algorithm::trim(str);
std::vector strs;
boost::split(strs, str , boost::is_any_of("\n"));
if( strs.size() > 0 ){
//std::cout << strs.size() << " str: " << strs[0] << std::endl;
std::vector strs_1;
boost::split(strs_1, strs[0] , boost::is_any_of(" "));
if( strs_1.size() > 0 ){
ttyUSB_port=strs_1[strs_1.size()-1];
boost::algorithm::trim(ttyUSB_port);
ttyUSB_port="/dev/"+ttyUSB_port;
//std::cout << " ttyUSB_port: " << ttyUSB_port << std::endl;
}else{
std::cout << "No serial PORT found" << std::endl;
return 1;
}
}else{
std::cout << "No serial PORT found" << std::endl;
return 1;
}
}else{
std::cout << "No serial PORT found" << std::endl;
return 1;
}
tar xfz boost_1_84_0_bac.tar.gz
sudo apt install -y libssl-dev python-dev libxml2-dev libxslt-dev build-essential nlohmann-json3-dev
cd boost_1_84_0/
sudo ./b2 install threading=multi link=shared
cd ~
rm boost_1_84_0_bac.tar.gz && sudo rm -R boost_1_84_0
sudo apt update && sudo apt dist-upgrade
cd ~
wget https://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-21.4.3.tar.gz
tar xf asterisk-21.4.3.tar.gz
rm asterisk-21.4.3.tar.gz
cd asterisk-21.4.3Get PJLib
wget https://github.com/pjsip/pjproject/archive/refs/tags/2.14.tar.gz
tar xvf 2.14.tar.gz
nano third-party/pjproject/patches/config_site.hlinie 90 change :
sudo contrib/scripts/install_prereq install
sudo contrib/scripts/get_mp3_source.sh
sudo ./configure
sudo make menuselect~
sudo make -j$(nproc)
sudo make install
sudo make samples
sudo make config
sudo make install-logrotate
sudo ldconfig
sudo systemctl start asterisk
sudo systemctl status asterisk
sudo systemctl enable asterisk
#!/bin/bash
sed -i 's";\[radius\]"\[radius\]"g' /etc/asterisk/cdr.conf
sed -i 's";radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf"radiuscfg => /etc/radcli/radiusclient.conf"g' /etc/asterisk/cdr.conf
sed -i 's";radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf"radiuscfg => /etc/radcli/radiusclient.conf"g' /etc/asterisk/cel.conf
chmod u+x radius.sh
sudo ./radius.sh
sudo systemctl start asterisk
sudo systemctl status asterisk
sudo truncate -s 0 /etc/logrotate.d/asterisk
sudo nano /etc/logrotate.d/asterisk
/var/log/asterisk/debug /var/log/asterisk/console /var/log/asterisk/full /var/log/asterisk/messages /var/log/asterisk/*log {
missingok
rotate 15
compress
delaycompress
notifempty
size 2M
create 640 asterisk asterisk
sharedscripts
postrotate
/usr/sbin/asterisk -rx 'logger reload' > /dev/null 2> /dev/null
endscript
}
**********************************************sudo addgroup asterisk
sudo adduser --system --home /var/lib/asterisk --no-create-home --ingroup asterisk --shell /bin/false asterisk
sudo adduser asterisk dialout && sudo adduser asterisk audio
sudo chown -R asterisk:asterisk /var/{lib,log,run,spool}/asterisk /usr/lib/asterisk /etc/asterisk
sudo mkdir /etc/asterisk/keys
sudo chown asterisk:asterisk /etc/asterisk/keys
sudo cp /home/rock/certs/doorbell.doordk.com/ca.pem /etc/asterisk/keys
sudo cp /home/rock/certs/doorbell.doordk.com/fullchain.pem /etc/asterisk/keys
sudo cp /home/rock/certs/doorbell.doordk.com/key.pem /etc/asterisk/keys
sudo chown asterisk:asterisk /etc/asterisk/keys/fullchain.pem /etc/asterisk/keys/key.pem /etc/asterisk/keys/ca.pem
sudo chmod 600 /etc/asterisk/keys/fullchain.pem /etc/asterisk/keys/key.pem /etc/asterisk/keys/ca.pem
sudo nano /etc/default/asteriskuncomment the following two lines:
AST_USER="asterisk" #8
AST_GROUP="asterisk" #9
************************************mkdir sound_asteriskfor codec in g722 g729 gsm sln16 ulaw wav; do
sudo cp /etc/asterisk/pjsip.conf /etc/asterisk/pjsip.conf.bak
cd ~
tar xfz asterisk-21.4.3_bac.tar.gz
cd asterisk-21.4.3
cd ~
rm asterisk-21.4.3_bac.tar.gz
cd ~
wget https://blohm.com/wp-content/themes/blohm-child/page-templates/rock/asterisk/files/asterisk_conf_bak.tar.gz
tar xfz asterisk_conf_bak.tar.gz
rm asterisk_conf_bak.tar.gz
sudo cp /etc/asterisk/asterisk.conf /etc/asterisk/asterisk.bak && \
sudo cp /etc/asterisk/cdr.conf /etc/asterisk/cdr.bak && \
sudo cp /etc/asterisk/cel.conf /etc/asterisk/cel.bak && \
sudo cp /etc/asterisk/extensions.conf /etc/asterisk/extensions.bak && \
sudo cp /etc/asterisk/http.conf /etc/asterisk/http.bak && \
sudo cp /etc/asterisk/logger.conf /etc/asterisk/logger.bak && \
sudo cp /etc/asterisk/modules.conf /etc/asterisk/modules.bak && \
sudo cp /etc/asterisk/pjsip.conf /etc/asterisk/pjsip.bak && \
sudo cp /etc/asterisk/rtp.conf /etc/asterisk/rtp.bak
#Deploy asterisk .conf files.
sudo cp /home/rock/asterisk_conf/asterisk.conf /etc/asterisk/asterisk.conf && \
sudo cp /home/rock/asterisk_conf/cdr.conf /etc/asterisk/cdr.conf && \
sudo cp /home/rock/asterisk_conf/cel.conf /etc/asterisk/cel.conf && \
sudo cp /home/rock/asterisk_conf/extensions.conf /etc/asterisk/extensions.conf && \
sudo cp /home/rock/asterisk_conf/http.conf /etc/asterisk/http.conf && \
sudo cp /home/rock/asterisk_conf/logger.conf /etc/asterisk/logger.conf && \
sudo cp /home/rock/asterisk_conf/modules.conf /etc/asterisk/modules.conf && \
sudo cp /home/rock/asterisk_conf/pjsip.conf /etc/asterisk/pjsip.conf && \
sudo cp /home/rock/asterisk_conf/rtp.conf /etc/asterisk/rtp.conf
#Save asterisk .conf files for later use.
mkdir /home/rock/asterisk_conf
sudo cp /etc/asterisk/asterisk.conf /home/rock/asterisk_conf/asterisk.conf && \
sudo cp /etc/asterisk/cdr.conf /home/rock/asterisk_conf/cdr.conf && \
sudo cp /etc/asterisk/cel.conf /home/rock/asterisk_conf/cel.conf && \
sudo cp /etc/asterisk/extensions.conf /home/rock/asterisk_conf/extensions.conf && \
sudo cp /etc/asterisk/http.conf /home/rock/asterisk_conf/http.conf && \
sudo cp /etc/asterisk/logger.conf /home/rock/asterisk_conf/logger.conf && \
sudo cp /etc/asterisk/modules.conf /home/rock/asterisk_conf/modules.conf && \
sudo cp /etc/asterisk/pjsip.conf /home/rock/asterisk_conf/pjsip.conf && \
sudo cp /etc/asterisk/rtp.conf /home/rock/asterisk_conf/rtp.conf
cd ~
tar -czf asterisk-21.4.3_bac.tar.gz asterisk-21.4.3
sudo systemctl enable asterisk
sudo systemctl start asterisk
sudo systemctl restart asterisk
sudo systemctl stop asterisk
asterisk -V
sudo asterisk -rvvvvv
sudo systemctl status asterisk
sudo cat /var/log/asterisk/messages
sudo journalctl -u asterisk.service --since today
sudo asterisk -rx "module reload res_pjsip.so"
sudo asterisk -rvvvvv
core show help
sudo asterisk -rx "pjsip show endpoints"
GPIO | Input | Output | Notes |
0 | pulled up | OK | outputs PWM signal at boot, must be LOW to enter flashing mode |
1 | TX pin | OK | debug output at boot |
2 | OK | OK | connected to on-board LED, must be left floating or LOW to enter flashing mode |
3 | OK | RX pin | HIGH at boot |
4 | OK | OK | |
5 | OK | OK | outputs PWM signal at boot, strapping pin |
6 | x | x | connected to the integrated SPI flash |
7 | x | x | connected to the integrated SPI flash |
8 | x | x | connected to the integrated SPI flash |
9 | x | x | connected to the integrated SPI flash |
10 | x | x | connected to the integrated SPI flash |
11 | x | x | connected to the integrated SPI flash |
12 | OK | OK | boot fails if pulled high, strapping pin |
13 | OK | OK | |
14 | OK | OK | outputs PWM signal at boot |
15 | OK | OK | outputs PWM signal at boot, strapping pin |
16 | OK | OK | |
17 | OK | OK | |
18 | OK | OK | |
19 | OK | OK | |
21 | OK | OK | |
22 | OK | OK | |
23 | OK | OK | |
25 | OK | OK | |
26 | OK | OK | |
27 | OK | OK | |
32 | OK | OK | |
33 | OK | OK | |
34 | OK | input only | |
35 | OK | input only | |
36 | OK | input only | |
39 | OK | input only |
Sketch for 4x4.
#include "Arduino.h"
#include <string>
#include <Keypad.h>
const byte ROWS = 4; /* four rows */
const byte COLS = 4; /* four columns */
/* define the symbols on the buttons of the keypads */
char hexaKeys[ROWS][COLS] = {
{'0','1','2','3'},
{'4','5','6','7'},
{'8','9','A','B'},
{'C','D','E','F'}
};
byte rowPins[ROWS] = {13, 12, 14, 27}; /* connect to the row pinouts of the keypad */
byte colPins[COLS] = {26, 25, 33, 32}; /* connect to the column pinouts of the keypad */
/* initialize an instance of class NewKeypad */
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
String getValue(String data, char separator, int index)
{
int found = 0;
int strIndex[] = {0, -1};
int maxIndex = data.length()-1;
for(int i=0; i<=maxIndex && found<=index; i++){
if(data.charAt(i)==separator || i==maxIndex){
found++;
strIndex[0] = strIndex[1]+1;
strIndex[1] = (i == maxIndex) ? i+1 : i;
}
}
return found>index ? data.substring(strIndex[0], strIndex[1]) : "";
}
void setup(){
Serial.begin(115200);
}
void loop(){
char customKey = customKeypad.getKey();
if (customKey){
Serial.println(customKey);
}
// Check if user sent a new string
if (Serial.available() > 0)
{
String user_string = Serial.readString();
String part01 = getValue(user_string,':',0);
Serial.println(part01);
part01.trim();
if(part01=="reboot"){
ESP.restart();
}
}
}
Link to keypad library for arduino
sudo apt install -y iptables
sudo iptables --flush && sudo iptables --table nat --flush
sudo iptables --delete-chain && sudo iptables --table nat --delete-chain
cd ~
nano reset_iptabeles.sh*********************************
#!/bin/bash
# IPv6
##
## set default policies to let everything in
ip6tables --policy INPUT ACCEPT;
ip6tables --policy OUTPUT ACCEPT;
ip6tables --policy FORWARD ACCEPT;
##
## start fresh
ip6tables -Z; # zero counters
ip6tables -F; # flush (delete) rules
ip6tables -X; # delete all extra chains
# IPv4
##
## set default policies to let everything in
iptables --policy INPUT ACCEPT;
iptables --policy OUTPUT ACCEPT;
iptables --policy FORWARD ACCEPT;
##
## start fresh
iptables -Z; # zero counters
iptables -F; # flush (delete) rules
iptables -X; # delete all extra chains
# delete old configuration, if any
# Flush all the rules in filter and nat tables
iptables --flush
iptables --table nat --flush
# delete all chains that are not in default filter and nat table, if any
iptables --delete-chain
iptables --table nat --delete-chain
chmod u+x reset_iptabeles.sh
sudo ./reset_iptabeles.sh*********************************
sudo apt install -y ufw
sudo ufw disablesudo ufw default allow outgoing && sudo ufw default deny incoming && \
sudo ufw show added
sudo ufw enable
sudo ufw status verbose# only when running
sudo ufw status
sudo ufw status numbered# Reset delete all rules
sudo ufw reset# delete rule
sudo ufw status numbered
sudo ufw delete 2
cd ~
wget https://github.com/fail2ban/fail2ban/archive/refs/tags/1.1.0.tar.gz
tar -xzf 1.1.0.tar.gz
cd fail2ban-1.1.0
sudo python3 setup.py install
sudo cp /home/rock/fail2ban-1.1.0/build/fail2ban.service /etc/systemd/system/
cd ~
rm 1.1.0.tar.gz
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
sudo systemctl status fail2ban
sudo systemctl restart fail2ban
sudo systemctl stop fail2ban
cd ~
mkdir fail2ban_conf
sudo cp /etc/fail2ban/fail2ban.local ~/fail2ban_conf
sudo cp /etc/fail2ban/filter.d/asterisk.conf ~/fail2ban_conf
tar -czf fail2ban_conf_bak.tar.gz fail2ban_conf
cd ~
wget https://blohm.com/wp-content/themes/blohm-child/page-templates/rock/fail2ban/files/fail2ban_conf_bak.tar.gz
tar xfz fail2ban_conf_bak.tar.gz
rm fail2ban_conf_bak.tar.gz
cd ~
sudo cp ~/fail2ban_conf/fail2ban.local /etc/fail2ban/fail2ban.local
sudo cp ~/fail2ban_conf/asterisk.conf /etc/fail2ban/filter.d/asterisk.conf
sudo systemctl restart fail2ban
sudo systemctl status fail2ban
sudo nano /etc/fail2ban/jail.local
sudo rm -R fail2ban-1.1.0
fail2ban-client --test
sudo cat /var/log/fail2ban.log# clear the log
sudo truncate -s 0 /var/log/fail2ban.log# Fail2ban ships with a command-line tool named fail2ban-client
sudo fail2ban-client version
sudo fail2ban-client -h# check status
sudo fail2ban-client status# status of jail asterisk
sudo fail2ban-client status asterisk# Ban an IP address
sudo fail2ban-client set asterisk banip 23.34.45.56# Unlocking an IP address
sudo fail2ban-client set asterisk unbanip 125.124.221.121# To activate a rule, use its name from the configuration file and the command:
sudo fail2ban-client add asterisk# Then start it.
sudo fail2ban-client start asterisk# Asterisk commands
sudo systemctl start asterisk
sudo systemctl restart asterisk
sudo systemctl stop asterisk
sudo systemctl status asterisk
sudo asterisk -rvvvvv
Under menu'en SIM7600.
Se assignment.
# sudo truncate -s 0 /etc/nginx/sites-enabled/default
# sudo nano /etc/nginx/sites-enabled/default
# sudo nginx -t
# sudo systemctl reload nginx
# sudo systemctl restart nginx
# sudo systemctl status nginx
server {
listen 80;
listen [::]:80;
server_name doorbell.doordk.com;
return 301 https://$host$request_uri;
}
# SSL configuration
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name doorbell.doordk.com;
ssl_certificate /home/rock/certs/doorbell.doordk.com/fullchain.pem;
ssl_certificate_key /home/rock/certs/doorbell.doordk.com/key.pem;
root /var/www/html;
# Add index.php to the list if you are using PHP
#index index.php index.html index.htm;
location / {
index index.html index.htm index.php;
try_files $uri $uri.html $uri/ @extensionless-php;
}
# Improve HTTPS performance with session resumption
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
# Enable server-side protection against BEAST attacks
ssl_protocols TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384";
# RFC-7919 recommended: https://wiki.mozilla.org/Security/Server_Side_TLS#ffdhe4096
ssl_dhparam /home/rock/certs/doorbell.doordk.com/dh.pem;
ssl_ecdh_curve secp521r1:secp384r1;
# Aditional Security Headers
# ref: https://developer.mozilla.org/en-US/docs/Security/HTTP_Strict_Transport_Security
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
# ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
add_header X-Frame-Options DENY always;
# ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options
add_header X-Content-Type-Options nosniff always;
# ref: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection
add_header X-Xss-Protection "1; mode=block" always;
# Enable OCSP stapling
# ref. http://blog.mozilla.org/security/2013/07/29/ocsp-stapling-in-firefox
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /home/rock/certs/doorbell.doordk.com/fullchain.pem;
resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001] valid=300s; # Cloudflare
resolver_timeout 5s;
# pass PHP scripts to FastCGI server
location ~ \.php$ {
include snippets/fastcgi-php.conf;
#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}
# Required for LE certificate enrollment using certbot
location '/.well-known/acme-challenge' {
default_type "text/plain";
root /var/www/html;
}
location / {
root /var/www/html;
}
location @extensionless-php {
if ( -f $document_root$uri.php ) {
rewrite ^ $uri.php last;
}
return 404;
}
}
******************************************
<?php
phpinfo();
******************************************
<!DOCTYPE html>
<html>
<head><title>Test PHP Connection Script</title>
</head>
<body>
<h3>Welcome to the PHP Connect Test</h3>
<?php
$servername = "localhost";
$username = "phpmyadmin";
$password = "mariaspacewalk";
$dbname = "phpmyadmin";
// Create connection
$mysqli = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
echo "Connected successfully.<br>";
$sql = "SHOW DATABASES;";
// Process the query so that we will save the date of birth
$results = $mysqli->query($sql);
// Fetch Associative array
$row = $results->fetch_all(MYSQLI_ASSOC);
var_dump($row);
// Free result set
$results->free_result();
// Close the connection after using it
$mysqli->close();
?>
</body>
</html>
******************************************
$cfg['LoginCookieValidity'] = 3600*4;
******************************************sudo apt update && sudo apt upgrade
sudo apt -y install libssl-dev openssl libmysqlclient-dev libpq-dev apache2-dev libapr1 libapr1-dev libaprutil1-dev
wget https://pocoproject.org/releases/poco-1.13.3/poco-1.13.3-all.tar.gz
tar xfz poco-1.13.3-all.tar.gz
cd poco-1.13.3-all
./configure --static --shared --no-tests --no-samples
mkdir cmake-build && cd cmake-build
cmake -DBUILD_SHARED_LIBS=OFF ..
cmake --build . --clean-first --parallel $(nproc) --config Release
sudo cmake --build . --target install
cd /home/rock/poco-1.13.3-all/cmake-build
tar -czf ~/poco_lib_bak.tar.gz lib
cd /usr/local/include
sudo tar -czf ~/poco_include_bak.tar.gz Poco
sudo cp poco_lib_bak.tar.gz /usr/local
cd /usr/local
sudo tar xfz poco_lib_bak.tar.gz
sudo rm poco_lib_bak.tar.gz
sudo cp poco_include_bak.tar.gz /usr/local/include
cd /usr/local/include
sudo tar xfz poco_include_bak.tar.gz
sudo rm poco_include_bak.tar.gz
sudo apt remove curl && sudo apt purge curl
cd /usr/local/src && rm -rf curl* && cd ~
sudo apt install -y build-essential libcurl4 openssl libssl-dev libssh-dev zlib1g-dev libbrotli-dev brotli libkrb5-dev libldap2-dev librtmp-dev libpsl-dev libnghttp2-dev
wget https://curl.se/download/curl-8.11.1.tar.gz
tar -xzvf curl-8.11.1.tar.gz
rm curl-8.11.1.tar.gz
cd curl-8.11.1
./configure --with-ssl --with-zlib --with-gssapi --enable-ldap --enable-ldaps --with-libssh --with-nghttp2
make -j$(nproc)
sudo make install && sudo ldconfig
cd ~
ls /usr/local/lib/libcurl*
sudo rm /lib/aarch64-linux-gnu/libcurl.so.4
sudo ldd $(which curl) | grep libcurl
curl -V
sudo ldd $(which curl) | grep libcurl
#!/bin/bash
rm /lib/aarch64-linux-gnu/libcurl.so.4
ln -s /usr/local/lib/libcurl.so.4.8.0 /lib/aarch64-linux-gnu/libcurl.so.4
sh /home/rock/curl_link.sh
Icons, billeder brugt til illustration.