简体   繁体   English

在Ubuntu上使用virtualbox在vagrant上设置nginx置备时出错

[英]error setting up nginx provisioning on vagrant with virtualbox on Ubuntu

I have installed Vagrant and Virtualbox on Ubuntu 16.04 LTS, with apt-get repositories fully updated. 我已经在Ubuntu 16.04 LTS上安装了Vagrant和Virtualbox,并且apt-get存储库已完全更新。 I have port forwarding set up for 'guest:80 host:8080', and a bootstrap.sh file requiring Vagrant to install nginx, start the service and create a symlink to /var/www. 我为“ guest:80 host:8080”设置了端口转发,并需要一个bootstrap.sh文件,该文件要求Vagrant安装nginx,启动服务并创建到/ var / www的符号链接。

Despite having verified that nginx can be installed through the apt-get command, and the all the files exist, I continue to receive, 404 errors relating to the files to be downloaded, file not found errors, and an error claiming that the service nginx does not exist. 尽管已验证可以通过apt-get命令安装nginx,并且所有文件都存在,但我仍然收到与要下载的文件有关的404错误,找不到文件错误以及声称服务nginx的错误不存在。 I have included all relevant outputs and code below. 我在下面包括了所有相关的输出和代码。

The output from vagrant for the command, 来自vagrant的命令输出,

vagrant up --provision

is as follows: 如下:

    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

the code for bootstrap.sh: 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

Any assistance you could provide here would be greatly appreciated. 您在这里可以提供的任何帮助将不胜感激。 Thank you. 谢谢。

you should update the repo before running the install with apt-get update 您应该在使用apt-get update运行安装之前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

note you did not specify how you're running the provisioning from Vagrantfile but if you have something as 请注意,您没有指定如何从Vagrantfile运行配置,但是如果您有

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

then the script runs as root and you dont need the sudo part in your script 然后脚本以root身份运行,您不需要脚本中的sudo部分

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM