Backup ftp server + pluxml on Raspberry
Written by pmd - - no commentsInformation from shellhacks.com.
Download
The following command recursively downloads your site with all its files and folders from FTP server and saves them to the current directory.
wget -r -l 0 -nH -X folder_to_skip ftp://user:pass@ftp.server.com
option | description |
user | FTP username |
pass | FTP password |
ftp.server.com | IP address or domain name of an FTP server |
-r | Recursive retrieving |
-l | Maximum recursion depth (0 = unlimit) (default = 5) |
-nH | Disable generation of host-prefixed directories |
-X | exclude a list of directories |
Backup
Now you can compress the folder with your site as follows:
tar -czf site-backup-$(date +%Y%m%d-%H%M%S).tar.gz yoursite.com
Install pluxml on raspberry pi
I am using nginx + php7 + pluxml following these 3 links:
- https://www.raspberrypi.org/documentation/remote-access/web-server/nginx.md
- https://blog.norore.fr/index.php?article13/pluxml-nginx-et-php-7-sont-dans-un-bateau
- https://docs.nginx.com/nginx/admin-guide/security-controls/configuring-http-basic-authentication/
To find which php version should be installed, you can search what is available:
Install php and nginx (see here to install nginx):
Once all is installed, configure php :
[www]
user = www-data
group = www-data
listen = /run/php/php7.3-fpm.sock
listen.owner = www-data
listen.group = www-data
;listen.mode = 0660
server {
listen 80 default_server;
listen [::]:80 default_server;
# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
location @handler {
rewrite ^/(.*)$ /index.php? last;
}
# pass PHP scripts to FastCGI server
#
location ^~ /pluxml_folder {
auth_basic "admin";
auth_basic_user_file /etc/apache2/.htpasswd;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
}
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /(data/configuration|version|update|\.ht) {
deny all;
}
}
Then restart both services.
Interesting problem : Nginx sucessfully password protects PHP files, but then prompts you to download them
Answer : The problem is a fundamental misunderstanding as to how nginx processes a request. Basically, nginx chooses one location to process a request.
You want nginx to process URIs that begin with /admin in a location block that requires auth_basic. In addition, URIs that end with .php need to be sent to PHP7.
So you need two fastcgi blocks, one to process normal PHP files and one to process restricted PHP files.
SSL certificate with no-ip.com
SSL Certificate Now Included with No-IP Free Dynamic DNS.
Tutorial #0: How to Configure the TrustCor Standard DV SSL
Tutorial #1: NGINX Server setup for TrustCor SSL
Generate the private key and CSR from the NGINX server by running this command:
Ignoring -days; not generating a certificate
Generating a RSA private key
.....................................................+++++
.................................................................+++++
writing new private key to 'nginx1-trustcor.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:FR
State or Province Name (full name) [Some-State]:France
Locality Name (eg, city) []:none
Organization Name (eg, company) [Internet Widgits Pty Ltd]:none
Organizational Unit Name (eg, section) []:none
Common Name (e.g. server FQDN or YOUR name) []:DOMAIN_NAME.ddns.net
Email Address []:none
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:none
$
Troubleshooting
Sometimes, I've had the situation where http requests from browsers are being served old versions of the PHP files, missing updates to the PHP scripts that have been uploaded to the server.
To solve this issue, I had to modify the php.ini file by setting :
To find your php.ini location, run this php file on your server:
phpinfo();
?>
Then to reload php.ini file, restart php-fpm:
$ sudo systemctl start php7.4-fpm
$