Windows 下搭建 lnmp 环境

安装 git

  1. 直接在 git 官网下载安装即可。
    准备工作
  2. 下载 Vagrant 并安装
  3. 下载 VirtualBox 并安装
  4. 下载 ubuntu18.04 server
  5. 将 ubuntu 放在你的项目目录,打开 git bash ,cd 到你的项目目录
  6. 输入 vagrant box add lnmp xenial-server-cloudimg-amd64-vagrant.box
看到提示 box:Successfully added box for 'virtualbox' 即安装成功

初始化 box 输入 vagrant init lnmp

配置 vagrantfile 文件,启动虚拟机

  vim vagrantfile 
  添加 config.vm.network "public_netword", ip:"your-ip"

运行 vagrant up 启动虚拟机

如果提示 powershell 相关问题,请下载 powershell 或者更新 powershell 到最新版本

运行 vagrant ssh 进入虚拟机

虚拟机下的 vagrant 的目录会映射到你项目目录,如果你想修改映射目录路径,先进入虚拟机后 修改 /etc/ssh/sshd_config 文件
PasswordAuthentication=yes
退出虚拟机 ,修改 Vgrantfile
config.vm.synced_folder "~/lnmp", "/home/vagrant"
前面是本地路径,后面是虚拟机路径
重启虚拟机 登录密码vagrant

安装 php

安装 php7.2
sudo apt-get install -y php7.2

php -v 查看是否安装成功

安装 PHP7.2 相关扩展

sudo apt-get install -y php7.2-fpm php7.2-mysql php7.2-curl php7.2-json php7.2-mbstring php7.2-xml php7.2-intl php7.2-zip php7.2-gd php7.2-opcache php7.2-common php7.2-cli

配置 php.ini 和设置 PHP-FPM 自启动

sudo vim /etc/php/7.2/fpm/php.ini

添加 cgi.fix_pathinfo=0

设置 fpm 自启动
sudo systemctl start php7.2-fpm

重启服务
sudo service php7.2-fpm restart

查看 php-fpm 是否安装成功

netstat -pl | grep php7.2-fpm

附赠卸载 php 相关命令

# 删除php的相关包及配置
sudo apt-get autoremove php7*

# 删除关联
sudo find /etc -name "*php*" |xargs rm -rf

# 清除dept列表
sudo apt purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`

# 检查是否卸载干净(无返回就是卸载完成)
dpkg -l | grep php7.0

安装 composer

1. sudo  wget https://getcomposer.org/download/1.10.5/composer.phar -O /usr/local/bin/composer
2. sudo chmod a+x /usr/local/bin/composer
3. 将 composer 换至国内镜像
4. composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
5. 下载 laravel 项目 composer create-project --prefer-dist laravel/laravel blog "6.*"

安装 mysql

ubuntu18.04 默认安装的是 mysql5.7 版本

sudo apt-get install mysql-server mysql-client

安装完成后 mysql -V 查看版本 

设置 mysql 自动
sudo systemctl start mysql

安装途中如果需要设置 root 密码,直接设置。我安装的时候没有设置,需要修改 root 密码

查看系统默认提供的账户和密码

sudo vim /etc/mysql/debian.cnf

[client]
host     = localhost
user     = debian-sys-maint
password = hrhSN8SjW2k80Qij
socket   = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host     = localhost
user     = debian-sys-maint
password = hrhSN8SjW2k80Qij
socket   = /var/run/mysqld/mysqld.sock

使用 client 中的 user 和 password 登录 mysql

use mysql

更新密码
update user set authentication_string = password('123456'), password_expired = 'N', password_last_changed = now() where user = 'root';

更新root用户的plugin字段
date user set plugin='mysql_native_password' where user = 'root';

刷新权限
flush privileges;

退出mysql用 root 登录

使用 Navicat 连接数据库

主机: your-ip
用户名:root
密码: your password
如果提示 Connection refused
修改 mysql 配置
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
注释 bind-address = 127.0.0.1
修改 root 用户远程连接权限,登入 mysql 
grant all privileges on *.* to 'root'@'%' identified by '123456';
刷新权限
FLUSH PRIVILEGES;
重新连接即可

卸载 mysql 相关命令
查看 mysql 依赖
dpkg --list|grep mysql
卸载
sudo apt-get remove mysql-common
sudo apt-get autoremove --purge mysql-server-5.7
清除残留项
dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P
sudo apt-get autoremove --purge mysql-apt-config
再次查看依赖项 
dpkg --list|grep mysql,无输出则表示完全删除

安装 nginx

sudo apt-get -y install nginx

然后运行  nginx -v  查看版本

由于国内的 ubuntu 镜像都自带了 apache2 查看 80 端口是否被占用

sudo netstat -nlpt | grep 8080 端口被占用,可以关闭 apache 服务,也可以卸载服务

卸载 apache 相关命令
sudo apt-get --purge remove apache2
sudo apt-get --purge remove apache2.2-common
sudo apt-get autoremove

# 找到没有删除掉的配置文件,一并删除
sudo find /etc -name "*apache*" -exec rm -rf {} \;

设置 nginx 自启动
sudo systemctl start nginx

修改 nginx 配置
sudo vim /etc/nginx/sites-available/default
server {
        #listen 80 default_server;
        listen 80;
        #listen [::]:80 default_server ipv6only=on;

        root /var/www/your-project-name/public;
        index index.php index.html index.htm;

        # Make site accessible from http://localhost/
        server_name lufficc.com www.lufficc.com;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ /index.php?$query_string;
                # Uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
        }

        location ~ \.php$ {
            include fastcgi_params;
            fastcgi_pass unix:/run/php/php7.2-fpm.sock;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_index index.php;
        }
}

软连接
sudo ln -s /etc/nginx/sites-available/default   /etc/nginx/sites-enabled/
重启 nginx

至此,环境搭建完毕

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!