VMware虚拟机安装ubuntu16.04LTS系统并搭建LAMP环境,并在宿机上运行TP5项目

VMware虚拟机版本:VMware-workstation-full-12.5.7.20721
ubuntu系统版本:16.04LTS
宿机Windows系统为:Windows7 64位
PHP版本: PHP 7.0.30-0ubuntu0.16.04.1 (cli) ( NTS )
apache版本:Apache/2.4.18 (Ubuntu)
mysql版本:mysql Ver 14.14 Distrib 5.7.22, for Linux (x86_64)

在 windows 中安装 vmware 虚拟机,以及在虚拟机中安装 ubuntu 系统,文末有参考文献

接下来直接详细介绍在ubuntu系统上搭建LAMP环境

  • 基本设置

    1. 设置root密码

      sudo passwd
      //设置当前用户密码直接使用: sudo passwd
      //比如设置alex用户密码: sudo passwd alex
    2. 切换到root账户

      //切换到root账户可以直接使用命令: su 或者 su - 或者 su root
      //切换到普通用户: su 用户名 比如切换到alex账户: su alex
      //使用 exit 直接退出到当前账户
    3. 更新源(更新系统)

      sudo apt-get update
      
      //源保存的文件为:/etc/apt/sources.list
    • 安装常用软件

      1. 安装SSH(不安装SSH无法使用shell软件远程连接)
      sudo apt-get install openssh-server
      
      //查看状态: service ssh status/start/stop/restart
      //或:/etc/init.d/ssh status/start/stop/retsrt
      //实际上,service命令就是执行/etc/init.d脚本,二者功能是一样的
    1. 安装Vim编辑器

      sudo apt-get install vim
    2. 安装Tree

      sudo apt-get install tree
    3. 安装Git

      sudo apt-get install git
    • 搭建 LAMP

      1. 安装 Apache2
    sudo apt-get install apache2

测试: 使用 ubuntu 系统自带火狐浏览器访问 http://ubuntu的IP,出现It Works!网页则算安装成功!

查看 ubuntu 系统自身ip地址:

 ifconfig 或者 ifconfig -a

查看 Apache2 状态:

 service apache2 status/start/stop/restart

Web目录:

 /var/www

安装目录:

 /etc/apache2/

全局配置:

 /etc/apache2/apache2.conf

监听端口:

 /etc/apache2/ports.conf

虚拟主机:

 /etc/apache2/sites-enabled/000-default.conf

  1. 安装 Mysql
    sudo apt-get install mysql-server mysql-client

    测试:mysql -u root -p

查看 Mysql 状态:

service mysql status/start/stop/retart

查看监听端口的情况:

netstat -tunpl 
或 netstat -tap

  1. 安装 PHP7.0

    sudo apt-get install php7.0
  2. 安装 php 常用扩展

    sudo apt-get install php7.0-mcrypt php7.0-gd php7.0-curl

测试: php -v

  1. 安装其他模块
    
    sudo apt-get install libapache2-mod-php7.0

sudo apt-get install php7.0-mysql

==此时需要重启apache2和mysql :==

service apache2 restart

service mysql restart

测试 Apache能否解析 PHP

vim /var/www/html/phpinfo.php

文件中写: <?php echo phpinfo(); ?>

浏览器访问: http://ubuntu地址/phpinfo.php

---

5. 修改权限项目文件夹为最大权限

sudo chmod 777 /var/www

---

6. 安装 phpMyAdmin

sudo apt-get install phpmyadmin

安装:选择 apache2 ,点击确定。下一步选这是要配置数据库,并输入密码。

创建phpMyAdmin快捷方式:

sudo ln -s /usr/share/phpmyadmin /var/www/html


启用Apache mod_rewrite模块:

sudo a2enmod rewrite

==此时需要重启服务:==

service php7.0-fpm restart

service apache2 restart

测试:浏览器访问:http://ubuntu IP地址/phpmyadmin

---

### 此时在虚拟机上面已经可以使用 ubuntu 系统跑 php 项目了,但是我们的需求是在宿机 windows 系统上面编写代码,只是想在 ubuntu 系统上面运行 php 项目而已。

- #### 宿机上使用 Navicat 连接 VMware 虚拟机 ubuntu 系统中的 mysql数据库

1. 找到 mysql 的配置文件 /etc/mysql/mysql.conf.d

使用 vim 编辑器打开 mysqld.cnf 配置文件
注释掉

43 # bind-address = 127.0.0.1


2. 修改数据库里面的用户和权限
mysql> grant all privileges on *.* to  alex@"%" identified by "qazwsx" with grant option;

//grant 是授权命令,其中 alex 是我们连接用的用户名、"qazwsx"是连接密码,用户名后面的 "%" 通用符表示允许各 host 操作。

// 在Mysql安装中,默认的有root用户,但是root用户的默认连接Host也是localhost或者127.0.0.1,
// 也就是限制了root用户作为本地连接使用;我个人来说,建立新账户也是安全性和更加方便。

//下面是实操例子

alex@alex-virtual-machine:/etc/mysql/mysql.conf.d$ vim mysqld.cnf
alex@alex-virtual-machine:/etc/mysql/mysql.conf.d$ pwd
/etc/mysql/mysql.conf.d

// 连接数据库
alex@alex-virtual-machine:/etc/mysql/mysql.conf.d$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.22-0ubuntu0.16.04.1 (Ubuntu)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| cakebymyself       |
| mysql              |
| performance_schema |
| phpmyadmin         |
| sys                |
+--------------------+
6 rows in set (0.01 sec)

