Aşağıdaki script Ubuntu 18.04 sürümlerinde çalıştırıldığında otomatik olarak ayarlar yapılacaktır.
#!/bin/bash
echo
echo "AktifPOS e-Ticaret Linux kurulumuna hoş geldiniz!"
echo "MsSQL sunucu kurulumuna başlanıyor"
yes | sudo ufw allow 443/tcp
Args=("$@")
ArgLength=${#Args[@]}
for (( i=0; i<${ArgLength}; i+=2 ));
do
if [ "${Args[$i]}" = "--hostname" ]; then
HostName="${Args[$i+1]}"
elif [ "${Args[$i]}" = "--approot" ]; then
AppRoot="${Args[$i+1]}"
fi
done
if [ -z "$HostName" ]; then
read -p "Domain adresinizi yazın: (örneğin aktifbarkod.com başında www olmadan yazınız!): " HostName
fi
if [ -z "$AppRoot" ]; then
read -p "E-ticaret sisteminin nereye kurulacağını yazın (boş bırakmanız tavsite edilir /var/www/[domain] adresize kurulum yapılır): " AppRoot
if [ -z "$AppRoot" ]; then
AppRoot="/var/www/$HostName"
fi
fi
echo $AppRoot
echo $HostName
yes | wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
yes | sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/18.04/mssql-server-2019.list)"
yes | sudo apt-get update
yes | sudo apt-get install -y mssql-server
#mssql kurulumunu başlat
sudo /opt/mssql/bin/mssql-conf setup
#mssql collation turkce ayari
sudo systemctl stop mssql-server
yes "Turkish_CI_AI" | sudo /opt/mssql/bin/mssql-conf set-collation
sudo systemctl start mssql-server
sudo apt-get update
sudo apt-get install -y mssql-server-fts
#log sayısını sınırlı tut
sudo /opt/mssql/bin/mssql-conf set errorlog.numerrorlogs 6
sudo systemctl start mssql-server
wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
yes | sudo apt-get update
yes | sudo apt-get install apt-transport-https aspnetcore-runtime-3.1
yes | sudo apt-get -y install nginx
sudo systemctl start nginx
mkdir -p $AppRoot
cd /var/www/
yes | sudo apt install python-pip
yes | sudo pip install gdown
sudo gdown 1TD8FNa71nX9Z0Z5OrMViL_Jq_EgpBNwZ -O Nop.zip
unzip -o Nop.zip -d $AppRoot
cd $AppRoot
mkdir bin
mkdir logs
cd ..
sudo chgrp -R www-data $AppRoot
sudo chown -R www-data $AppRoot
rm Nop.zip
# Nginx ayarları
nginxConfig="
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name $HostName www.$HostName;
location / {
proxy_pass http://localhost:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade \$http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host '$HostName';
proxy_cache_bypass \$http_upgrade;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto \$scheme;
}
}
"
systemctl stop nginx
rm -f /etc/nginx/sites-available/$HostName
rm -f /etc/nginx/sites-enabled/$HostName
rm -f /etc/nginx/sites-available/default
rm -f /etc/nginx/sites-enabled/default
echo "$nginxConfig" > /etc/nginx/sites-available/$HostName
ln -s /etc/nginx/sites-available/$HostName /etc/nginx/sites-enabled/$HostName
# nginx test et
nginx -t
# sorun yoksa yeniden başlat
nginx -s reload
serviceConfig="
[Unit]
Description=AktifPOS e-Ticaret
[Service]
WorkingDirectory=$AppRoot
ExecStart=/usr/bin/dotnet $AppRoot/Nop.Web.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=aktifpos-eticaret
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
"
rm -f /etc/systemd/system/$HostName.service
echo "$serviceConfig" > /etc/systemd/system/$HostName.service
# servisi kapat aç
systemctl enable $HostName.service
systemctl restart $HostName.service
# certbotu kur
yes | apt-get -y install certbot python3-certbot-nginx
certbot --nginx
systemctl restart nginx.service