<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                <article><h1>Laravel 虛擬開發環境 Homestead</h1><ul><li><a href="#introduction">簡介</a></li><li><a href="#installation-and-setup">安裝與設置</a><ul><li><a href="#first-steps">第一步</a></li><li><a href="#configuring-homestead">配置 Homestead</a></li><li><a href="#launching-the-vagrant-box">啟動 Vagrant Box</a></li><li><a href="#per-project-installation">根據項目分開安裝</a></li><li><a href="#installing-mariadb">安裝 MariaDB</a></li></ul></li><li><a href="#daily-usage">常見用法</a><ul><li><a href="#accessing-homestead-globally">全局可用的 Homestead</a></li><li><a href="#connecting-via-ssh">通過 SSH 連接</a></li><li><a href="#connecting-to-databases">連接數據庫</a></li><li><a href="#adding-additional-sites">增加更多網站</a></li><li><a href="#configuring-cron-schedules">配置 Cron 調度器</a></li><li><a href="#ports">連接端口</a></li><li><a href="#sharing-your-environment">共享你的環境</a></li></ul></li><li><a href="#network-interfaces">網絡接口</a></li><li><a href="#updating-homestead">更新 Homestead</a></li><li><a href="#old-versions">歷史版本</a></li><li><a href="#provider-specific-settings">Provider 的特殊設置</a><ul><li><a href="#provider-specific-virtualbox">VirtualBox</a></li></ul></li></ul><p><a name="introduction"></a></p><h2><a href="#introduction">簡介</a></h2><p>Laravel 致力于讓 PHP 的開發過程更加輕松愉快,這其中也包括你的本地開發環境。 <a href="https://www.vagrantup.com">Vagrant</a> 提供了一種簡單,優雅的方式來管理和調配虛擬機。</p><p>Laravel Homestead 是一個官方預封裝的 Vagrant box,它為你提供了一個完美的開發環境,你無需在本地安裝 PHP ,web 服務器,或其他服務軟件。并且不用擔心系統被搞亂! Vagrant box 是完全一次性的。如果有什么地方出錯了,你也可以在幾分鐘內銷毀并重建 box !</p><p>Homestead 可以運行在 Windows 、 Mac 或 Linux 系統上,并且里面包含了 Nginx Web 服務器、 PHP 7.1 、 MySQL 、 Postgres 、 Redis 、 Memcached 、 Node 、 以及所有利于你開發 laravel 應用的其他程序。</p><blockquote class="has-icon note"><p><div class="flag"><span class="svg"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/" version="1.1" x="0px" y="0px" width="90px" height="90px" viewBox="0 0 90 90" enable-background="new 0 0 90 90" xml:space="preserve"><path fill="#FFFFFF" d="M45 0C20.1 0 0 20.1 0 45s20.1 45 45 45 45-20.1 45-45S69.9 0 45 0zM45 74.5c-3.6 0-6.5-2.9-6.5-6.5s2.9-6.5 6.5-6.5 6.5 2.9 6.5 6.5S48.6 74.5 45 74.5zM52.1 23.9l-2.5 29.6c0 2.5-2.1 4.6-4.6 4.6 -2.5 0-4.6-2.1-4.6-4.6l-2.5-29.6c-0.1-0.4-0.1-0.7-0.1-1.1 0-4 3.2-7.2 7.2-7.2 4 0 7.2 3.2 7.2 7.2C52.2 23.1 52.2 23.5 52.1 23.9z"></path></svg></span></div> 如果你是 Windows 用戶,你可能需要啟用硬件虛擬化(VT-x)。這通常需要通過 BIOS 來啟用它。如果你在一個 UEFI 系統上使用的是 Hyper-V,你需要關閉 Hyper-V 才能啟用 VT-x。</p></blockquote><p><a name="included-software"></a></p><h3>內置軟件</h3><ul><li>Ubuntu 16.04</li><li>Git</li><li>PHP 7.1</li><li>Nginx</li><li>MySQL</li><li>MariaDB</li><li>Sqlite3</li><li>Postgres</li><li>Composer</li><li>Node (With Yarn, Bower, Grunt, and Gulp)</li><li>Redis</li><li>Memcached</li><li>Beanstalkd</li><li>Mailhog</li><li>ngrok</li></ul><p><a name="installation-and-setup"></a></p><h2><a href="#installation-and-setup">安裝與設置</a></h2><p><a name="first-steps"></a></p><h3>第一步</h3><p>在你啟動你的 Homestead 環境之前,你必須安裝 <a href="https://www.virtualbox.org/wiki/Downloads">VirtualBox 5.1</a> 、 <a href="https://www.vmware.com">VMWare</a> 或 <a href="http://www.parallels.com/products/desktop/">Parallels</a> 的其中之一,以及 <a href="https://www.vagrantup.com/downloads.html">Vagrant</a> 。這些軟件在各個常用的平臺都有提供簡單易用的界面安裝包。</p><p>若要使用 VMware provider,你需要同時購買 VMware Fusion / Workstation 以及 <a href="https://www.vagrantup.com/vmware">VMware Vagrant plug-in</a>. 的軟件授權。使用 VMware 可以在共享文件夾上獲得較快的性能。</p><p>若要使用 Parallels provider,你需要安裝 <a href="https://github.com/Parallels/vagrant-parallels">Parallels Vagrant plug-in</a> 。這是免費使用的。</p><h4>安裝 Homestead Vagrant Box</h4><p>當 VirtualBox / VMware 以及 Vagrant 安裝完成后,你使用以下命令將 laravel/homestead 這個 box 安裝進你的 Vagrant 程序中。 box 的下載會花費你一點時間,具體的下載時長由網絡速度決定:</p><pre class=" language-php"><code class=" language-php">vagrant box add laravel<span class="token operator">/</span>homestead</code></pre><p>如果上面的命令運行失敗,代表你使用的可能是舊版的 Vagrant,請升級你的 Vagrant。</p><h4>安裝 Homestead</h4><p>你可以通過手動克隆代碼倉庫的方式來安裝 Homestead。建議將代碼倉庫克隆至「home」目錄中的 Homestead 文件夾,如此一來 Homestead box 就能將主機服務提供給你所有的 Laravel 項目:</p><pre class=" language-php"><code class=" language-php">cd <span class="token operator">~</span> git clone https<span class="token punctuation">:</span><span class="token operator">/</span><span class="token operator">/</span>github<span class="token punctuation">.</span>com<span class="token operator">/</span>laravel<span class="token operator">/</span>homestead<span class="token punctuation">.</span>git Homestead</code></pre><p>由于 Homestead 的 <code class=" language-php">master</code> 分支并不是穩定分支,你應該檢出已經標簽過的穩定版本。你可以在 <a href="https://github.com/laravel/homestead/releases">Github Release Page</a> 找到最新的穩定版本。</p><pre class=" language-php"><code class=" language-php">cd Homestead <span class="token comment" spellcheck="true"> // 檢出所需要的版本... </span>git checkout v4<span class="token number">.0</span><span class="token punctuation">.</span><span class="token number">5</span></code></pre><p>一旦你克隆完 Homestead 的代碼倉庫,即可在 Homestead 目錄中運行 <code class=" language-php">bash init<span class="token punctuation">.</span>sh</code> 命令 來創建 <code class=" language-php">Homesstead<span class="token punctuation">.</span>yaml</code> 配置文件。 <code class=" language-php">Homesstead<span class="token punctuation">.</span>yaml</code> 文件會被放置在你的 Homestead 目錄中:</p><pre class=" language-php"><code class=" language-php"><span class="token comment" spellcheck="true">// Mac / Linux... </span>bash init<span class="token punctuation">.</span>sh <span class="token comment" spellcheck="true"> // Windows... </span>init<span class="token punctuation">.</span>bat</code></pre><p><a name="configuring-homestead"></a></p><h3>配置 Homestead</h3><h4>配置你的提供者</h4><p><code class=" language-php">Homestead<span class="token punctuation">.</span>yaml</code> 中的 <code class=" language-php">provider</code> 參數設置取決于你用的是哪一個 Vagrant 提供者 <code class=" language-php">virtualbox</code> 、 <code class=" language-php">vmware_fusion</code> 、 <code class=" language-php">vmware_workstation</code> ,或者 <code class=" language-php">parallels</code> 。你可以根據自己的喜好來設置提供者:</p><pre class=" language-php"><code class=" language-php">provider<span class="token punctuation">:</span> virtualbox</code></pre><h4>配置共享文件夾</h4><p>你可以在 <code class=" language-php">Homestead<span class="token punctuation">.</span>yaml</code> 文件的 <code class=" language-php">folders</code> 屬性里列出所有想與 Homestead 環境共享的文件夾。這些文件夾中的文件若有變更,它們將會在你的本機電腦與 Homestead 環境自動更新同步。你可以在這里設置多個共享文件夾:</p><pre class=" language-php"><code class=" language-php">folders<span class="token punctuation">:</span> <span class="token operator">-</span> map<span class="token punctuation">:</span> <span class="token operator">~</span><span class="token operator">/</span>Code to<span class="token punctuation">:</span> <span class="token operator">/</span>home<span class="token operator">/</span>vagrant<span class="token operator">/</span>Code</code></pre><p>若要啟動 <a href="https://www.vagrantup.com/docs/synced-folders/nfs.html">NFS</a> ,只需要在共享文件夾的設置值中加入一個簡單的參數:</p><pre class=" language-php"><code class=" language-php">folders<span class="token punctuation">:</span> <span class="token operator">-</span> map<span class="token punctuation">:</span> <span class="token operator">~</span><span class="token operator">/</span>Code to<span class="token punctuation">:</span> <span class="token operator">/</span>home<span class="token operator">/</span>vagrant<span class="token operator">/</span>Code type<span class="token punctuation">:</span> <span class="token string">"nfs"</span></code></pre><p>你也可以在配置中傳遞任何 Vagrant 中的 <a href="https://www.vagrantup.com/docs/synced-folders/basic_usage.html">共享文件夾</a> 支持的參數,在 <code class=" language-php">options</code> 參數下列出它們:</p><pre class=" language-php"><code class=" language-php">folders<span class="token punctuation">:</span> <span class="token operator">-</span> map<span class="token punctuation">:</span> <span class="token operator">~</span><span class="token operator">/</span>Code to<span class="token punctuation">:</span> <span class="token operator">/</span>home<span class="token operator">/</span>vagrant<span class="token operator">/</span>Code type<span class="token punctuation">:</span> <span class="token string">"rsync"</span> options<span class="token punctuation">:</span> rsync__args<span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token string">"--verbose"</span><span class="token punctuation">,</span> <span class="token string">"--archive"</span><span class="token punctuation">,</span> <span class="token string">"--delete"</span><span class="token punctuation">,</span> <span class="token string">"-zz"</span><span class="token punctuation">]</span> rsync__exclude<span class="token punctuation">:</span> <span class="token punctuation">[</span><span class="token string">"node_modules"</span><span class="token punctuation">]</span></code></pre><h4>配置 Nginx 站點</h4><p>對 Nginx 不熟悉嗎?沒關系。<code class=" language-php">sites</code> 屬性可以幫助你可以輕易指定一個 <code class=" language-php">域名</code> 來對應到 homestead 環境中的一個目錄上。在 <code class=" language-php">Homestead<span class="token punctuation">.</span>yaml</code> 文件中已包含了一個網站設置范本。同樣的,你也可以增加多個網站到你的 Homestead 環境中。 Homestead 可以同時為多個 Laravel 應用提供虛擬化環境:</p><pre class=" language-php"><code class=" language-php">sites<span class="token punctuation">:</span> <span class="token operator">-</span> map<span class="token punctuation">:</span> homestead<span class="token punctuation">.</span>app to<span class="token punctuation">:</span> <span class="token operator">/</span>home<span class="token operator">/</span>vagrant<span class="token operator">/</span>Code<span class="token operator">/</span>Laravel<span class="token operator">/</span><span class="token keyword">public</span></code></pre><p>如果你在 Homestead box 配置之后更改了 <code class=" language-php">sites</code> 屬性,那么應該重新運行 <code class=" language-php">vagrant reload <span class="token operator">--</span>provision</code> 來更新 Nginx 配置到虛擬機上。</p><h4>關于 Hosts 文件</h4><p>你必須將在 Nginx sites 中所添加的「域名」也添加到你本機電腦的 <code class=" language-php">hosts</code> 上。 <code class=" language-php">hosts</code> 文件會將請求重定向至 Homestead 環境中設置的本地域名。在 Mac 或 Linux 上,該文件通常會存放在 <code class=" language-php"><span class="token operator">/</span>etc<span class="token operator">/</span>hosts</code> 。在 Windows 上,則存放于 <code class=" language-php">C<span class="token punctuation">:</span>\<span class="token package">Windows<span class="token punctuation">\</span>System32<span class="token punctuation">\</span>drivers<span class="token punctuation">\</span>etc<span class="token punctuation">\</span>hosts</span></code> 。設置內容如下所示:</p><pre class=" language-php"><code class=" language-php"><span class="token number">192.168</span><span class="token punctuation">.</span><span class="token number">10.10</span> homestead<span class="token punctuation">.</span>app</code></pre><p>務必確認 IP 地址與 <code class=" language-php">Homestead<span class="token punctuation">.</span>yaml</code> 文件中設置的相同。將域名設置在 <code class=" language-php">hosts</code> 文件之后,你就可以通過網頁瀏覽器訪問你的網站。</p><pre class=" language-php"><code class=" language-php">http<span class="token punctuation">:</span><span class="token operator">/</span><span class="token operator">/</span>homestead<span class="token punctuation">.</span>app</code></pre><p><a name="launching-the-vagrant-box"></a></p><h3>啟動 Vagrant Box</h3><p>編輯完 <code class=" language-php">Homestead<span class="token punctuation">.</span>yaml</code> 后,進入你的 Homestead 目錄并運行 <code class=" language-php">vagrant up</code> 命令。 Vagrant 就會根據 <code class=" language-php">Homestead<span class="token punctuation">.</span>yaml</code> 里的配置信息,為虛擬機設置共享文件夾和 Nginx 網站。</p><p>如果要移除虛擬機,你可以使用 <code class=" language-php">vagrant destroy <span class="token operator">--</span>force</code> 命令</p><p><a name="per-project-installation"></a></p><h3>為每個項目分開安裝</h3><p>除了全局使用同一個 Homestead 環境, Homestead 還允許你為項目獨立配置一個獨占的 Homstead 。</p><p>通過傳遞 <code class=" language-php">Vagrantfile</code> ,可以實現為每個項目分別安裝上 Homestead ,其他項目成員只需要通過簡單的 <code class=" language-php">vagrant up</code> 即能跟你擁有一樣的 Homestead 環境。</p><p>使用 Composer 將 Homestead 直接安裝至項目中:</p><pre class=" language-php"><code class=" language-php"> composer <span class="token keyword">require</span> laravel<span class="token operator">/</span>homestead <span class="token operator">--</span>dev</code></pre><p>一旦 Homestead 安裝完畢,可以使用 <code class=" language-php">make</code> 命令生成 <code class=" language-php">Vagrantfile</code> 與 <code class=" language-php">Homestead<span class="token punctuation">.</span>yaml</code> 文件,并存放于項目的根目錄。</p><p><code class=" language-php">make</code> 命令將會自動在 Homestead.yaml 文件中配置 <code class=" language-php">sites</code> 及 <code class=" language-php">folders</code> :</p><p>Mac / Linux:</p><pre class=" language-php"><code class=" language-php">php vendor<span class="token operator">/</span>bin<span class="token operator">/</span>homestead make</code></pre><p>Windows:</p><pre class=" language-php"><code class=" language-php">vendor\<span class="token package"><span class="token punctuation">\</span>bin<span class="token punctuation">\</span><span class="token punctuation">\</span>homestead</span> make</code></pre><p>接下來,在命令行中運行 <code class=" language-php">vagrant up</code> 并通過網頁瀏覽器訪問 <code class=" language-php">http<span class="token punctuation">:</span><span class="token operator">/</span><span class="token operator">/</span>homestead<span class="token punctuation">.</span>app</code> 。再次提醒,你仍然需要在 <code class=" language-php"><span class="token operator">/</span>etc<span class="token operator">/</span>hosts</code> 里配置 <code class=" language-php">homestead<span class="token punctuation">.</span>app</code> 或其它想要使用的域名。</p><p><a name="installing-mariadb"></a></p><h3>安裝 MariaDB</h3><p>如果你希望使用 MariaDB 來替換 MySQL,你可以在 <code class=" language-php">Homestead<span class="token punctuation">.</span>yaml</code> 文件中增加一個 <code class=" language-php">mariadb</code> 的選項,這個選項會移除 MySQL 并安裝 MariaDB。因為 MariaDB 可用作 MySQL 的替代品,所以在你的數據庫配置信息里,還是選用 <code class=" language-php">mysql</code> 配置項。</p><pre class=" language-php"><code class=" language-php">box<span class="token punctuation">:</span> laravel<span class="token operator">/</span>homestead ip<span class="token punctuation">:</span> <span class="token string">"192.168.20.20"</span> memory<span class="token punctuation">:</span> <span class="token number">2048</span> cpus<span class="token punctuation">:</span> <span class="token number">4</span> provider<span class="token punctuation">:</span> virtualbox mariadb<span class="token punctuation">:</span> <span class="token boolean">true</span></code></pre><p><a name="daily-usage"></a></p><h2><a href="#daily-usage">常見用法</a></h2><p><a name="accessing-homestead-globally"></a></p><h3>全局使用</h3><p>如果你希望在文件系統的任何地方都可以 <code class=" language-php">vagrant up</code> 開啟 Homestead 虛擬機,你可以把以下代碼放到你的 Bash profile 里面,這個函數允許你在文件系統的任何位置都可以對 Homestead 運行 Vagrant 命令:</p><h4>Mac / Linux</h4><pre class=" language-php"><code class=" language-php"><span class="token keyword">function</span> <span class="token function">homestead<span class="token punctuation">(</span></span><span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token punctuation">(</span> cd <span class="token operator">~</span><span class="token operator">/</span>Homestead <span class="token operator">&amp;&amp;</span> vagrant $<span class="token operator">*</span> <span class="token punctuation">)</span> <span class="token punctuation">}</span></code></pre><p>請將 <code class=" language-php"><span class="token operator">~</span><span class="token operator">/</span>Homestead</code> 這個路徑修改為你的實際 Homestead 的安裝路徑,一旦這個函數安裝成功,就可以在系統的任意位置運行 <code class=" language-php">homestead up</code> 或 <code class=" language-php">homestead ssh</code> 命令</p><h4>Windows</h4><p>在系統的任意位置創建一個批處理文件 <code class=" language-php">homestead<span class="token punctuation">.</span>bat</code> ,并添加如下內容:</p><pre class=" language-php"><code class=" language-php">@<span class="token keyword">echo</span> off set cwd<span class="token operator">=</span><span class="token operator">%</span>cd<span class="token operator">%</span> set homesteadVagrant<span class="token operator">=</span>C<span class="token punctuation">:</span>\<span class="token package">Homestead</span> cd <span class="token operator">/</span>d <span class="token operator">%</span>homesteadVagrant<span class="token operator">%</span> <span class="token operator">&amp;&amp;</span> vagrant <span class="token operator">%</span><span class="token operator">*</span> cd <span class="token operator">/</span>d <span class="token operator">%</span>cwd<span class="token operator">%</span> set cwd<span class="token operator">=</span> set homesteadVagrant<span class="token operator">=</span></code></pre><p>請將 <code class=" language-php">C<span class="token punctuation">:</span>\<span class="token package">Homestead</span></code> 這個路徑修改為你的實際 Homestead 的安裝路徑,創建完這個文件后,將這個文件路徑添加到 <code class=" language-php"><span class="token constant">PATH</span></code> 環境變量中,就可以在系統的任意位置運行 <code class=" language-php">homestead up</code> 或 <code class=" language-php">homestead ssh</code> 命令</p><p><a name="connecting-via-ssh"></a></p><h3>通過SSH連接</h3><p>在 Homestead 目錄運行 <code class=" language-php">vagrant ssh</code> 命令來連接虛擬主機。</p><p>你可能會經常需要使用 SSH 來連接 Homestead 主機,你可以考慮將上述「function」添加到你的主機,以便快速的通過 SSH 進入你的 Homestead box</p><p><a name="connecting-to-databases"></a></p><h3>連接數據庫</h3><p>在 box 中已經為 MySQL 和 Postgres 配置好了一個開箱即用的數據庫 <code class=" language-php">homestead</code> ,為了更方便的使用它,Laravel 中的 <code class=" language-php"><span class="token punctuation">.</span>env</code> 文件將這個數據庫設置成了框架默認使用的數據庫。</p><p>如果想要從你主機上的數據庫客戶端連接 MySQL 或 Postgres,可以通過 <code class=" language-php"><span class="token number">127.0</span><span class="token punctuation">.</span><span class="token number">0.1</span></code> 來使用端口 <code class=" language-php"><span class="token number">33060</span></code>(MySQL) 或 <code class=" language-php"><span class="token number">54320</span></code>(Postgres) 連接。賬號密碼分別是 <code class=" language-php">homestead</code> / <code class=" language-php">secret</code></p><blockquote class="has-icon note"><p><div class="flag"><span class="svg"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/" version="1.1" x="0px" y="0px" width="90px" height="90px" viewBox="0 0 90 90" enable-background="new 0 0 90 90" xml:space="preserve"><path fill="#FFFFFF" d="M45 0C20.1 0 0 20.1 0 45s20.1 45 45 45 45-20.1 45-45S69.9 0 45 0zM45 74.5c-3.6 0-6.5-2.9-6.5-6.5s2.9-6.5 6.5-6.5 6.5 2.9 6.5 6.5S48.6 74.5 45 74.5zM52.1 23.9l-2.5 29.6c0 2.5-2.1 4.6-4.6 4.6 -2.5 0-4.6-2.1-4.6-4.6l-2.5-29.6c-0.1-0.4-0.1-0.7-0.1-1.1 0-4 3.2-7.2 7.2-7.2 4 0 7.2 3.2 7.2 7.2C52.2 23.1 52.2 23.5 52.1 23.9z"></path></svg></span></div> 因為虛擬機做了端口轉發,所以本機電腦上你應當只使用這些非標準的連接端口,虛擬機里依然使用默認的 3306 及 5432 連接端口。</p></blockquote><p><a name="adding-additional-sites"></a></p><h3>增加更多網站</h3><p>一旦 Homestead 環境配置完畢且成功運行后,你可能會想要為 Laravel 應用程序增加更多的 Nginx 網站。你可以在單個 Homestead 環境中運行多個 Laravel 程序。要添加額外的網站,只需將網站添加到您的 <code class=" language-php">Homestead<span class="token punctuation">.</span>yaml</code> 文件中:</p><pre class=" language-php"><code class=" language-php"> sites<span class="token punctuation">:</span> <span class="token operator">-</span> map<span class="token punctuation">:</span> homestead<span class="token punctuation">.</span>app to<span class="token punctuation">:</span> <span class="token operator">/</span>home<span class="token operator">/</span>vagrant<span class="token operator">/</span>Code<span class="token operator">/</span>Laravel<span class="token operator">/</span><span class="token keyword">public</span> <span class="token operator">-</span> map<span class="token punctuation">:</span> another<span class="token punctuation">.</span>app to<span class="token punctuation">:</span> <span class="token operator">/</span>home<span class="token operator">/</span>vagrant<span class="token operator">/</span>Code<span class="token operator">/</span>another<span class="token operator">/</span><span class="token keyword">public</span></code></pre><p>如果 Vagrant 沒有自動管理你的「hosts」文件,你可能需要手動把新增的站點加入到「hosts」文件中:</p><pre class=" language-php"><code class=" language-php"><span class="token number">192.168</span><span class="token punctuation">.</span><span class="token number">10.10</span> homestead<span class="token punctuation">.</span>app <span class="token number">192.168</span><span class="token punctuation">.</span><span class="token number">10.10</span> another<span class="token punctuation">.</span>app</code></pre><p>當你的網站添加完成,從你的 Homestead 目錄運行 <code class=" language-php">vagrant reload <span class="token operator">--</span>provision</code> 命令就可以應用新的更改。</p><p><a name="site-types"></a></p><h4>Site Types</h4><p>Homestead supports several types of sites which allow you to easily run projects that are not based on Laravel. For example, we may easily add a Symfony application to Homestead using the <code class=" language-php">symfony2</code> site type:</p><pre class=" language-php"><code class=" language-php">sites<span class="token punctuation">:</span> <span class="token operator">-</span> map<span class="token punctuation">:</span> symfony2<span class="token punctuation">.</span>app to<span class="token punctuation">:</span> <span class="token operator">/</span>home<span class="token operator">/</span>vagrant<span class="token operator">/</span>Code<span class="token operator">/</span>Symfony<span class="token operator">/</span><span class="token keyword">public</span> type<span class="token punctuation">:</span> symfony2</code></pre><p>The available site types are: <code class=" language-php">apache</code>, <code class=" language-php">laravel</code> (the default), <code class=" language-php">proxy</code>, <code class=" language-php">silverstripe</code>, <code class=" language-php">statamic</code>, and <code class=" language-php">symfony2</code>.</p><p><a name="configuring-cron-schedules"></a></p><h3>配置 Cron 調度器</h3><p>Laravel 提供了便利的方式來 <a href="/docs/5.4/scheduling">調度 Cron 任務</a> ,通過 <code class=" language-php">schedule<span class="token punctuation">:</span>run</code> Artisan 命令,調度便會在每分鐘被運行。 <code class=" language-php">schedule<span class="token punctuation">:</span>run</code> 命令會檢查定義在你 <code class=" language-php">App\<span class="token package">Console<span class="token punctuation">\</span>Kernel</span></code> 類中調度的任務,判斷哪個任務該被運行。</p><p>如果你想為 Homestead 網站使用 <code class=" language-php">schedule<span class="token punctuation">:</span>run</code> 命令,你可以在定義網站時將 <code class=" language-php">schedule</code> 選項設置為 <code class=" language-php"><span class="token boolean">true</span></code></p><pre class=" language-php"><code class=" language-php">sites<span class="token punctuation">:</span> <span class="token operator">-</span> map<span class="token punctuation">:</span> homestead<span class="token punctuation">.</span>app to<span class="token punctuation">:</span> <span class="token operator">/</span>home<span class="token operator">/</span>vagrant<span class="token operator">/</span>Code<span class="token operator">/</span>Laravel<span class="token operator">/</span><span class="token keyword">public</span> schedule<span class="token punctuation">:</span> <span class="token boolean">true</span></code></pre><p>該網站的 Cron 任務會被定義在虛擬機的 <code class=" language-php"><span class="token operator">/</span>etc<span class="token operator">/</span>cron<span class="token punctuation">.</span>d</code> 文件夾中。</p><p><a name="ports"></a></p><h3>連接端口</h3><p>以下本地電腦連接端口將會被轉發至 Homestead 環境:</p><ul><li><strong>SSH:</strong> 2222 → Forwards To 22</li><li><strong>HTTP:</strong> 8000 → Forwards To 80</li><li><strong>HTTPS:</strong> 44300 → Forwards To 443</li><li><strong>MySQL:</strong> 33060 → Forwards To 3306</li><li><strong>Postgres:</strong> 54320 → Forwards To 5432</li><li><strong>Mailhog:</strong> 8025 → Forwards To 8025</li></ul><h4>轉發更多的端口</h4><p>如果你需要的話,也可以借助指定連接端口的通信協議來轉發更多額外的連接端口給 Vagrant box :</p><pre class=" language-php"><code class=" language-php">ports<span class="token punctuation">:</span> <span class="token operator">-</span> send<span class="token punctuation">:</span> <span class="token number">93000</span> to<span class="token punctuation">:</span> <span class="token number">9300</span> <span class="token operator">-</span> send<span class="token punctuation">:</span> <span class="token number">7777</span> to<span class="token punctuation">:</span> <span class="token number">777</span> protocol<span class="token punctuation">:</span> udp</code></pre><p><a name="sharing-your-environment"></a></p><h3>共享你的環境</h3><p>有時候你想跟你的同事或者是客戶共享你目前的工作進度。Vagrant 為此提供了一個內置方法 <code class=" language-php">vagrant share</code>;不過,如果你在你的 <code class=" language-php">Homestead<span class="token punctuation">.</span>yaml</code> 文件中配置了多個站點則這條命令將會變得沒多大用處。</p><p>為了解決這個問題,Homestead 提供了自己的 <code class=" language-php">share</code> 命令。開始之前,通過 <code class=" language-php">vagrant ssh</code> 命令 SSH 進你的 Homestead 機器中,然后運行 <code class=" language-php">share homestead<span class="token punctuation">.</span>app</code>。這會從你的 <code class=" language-php">Homestead<span class="token punctuation">.</span>yaml</code> 配置文件中共享 <code class=" language-php">homestead<span class="token punctuation">.</span>app</code> 站點。當然,你也可以用其他已經配置的站點來代替 <code class=" language-php">homestead<span class="token punctuation">.</span>app</code>。</p><p>運行完命令之后,你可以看到一個包含活動日志和共享站點外網訪問路徑的 Ngrok 界面。</p><blockquote class="has-icon note"><p><div class="flag"><span class="svg"><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/" version="1.1" x="0px" y="0px" width="90px" height="90px" viewBox="0 0 90 90" enable-background="new 0 0 90 90" xml:space="preserve"><path fill="#FFFFFF" d="M45 0C20.1 0 0 20.1 0 45s20.1 45 45 45 45-20.1 45-45S69.9 0 45 0zM45 74.5c-3.6 0-6.5-2.9-6.5-6.5s2.9-6.5 6.5-6.5 6.5 2.9 6.5 6.5S48.6 74.5 45 74.5zM52.1 23.9l-2.5 29.6c0 2.5-2.1 4.6-4.6 4.6 -2.5 0-4.6-2.1-4.6-4.6l-2.5-29.6c-0.1-0.4-0.1-0.7-0.1-1.1 0-4 3.2-7.2 7.2-7.2 4 0 7.2 3.2 7.2 7.2C52.2 23.1 52.2 23.5 52.1 23.9z"></path></svg></span></div> 謹記,Vagrant 本質上是不安全的,當你運行 <code class=" language-php">share</code> 命令的時候,你會把你的虛擬機暴露在互聯網中。</p></blockquote><p><a name="network-interfaces"></a></p><h2><a href="#network-interfaces">網絡接口</a></h2><h2>Network Interfaces</h2><p><code class=" language-php">Homestead<span class="token punctuation">.</span>yaml</code> 文件里的 <code class=" language-php">networks</code> 配置項允許你為 Homestead 環境配置網絡接口。你可以任意配置多個網絡接口:</p><pre class=" language-php"><code class=" language-php">networks<span class="token punctuation">:</span> <span class="token operator">-</span> type<span class="token punctuation">:</span> <span class="token string">"private_network"</span> ip<span class="token punctuation">:</span> <span class="token string">"192.168.10.20"</span></code></pre><p>想要配置一個 <a href="https://www.vagrantup.com/docs/networking/public_network.html">橋接</a> 接口的話,增加 <code class=" language-php">bridge</code> 配置項,然后 <code class=" language-php">type</code> 填寫為 <code class=" language-php">public_network</code> :</p><pre class=" language-php"><code class=" language-php">networks<span class="token punctuation">:</span> <span class="token operator">-</span> type<span class="token punctuation">:</span> <span class="token string">"public_network"</span> ip<span class="token punctuation">:</span> <span class="token string">"192.168.10.20"</span> bridge<span class="token punctuation">:</span> <span class="token string">"en1: Wi-Fi (AirPort)"</span></code></pre><p>想要配置一個 <a href="https://www.vagrantup.com/docs/networking/public_network.html">DHCP</a> 接口的話,請從配置中移除 <code class=" language-php">ip</code> 選項:</p><pre class=" language-php"><code class=" language-php">networks<span class="token punctuation">:</span> <span class="token operator">-</span> type<span class="token punctuation">:</span> <span class="token string">"public_network"</span> bridge<span class="token punctuation">:</span> <span class="token string">"en1: Wi-Fi (AirPort)"</span></code></pre><p><a name="updating-homestead"></a></p><h2><a href="#updating-homestead">更新 Homestead</a></h2><p>你可以簡單的用兩個步驟來更新 Homestead ,第一步,使用 <code class=" language-php">vagrant box update</code> 命令更新 Vgrant box :</p><pre class=" language-php"><code class=" language-php">vagrant box update</code></pre><p>接下來。你需要更新 Homestead 的源代碼,如果你是通過克隆倉庫的方式安裝的 Homestead ,你可以簡單的運行 <code class=" language-php">git pull origin master</code> 命令在你最初克隆倉庫的位置。</p><p>如果你已經通過你的項目中的 <code class=" language-php">composer<span class="token punctuation">.</span>json</code> 文件安裝了 Homestead ,你應該確認你的 <code class=" language-php">composer<span class="token punctuation">.</span>json</code> 文件中是否包含 <code class=" language-php"><span class="token string">"laravel/homestead: "</span><span class="token operator">^</span><span class="token number">4</span>"</code> 并且更新你的依賴:</p><pre class=" language-php"><code class=" language-php">composer update</code></pre><p><a name="old-versions"></a></p><h2><a href="#old-versions">歷史版本</a></h2><p>你可以通過添加以下配置到你的 <code class=" language-php">Homestead<span class="token punctuation">.</span>yaml</code> 文件來方便的覆蓋 Homestead 使用的 box 版本</p><pre class=" language-php"><code class=" language-php">version<span class="token punctuation">:</span> <span class="token number">0.6</span><span class="token punctuation">.</span><span class="token number">0</span></code></pre><p>例如:</p><pre class=" language-php"><code class=" language-php">box<span class="token punctuation">:</span> laravel<span class="token operator">/</span>homestead version<span class="token punctuation">:</span> <span class="token number">0.6</span><span class="token punctuation">.</span><span class="token number">0</span> ip<span class="token punctuation">:</span> <span class="token string">"192.168.20.20"</span> memory<span class="token punctuation">:</span> <span class="token number">2048</span> cpus<span class="token punctuation">:</span> <span class="token number">4</span> provider<span class="token punctuation">:</span> virtualbox</code></pre><p>當你使用舊版本的 box 時,你需要確保 Homestead 源代碼的版本與之對應,下面的圖表展示了支持的 box 版本,以及與之對應的 Homestead 的源代碼版本和 box 所提供的 PHP 版本:</p><table><thead><tr><th></th><th>Homestead Version</th><th>Box Version</th></tr></thead><tbody><tr><td>PHP 7.0</td><td>3.1.0</td><td>0.6.0</td></tr><tr><td>PHP 7.1</td><td>4.0.0</td><td>1.0.0</td></tr></tbody></table><p><a name="provider-specific-settings"></a></p><h2><a href="#provider-specific-settings">Provider 的特殊設置</a></h2><p><a name="provider-specific-virtualbox"></a></p><h3>VirtualBox</h3><p>Homestead 默認將 <code class=" language-php">natdnshostresolver</code> 設置為 <code class=" language-php">on</code>。這允許 Homestead 使用你的主機系統中的 DNS 設置。如果你想重寫這行為,你可以在你的 <code class=" language-php">Homestead<span class="token punctuation">.</span>yaml</code> 文件中添加下面這幾行:</p><pre class=" language-php"><code class=" language-php">provider<span class="token punctuation">:</span> virtualbox natdnshostresolver<span class="token punctuation">:</span> off</code></pre><h2>譯者署名</h2><table><thead><tr><th>用戶名</th><th>頭像</th><th>職能</th><th>簽名</th></tr></thead><tbody><tr><td><a href="https://laravel-china.org/users/1232">@lybc</a></td><td><img class="avatar-66 rm-style" src="https://dn-phphub.qbox.me/uploads/avatars/1232_1469434413.jpg?imageView2/1/w/100/h/100"></td><td>翻譯</td><td>有用是有趣的前提</td></tr></tbody></table></article>
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看