चीजों के वर्डप्रेस पक्ष पर, बेसिक वर्डप्रेस वैग्रेंट एनवायरनमेंट किसी भी वर्डप्रेस संस्करण (थोड़ी मदद से) के साथ काम करने के लिए तैयार है। आपको अभी भी PHP को कॉन्फ़िगर करने का एक तरीका खोजना होगा लेकिन इसमें एक संकेत है https://github.com/ideasonpurpose/basic-wordpress-box/blob/master/ansible/roles/php/tasks/php.yml
।
बॉक्स से बाहर का उपयोग करने के लिए; प्रोजेक्ट को डाउनलोड या क्लोन करें wplatest-php55.dev/
और चलाएंvagrant up
Vagrant Host Manager इंस्टॉल करने से IP आपके फ़ोल्डर में स्वचालित रूप से लिंक हो जाएगाhttp://wplatest-php55.dev/
WP के संस्करणों से इंस्टॉल-wp.sh के माध्यम से कई वातावरण उत्पन्न करें
संभव वर्डप्रेस संस्करणों के लिए संग्रह की जांच करें https://wordpress.org/download/release-archive/
# PWD (script directory)
# ├── common_folder
# ├── wp39-php55.dev
# │ └── site/common_folder
# ├── wp42-php55.dev
# │ └── site/common_folder
# └── wp431-php55.dev
# └── site/common_folder
यहां एक स्क्रिप्ट है जो वैग्रैंट पर्यावरण मास्टर को बैश स्क्रिप्ट की निर्देशिका में खींचती है, सरणी में प्रत्येक संस्करण के लिए एक साइट को क्लोन करती है, उस WP संस्करण का उपयोग करने के लिए इंस्टॉल कार्य को कॉन्फ़िगर करता है और आपको पहले सभी साइटों पर कॉपी करने के लिए एक फ़ाइल / फ़ोल्डर निर्दिष्ट करने की अनुमति देता है आप vagrant up
।
इसे एक फ़ाइल में रखें, install-wp.sh
फिर chmod +x install-wp.sh
इसे निष्पादन योग्य बनाने के लिए चलाएं । एक फ़ोल्डर ढूंढें जहां आप इन सभी बॉक्स को बनाना चाहते हैं और चला सकते हैं ./install-wp.sh
। यह ऊपर की संरचना उत्पन्न करेगा।
चूंकि आप सभी संस्करणों में अपने प्लगइन का परीक्षण करना चाहते हैं, लिपि के समान निर्देशिका में एक फ़ोल्डर बनाते हैं, wp-content/plugins/your-plugin
फिर चलाएं install-wp.sh wp-content
। फ़ाइल / फ़ोल्डर को प्रत्येक साइट के रूट पर कॉपी किया जाता है, यही कारण है कि मैं सुझाव देता हूं wp-content
।
install-wp.sh
#!/bin/bash
#
# Author: Jesse Graupmann @jgraup - http://www.justgooddesign.com - 2015
#
# Create multiple WordPress sites based on version numbers in array.
#
# ( OPTIONAL )
# Copy common file/folder to all sites - Pass as parameter $1
#
# Each site runs in a Vagrant Environment:
# https://github.com/ideasonpurpose/basic-wordpress-vagrant
#
# Best if used with:
# https://github.com/smdahlen/vagrant-hostmanager
#
# PWD (script directory)
# ├── common_folder
# ├── wp39-php55.dev
# │ └── site/common_folder
# ├── wp42-php55.dev
# │ └── site/common_folder
# └── wp431-php55.dev
# └── site/common_folder
# WordPress Versions
versions=( 3.9 4.2 4.3.1 )
# Move to the current directory
base=$(pwd); cd $base
# Vagrant Environment
remote_master="https://github.com/ideasonpurpose/basic-wordpress-vagrant/archive/master.zip"
vagrant_master_zip=$base/basic-wordpress-vagrant.zip
# Download Latest Environment - overwrite file for latest
wget -v -O $vagrant_master_zip $remote_master
# Loop through version #s
for VERSION in "${versions[@]}" ; do
flatv="${VERSION//.}"
dirname=wp$flatv-php55.dev
# Clone Environment
echo -e "\nCloning to: $base/$dirname\n"
mkdir -p $base/$dirname
tar -zxvf $vagrant_master_zip -C $base/$dirname --strip-components=1
# WordPress Versions
# Archives: https://wordpress.org/download/release-archive/
# Version: https://wordpress.org/wordpress-{{ wp-version }}.tar.gz
# Latest: https://wordpress.org/latest.tar.gz
# Path to Ansible task
yml=$(cat $base/$dirname/ansible/roles/wordpress/tasks/install.yml)
### REPLACE THE ANSIBLE WP VERSION w/OUR VERSION
wp_url_latest="https:\/\/wordpress.org\/latest.tar.gz"
wp_url_version="https://wordpress.org/wordpress-$VERSION.tar.gz"
echo "${yml/$wp_url_latest/$wp_url_version}" > $base/$dirname/ansible/roles/wordpress/tasks/install.yml
# (OPTIONAL) Copy common file/folder to all sites!
# pass as argument to .sh
#
# Example Folder:
# Make a common wp-content folder, then run install with
#
# ./install-wp.sh wp-content
#
# Example File:
# Make a text file, then run install with
#
# ./install-wp.sh my_file.txt
#
common_dest=$base/$dirname/site/
# Copy Folder
if [ -d "$1" ]; then
echo "Copying $1 --> $common"
# Directory must exist
if [ -d "$1" ]; then
folder_name=$(basename $1)
mkdir -p $common_dest/$folder_name;
fi
cp -r $1 $common_dest
# or File
elif [ -f "$1" ]; then
echo "Copying $1 --> $common_dest"
file_name=$(basename $1)
cp $1 $common_dest/$file_name
fi
## Create doc for quick glance at version number
dest="$base/$dirname"
remotewpzip="https://wordpress.org/wordpress-$VERSION.tar.gz"
txt=$dest/download-wp-$VERSION.txt
touch $txt
printf "WordPress Version: $VERSION - https://wordpress.org/download/release-archive/\n\nDownload Zip: $remotewpzip\n" > $txt
done
# The rest is just for show
echo -e "\nDone!\n\nNow just run 'vagrant up' in any of these:\n"
for VERSION in "${versions[@]}" ; do
flatv="${VERSION//.}"
dirname=wp$flatv-php55.dev
echo -e "\t"$base/$dirname "\thttp://"$dirname
done
echo -e "\nMore Vagrant env info @ https://github.com/ideasonpurpose/basic-wordpress-vagrant"
echo -e "Best if used with https://github.com/smdahlen/vagrant-hostmanager\n\nENJOY!"
अपडेट करें:
यह पता चलता है कि बेसिक वर्डप्रेस वैग्रांट एनवायरनमेंट वास्तव में कई php वर्जन को संभालने के लिए सेटअप नहीं है, लेकिन यदि आप PHP टास्क को एडजस्ट करते हैं तो बेसिक वर्डप्रेस बॉक्स हो सकता है । मुझे लगा कि मैं एक स्क्रिप्ट का खोल छोड़ दूंगा जिसमें कई php वर्जन होंगे।
#!/bin/bash
############################################
#
# PWD (script directory)
# ├── wp39-php55.dev
# ├── wp42-php55.dev
# └── wp431-php55.dev
#
############################################
# WordPress Versions
versions=( 3.9 4.2 4.3.1 )
# PHP Versions
pversions=( 5.4 5.5 5.6 )
############################################
# Move to the current directory
base=$(pwd); cd $base
############################################
# PHP Loop
for PVERSION in "${pversions[@]}" ; do
pflatv="${PVERSION//.}"
echo -e "==> PHP: $PVERSION\n"
# WordPress loop
for VERSION in "${versions[@]}" ; do
flatv="${VERSION//.}"
############################################
dirname=wp$flatv-php$pflatv.dev
############################################
# Environment
echo -e "\t"$base/$dirname "\thttp://"$dirname
mkdir -p $base/$dirname
############################################
# WordPress Versions
# Archives: https://wordpress.org/download/release-archive/
# Version: https://wordpress.org/wordpress-{{ wp-version }}.tar.gz
# Latest: https://wordpress.org/latest.tar.gz
############################################
wp_url_latest="https:\/\/wordpress.org\/latest.tar.gz"
wp_url_version="https://wordpress.org/wordpress-$VERSION.tar.gz"
# Download WP
echo -e "\tDownload WP: $wp_url_version"
############################################
# PHP Packages at https://launchpad.net/~ondrej
# You can get more information about the packages at https://deb.sury.org
# For PHP 5.6 use: ppa:ondrej/php5-5.6
# For PHP 5.5 use: ppa:ondrej/php5
# For PHP 5.4 use: ppa:ondrej/php5-oldstable
############################################
# Config PHP
echo -e "\tConfigure PHP: $PVERSION\n"
done # WordPress version
done # PHP version
exit 1
phpenv
विभिन्न PHP संस्करणों का प्रबंधन करने के लिए उपयोग करता है। हो सकता है कि पूरे वर्डप्रेस रेपो (जिसमें सभी संस्करण शामिल/tags
होंगे) का एक एसवीएन चेकआउट और एक संयोजन एक शुरुआत होगा?