虚拟机搭建个人LNMP开发环境

下载虚拟机

注意是下载VMware-workstation-Pro 而不是 VMware-workstation-play
我下载的是:VMware-workstation-full-14.1.3-9474260.exe

下载Ubuntu的镜像

注意下载无桌面版的 
中科大地址 http://mirrors.ustc.edu.cn/ubuntu-releases/ubuntu-18.04.1-live-server-amd64.iso

安装步骤

Ubuntu添加远程登录的root账号

Ubuntu中的root帐号默认是被禁用了的

sudo passwd -u root # 创建root用户
sudo passwd root  # 为root账户设置密码 输入两次
su -  # 测试root账号  输入root密码进入终端
vim /etc/ssh/sshd_config  # 找到ssh的配置文件
## 找到 PermitRootLogin yes 添加这一行到对应位置
service ssh restart  # 重启ssh服务

时区调整

tzselect # 选择Asia-->选择China--> Beijing-->然后选1(Yes)
TZ='Asia/Shanghai'
export TZ
## 设置时区永久为上海
ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

自定义Vim配置

cd ~
cp /usr/share/vim/vim80/vimrc_example.vim .vimrc
vim .vimrc


##### 取消backup备份文件,找到如下这行注释
"  set backup       " keep a backup file (restore to previous version)


