windows下簡單安裝phpstudy 可以參考 http://phpstudy.php.cn/
mac下簡單安裝mamp 以參考 https://www.mamp.info/en/
建議使用:
homestead 跨平臺操作
[TOC]
## homestead for Windows or Mac
Laravel 致力于讓整個 PHP 開發體驗變得愉快, 包括你的本地開發環境。 Vagrant 提供了一種簡單,優雅的方式來管理和配置虛擬機。 Laravel Homestead 是一個官方預封裝的 Vagrant box,它為你提供了一個完美的開發環境,而無需在本地機器安裝 PHP 、Web 服務器和其他服務器軟件。不用擔心會搞亂你的操作系統!Vagrant boxes 是一次性的。如果出現問題,你可以在幾分鐘內銷毀并創建 Box! Homestead 可以運行在任何 Windows,Mac,或 Linux 系統,它包括了 Nginx web 服務器, PHP 7.2,PHP 7.1,PHP 7.0,PHP 5.6, MySQL,PostgreSQL,Redis,Memcached, Node,以及開發 Laravel 應用程序所需要的東西。
以下代碼都是在windows 使用 git for windows 命令行工具操作的
## VirtualBox
https://www.virtualbox.org/ VirtualBox 是 Oracle 公司的開源虛擬機軟件。VirtualBox 號稱是最強的免費虛擬機軟件,它不僅功能齊全,而且性能也很優異!VirtualBox 支持大部分流行的系統,如:Mac, Windows, Linux 等。
## Vagrant (下載地址:https://www.vagrantup.com/downloads.html)
Vagrant by HashiCorp Vagrant 是用來管理虛擬機的工具,支持當前主流的虛擬機系統如 VirtualBox、VMware、AWS 等。Vagrant 的主要作用是提供一個可配置、可移植和復用的軟件環境。Vagrant 讓你通過編寫一個 Vagrantfile 文件來控制虛擬機的啟動、虛擬機網絡環境的配置、虛擬機與主機間的文件共享,以及啟動后自動執行一些配置腳本,如自動執行一個 Shell Script 來安裝一些必備的開發工具,如安裝配置MySQL、PHP,甚至是自動配置 Nginx 站點。這意味著,在一個多人開發的項目中,你只需要同步 Vagrantfile 文件,就可以保證參與項目的每個人各自的機器上擁有一致的開發環境。 可以在下面網站上搜索需要的vagrant box https://app.vagrantup.com/boxes/search
## Homestead box
下載地址:https://app.vagrantup.com/laravel/boxes/homestead/versions/6.1.0/providers/virtualbox.box
Homestead是一個官方預封裝的 Vagrant box,它為你提供了一個完美的開發環境,而無需在本地機器安裝 PHP 、Web 服務器和其他服務器軟件。不用擔心會搞亂你的操作系統!Vagrant boxes 是一次性的。如果出現問題,你可以在幾分鐘內銷毀并創建 Box!
內置軟件:Ubuntu 16.04、Git、PHP 7.2、PHP 7.1、Nginx、Apache (Optional)、MySQL ……
在線安裝 Homestead Vagrant Box,這樣安裝下載會非常慢,可以使用第二種本地文件安裝方式
vagrant box add laravel/homestead
本地文件安裝 先下載 離線 homestead.box ,然后執行
vagrant box add laravel/homestead d:/code/homestead.box //windows
vagrant box add laravel/homestead ~/Desktop/homesteadvirtual5.2.box //mac
安裝的box 鏡像儲存的位置:以我電腦為例在 ~/.vagrant.d/boxes //windows
安裝的box 鏡像儲存的位置:以我電腦為例在 /Users/xj/.vagrant.d/boxes //mac
### 安裝 Homestead 管理腳本
#clone管理腳本
git clone https://github.com/laravel/homestead.git ~/Homestead
cd Homestead
#因為master不穩定所以切到穩定tag
git checkout v7.3.0
#創建 Homestead.yaml 配置文件
./init.bat //windows
bash init.sh //mac
如果是本地安裝的 homestead.box 版本為0,所以需要修改下面步驟生成的配置文件 /Users/xj/Homestead/scripts/homestead.rb 以下內容
config.vm.box_version = settings["version"] ||= ">= 0"
### SSH 秘鑰登錄
用于實現 SSH 免密碼登錄 修改 Homestead.yaml 文件以下內容:
keys:
- ~/.ssh/id_rsa
- ~/.ssh/id_rsa.pub
### 生成 key
ssh-keygen -t rsa -C "812936214@qq.com"
#后面一真按enter鍵,設置密碼
### 配置共享文件夾
Homestead.yaml 文件的 folders 屬性里列出所有與 Homestead 環境共享的文件夾。這些文件夾中的文件若有變更,它們會保持本地機器與 Homestead 環境之間同步。你可以根據需要配置多個共享文件夾:
folders:
- map: d:/code //windows
- map: ~/code //mac
to: /home/vagrant/Code
# map 對應的是我們本機的文件夾
* to 對應的是 Homestead 上的文件夾
### vagrant命令
#啟動 如果加上 --provision 選項那么添加的新站點會發布到虛擬機上。
cd ~/Homestead && vagrant up
#關閉
vagrant halt
#通過 SSH 登錄 vagrant(需要先啟動 vagrant)
vagrant ssh
#查看目前安裝的box列表
vagrant box list
#刪除box鏡像
vagrant box remove laravel/homestead
#查看當前 Homestead 虛擬機的狀態。
vagrant status
### 通過 SSH 連接
這樣就可以登錄的 homestead 虛擬主機了,此地可以查看上面定義的本地目錄與虛擬機目錄同步的情況
vagrant ssh
### 數據庫
要從主機的數據庫客戶端連接到 MySQL,就連接到 127.0.0.1和端口 33060 (MySQL) 。賬號密碼分別是 homestead/secret。
PHP程序連接(虛擬機中連接)端口為 3306
### 全局命令
如果我們想在任何目錄都可以執行 vagrant 命令,需要進行以下設置 修改 ~/.bash_profile 文件內容,如果安裝了 zsh 需要修改 ~/.zshrc文件
function homestead() {
( cd ~/Homestead && vagrant $* )
}
這樣我們就可以使用 homestead up 等方式執行了
- 0、php安裝
- 1、選擇PHP作為首選后端語言的原因
- 2、PHP基本語法
- 3、PHP中變量和常量的區別
- 4、PHP中單引號和雙引號的區別
- 5、PHP檢測數據類型的幾種方式
- 6、PHP數據類型轉換
- 7、return、break、continue的區別
- 8、PHP代碼重用
- 9、字符串移除或添加函數
- 10、PHP中字符串大小寫切換以及翻轉和加密
- 11、PHP字符串截取和截取函數
- 12、PHP字符串替換和比較函數
- 13、PHP字符串url解析和實體轉換
- 14、addslashes在預定義字符串前添加反斜杠
- 15、PHP中的數組基本概念
- 16、數組函數implode、explode、in_array、each、list
- 17、PHP數組函數(count、reset、end、next、current、key)
- 18、ZendStudio軟件破解安裝包免費下載
- 19、【圖文】ZendStudio漢化方法
- 20、數組函數in_array、array_search、array_change_key_case、array_chu
- 21、關閉PHP提示的方法(運行出現Notice : Use of undefined constant 的完美解決方案
- 22、PHP數組函數(array_diff_ukey、array_diff_uassoc、array_intersect
- 23、PHP數組函數(array_fill、array_filter、array_flip、array_key_exis
- 24、PHP數組去重及向前向后刪除元素的函數
- 25、PHP數組函數(array_map、array_walk、array_walk_recursive)
- 26、PHP數組函數(compact、extract)
- 27、PHP數組函數(array_merge、array_merge_recursive)
- 28、PHP數組函數(range、array_count_values、array_product)
- 29、PHP數組函數(array_reduce、array_slice、array_splice、array_sum)
- 30、PHP數組排序函數總結
- 31、PHP中面向對象的基本概念及定義對象的方法
- 32、PHP創建對象與構造函數
- 33、PHP對象的釋放
- 34、PHP面向對象的特性(抽象、封裝、繼承、多態)
- 35、PHP面向對象的public、private、protected之間的區別
- 36、PHP面向對象中的final和const的用法
- 37、PHP面向對象的static關鍵字
- 38、PHP中的單例模式
- 39、$this、self、parent詳解
- 40、PHP中面向對象的抽象類和抽象方法
- 41、PHP面向對象中的接口interface
- 42、PHP面向對象中的魔術方法
- 43、面向對象方法get_object_vars、is_subclass_of、interface_exists
- 44、PHP中的數學函數方法總結
- 45、PHP文件處理disk_total_space、disk_free_space、dirname、file_exis
- 46、PHP目錄操作rename和scandir
- 47、PHP操作目錄opendir、readdir、glob
- 48、PHP打開fopen、讀取fread、寫入文件fwrite
- 49、PHP文件處理file_get_contents、file_put_contents、fgetc、fgets、fg
- 50、PHP截取字符串出現亂碼的解決方法(UTF8和GBK)
- 51、PHP文件內容分頁操作,避免亂碼
- 52、PHP文件操作函數file、set_include_path、copy
- 53、PHP文件操作函數filemtime、filectime、fileatime、touch
- 54、PHP文件操作指針函數feof、ftell、fseek、rewind、fpassthru
- 55、PHP文件操作pathinfo、realpath、flock、tempnam、tmpfile
- 56、設置php.ini配置實現表單文件上傳流程
- 57、PHP將上傳到臨時文件夾的文件移動到服務器指定文件夾內
- 58、PHP+input表單實現多文件上傳
- 59、PHP通過超鏈接實現文件下載
- 60、發送header文件頭信息實現文件下載
- 61、PHP中的日期時間_時區時間戳函數使用
- 62、PHP操作COOKIE緩沖區影響COOKIE傳遞方式
- 63、PHP中SESSION定義、建立、刪除方式
- 64、PHP.INI配置文件中關于session的設置
- 65、HP中Session緩存的概念與用法
- 66、PHP自定義Session處理機制
- 67、通過MYSQL數據庫操作Session會話完整源碼類
- 68、PHP連接數據庫實現分頁代碼
- 69、HTTP緩存實現原理詳解
- 70、PHP連接數據庫實現搜索+分頁功能
- 71、PHP圖像處理之建立畫布填充顏色、打開不同圖像類型處理
- 72、PHP顏色或圖像填充及不同填充方式
- 73、PHP圖像處理之畫線&定義線樣式&寬度&風格&筆刷
- 74、PHP圖像處理:繪制色素及矩形圖
- 75、PHP圖像處理之畫圓、弧線、網站餅狀統計圖繪制
- 76、PHP圖像處理之繪制多邊行及文字繪制
- 77、PHP 圖像處理之獲得文字寬高屬性&圖片水印函數功能
- 78、PHP生成圖片驗證碼demo【OOP面向對象版本】
- 79、PHP圖像處理 圖像處理之處理文字及獲得文字尺寸屬性,imagecopymerge imagecop
- 80、替換用戶輸入的QQ表情
- 81、PHP封裝MYSQL數據庫操作類源碼
- 82、PHP與XML技術結合使用解析