mirror of
https://github.com/YunoHost-Apps/jirafeau_ynh.git
synced 2024-09-03 19:35:53 +02:00
Normalization from example_ynh
This commit is contained in:
parent
3bbd3ddaf3
commit
4e3ea101dc
12 changed files with 124 additions and 101 deletions
62
README.md
62
README.md
|
@ -1,8 +1,60 @@
|
|||
# Jirafeau package for YunoHost
|
||||
|
||||
Easy drag&Drop file sharing.
|
||||
# Jirafeau for YunoHost
|
||||
|
||||
[![Integration level](https://dash.yunohost.org/integration/jirafeau.svg)](https://dash.yunohost.org/appci/app/jirafeau)
|
||||
[![Install Jirafeau with YunoHost](https://install-app.yunohost.org/install-with-yunohost.png)](https://install-app.yunohost.org/?app=jirafeau)
|
||||
|
||||
* [Jirafeau website](https://gitlab.com/mojo42/Jirafeau)
|
||||
* [YunoHost website](https://yunohost.org/)
|
||||
> *This package allow you to install Jirafeau quickly and simply on a YunoHost server.
|
||||
If you don't have YunoHost, please see [here](https://yunohost.org/#/install) to know how to install and enjoy it.*
|
||||
|
||||
## Overview
|
||||
|
||||
Jirafeau is a web site permitting to upload a file in a simple way and give an unique link to it.
|
||||
|
||||
**Shipped version:** 3.4.1
|
||||
|
||||
## Screenshots
|
||||
|
||||
![](http://i.imgur.com/TPjh48P.png)
|
||||
|
||||
## Demo
|
||||
|
||||
* [YunoHost demo](https://jirafeau.net/)
|
||||
|
||||
## Configuration
|
||||
|
||||
## Documentation
|
||||
|
||||
* Official documentation:
|
||||
* YunoHost documentation: If specific documentation is needed, feel free to contribute.
|
||||
|
||||
## YunoHost specific features
|
||||
|
||||
#### Supported architectures
|
||||
|
||||
* x86-64b - [![Build Status](https://ci-apps.yunohost.org/ci/logs/jirafeau%20%28Official%29.svg)](https://ci-apps.yunohost.org/ci/apps/jirafeau/)
|
||||
* ARMv8-A - [![Build Status](https://ci-apps-arm.yunohost.org/ci/logs/jirafeau%20%28Official%29.svg)](https://ci-apps-arm.yunohost.org/ci/apps/jirafeau/)
|
||||
* Jessie x86-64b - [![Build Status](https://ci-stretch.nohost.me/ci/logs/jirafeau%20%28Official%29.svg)](https://ci-stretch.nohost.me/ci/apps/jirafeau/)
|
||||
|
||||
## Limitations
|
||||
|
||||
## Additional information
|
||||
|
||||
## Links
|
||||
|
||||
* Report a bug: https://github.com/YunoHost-Apps/jirafeau_ynh/issues
|
||||
* Jirafeau website: https://gitlab.com/mojo42/Jirafeau
|
||||
* YunoHost website: https://yunohost.org/
|
||||
|
||||
---
|
||||
|
||||
Developers info
|
||||
----------------
|
||||
|
||||
Please do your pull request to the [testing branch](https://github.com/YunoHost-Apps/jirafeau_ynh/tree/testing).
|
||||
|
||||
To try the testing branch, please proceed like that.
|
||||
```
|
||||
sudo yunohost app install https://github.com/YunoHost-Apps/jirafeau_ynh/tree/testing --debug
|
||||
or
|
||||
sudo yunohost app upgrade jirafeau -u https://github.com/YunoHost-Apps/jirafeau_ynh/tree/testing --debug
|
||||
```
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
;; Test complet
|
||||
auto_remove=1
|
||||
; Manifest
|
||||
domain="domain.tld" (DOMAIN)
|
||||
path="/path" (PATH)
|
||||
|
|
|
@ -27,11 +27,11 @@
|
|||
|
||||
/* URL of installation, with traling slash (eg. »https://exmaple.com/jirafeau/«)
|
||||
*/
|
||||
$cfg['web_root'] = 'https://' . 'YNH_DOMAIN' . 'YNH_WWW_PATH' . '/';
|
||||
$cfg['web_root'] = 'https://' . '__YNH_DOMAIN__' . '__YNH_WWW_PATH__' . '/';
|
||||
|
||||
/* Path to data directory, with trailing slash (eg. »/var/www/data/var_314159265358979323846264«
|
||||
*/
|
||||
$cfg['var_root'] = 'YNH_VAR_ROOT' . '/';
|
||||
$cfg['var_root'] = '__YNH_VAR_ROOT__' . '/';
|
||||
|
||||
/* Language - choice between 'auto' or any language located in the /lib/locales/ folder.
|
||||
* The mode »auto« will cause the script to detect the user's browser information
|
||||
|
@ -74,7 +74,7 @@ $cfg['link_name_length'] = 8;
|
|||
* $cfg['upload_password'] = array('psw1'); // One password
|
||||
* $cfg['upload_password'] = array('psw1', 'psw2'); // Two passwords
|
||||
*/
|
||||
$cfg['upload_password'] = array(YNH_UPLOAD_PASSWORD);
|
||||
$cfg['upload_password'] = array(__YNH_UPLOAD_PASSWORD__);
|
||||
|
||||
/* List of IP allowed to upload a file.
|
||||
* If the list is empty, then there is no upload restriction based on IP.
|
||||
|
@ -96,7 +96,7 @@ $cfg['admin_password'] = '';
|
|||
* that the provided user is logged in.
|
||||
* If »admin_password« parameter is set, then the »admin_password« is ignored.
|
||||
*/
|
||||
$cfg['admin_http_auth_user'] = 'YNH_ADMIN_USER';
|
||||
$cfg['admin_http_auth_user'] = '__YNH_ADMIN_USER__';
|
||||
|
||||
/* Allow user to select different options for file expiration time.
|
||||
* Possible values in array:
|
||||
|
|
|
@ -1,12 +1,18 @@
|
|||
#sub_path_only rewrite ^__PATH__$ __PATH__/ permanent;
|
||||
location __PATH__/ {
|
||||
|
||||
# Path to source
|
||||
alias __FINALPATH__/ ;
|
||||
|
||||
# Force usage of https
|
||||
if ($scheme = http) {
|
||||
rewrite ^ https://$server_name$request_uri? permanent;
|
||||
}
|
||||
|
||||
client_max_body_size 10G;
|
||||
client_body_timeout 30m;
|
||||
proxy_read_timeout 30m;
|
||||
|
||||
index index.php;
|
||||
try_files $uri $uri/ index.php;
|
||||
|
||||
|
@ -21,9 +27,11 @@ location __PATH__/ {
|
|||
fastcgi_read_timeout 30m;
|
||||
fastcgi_send_timeout 30m;
|
||||
}
|
||||
|
||||
location ~ ^__PATH__/lib/.*\.php {
|
||||
deny all;
|
||||
}
|
||||
|
||||
location ~ [^/]\.php(/|$) {
|
||||
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
|
||||
fastcgi_pass unix:/var/run/php5-fpm-__NAME__.sock;
|
||||
|
|
|
@ -9,8 +9,8 @@
|
|||
"en": "Upload a file in a simple way and give a unique link to it",
|
||||
"fr": "Hébergez simplement un fichier et partagez-le avec un lien unique"
|
||||
},
|
||||
"url": "https://gitlab.com/mojo42/Jirafeau",
|
||||
"version": "3.4.1~ynh2",
|
||||
"url": "https://gitlab.com/mojo42/Jirafeau",
|
||||
"license": "AGPL-3.0-only",
|
||||
"maintainer": {
|
||||
"name": "julien",
|
||||
|
|
|
@ -1,16 +1 @@
|
|||
#!/bin/bash
|
||||
|
||||
#=================================================
|
||||
# EXPERIMENTAL HELPERS
|
||||
#=================================================
|
||||
|
||||
# Delete a file checksum from the app settings
|
||||
#
|
||||
# $app should be defined when calling this helper
|
||||
#
|
||||
# usage: ynh_remove_file_checksum file
|
||||
# | arg: file - The file for which the checksum will be deleted
|
||||
ynh_delete_file_checksum () {
|
||||
local checksum_setting_name=checksum_${1//[\/ ]/_} # Replace all '/' and ' ' by '_'
|
||||
ynh_app_setting_delete $app $checksum_setting_name
|
||||
}
|
||||
|
|
|
@ -4,12 +4,7 @@
|
|||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
if [ ! -e _common.sh ]; then
|
||||
# Rapatrie le fichier de fonctions si il n'est pas dans le dossier courant
|
||||
sudo cp ../settings/scripts/_common.sh ./_common.sh
|
||||
sudo chmod a+rx _common.sh
|
||||
fi
|
||||
source _common.sh
|
||||
source ../settings/scripts/_common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
|
@ -42,7 +37,8 @@ ynh_backup "$final_path"
|
|||
|
||||
# The 1 parameter indicates the directory is "big",
|
||||
# so that it won't be backed up before upgrade
|
||||
ynh_backup "/home/yunohost.app/$app" 1
|
||||
# This argument has to be the third one.
|
||||
ynh_backup "/home/yunohost.app/$app" "/home/yunohost.app/$app" 1
|
||||
|
||||
#=================================================
|
||||
# BACKUP OF THE NGINX CONFIGURATION
|
||||
|
|
|
@ -25,7 +25,7 @@ app=$YNH_APP_INSTANCE_NAME
|
|||
# LOAD SETTINGS
|
||||
#=================================================
|
||||
|
||||
final_path=$(ynh_app_setting_get "$app" final_path)
|
||||
final_path=$(ynh_app_setting_get $app final_path)
|
||||
|
||||
#=================================================
|
||||
# CHECK PATHS SYNTAX
|
||||
|
@ -63,30 +63,23 @@ nginx_conf_path=/etc/nginx/conf.d/$old_domain.d/$app.conf
|
|||
# Change the path in the nginx config file
|
||||
if [ $change_path -eq 1 ]
|
||||
then
|
||||
# Make a backup of the original nginx config file if modified
|
||||
ynh_backup_if_checksum_is_different "$nginx_conf_path"
|
||||
# Make a backup of the original nginx config file if modified
|
||||
ynh_backup_if_checksum_is_different "$nginx_conf_path"
|
||||
# Set global variables for nginx helper
|
||||
domain="$old_domain"
|
||||
path_url="$new_path"
|
||||
# Store path_url setting
|
||||
ynh_app_setting_set $app path_url "$path_url"
|
||||
# Create a dedicated nginx config
|
||||
ynh_add_nginx_config
|
||||
if [ "$path_url" != "/" ]
|
||||
then
|
||||
ynh_replace_string "^#sub_path_only" "" "$nginx_conf_path"
|
||||
fi
|
||||
ynh_store_file_checksum "$nginx_conf_path"
|
||||
fi
|
||||
|
||||
# Change the domain for nginx
|
||||
if [ $change_domain -eq 1 ]
|
||||
then
|
||||
# Delete file checksum for the old conf file location
|
||||
ynh_delete_file_checksum "$nginx_conf_path"
|
||||
# Delete file checksum for the old conf file location
|
||||
ynh_delete_file_checksum "$nginx_conf_path"
|
||||
mv $nginx_conf_path /etc/nginx/conf.d/$new_domain.d/$app.conf
|
||||
# Store file checksum for the new config file location
|
||||
ynh_store_file_checksum "/etc/nginx/conf.d/$new_domain.d/$app.conf"
|
||||
# Store file checksum for the new config file location
|
||||
ynh_store_file_checksum "/etc/nginx/conf.d/$new_domain.d/$app.conf"
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
|
|
|
@ -6,14 +6,15 @@
|
|||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
# source _common.sh
|
||||
source _common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# MANAGE FAILURE OF THE SCRIPT
|
||||
# MANAGE SCRIPT FAILURE
|
||||
#=================================================
|
||||
|
||||
ynh_abort_if_errors # Active trap pour arrêter le script si une erreur est détectée.
|
||||
# Exit if an error occurs during the execution of the script
|
||||
ynh_abort_if_errors
|
||||
|
||||
#=================================================
|
||||
# RETRIEVE ARGUMENTS FROM THE MANIFEST
|
||||
|
@ -28,7 +29,7 @@ is_public=$YNH_APP_ARG_IS_PUBLIC
|
|||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
#=================================================
|
||||
# CHECK IF THE APP CAN BE INSTALLED WITH THIS ARGS
|
||||
# CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS
|
||||
#=================================================
|
||||
|
||||
final_path=/var/www/$app
|
||||
|
@ -37,8 +38,6 @@ test ! -e "$final_path" || ynh_die "This path already contains a folder"
|
|||
# Normalize the url path syntax
|
||||
path_url=$(ynh_normalize_url_path $path_url)
|
||||
|
||||
# Check web path availability
|
||||
ynh_webpath_available $domain $path_url
|
||||
# Register (book) web path
|
||||
ynh_webpath_register $app $domain $path_url
|
||||
|
||||
|
@ -66,11 +65,6 @@ ynh_setup_source "$final_path" # Télécharge la source, décompresse et copie d
|
|||
|
||||
# Create a dedicated nginx config
|
||||
ynh_add_nginx_config
|
||||
if [ "$path_url" != "/" ]
|
||||
then
|
||||
ynh_replace_string "^#sub_path_only" "" "/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||
fi
|
||||
ynh_store_file_checksum "/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||
|
||||
#=================================================
|
||||
# CREATE DEDICATED USER
|
||||
|
@ -98,10 +92,10 @@ cp "../conf/config.local.php" "$jirafeauconfigfile"
|
|||
# Set and save upload password, allowing an empty one
|
||||
if [ -z "$upload_password" ]
|
||||
then
|
||||
ynh_replace_string "YNH_UPLOAD_PASSWORD" "" "$jirafeauconfigfile"
|
||||
ynh_replace_string "__YNH_UPLOAD_PASSWORD__" "" "$jirafeauconfigfile"
|
||||
ynh_app_setting_set $app upload_password ""
|
||||
else
|
||||
ynh_replace_string "YNH_UPLOAD_PASSWORD" "'$upload_password'" "$jirafeauconfigfile"
|
||||
ynh_replace_string "__YNH_UPLOAD_PASSWORD__" "'$upload_password'" "$jirafeauconfigfile"
|
||||
ynh_app_setting_set $app upload_password "$upload_password"
|
||||
fi
|
||||
|
||||
|
@ -110,15 +104,16 @@ fi
|
|||
#=================================================
|
||||
|
||||
var_root=/home/yunohost.app/$app
|
||||
ynh_replace_string "YNH_DOMAIN" "$domain" "$jirafeauconfigfile"
|
||||
|
||||
ynh_replace_string "__YNH_DOMAIN__" "$domain" "$jirafeauconfigfile"
|
||||
if [ "$path_url" = "/" ]
|
||||
then
|
||||
ynh_replace_string "YNH_WWW_PATH" "" "$jirafeauconfigfile"
|
||||
ynh_replace_string "__YNH_WWW_PATH__" "" "$jirafeauconfigfile"
|
||||
else
|
||||
ynh_replace_string "YNH_WWW_PATH" "$path_url" "$jirafeauconfigfile"
|
||||
ynh_replace_string "__YNH_WWW_PATH__" "$path_url" "$jirafeauconfigfile"
|
||||
fi
|
||||
ynh_replace_string "YNH_VAR_ROOT" "$var_root" "$jirafeauconfigfile"
|
||||
ynh_replace_string "YNH_ADMIN_USER" "$admin_user" "$jirafeauconfigfile"
|
||||
ynh_replace_string "__YNH_VAR_ROOT__" "$var_root" "$jirafeauconfigfile"
|
||||
ynh_replace_string "__YNH_ADMIN_USER__" "$admin_user" "$jirafeauconfigfile"
|
||||
|
||||
# Calculate and store the config file checksum into the app settings
|
||||
ynh_store_file_checksum "$jirafeauconfigfile"
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
# source _common.sh
|
||||
source _common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
|
|
|
@ -4,12 +4,7 @@
|
|||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
# if [ ! -e _common.sh ]; then
|
||||
# # Rapatrie le fichier de fonctions si il n'est pas dans le dossier courant
|
||||
# sudo cp ../settings/scripts/_common.sh ./_common.sh
|
||||
# sudo chmod a+rx _common.sh
|
||||
# fi
|
||||
# source _common.sh
|
||||
source ../settings/scripts/_common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
|
@ -42,26 +37,26 @@ test ! -d $final_path \
|
|||
#=================================================
|
||||
# STANDARD RESTORE STEPS
|
||||
#=================================================
|
||||
# RESTORE OF THE NGINX CONFIGURATION
|
||||
# RESTORE THE NGINX CONFIGURATION
|
||||
#=================================================
|
||||
|
||||
ynh_restore_file "/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||
|
||||
#=================================================
|
||||
# RESTORE OF THE MAIN DIR OF THE APP
|
||||
# RESTORE THE APP MAIN DIR
|
||||
#=================================================
|
||||
|
||||
ynh_restore_file "$final_path"
|
||||
|
||||
#=================================================
|
||||
# RECREATE OF THE DEDICATED USER
|
||||
# RECREATE THE DEDICATED USER
|
||||
#=================================================
|
||||
|
||||
# Create the dedicated user (if not existing)
|
||||
ynh_system_user_create $app
|
||||
|
||||
#=================================================
|
||||
# RESTORE OF THE PHP-FPM CONFIGURATION
|
||||
# RESTORE THE PHP-FPM CONFIGURATION
|
||||
#=================================================
|
||||
|
||||
ynh_restore_file "/etc/php5/fpm/pool.d/$app.conf"
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
# source _common.sh
|
||||
source _common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
|
@ -45,11 +45,14 @@ fi
|
|||
# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
|
||||
#=================================================
|
||||
|
||||
ynh_backup_before_upgrade # Backup the current version of the app
|
||||
# Backup the current version of the app
|
||||
ynh_backup_before_upgrade
|
||||
ynh_clean_setup () {
|
||||
ynh_restore_upgradebackup # restore it if the upgrade fails
|
||||
# restore it if the upgrade fails
|
||||
ynh_restore_upgradebackup
|
||||
}
|
||||
ynh_abort_if_errors # Exit if an error occurs during the execution of the script
|
||||
# Exit if an error occurs during the execution of the script
|
||||
ynh_abort_if_errors
|
||||
|
||||
#=================================================
|
||||
# CHECK THE PATH
|
||||
|
@ -73,17 +76,12 @@ ynh_setup_source "$final_path"
|
|||
|
||||
# Create a dedicated nginx config
|
||||
ynh_add_nginx_config
|
||||
if [ "$path_url" != "/" ]
|
||||
then
|
||||
ynh_replace_string "^#sub_path_only" "" "/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||
fi
|
||||
ynh_store_file_checksum "/etc/nginx/conf.d/$domain.d/$app.conf"
|
||||
|
||||
#=================================================
|
||||
# CREATE DEDICATED USER
|
||||
#=================================================
|
||||
|
||||
# Create a system user
|
||||
# Create a dedicated user (if not existing)
|
||||
ynh_system_user_create $app
|
||||
|
||||
#=================================================
|
||||
|
@ -101,17 +99,17 @@ ynh_add_fpm_config
|
|||
|
||||
jirafeauconfigfile="$final_path/lib/config.local.php"
|
||||
|
||||
ynh_backup_if_checksum_is_different "$final_path/lib/config.local.php" # Créé un backup du fichier de config si il a été modifié.
|
||||
ynh_backup_if_checksum_is_different "$final_path/lib/config.local.php"
|
||||
|
||||
sudo cp "../conf/config.local.php" "$final_path/lib/config.local.php"
|
||||
cp "../conf/config.local.php" "$final_path/lib/config.local.php"
|
||||
|
||||
# Set and save upload password, allowing an empty one
|
||||
if [ -z "$upload_password" ]
|
||||
then
|
||||
ynh_replace_string "YNH_UPLOAD_PASSWORD" "" "$jirafeauconfigfile"
|
||||
ynh_replace_string "__YNH_UPLOAD_PASSWORD__" "" "$jirafeauconfigfile"
|
||||
ynh_app_setting_set $app upload_password ""
|
||||
else
|
||||
ynh_replace_string "YNH_UPLOAD_PASSWORD" "'$upload_password'" "$jirafeauconfigfile"
|
||||
ynh_replace_string "__YNH_UPLOAD_PASSWORD__" "'$upload_password'" "$jirafeauconfigfile"
|
||||
ynh_app_setting_set $app upload_password "$upload_password"
|
||||
fi
|
||||
|
||||
|
@ -120,17 +118,19 @@ fi
|
|||
#=================================================
|
||||
|
||||
var_root=/home/yunohost.app/$app
|
||||
ynh_replace_string "YNH_DOMAIN" "$domain" "$jirafeauconfigfile"
|
||||
|
||||
ynh_replace_string "__YNH_DOMAIN__" "$domain" "$jirafeauconfigfile"
|
||||
if [ "$path_url" = "/" ]
|
||||
then
|
||||
ynh_replace_string "YNH_WWW_PATH" "" "$jirafeauconfigfile"
|
||||
ynh_replace_string "__YNH_WWW_PATH__" "" "$jirafeauconfigfile"
|
||||
else
|
||||
ynh_replace_string "YNH_WWW_PATH" "$path_url" "$jirafeauconfigfile"
|
||||
ynh_replace_string "__YNH_WWW_PATH__" "$path_url" "$jirafeauconfigfile"
|
||||
fi
|
||||
ynh_replace_string "YNH_VAR_ROOT" "$var_root" "$jirafeauconfigfile"
|
||||
ynh_replace_string "YNH_ADMIN_USER" "$admin_user" "$jirafeauconfigfile"
|
||||
ynh_replace_string "__YNH_VAR_ROOT__" "$var_root" "$jirafeauconfigfile"
|
||||
ynh_replace_string "__YNH_ADMIN_USER__" "$admin_user" "$jirafeauconfigfile"
|
||||
|
||||
ynh_store_file_checksum "$jirafeauconfigfile" # Enregistre la somme de contrôle du fichier de config
|
||||
# Recalculate and store the checksum of the file for the next upgrade.
|
||||
ynh_store_file_checksum "$jirafeauconfigfile"
|
||||
|
||||
# Remove the install.php
|
||||
rm $final_path/install.php
|
||||
|
@ -141,11 +141,11 @@ rm $final_path/install.php
|
|||
# SECURING FILES AND DIRECTORIES
|
||||
#=================================================
|
||||
|
||||
sudo chown -R root: $final_path
|
||||
chown -R root: $final_path
|
||||
|
||||
sudo mkdir -p $var_root/{files,links,async,block}
|
||||
sudo chown -R $app:root $var_root
|
||||
sudo chmod -R 700 $var_root
|
||||
mkdir -p $var_root/{files,links,async,block}
|
||||
chown -R $app:root $var_root
|
||||
chmod -R 700 $var_root
|
||||
|
||||
#=================================================
|
||||
# SETUP SSOWAT
|
||||
|
@ -163,4 +163,4 @@ fi
|
|||
# RELOAD NGINX
|
||||
#=================================================
|
||||
|
||||
sudo systemctl reload nginx
|
||||
systemctl reload nginx
|
||||
|
|
Loading…
Reference in a new issue