Homestead是一个官方预封装的Vagrant box,它为你提供了一个完美的开发环境,你无需在本地机器安装PHP、Web服务器和其他服务器软件。Homestead默认配置了Laravel开发所需的所有服务和工具,包括PHP、MySQL、Redis、Memcached等。使用Homestead,你可以在本地机器上模拟一个与生产环境相同的环境,以便更好地测试你的应用程序。
Homestead是一个流行的PHP开发环境,它允许您在单个服务器上轻松运行多个PHP项目,本文将详细介绍Homestead的安装、配置和使用过程,帮助您充分利用这个强大的工具。
1. 安装Homestead
我们需要在本地计算机上安装Homestead,请按照以下步骤操作:
1.1 安装Git
Homestead使用Git进行版本控制,因此我们需要先安装Git,请访问https://git-scm.com/downloads 下载并安装适合您操作系统的Git版本。
1.2 创建Homestead虚拟环境
打开终端,导航到您希望创建Homestead项目的目录,然后运行以下命令:
nvm install --lts nvm use --lts nvm alias default lts/
我们将使用Homestead CLI创建一个新的虚拟环境,请运行以下命令:
homestead init
这将在当前目录下创建一个名为“homestead”的新文件夹,其中包含Homestead的所有文件。
1.3 初始化Nginx配置文件
Homestead使用Nginx作为Web服务器,我们需要初始化Nginx配置文件以便Homestead可以正常工作,请运行以下命令:
cp -R ./homestead/provisioning/nginx/conf/nginx.conf /etc/nginx/sites-available/homestead
我们需要创建一个符号链接,以便系统可以找到正确的Nginx配置文件:
ln -s /etc/nginx/sites-available/homestead /etc/nginx/sites-enabled/homestead
重启Nginx服务以应用新的配置:
service nginx restart
1.4 验证安装
我们可以通过访问http://localhost来验证Homestead是否已成功安装,如果您看到一个包含“Welcome to Homestead!”的页面,那么恭喜您,Homestead已成功安装。
2. 配置Homestead
我们需要对Homestead进行一些基本配置,请按照以下步骤操作:
2.1 配置数据库连接信息
Homestead默认使用MySQL数据库,您需要提供数据库的用户名、密码和主机名,请编辑.env
文件(位于“homestead”文件夹中),并添加以下内容:
DB_CONNECTION=mysql2 DB_HOSTNAME=127.0.0.1 DB_ROOT_PASSWORD=secretpasswordheremakesuretouseastronganduniquepassword!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&_______ &&&_______ &&&_______ &&&_______ &&&_______ &&&_______ &&&_______ &&&_______ &&&_______ &&&_______ &&&_______ &&&_______ &&&_______ &&&_______ &&&____________________________************************************************************************************************************************************$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$&&&&&&&&&&&&&&&&&&||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||&____________________________$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"DB_DATABASE="yourdatabasename"DB_USERNAME="yourusername"DB_PASSWORD="yourpassword"HOMESTEAD_USERNAME=" homestead"HOMESTEAD_PASSWORD="secretpasswordheremakesuretouseastronganduniquepassword"PHP_VERSION="7.4"APCu_AUTOLOAD="true"OPCache_Enabled="true"OPCache_RevalidateOnScriptUpdate="false"OPCache_FastCGI="true"XDEBUG_ENABLED="true"XDEBUG_CONFIGURATION="/path/to/your/xdebug.ini"CACHEDRIVER="memcached"MEMCACHED_HOSTS=("localhost" "127.0.0.1")BROADCASTING="socket"QUEUE="database"EMAIL_USE_TLS="true"EMAIL_PORT=587EMAIL_HOST="smtp.gmail.com"EMAIL_AUTH_USERNAME="youremail@gmail.com"EMAIL_AUTH_PASSWORD="yourpasswordheremakesuretouseastronganduniquepassword"MAILER="smtp"FILESYSTEMS["local"]="local"SKIP_PACKAgist=trueSKIP_PACKAGES=("phpunit-mock-objects/phpunit-mock-objects","phpunit/phpunit","laravel/dusk","laravel/tinker","laravel/horizon","laravel/telescope","jenssegers/agent","doctrine/dbal","doctrine/orm","doctrine/inflector","jenssegers/mongodb","jenssegers/adminlte-axios-php","jenssegers/auth","jenssegers/session","barryvdh/laravel-debugbar","laravelcollective/html","laravelvel/installer","laravelvelcollectiveprovidersinstaller","laravelcollectiveprovidersgeneratorsinstaller","laravelcollectiveprovidershelpersinstaller","nunomaduro\\collisiondetection")CACHE="array"SESSION_DRIVER="filesystem"SESSION_LIFETIME=180MINUTESSESSION_CACHE_LIMITER=""SESSION_COOKIE_DOMAIN=""SESSION_COOKIE_PATH="/"SESSION_COOKIE_SECURE=falseQUEUES=("database", "redis", "sync")QUEUES=("database", "redis", "sync")QUEUES=("database", "redis", "sync")QUEUES=("database", "redis", "sync")QUEUES=("database", \ "redis\", \ "sync\")