default-site improved

Prevent errors when the main site is default.
This commit is contained in:
Cristhian Martínez Ochoa 2020-02-16 10:25:17 -07:00
parent f2fd5c2871
commit 5b8c0d5597
4 changed files with 18 additions and 12 deletions

View file

@ -268,6 +268,17 @@ api-events_update() {
}
remove_nginx_default_server() {
if [[ -n $1 && -f /etc/nginx/sites-available/$1 ]]; then
sudo sed -i "s/listen 80 default_server;/listen 80;/" /etc/nginx/sites-available/$1
sudo sed -i "s/listen \[::\]:80 default_server;/listen [::]:80;/" /etc/nginx/sites-available/$1
sudo sed -i "s/listen 443 ssl http2 default_server;/listen 443 ssl http2;/" /etc/nginx/sites-available/$1
sudo sed -i "s/listen \[::\]:443 ssl http2 default_server;/listen [::]:443 ssl http2;/" /etc/nginx/sites-available/$1
sudo sed -i '/WebinolyStartBlackhole/,/WebinolyEndBlackhole/{/.*/d}' /etc/nginx/sites-available/$1
fi
}
check_for_parameters() {
# Check for domain parameter if is first parameter and have no hyphen at the begining.
if [[ -n $1 && $(echo $1 | cut -c-1) != "-" ]]; then

View file

@ -983,6 +983,9 @@ parked_domain() {
# Prevent if SSL is enabled in main site and ssl data is copied to parked site causing an error.
sudo site $domain -ssl=off -revoke=off > /dev/null 2>&1
# Prevent if main site is default.
[[ $(conf_read default-site) == $mapto ]] && remove_nginx_default_server $domain
sudo sed -i "/server_name/c \ $sername" /etc/nginx/sites-available/$domain
sudo sed -i "s/$mapto/$domain/g" /etc/nginx/sites-available/$domain
sudo sed -i "/root/c \ root /var/www/$mapto/htdocs;" /etc/nginx/sites-available/$domain
@ -1191,6 +1194,9 @@ clone_wp_site() {
sudo cp /etc/nginx/sites-available/$clone_from /etc/nginx/sites-available/$domain
sudo ln -s /etc/nginx/sites-available/$domain /etc/nginx/sites-enabled/$domain
sudo sed -i "s/$clone_from/$domain/g" /etc/nginx/sites-available/$domain
# Prevent if main site is default.
[[ $(conf_read default-site) == $clone_from ]] && remove_nginx_default_server $domain
fi
[[ $(is_ssl $clone_from) == "true" ]] && site $domain -ssl=off -revoke=off > /dev/null 2>&1

View file

@ -673,14 +673,7 @@ remove_domain_default_site() {
# In case we have a domain as default before.
if ! [[ $(conf_read default-site) =~ ^(default|blackhole)$ || -z $(conf_read default-site) ]]; then
[[ ! -L /etc/nginx/sites-enabled/default && -f /etc/nginx/sites-available/default ]] && sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
# Check in case site was deleted!
if [[ -f /etc/nginx/sites-available/$(conf_read default-site) ]]; then
sudo sed -i "s/listen 80 default_server;/listen 80;/" /etc/nginx/sites-available/$(conf_read default-site)
sudo sed -i "s/listen \[::\]:80 default_server;/listen [::]:80;/" /etc/nginx/sites-available/$(conf_read default-site)
sudo sed -i "s/listen 443 ssl http2 default_server;/listen 443 ssl http2;/" /etc/nginx/sites-available/$(conf_read default-site)
sudo sed -i "s/listen \[::\]:443 ssl http2 default_server;/listen [::]:443 ssl http2;/" /etc/nginx/sites-available/$(conf_read default-site)
sudo sed -i '/WebinolyStartBlackhole/,/WebinolyEndBlackhole/{/.*/d}' /etc/nginx/sites-available/$(conf_read default-site)
fi
remove_nginx_default_server $(conf_read default-site)
fi
}

View file

@ -335,10 +335,6 @@ elif [[ -n $clone_from ]]; then
elif [[ $(is_wp $clone_from $subfolder) != "true" ]]; then
echo "${red}[ERROR] Site${blu} '$clone_from' ${red}is not a WordPress site!${end}"
exit 1
elif [[ $(conf_read default-site) == $clone_from ]]; then
# Nginx fails due to duplicate default-server directives
echo "${red}[ERROR] Cloning a site that is set as default-site is not allowed!${end}"
exit 1
else
clone_wp_site
fi