// 查看 mysql 数据库
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

// 查询 mysql 用户表可以发现 用户 alex 的 host 允许各种 host 操作
mysql> select host,user from user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| %         | alex             |
| localhost | debian-sys-maint |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | phpmyadmin       |
| localhost | root             |
+-----------+------------------+
6 rows in set (0.00 sec)

```
  1. 刷新权限
    // 刷新权限(这一步必须要做!)
    mysql> flush privileges;
    // 刷新之后可再次查询 user 表

  • 将 ubuntu 关机,并创建共享文件夹

    //具体相关方法请自行百度,这里只告诉创建共享文件夹目录为:
    
    /mnt/hgfs
    
    // 将自己 windows 上面的项目关联到共享文件夹

  • 修改 apache 配置

    1. 修改 apache2.conf 配置文件
      sudo vim /etc/apache2/apache2.conf 

      查找关键词 /Directory 找到这一行,将 /var/www 修改成自己项目文件==绝对路径==,比如我的文件目录在 /var/hgfs/www 并将 AllowOverride None 修改为 AllowOverride All

<Directory /var/www>

Options Indexes FollowSymLinks

AllowOverride None

Require all granted

</Directory>

```
153 <Directory />
154         Options FollowSymLinks
155         AllowOverride None
156         Require all denied
157 </Directory>
158 
159 <Directory /usr/share>
160         AllowOverride None
161         Require all granted
162 </Directory>
163  //修改下面这一行
164 <Directory /mnt/hgfs/www>
165         Options Indexes FollowSymLinks
166         AllowOverride All
167         Require all granted
168 </Directory>
169 
170 #<Directory /srv/>
171 #       Options Indexes FollowSymLinks
172 #       AllowOverride None
173 #       Require all granted
174 #</Directory>

```
  1. 修改 000-default.conf 配置文件

(其实可修改可不修改,自己测试没有修改也可以,但还是建议修改)

```
sudo vim /etc/apache2/sites-enabled/000-default.conf
```

查找关键字 /DocumentRoot 找到这一行,将 /var/www 修改成自己项目文件==绝对路径==,比如我的文件目录在 /var/hgfs/www

ServerAdmin webmaster@localhost

DocumentRoot /var/www

```
    //本人配置文件如下
 11         ServerAdmin webmaster@localhost
 12         DocumentRoot /mnt/hgfs/www
```
  1. 在Apache安装目录的sites-available文件夹下为每个项目加添配置文件。==(Apache2.4的项目配置文件名要以.conf结尾)==

    sudo vim /etc/apache2/sites-available/cake.conf
    // 我这个项目设置的配置文件是cake.conf 
    // 如果还有其他项目都可以按照自己喜欢来写配置文件的名称

配置文件如下:

```
<VirtualHost *:80>
  ServerName demo.alex.com //项目域名
  ServerAlias test.alex.com //这个可以没有
  ServerAlias test1.alex.com //也可以设置多个
  DocumentRoot /superdata/www/html/demo.alex.com //项目根目录
  ErrorLog "/var/log/apache2/error_log"
  CustomLog "/var/log/apache2/access_log" common

  <Directory "/superdata/www/html/demo.alex.com"> //项目根目录
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>
```

本人项目配置文件如下:(配置文件中一定不能含有中文,不然重启 apache 会失败!)

```
<VirtualHost *:80>
  ServerName cake.ubuntu.com
  DocumentRoot /mnt/hgfs/www/tp
  ErrorLog "/var/log/apache2/cake.ubuntu.com_error_log"
  CustomLog "/var/log/apache2/cake.ubuntu.com_access_log" common

  <Directory "/mnt/hgfs/www/tp">
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>
```
  1. 为 sites-available 目录下的配置文件在 sites-enabled 目录下建立软链接

    sudo ln -s /etc/apache2/sites-available/cake.conf /etc/apache2/sites-enabled/cake.conf
  2. 重启 apache

    sudo /etc/init.d/apache2 restart
    或者
    sudo service apache2 restart
  3. 在 windows 系统中添加 hosts 配置

    // hosts 文件目录
    C:\Windows\System32\drivers\etc\hosts
    
    // 添加内容为: ubuntu的IP地址 自己的项目域名,比如我的本地添加为:
    192.168.137.135 cake.ubuntu.com

windows 系统下浏览器访问 自己写的项目域名 cake.ubuntu.com 大功告成!

项目中将数据库连接修改为虚拟机的数据库连接。等细节就不再一一赘述了。

文献参考:

VMware虚拟机安装ubuntu系统可以参考:https://blog.csdn.net/iqmae68024/article/details/54772918
ubuntu16.04 搭建 LAMP 开发环境:https://www.linuxidc.com/Linux/2016-10/136327.htm
宿主机 Navicat 连接VMware Ubuntu 虚拟机 的MySQL 实现方法:https://blog.csdn.net/qq_34256348/article/details/78358678
使用Navicat for Mysql连接装在虚拟机Ubuntu16.04上的mysql服务器 https://blog.csdn.net/w410589502/article/details/51767212
Apache2.4项目配置PHP/TP项目方法 https://my.oschina.net/laifuzi/blog/850252
Linux(Ubuntu)下PHP开发环境搭建 https://www.cnblogs.com/ljh-dm/p/6593816.html