配置laravel開發環境,vscode開發php項目,寶塔搭建web環境


配置laravel開發環境
1、生成 Homestead Vagrant Box
1.1、下載 VirtualBox 並安裝

1.2、下載 vagrant 並安裝

1.3、獲取 laravel settler(如果要安裝寶塔,就不能安裝laravel環境,有沖突。跳過1.3、1.4、1.5、1.6,執行1.?)

git clone -b v7.0.0 https://github.com/laravel/settler.git laravel-settler

 

1.4、在1.3項目同級目錄下獲取 chef/bento

git clone -b v201808.24.0 https://github.com/chef/bento.git bento

 

1.5、laravel-settler目錄下執行

./bin/copy-to-bento.sh

 

1.6、把 bento/ubuntu/ubuntu-18.04-amd64.json 文件中 scripts/cleanup.sh 替換為 scripts/homestead.sh

 

1.?、安裝寶塔(ubuntu18.04安裝寶塔有異常,所以用16.04版本)。如果安裝 laravel 環境跳過此步驟。

        bento\ubuntu\scripts 目錄下創建 bt.sh,內容如下:

#安裝寶塔面板
#!/usr/bin/env bash

export DEBIAN_FRONTEND=noninteractive

# Update Package List

apt-get update

# Update System Packages
apt-get -y upgrade

# Force Locale

echo "LC_ALL=en_US.UTF-8" >> /etc/default/locale
locale-gen en_US.UTF-8

sudo su root<<'EOF'
echo -e "root\nroot\n" | sudo passwd
cd /root
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh
echo "y" | sudo bash install.sh
EOF

  在 bento/ubuntu/ubuntu-16.04-amd64.json 文件中 scripts/cleanup.sh 前添加 scripts/bt.sh


1.7、下載 Packer