##### 结尾添加下面

 62 
 63 """"""""""""""""User set"""""""""""""""""""
 64 
 65 " no vim swap file
 66 set noswapfile
 67 set undodir=~/.undodir
 68 
 69 " show line number
 70 set number
 71 
 72 " tab-->4 space
 73 set ts=4
 74 set expandtab
 75 set autoindent

虚拟机共享Windows系统文件夹

虚拟机菜单栏 -> 虚拟机 -> 设置 -> 选项 -> 共享文件夹 -> 总是启用 -> 添加(找到要共享的文件夹) ->确定

上面正常的话不用重启 df -h就看到 /mnt/hgfs 了,ls /mnt/hgfs 发现刚共享的文件夹 我这里是share_file

虚拟机重启自动挂载共享文件夹

注意:虚拟机重启后 /mnt/hgfs找不到对应文件夹了,按如下执行一轮

虚拟机菜单栏 -> 虚拟机 -> 设置 -> 选项 -> 共享文件夹 ->禁用->确定

虚拟机菜单栏 -> 虚拟机 -> 设置 -> 选项 -> 共享文件夹 ->总是启用->确定

当然上面的有两轮操作,而且不是自动挂载,超级麻烦。下面是试了N次,重启N多次成功的方法

apt-get install open-vm-tools
apt-get install open-vm-tools-dkms

# 查看Nginx的用户ID,这里Nginx暂时没安装,安装见后面步骤
# 由于我的共享文件夹是要挂载站点根目录的,所以有这步
ps -ef | grep nginx  
# 查看启动Nginx用户的信息
id www-data  #uid=33 gid=33 

# 不用www-data用户挂载的话可以省略-o和后面的选项,这样就只有当前用户挂载了
vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other,uid=33,gid=33  # 上面查到的
#如果报错 fuse: mountpoint is not empty 那重启机器再执行 
#如果执行没问题 
df -h  #查看挂载情况,然后访问下Nginx配置的站点是否能访问
reboot # 重启服务器

上面确认执行完成后配置开机自动挂载

vim /etc/fstab   # 下面一句加到后面,注意没有井号,以及uid和gid
# .host:/ /mnt/hgfs/  fuse.vmhgfs-fuse    allow_other,uid=33,gid=33   0   0
mount -a  # 一定要测试下,否则重启开不了机
reboot # 重启服务器,然后查看挂载情况
虚拟机网络桥接

如果内网IP富裕的话优先考虑网络桥接的方式

虚拟机关机后找到 虚拟机菜单栏 -> 虚拟机 -> 设置 -> 网络适配器 选择桥接模式

开机进去命令行配置

Ubuntu 18.04的网络管理程序改为netplan了,因此配置方式也需要改。如果按原来的话会遇到 /etc/init.d/networking: No such file or directory 问题

ifconfig -a  # 查看IP  默认网卡为(机器不一样可能会不一致): ens33
vim cat /etc/netplan/50-cloud-init.yaml # 修改网络配置

如果要使用静态IP的话,需要修改为下面的样子:

# network: {config: disabled}
network:
    ethernets:
        ens33:
            addresses: [192.168.1.233/24]  // 前面是虚拟机ip /24 据说是掩码,照着抄
            gateway4: 192.168.1.1  // 网关,跟Windows一样
            dhcp4: no
            dhcp6: no
            nameservers:   // 最好配置一下,非动态获取ip时需要
                addresses: [114.114.114.114, 8.8.8.8]
    version: 2

刷新下网络配置

netplan apply
ping www.baidu.com  # 测试一下

PHP安装

首先更新apt-get源,不更新很多包没有

由于 ubuntu 默认的 php 镜像是 php5.5.9 所以需要添加 php7 镜像

1、备份源文件

cp /etc/apt/sources.list /etc/apt/sources.list.bak # 备份

2、编辑源列表文件

vim /etc/apt/sources.list  # 将

3、将原来的列表删除,添加如下内容(中科大镜像源)

deb http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse

4、更新apt列表

apt-get update

备用: 下面的不一定需要,我之前安装的时候没有先改apt源才找到下面的解决问题

apt-get update
apt-get install -y language-pack-en-base
apt-get install software-properties-common
LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
apt-get update
安装php7.2
#安装php7.2
apt-cache search php7-* #搜索 php modouls
apt-install install -y php7.2 php7.2-cli php7.2-dev php7.2-fpm php7.2-mbstring php7.2-json php7.2-xml php7.2-mysql # 安装自己需要的模块
php-v   #查看版本
php-m   #查看扩展

php -i|grep Configure
#报错 PHP Warning:  Module 'mbstring' already loaded in Unknown on line 0

安装Composer
curl -sS https://getcomposer.org/installer | php
## 报错 PHP Warning:  Module 'mbstring' already loaded in Unknown on line 0
# 因为之前我没更新源找不到 php7.2-mbstring 模块,自己改了php.ini测试忘记改回来了
# 知道问题就把php.ini上修改的还原
php -i|grep Configure  # 没有报警了

php composer.phar  # 检查 Composer 是否正常工作 这将返回给你一个可执行的命令列表
mv composer.phar /usr/local/bin/composer # composer命令加到全局
composer config -g repo.packagist composer https://packagist.phpcomposer.com  # 使用中国区镜像

安装Nginx

有源码安装和apt源安装两种安装方式 参考: https://www.cnblogs.com/EasonJim/p/7806879.html

apt安装

/usr/sbin/nginx:主程序

/etc/nginx:存放配置文件

/usr/share/nginx:存放静态文件

/var/log/nginx:存放日志

相关命令
service nginx {start|stop|restart|reload|force-reload|status|configtest|rotate|upgrade}

虚拟站点配置
vim /etc/nginx/sites-available/www.mysite.com

##############输入内容如下#####################
server {
    listen 80;
    server_name www.mysite.com;
    root /mnt/hgfs/share_file/mysites/www;  # 自己对应的目录

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.html index.htm index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        # 这句得有,否则显示空白页
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        # 找到对应的php7.2-fpm.sock路径
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}
##########www.mysite.com END####################

# 创建软链接
ln -s /etc/nginx/sites-available/www.mysite.com /etc/nginx/sites-enabled/www.mysite.com

/usr/sbin/nginx -t     #修改配置文件后
service nginx reload   #重启

最后修改windows的host文件

Docker安装

还有Docker安装方式稍复杂,以后研究

安装Mysql

sudo apt-get install mysql-server-5.7 # 安装5.7版本

sudo netstat -tap | grep mysql #可以看到有进程

mysql -u root -p # 可以进入mysql命令行

# 下面两个可以不安装
apt-get isntall mysql-client
sudo apt-get install libmysqlclient-dev
配置mysql的root密码和远程访问权限

Mysql 5.7版本安全变了
配置文件 /etc/mysql/my.cnf
在配置文件中增加
[mysqld]

port=3306
bind-address=0.0.0.0

cat /etc/mysql/debian.cnf # 查看root用户的初始密码 

# mysql -uroot -p 能进去,但改不了root的密码方式
mysql -udebian-sys-maint -pISU7sh43XuyX4n78 # 密码是上面看到的,每个机器不同

mysql> use mysql;
mysql> select host, user, plugin,authentication_string from user;
mysql> UPDATE mysql.user SET authentication_string=PASSWORD('root'), PLUGIN='mysql_native_password' WHERE USER='root';
mysql> select host, user, plugin,authentication_string from user; # 看到root用户的plugin方式变了
mysql> flush privileges;
mysql> exit;
# 重启mysql服务
service mysql restart 

安装Redis

安装Redis服务端
apt-get install redis-server

redis-cli # 进入Redis命令行表示安装成功

配置文件地址 /etc/redis/redis.conf

安装Redis PHP扩展
wget https://github.com/phpredis/phpredis/archive/develop.zip # 下载源码安装包
apt install zip          # 安装zip命令
unzip develop.zip        # 解压
cd phpredis-develop/     # 进入文件夹
phpize   # 生成configure配置文件。 前面安装 php7.2-dev模块,正好这里有用
./configure      # 很多文章这里有--with-php-config参数,我们不用一样可以
make
make install  # 输出最后一句是 Installing shared extensions:/usr/lib/php/20170718/
ll /usr/lib/php/20170718/   # 检查下目录下面是不是很多.so文件,包括redis.so

ll /etc/php/7.2/mods-available/   # 新版本php添加模块不用改php.ini,在这里建一个对应的
cp /etc/php/7.2/mods-available/sockets.ini /etc/php/7.2/mods-available/redis.ini
vim /etc/php/7.2/mods-available/redis.ini # 参照修改为 redis.so
cd /etc/php/7.2/fpm/conf.d/  
ln -s /etc/php/7.2/mods-available/redis.ini 20-redis.ini   #fpm模式加载配置
cd /etc/php/7.2/cli/conf.d/
ln -s /etc/php/7.2/mods-available/redis.ini 20-redis.ini   #cli模式加载配置 
php -m     # 查看是否有redis模块
service php7.2-fpm reload    # 重启php-fpm服务
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值