PHP 5.4和NodeJS 5.x的Vagrant Shell配置不安装请求的版本

时间:2015-12-31 20:10:46

标签: shell ubuntu vagrant ubuntu-14.04 provisioning

我在Ubuntu 14.04上试图在Vagrant中构建一个LAMP堆栈的速度正在减慢,它将拥有Apache 2.4,MySQL 5.5.46,PHP 5.4,以及一些额外的功能,如phpMyAdmin,最新的NodeJS和Composer来模仿我们的生产环境。

设置Vagrant本身似乎很容易引用文档,但我从来没有设置Apache,MySQL等;所以配置和设置服务器都是全新的。通常我只是将Xampp用于我们的遗留项目,并使用Laravel为Homestead with Forge中已经配置的VM用于我们的新项目,但遗留项目现在需要一个VM来减少开发人员环境之间的维护问题。我已经尝试过学习Puppet,但是现在我只使用shell配置程序是最舒服的,以防有人想知道为什么我会使用不像Puppet,Ansible那样不具备幂等性的shell配置器。等

为了保持简单,我想一次只安装一些小块,以便知道安装了正确的版本,并且当我通过SSH连接到VM时我可以使用它们。所以我尝试安装PHP 5.4,并在Ubuntu上安装了几个不同的指南,以及一些GistsStackOverflow。同样,我也为NodeJS和Composer做了同样的事情。但是,当我运行php -v而不是5.4时,PHP版本似乎是5.5,而NodeJS版本是0.10.x而不是5.x,在配置期间也出现了npm错误,指示版本npm已经过时了。 Composer是唯一一个看似正确版本1.0-dev。

的安装

我已经在下面提供了我的配置脚本,而在我的Vagrant文​​件下面,虽然Vagrantfile设置似乎没问题。任何人都可以在尝试使用npm安装PHP 5.4和Node 5.x时表明我做错了什么?

Provision.sh

#!/usr/bin/env bash

# ---------------------------------------
#          PHP Setup
# ---------------------------------------

apt-get update
apt-get install -y python-software-properties
add-apt-repository ppa:ondrej/php5-oldstable

apt-get update
apt-get install -y php5 php5-cli php5-fpm curl php5-curl php5-mcrypt php5-xdebug

# ---------------------------------------
#       Tools Setup
# ---------------------------------------

# Adding NodeJs PPA Repository
apt-get update
curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -

# Installing nodejs and npm
apt-get update
sudo apt-get install -y nodejs
apt-get install -y build-essential

# Installing Bower and Grunt
npm install -g bower grunt-cli

# Installing GIT
apt-get install -y git

# Install Composer
curl -sL https://getcomposer.org/installer | php

# Make Composer available globally
mv composer.phar /usr/local/bin/composer

Vagrantfile

# Prevent TTY Errors
config.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'"

# Allow SSH Agent Forward from The Box
config.ssh.forward_agent = true

hostname = settings['hostname'] ||= 'LAMP'

# Use Latest Ubuntu 14.04 Box Version And Default Hostname Unless Overridden
config.vm.box = 'ubuntu/trusty64'
config.vm.box_version = '>= 0'
config.vm.hostname = hostname

network_ip = settings['ip'] ||= '192.168.33.33'

# Use Default IP Unless Overridden
config.vm.network :private_network, ip: network_ip

# Use Default Memory And CPUs Unless Overridden
config.vm.provider 'virtualbox' do |vb|

  # Display the VirtualBox GUI when booting the machine:
  vb.gui = false

  # Customize the name of the VM:
  vb.name = hostname

  # Customize the amount of memory on the VM:
  vb.customize ['modifyvm', :id, '--memory', settings['memory'] ||= '2048']

  # Customize the number of CPUs on the VM:
  vb.customize ['modifyvm', :id, '--cpus', settings['cpus'] ||= '1']
end

# Default Port Forwarding
default_ports = {
    80 => 8888,
    443 => 44300,
    3306 => 33060,
    5432 => 54320
}

default_ports.each do |guest, host|
  config.vm.network 'forwarded_port', guest: guest, host: host, auto_correct: true
end

# ---------------------------------------
# Provision the box with the included software
# ---------------------------------------

config.vm.provision 'shell', path: 'vagrant/scripts/provision.sh'

更新

要弄清楚我在服务器上SSH的版本和版本,并运行cat /etc/*{release,version},表明它是CentOs 6.7(最终版),其中包含PHP 5.4,但缺少官方的Vagrant框。此外,sudo apt-get ...无法正常工作,我现在需要使用yum?这不是安装PHP 5.4或其他任何东西。

0 个答案:

没有答案