4

有很多站长在 VPS 上部署环境时,都通过 LNMP 一键安装包 安装 LNMP 环境。简单方便,不需要了解其中的各种细节,装好就能直接用了。

当然,如果想在 vagrant 里安装 lnmp 进行本地调试的时候,就又会遇到了一些坑了。所以,我这里列出几个常见的问题的解决方法,以 host-only 的 vagrant 来讲解(IP: 192.168.33.10)。

安装 LNMP

启动 vagrant 后,使用 vagrant ssh 登录虚拟机。执行下面的命令进行安装(以 1.3 版本为例):

wget -c http://soft.vpser.net/lnmp/lnmp1.3-full.tar.gz && tar zxf lnmp1.3-full.tar.gz && cd lnmp1.3-full && ./install.sh lnmp

安装完毕后,默认的网站文件地址都在 /home/wwwroot/ 下。如果直接访问 192.168.33.10,那么显示的是 /home/wwwroot/default 目录。

修改挂载目录及权限

回到宿主机编辑 Vagrantfile 文件,按下面的方式增加:

# config.vm.synced_folder "../data", "/vagrant_data"  # 这行注释掉
# 改为
  config.vm.synced_folder "../dev", "/home/wwwroot/dev",
    owner: "www", group: "www"

参数解释:

  • ../dev 是宿主机里需要挂载的目录;

  • /home/wwwroot/dev 是虚拟机里的访问路径;

  • 由于 lnmp 的特殊定义,所以我们需要把 ownergroup 权限都赋予 www,否则会出现访问为 404 或者 403 Forbidden 之类的错误。

配置好后 vagrant load 一下,此时在虚拟机的 /home/wwwroot/dev 里就能看到我们本地的 ../dev 里文件了,后面我们将要安装的 typecho 位于 ../dev/typecho 下,那么在虚拟机里就是 /home/wwwroot/dev/typecho 了。

添加虚拟主机

根据 教程,我们添加一个域名为 typecho.local 的网站。然后来到 /usr/local/nginx/conf/vhost/ 目录,可以看到名为 typecho.local.conf 的文件,这就是刚刚创建的网站的 nginx 配置。打开这个网站,可以看到 nginx 指向的网站目录:

#root  /home/wwwroot/typecho.local;  # 将这条注释掉
root  /home/wwwroot/dev/typecho;  # 改为 typecho 在虚拟机的位置 

重启 nginx:

sudo nginx -t  # 检测 conf 文件是否正确
sudo service nginx restart

安装其他程序

当然,记得修改 hosts 把 typecho.local 指向 192.168.33.10 然后访问 http://typecho.local,是不是看到了熟悉的安装界面呢,请按你的方式进行下一步吧。

其他插曲:

lnmp 1.3 版本和之前不同,默认安装 typecho 访问页面会出现 404 的情况,只需要将对刚才的 typecho.local.conf 文件里的 include enable-php.conf; 改为 include enable-php-pathinfo.conf; 即可。


fenbox
6.8k 声望933 粉丝

主业设计,副业写代码