2013-12-20 119 views
7

我一直在關注this gist,它爲PHP開發安裝了一堆核心依賴關係,但我需要並且一直無法工作但是要在Vagrant中安裝Node,NPM(以及全球的Grunt和Bower)。我已經看到像this one這樣的答案,但它似乎沒有完成安裝(即我不能安裝涼亭和咕嚕聲)。有一個nodejs包到apt-get,似乎確實安裝了Node(我可以從那裏安裝NPM),但該版本對於Bower來說顯得太舊了,所以這就是爲什麼我回到了手動方式。謝謝你的幫助。在Vagrant中安裝節點,NPM(然後是Grunt和Bower全局)

更新

這裏是我的bootstraph.sh文件:

#!/usr/bin/env bash 

echo ">>> Starting Install Script" 

# Update 
sudo apt-get update 

# Install MySQL without prompt 
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password root' 
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password root' 

echo ">>> Installing Base Items" 

# Install base items 
sudo apt-get install -y curl wget build-essential python-software-properties python g++ make 

echo ">>> Adding PPA's and Installing Server Items" 

# Add repo for latest PHP 
sudo add-apt-repository -y ppa:ondrej/php5 

# Add NodeJS repository 
sudo add-apt-repository -y ppa:chris-lea/node.js 

# Update Again 
sudo apt-get update 

# Install the Rest 
sudo apt-get install -y php5 apache2 libapache2-mod-php5 nodejs php5-mysql php5-curl php5-gd php5-mcrypt php5-xdebug mysql-server 

echo ">>> Configuring Server" 

# xdebug Config 
cat << EOF | sudo tee -a /etc/php5/mods-available/xdebug.ini 
xdebug.scream=1 
xdebug.cli_color=1 
xdebug.show_local_vars=1 
EOF 

# Apache Config 
sudo a2enmod rewrite 
curl https://gist.github.com/fideloper/2710970/raw/5d7efd74628a1e3261707056604c99d7747fe37d/vhost.sh > vhost 
sudo chmod guo+x vhost 
sudo mv vhost /usr/local/bin 

# Symlink /var/www to project web root 
sudo rm -rf /var/www 
sudo ln -s /vagrant/ /var/www 

# PHP Config 
sed -i "s/error_reporting = .*/error_reporting = E_ALL/" /etc/php5/apache2/php.ini 
sed -i "s/display_errors = .*/display_errors = On/" /etc/php5/apache2/php.ini 

sudo service apache2 restart 

echo ">>> Installing NPM, Grunt CLI and Bower" 

curl https://npmjs.org/install.sh | sh 
sudo npm install -g grunt-cli bower 

echo ">>> Installing Composer" 

# Composer 
curl -sS https://getcomposer.org/installer | php 
sudo mv composer.phar /usr/local/bin/composer 
+0

你說的「不能再安裝閨房,然後咕嚕」是什麼意思?錯誤來自哪裏,它是什麼?我懷疑你是通過從repo(chris-lea通常是節點的最新穩定版本,所以這不是問題)和手動運行來搞定NPM安裝。 – jfmatt

+0

實際上,爲了補充說明,NPM中的install.sh並未以root身份運行,這可能是一個問題。 – jfmatt

回答

5

找到行之有效如下:

#!/usr/bin/env bash 

echo "--- Let's get to work. Installing now. ---" 

echo "--- Updating packages list ---" 
sudo apt-get update 

echo "--- MySQL time ---" 
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password root' 
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password root' 

echo "--- Installing base packages ---" 
sudo apt-get install -y vim curl python-software-properties 

echo "--- Updating packages list ---" 
sudo apt-get update 

echo "--- We want the bleeding edge of PHP ---" 
sudo add-apt-repository -y ppa:ondrej/php5 

echo "--- Updating packages list ---" 
sudo apt-get update 

echo "--- Installing PHP-specific packages ---" 
sudo apt-get install -y php5 apache2 libapache2-mod-php5 php5-curl php5-gd php5-mcrypt mysql-server-5.5 php5-mysql git-core 

echo "--- Installing and configuring Xdebug ---" 
sudo apt-get install -y php5-xdebug 

cat << EOF | sudo tee -a /etc/php5/mods-available/xdebug.ini 
xdebug.scream=1 
xdebug.cli_color=1 
xdebug.show_local_vars=1 
EOF 

echo "--- Installing node.js ---" 
sudo apt-get update 
sudo apt-get install -y python g++ make 
sudo add-apt-repository -y ppa:chris-lea/node.js 
sudo apt-get update 
sudo apt-get install -y nodejs 

echo "--- Installing Ruby ---" 
\curl -L https://get.rvm.io | bash -s stable 
source /usr/local/rvm/scripts/rvm 
rvm requirements 
rvm install ruby 
rvm use ruby --default 
rvm rubygems current 

echo "--- Enabling mod-rewrite ---" 
sudo a2enmod rewrite 

echo "--- Setting document root ---" 
sudo rm -rf /var/www 
sudo ln -fs /vagrant/public /var/www 


echo "--- Turn on errors ---" 
sed -i "s/error_reporting = .*/error_reporting = E_ALL/" /etc/php5/apache2/php.ini 
sed -i "s/display_errors = .*/display_errors = On/" /etc/php5/apache2/php.ini 

sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf 

echo "--- Restarting Apache ---" 
sudo service apache2 restart 

echo "--- Install Composer (PHP package manager) ---" 
curl -sS https://getcomposer.org/installer | php 
sudo mv composer.phar /usr/local/bin/composer 

# Laravel stuff here, if you want 

echo "--- All done, enjoy! :) ---" 

來源:https://github.com/JeffreyWay/Vagrant-Setup

2

我們使用n管理node.js的版本上我們兩個流浪的虛擬機和雲箱。我們使用Ansible管理安裝,但它可以很容易地使用bash來實現,這樣的:

# Install n 
n_directory='/opt/n' 
git clone https://github.com/visionmedia/n.git $n_directory 
cd $n_directory 
make install 

# Install node.js/npm using n 
node_version='0.10.24' 
n $node_version 

# Install the global dependencies 
npm install -g grunt-cli bower 

這依賴於nnpm是可用的$PATH

+0

謝謝 - 看起來我可以使用[這裏的第一個選項](https://gist.github.com/isaacs/579814)來安裝Node,但是然後安裝Grunt-CLI和Bower似乎並沒有從我的網站的根(認爲符號鏈接可能由於某種原因而關閉)。我已經用我的'.sh'文件更新了我的原始問題。謝謝! – Zach