我目前正在学习,与流浪汉正在全力以赴:( (在mac上工作,使用virtualbox)
让我解释一下 对于我的Web项目,我有这棵树:
/用户/ NOOS /项目
Project1 文件夹是我的第一个项目。 Project2 文件夹是我的第二个项目。 在工具> box 文件夹,这是我的流浪盒,有2个文件:
Vagrantfile:
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "ubuntu/trusty64"
# Mount shared folder using NFS
config.vm.synced_folder "/Users/noos/projects", "/vagrant",
id: "core",
:nfs => true,
:mount_options => ['nolock,vers=3,udp,noatime']
#config.vm.synced_folder ".", "/vagrant",
#id: "core",
#:nfs => true,
#:mount_options => ['nolock,vers=3,udp,noatime']
# Do some network configuration
config.vm.network "private_network", ip: "192.168.100.100"
# Assign a quarter of host memory and all available CPU's to VM
# Depending on host OS this has to be done differently.
config.vm.provider :virtualbox do |vb|
host = RbConfig::CONFIG['host_os']
if host =~ /darwin/
cpus = `sysctl -n hw.ncpu`.to_i
mem = `sysctl -n hw.memsize`.to_i / 1024 / 1024 / 4
elsif host =~ /linux/
cpus = `nproc`.to_i
mem = `grep 'MemTotal' /proc/meminfo | sed -e 's/MemTotal://' -e 's/ kB//'`.to_i / 1024 / 4
# Windows...
else
cpus = 4
mem = 2048
end
vb.customize ["modifyvm", :id, "--memory", mem]
vb.customize ["modifyvm", :id, "--cpus", cpus]
end
config.vm.provision :shell, :path => "bootstrap.sh"
end
bootstrap.sh:
#!/usr/bin/env bash
Update () {
echo "-- Update packages --"
sudo apt-get update
sudo apt-get upgrade
}
Update
echo "-- Prepare configuration for MySQL --"
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 "-- Install tools and helpers --"
sudo apt-get install -y --force-yes python-software-properties vim htop curl git npm
echo "-- Install PPA's --"
sudo add-apt-repository ppa:ondrej/php
sudo add-apt-repository ppa:chris-lea/redis-server
Update
echo "-- Install NodeJS --"
curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
echo "-- Install packages --"
sudo apt-get install -y --force-yes apache2 mysql-server-5.6 git-core nodejs rabbitmq-server redis-server
sudo apt-get install -y --force-yes php7.0-common php7.0-dev php7.0-json php7.0-opcache php7.0-cli libapache2-mod-php7.0 php7.0 php7.0-mysql php7.0-fpm php7.0-curl php7.0-gd php7.0-mcrypt php7.0-mbstring php7.0-bcmath php7.0-zip
Update
echo "-- Configure PHP &Apache --"
sed -i "s/error_reporting = .*/error_reporting = E_ALL/" /etc/php/7.0/apache2/php.ini
sed -i "s/display_errors = .*/display_errors = On/" /etc/php/7.0/apache2/php.ini
sudo a2enmod rewrite
echo "-- Creating virtual hosts --"
sudo ln -fs /vagrant/public/ /var/www/app
cat << EOF | sudo tee -a /etc/apache2/sites-available/default.conf
<Directory "/var/www/">
AllowOverride All
</Directory>
<VirtualHost *:80>
DocumentRoot /var/www/app
ServerName app.dev
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/phpmyadmin
ServerName phpmyadmin.dev
</VirtualHost>
EOF
sudo a2ensite default.conf
echo "-- Restart Apache --"
sudo /etc/init.d/apache2 restart
echo "-- Install Composer --"
curl -s https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
echo "-- Install phpMyAdmin --"
wget -k https://files.phpmyadmin.net/phpMyAdmin/4.0.10.11/phpMyAdmin-4.0.10.11-english.tar.gz
sudo tar -xzvf phpMyAdmin-4.0.10.11-english.tar.gz -C /var/www/
sudo rm phpMyAdmin-4.0.10.11-english.tar.gz
sudo mv /var/www/phpMyAdmin-4.0.10.11-english/ /var/www/phpmyadmin
echo "-- Setup databases --"
mysql -uroot -proot -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION; FLUSH PRIVILEGES;"
mysql -uroot -proot -e "CREATE DATABASE my_database";
我现在想要的是能够为我的不同项目拥有虚拟主机。所以我编辑了文件/etc/apache2/sites-available/default.conf来放置它:
<VirtualHost *:80>
DocumentRoot /vagrant/project1/web
ServerName local.project1.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /vagrant/project2/web
ServerName local.project2.com
</VirtualHost>
不幸的是,如果我尝试访问其中一个页面,我会遇到“403 forbidden error page”。
正如我之前所说,我目前正在与流浪者进行全面的“自我训练”,因此我不确定为什么会出现这种错误。
欢迎提供帮助和/或解释。 提前谢天谢地!