Eu precisava fazer a mesma coisa.
Veja como inicializar o subsistema Ubuntu Linux com todos os serviços do cron na inicialização do Windows e fornecer um meio de 'reinicializar' o subsistema Linux.
Estou hospedando com sucesso o banco de dados openssh-server, nginx & mariadb em nosso servidor.
Instalar subsistema Linux
Remover prompt de senha sudo (obrigatório)
Ativar login com senha SSH (opcional)
Registro automático do Windows na inicialização (necessário se você tiver uma senha ou RDP)
Execute o loop bash / cron no início
Adicionar aplicativos / serviços à inicialização no cron
- Open bash
sudo crontab -e
- Selecione nano (ou qualquer editor que você saiba como salvar)
Anexe aplicativos de inicialização como openssh-server, nginx, mysql, php:
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
@reboot . $HOME/.profile; /usr/sbin/sshd -D
#@reboot . $HOME/.profile; service php7.1-fpm start # Uncomment for php7.1 fpm
#@reboot . $HOME/.profile; service mysql start # Uncomment for mysql/mariadb
#@reboot . $HOME/.profile; service nginx start # Uncomment for nginx
Salvar e sair:, ctrlxdepois pressione ye enter.
Reinicialize o subsistema Linux sem reiniciar o Windows
Extra - Instale o PHP 7.1 (não tão direto)
Execute os comandos abaixo para obter uma configuração bastante padrão:
mkdir /run/php && chmod -R 777 /run/php
sudo add-apt-repository ppa:ondrej/php && sudo apt update
PHPV=7.1 && sudo apt install --allow-unauthenticated -y php${PHPV}-fpm php${PHPV}-gd php${PHPV}-json php${PHPV}-mysqlnd php${PHPV}-curl php${PHPV}-intl php${PHPV}-mcrypt php${PHPV}-imagick php${PHPV}-zip php${PHPV}-xml php${PHPV}-mbstring
Execute o comando abaixo para uma configuração 'OwnCloud':
PHPV=7.1 && apt install --allow-unauthenticated -y php${PHPV}-redis redis-server php${PHPV}-ldap php${PHPV}-smbclient
Extra - Instale o servidor da web nginx
Execute os comandos abaixo para uma configuração básica com o PHP7.1:
sudo add-apt-repository ppa:nginx/stable
sudo apt update && sudo apt -y install nginx
sudo sed -i 's:access_log /var/log/nginx/access.log;:access_log off;:g' /etc/nginx/nginx.conf
sudo sed -i '/index index.html/c\\tindex index.html index.php index.htm index.nginx-debian.html;' /etc/nginx/sites-available/default
STR='}\n\n\tlocation ~ \.php$ {\n\t\tinclude snippets\/fastcgi-php.conf;\n\t\tfastcgi_pass unix:\/var\/run\/php\/php7.1-fpm.sock;\n\t}'
sudo sed -i "0,/}/s//$STR\n/" /etc/nginx/sites-available/default
sudo service nginx restart
Extra - Instale o banco de dados mysql do mariadb
Execute os comandos abaixo para um servidor de banco de dados mysql:
RELEASE=`lsb_release -a | tail -1 | cut -f2`
sudo apt install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository "deb [arch=i386,amd64,ppc64el] https://mirrors.evowise.com/mariadb/repo/10.3/ubuntu $RELEASE main"
sudo apt update && sudo apt --allow-unauthenticated -y install mariadb-server
Quando solicitado, defina uma senha de usuário do banco de dados raiz.