2016-12-13 5 views
0

Я установил Vagrant и Virtualbox на Ubuntu 16.04 LTS, с полностью обновленными хранилищами apt-get. У меня есть функция переадресации портов для «guest: 80 host: 8080» и файл bootstrap.sh, требующий, чтобы Vagrant установил nginx, запустил службу и создал символическую ссылку на/var/www.Ошибка настройки nginx для брандмауэра с виртуальным ботом на Ubuntu

Несмотря на то, что nginx можно установить с помощью команды apt-get, и все файлы существуют, я продолжаю получать 404 ошибки, связанные с загружаемыми файлами, ошибки, не найденные в файлах, и запрос об ошибке что службы nginx не существует. Я включил все соответствующие выходы и код ниже.

Выход из бродяг для команды,

vagrant up --provision 

выглядит следующим образом:

Bringing machine 'default' up with 'virtualbox' provider... 
==> default: Checking if box 'hashicorp/precise64' is up to date... 
==> default: Clearing any previously set forwarded ports... 
==> default: Clearing any previously set network interfaces... 
==> default: Preparing network interfaces based on configuration... 
    default: Adapter 1: nat 
    default: Adapter 2: hostonly 
==> default: Forwarding ports... 
    default: 80 (guest) => 8080 (host) (adapter 1) 
    default: 22 (guest) => 2222 (host) (adapter 1) 
==> default: Booting VM... 
==> default: Waiting for machine to boot. This may take a few minutes... 
    default: SSH address: 127.0.0.1:2222 
    default: SSH username: vagrant 
    default: SSH auth method: private key 
==> default: Machine booted and ready! 
==> default: Checking for guest additions in VM... 
    default: The guest additions on this VM do not match the installed version of 
    default: VirtualBox! In most cases this is fine, but in rare cases it can 
    default: prevent things such as shared folders from working properly. If you see 
    default: shared folder errors, please make sure the guest additions within the 
    default: virtual machine match the version of VirtualBox you have installed on 
    default: your host and reload your VM. 
    default: 
    default: Guest Additions Version: 4.2.0 
    default: VirtualBox Version: 5.1 
==> default: Configuring and enabling network interfaces... 
==> default: Mounting shared folders... 
    default: /vagrant => /home/thucydides/website-files 
==> default: Running provisioner: shell... 
    default: Running: /tmp/vagrant-shell20161213-8723-c2l7wt.sh 
==> default: stdin: is not a tty 
==> default: Reading package lists... 
==> default: Building dependency tree... 
==> default: Reading state information... 
==> default: The following extra packages will be installed: 
==> default: libgd2-noxpm libjpeg-turbo8 libjpeg8 libxslt1.1 nginx-common nginx-full 
==> default: Suggested packages: 
==> default: libgd-tools 
==> default: The following NEW packages will be installed: 
==> default: libgd2-noxpm libjpeg-turbo8 libjpeg8 libxslt1.1 nginx nginx-common 
==> default: nginx-full 
==> default: 0 upgraded, 7 newly installed, 0 to remove and 66 not upgraded. 
==> default: Need to get 276 kB/882 kB of archives. 
==> default: After this operation, 2,686 kB of additional disk space will be used. 
==> default: Err http://us.archive.ubuntu.com/ubuntu/ precise-updates/main libjpeg-turbo8 amd64 1.1.90+svn733-0ubuntu4.1 
==> default: 404 Not Found [IP: 91.189.91.23 80] 
==> default: Err http://us.archive.ubuntu.com/ubuntu/ precise-updates/main libxslt1.1 amd64 1.1.26-8ubuntu1.1 
==> default: 404 Not Found [IP: 91.189.91.23 80] 
==> default: Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/libj/libjpeg-turbo/libjpeg-turbo8_1.1.90+svn733-0ubuntu4.1_amd64.deb 404 Not Found [IP: 91.189.91.23 80] 
==> default: Failed to fetch http://us.archive.ubuntu.com/ubuntu/pool/main/libx/libxslt/libxslt1.1_1.1.26-8ubuntu1.1_amd64.deb 404 Not Found [IP: 91.189.91.23 80] 
==> default: E 
==> default: : 
==> default: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing? 
==> default: nginx: unrecognized service 
==> default: cp: 
==> default: cannot create regular file `/etc/nginx/sites-available/default' 
==> default: : No such file or directory 
==> default: chmod: 
==> default: cannot access `/etc/nginx/sites-available/default' 
==> default: : No such file or directory 
==> default: ln: 
==> default: failed to create symbolic link `/etc/nginx/sites-enabled/default' 
==> default: : No such file or directory 
==> default: nginx: unrecognized service 

код для bootstrap.sh:

#!/usr/bin/env bash 

#nginx 
sudo apt-get -y install nginx 
sudo service nginx start 

#set up nginx server 
sudo cp /vagrant/.provision/nginx/nginx.conf /etc/nginx/sites-available/default 
sudo chmod 644 /etc/nginx/sites-available/default 
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default 
sudo service nginx restart 

#clean /var/www 
sudo rm -Rf /var/www 

#symlink /var/www => /vagrant 
ln -s /vagrant /var/www 

Любая помощь вы можете предоставить здесь был бы весьма признателен. Спасибо.

ответ

0

вы должны обновить репозиторий перед запуском установки с apt-get update

#!/usr/bin/env bash 

#nginx 
sudo apt-get update 
sudo apt-get -y install nginx 
sudo service nginx start 

#set up nginx server 
sudo cp /vagrant/.provision/nginx/nginx.conf /etc/nginx/sites-available/default 
sudo chmod 644 /etc/nginx/sites-available/default 
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default 
sudo service nginx restart 

#clean /var/www 
sudo rm -Rf /var/www 

#symlink /var/www => /vagrant 
ln -s /vagrant /var/www 

примечание вы не указали, как вы работаете на инициализацию от Vagrantfile, но если у вас есть что-то, как

config.vm.provision "shell", path: "bootstrap.sh" 

затем скрипт работает как root, и вам не нужна часть sudo в вашем скрипте

+0

спасибо, что решила проблему отлично. – Demeter