1.8、注冊 packer(我的是拷貝到C:\Program Files\,使用管理員身份打開 cmd

set path_= %Path%
setx "Path" "C:\Program Files\packer\;%path_%" /m 

 

1.9、修改 bento\ubuntu\http\preseed.cfg 文件
archive.ubuntu.com 修改為國內阿里鏡像主機 mirrors.aliyun.com

 

1.10、bento\ubuntu\scripts\homestead.sh文件在apt-add-repository ppa:ondrej/php -y 下面添加

sed -i "s/ppa\.launchpad\.net/launchpad.proxy.ustclug.org/g" /etc/apt/sources.list.d/*.list

 

1.11、bento 目錄下執行(如果安裝的是寶塔步驟,下面的 ubuntu-18.04-amd64.json 換成 ubuntu-16.04-amd64-bt.json)

cd ubuntu
packer build -only=virtualbox-iso ubuntu-18.04-amd64.json

 

1.12、bento\builds 目錄下將生成由1.11執行的ubuntu-18.04.virtualbox.box

參考文件
1、https://github.com/laravel/settler/tree/v7.0.0
2、https://github.com/chef/bento/tree/v201808.24.0

 

 

2、本地方式添加 Homestead Vagrant Box
2.1、在 bento\builds 目錄下執行:

vagrant box add laravel/homestead ubuntu-18.04.virtualbox.box

添加成功之后,一定不要急着執行 vagrant up
2.2、修改版本號
2.2.1、打開c:/users/“登錄賬號”/.vagrant.d/boxes/laravel-VAGRANTSLASH-homestead目錄
a)添加一個名為 metadata_url 的文件
里面只寫上
https://vagrantcloud.com/laravel/homestead
要注意空格什么的也不能有
b)把看到的 0 或 0.0 這個目錄修改為你的 box 版本號,比如這里的就是1.3中的 7.0.0

參考文件
1、https://segmentfault.com/a/1190000008396792

 

 

3、安裝 Homestead
3.1、在1.3項目同級目錄下執行

git clone https://github.com/laravel/homestead.git homestead
cd homestead
// 克隆期望的發行...
git checkout v7.20.0

3.2、在 homestead 目錄中使用 init.bat 命令來創建 Homestead.yaml 配置文件。 
此 Homestead.yaml 文件將被放在 homestead 目錄中
3.3、配置 homestead


參考文件
1、https://laravel-china.org/docs/laravel/5.7/homestead/2245#4820f7

 

 

4、啟動運行環境
4.1、在3.1中homestead目錄下執行 

vagrant up

  

5、創建項目
5.1、進入虛擬機

vagrant ssh

  

5.2、進入你的工作項目目錄執行

composer create-project laravel/laravel 新項目名

  

5.3、等待安裝完成后,在瀏覽器打開3.3項目中配置的 url

參考文件
1、https://bbs.csdn.net/topics/392167230

 

 

6、配置遠程 debug
6.1、登錄虛擬機,查看虛擬機網關
route -n
可看到這里的網關為 10.0.2.2 ,記錄下來


6.2、找到 Xdebug 配置文件 xdebug.ini 的路徑,注意:請先啟用 Xdebug
vagrant@homestead:~$ php --ini | grep 'xdebug'
輸出結果根據實際環境定,我的輸出結果為:
/etc/php/7.2/cli/conf.d/20-xdebug.ini
修改該配置文件
vagrant@homestead:~$ sudo vim /etc/php/7.2/cli/conf.d/20-xdebug.ini
將原配置替換為如下:
zend_extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_host=10.0.2.2 #此處填入剛才獲得的網關
重啟 PHP-FPM 服務
vagrant@homestead:~$ sudo service php7.2-fpm re


6.3、下面操作 vscode
安裝並啟用 PHP Debug 擴展
打開 Debug 面板,添加配置項,就是那個齒輪,點擊后選擇 PHP

{
    "version": "0.2.0",
    "configurations": [
        ...
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "pathMappings": {
            "/home/vagrant/Code": "/home/work/Code" // 此處按實際映射路徑填寫,左邊是虛    擬機web路徑(如/www/wwwroot/****),右邊本機項目路徑(可以用 ${workspaceRoot} 代替)
            },
        "port": 9000
        }
    ]
}                

  

6.4、其他插件
6.4.1、PHP Intelephense 
PHP 代碼自動提示、補全。安裝此插件后,需關閉編輯器本身自帶的代碼提示,否則會重復顯示函數提示。打開“用戶設置"(快捷鍵CMD + ,),將 php.suggest.basic 設置為 false
6.4.2、php cs fixer
PHP 格式化代碼。在插件中心搜索php cs fixer,會出現2個同名的插件,我們這里選擇安裝作者是 junstyle 的php cs fixer。
6.4.3、PHP DocBlocker
代碼注釋補全,在給類、函數寫注釋時,能自動補全。

問題:
1、vagrant 免密登錄失敗
問題:
The private key you're attempting to use with this Vagrant box uses
an unsupported encryption type. The SSH library Vagrant uses does not support
this key type. Please use `ssh-rsa` or `ssh-dss` instead. Note that
sometimes keys in your ssh-agent can interfere with this as well,
so verify the keys are valid there in addition to standard
file paths.
或者
default: Warning: Authentication failure. Retrying...

解決方案:
第一種方式:
在 windows 系統下生產的私鑰、公鑰跟 linux 是不通的,需要到 linux 虛擬機中去生成。
cd /home/vagrant/.ssh
ssh-keygen -t rsa -C "vagrant"
./id_rsa
會在該目錄下生成兩個文件id_rsa 和 id_rsa.pub。將 id_rsa.pub 內容復制粘貼到當前目錄下的 authorized_keys 文件中,
將 id_rsa 內容復制粘貼到 \你的項目目錄\.vagrant\machines\default\virtualbox 目錄下的 private_key 文件中。如果
沒有 private_key 這個文件,就手動創建一個。
第二種方式:
在Vagrantfile配置文件中添加了兩行代碼,使用明文用戶名密碼。
config.ssh.username = "vagrant"
config.ssh.password = "vagrant"
保存
vagrant reload
再禁用上面兩行配置
保存
vagrant reload

2、寶塔面板中添加 mysql 數據庫失敗(我的系統是ubuntu,其他系統參考其他網上文檔修改)
問題:寶塔面板中數據庫管理界面添加數據庫提交時提示:pip install MySQL-python,在 linux 命令行中執行又會報以下錯誤。
_mysql.c:29:20: fatal error: Python.h: No such file or directory
#include "Python.h"
^
compilation terminated.
error: command 'gcc' failed with exit status 1
解決方案:
sudo apt-get install python-dev
sudo pip install MySQL-python

3、

 

其他

目前自己做了幾個盒子。通過命令生成的過程中經常會下載失敗(我改成國內鏡像也是這種情況,不知道是什么原因),所以小伙伴們要有耐心,多嘗試幾次。

1、ubuntu-16.04.virtualbox.box
ubuntu-16.04系統
2、ubuntu-16.04-bt.virtualbox.box
ubuntu-16.04系統、寶塔
3、ubuntu-16.04-bts.virtualbox.box
ubuntu-16.04系統,寶塔,通過寶塔安裝Apache、php、mysql等
4、ubuntu-18.04.virtualbox.box
ubuntu-18.04系統
5、ubuntu-18.04-homestead.virtualbox.box
ubuntu-18.04系統,homestead系列安裝


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM