下载虚拟机
注意是下载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-get 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
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 # 没有报警了
service php7.2-fpm start # 启动php-fpm服务
安装Composer
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服务