🦄 2024 独立开发者训练营,一起创业!(早鸟优惠在5天后结束)查看介绍 / 立即报名 →

学习手册:Web 开发环境与服务器生产环境

在你的电脑上,应该有个 Web 开发环境,在上面去开发你想要的网站。完成以后可以把网站迁移到服务器上,在服务器也要搭建一个网站运行的环境,这个服务器上的环境叫生产环境。大部分情况,你也需要自己去搭建这个服务器上的生产环境。你的生产环境要在 Linux 类型的操作系统上搭建,比如 Ubuntu,CentOS ...  所以,尽早熟悉 Linux 系统的基本操作,熟悉在命令行下面去做事。

网站最终要运行在生产环境上,你在本地开发它的时候,最好可以为网站搭建一个跟生产环境相近的环境,比如用同样的操作系统,同样版本的软件,同样的设置等等。建议在本地电脑上安装虚拟机,为虚拟机安装 Linux 类型的操作系统,然后在上面安装和配置运行网站需要的软件,比如 Web 服务器,PHP,数据库等等。想要更好的管理虚拟机,推荐使用 Vagrant 。

放弃用一键安装的东西来搭建本地的开发环境,比如 WAMP,MAMP,XAMPP!暂时放弃在服务器的生产环境上安装管理面板。亲自动手,去搭建这个运行环境。

这个网站运行的环境在本地,还有在服务器上搭建的方法是差不多的,就是去安装一些需要的软件,然后通过修改配置文件来改变这些软件的行为。

目标

  • 学会 Linux 系统下的基本的命令行工具
  • 明白 Linux 系统的权限管理
  • 会用 Vagrant 管理在本地的虚拟机
  • 在 Linux 系统上搭建可以运行 PHP 应用的环境

搭建开发环境

流程

  1. 安装 Vagrant 与 Virtualbox
  2. 添加 Box (虚拟机镜像)
  3. 为项目初始化,指定 Box ,配置网络,启动 Box
  4. SSH 连接到 Box
  5. 添加仓库
  6. 安装 Web 服务器
  7. 安装 PHP
  8. 安装数据库

试着去配置一个这样的本地开发环境

在视频里安装的软件,版本可能会比现在要低,所以,注意看视频里介绍的方法,然后用这些方法试着去配置一个下面这样的开发环境:

  • 虚拟机的操作系统是 CentOS 7 +
  • Web 服务器是 nginx 1.6 +
  • PHP 版本是 5.6 +
  • 数据库使用 MariaDB 10 +

准备

设备

你要用来开发网站的电脑,可以是 PC ,也可以是 Mac 。如果是 PC ,建议操作系统是 Windows 8.1 以上。

工具

大部分工作都是在命令行界面进行的,Windows 可以使用 Powershell ,OSX 使用系统自带的 Terminal(终端)。

开始

管理虚拟机

先在电脑上安装好 Vagrant 与 Virtualbox ,推荐使用系统的包管理工具安装,Windows 用 Chocolatey,Mac 可以用 Homebrew。也可以直接去下载它们再手工去安装。然后去添加 Box,Box 是 Vagrant 用来打包发行虚拟机的一种格式,它里面包含了虚拟机操作系统的镜像,还有些其它的东西。在 Vagrant 云上,可以找到别人做好的 Box ,我们可以在命令行下面,去下载这些 Box 。我推荐使用 chef/centos-7.0 这个 Box,在百度云盘(http://pan.baidu.com/s/1qWmc18S)可以把它下载到本地电脑上,然后用 vagrant add 去添加这个 Box(vagrant box add chef/centos-7.0 centos-7.0_chef.box) 。

有了 Box 以后,在用 vagrant init 命令初始化项目的时候,可以使用这个 Box。启动虚拟机用的是 vagrant up 命令,然后用 vagrant ssh 命令登录到虚拟机,这就相当于是登录到了一台 Linux 系统的服务器,确切的说应该是 CentOS 7 这个操作系统。Windows 用户在连接虚拟机的时候,要使用 Putty 这个软件,主机输入 127.0.0.1,端口号是 2200 或 2222 ,用户名是 vagrant,登录的密码也是 vagrant 。

文章

  1. 虚拟机
  2. 用 Vagrant 管理虚拟机
  3. 用 Vagrantfile 配置虚拟机 — 共享目录
  4. 用 Vagrantfile 配置虚拟机 — 网络

视频

  1. 安装 Vagrant 与 Virtualbox 02:08
  2. 添加 box  03:37
  3. 初始化,启动,连接 03:03
  4. Windows 用户的补充 02:13
  5. 启动,停止,重启,销毁 04:07

配置虚拟机

虚拟机的配置是通过一个叫 Vagrantfile 的文件来设置的,这个文件在初始化项目以后会被自动创建,用文本编辑软件可以打开这个文件去编辑它。这一章介绍了配置虚拟机与主机之间的共享目录,还有虚拟机的网络设置。

把文件放到这个共享目录里面,你可以在虚拟机上找到它们,在虚拟机上修改这些文件,在本地电脑上也会看到修改以后的结果,这样我们就可以把网站放到这个共享目录里面,在本地去编辑,在虚拟机上去运行它。

网络的配置决定了虚拟机与主机之间的沟通方式,设置成私有网络,就是把虚拟机与主机之间建立起一个私有的网络,其它人不能通过网络访问虚拟机,只能通过主机访问虚拟机。设置成共有网络的话,除了主机以外,网络内的其它设备也可以访问到虚拟机。

  1. 共享的目录 02:30
  2. 配置共享目录 03:01
  3. 网络配置 01:33
  4. 私有网络 02:08
  5. 公有网络 01:58

多台虚拟机

有时候一个网站项目可能需要用到多台服务器,比如 Web 服务,搜索功能,数据库都单独放到一台服务器上。我们在本地也可以虚拟出这样的环境,就是通过 Vagrant 的 Multi-Machine,多机功能。也就是,你可以在一个 Vagrantfile 文件里面,定义多个虚拟机,每台虚拟机都可以有自己的设置,比如共享目录,网络,主机名等等。

  1. 多主机 01:13
  2. 定义多个主机 04:31
  3. 多主机的网络配置 03:47
  4. 多主机的主机名 02:48
  5. 多主机的共享目录 02:12

基础命令

现在,启动一台虚拟机(vagrant up),然后用 SSH 连接(vagrant ssh)上去,下面在我们的 CentOS 系统的虚拟机上去练习一些基本的命令。

  1. ls 列出目录里的内容 02:48
  2. cat 创建文件和浏览文件内容 01:48
  3. vim 编辑与修改文件内容 01:16
  4. mkdir 创建目录 01:13
  5. cd 更改工作目录 01:33
  6. cp 复制文件或目录 02:34
  7. rm 删除文件或目录 01:57
  8. mv 移动文件或目录 02:38
  9. tar 制作压缩包文件 03.32
  10. scp 传文件与 tar 解压 02:40

Linux 的权限管理

  1. 权限 03:41
  2. 用户和用户组 03:15
  3. 理解文件的权限 03:24
  4. chown 修改文件或目录的所有者与所属用户组 01:35
  5. chmod 修改文件或目录的权限 02:40
  6. 理解目录的权限 03:17

配置运行环境

一个可以运行 PHP 语言写的网站的环境的基本组成是:Web 服务器,PHP 解释器,数据库管理系统。Web 服务器可以使用 nginx 搭建,PHP 解释器用来解释 PHP 语言,根据用户的请求作为反应。nginx 不能直接跟 PHP 沟通,它们之间需要一个中介,这就是 php-fpm,nginx 与 php-fpm 会使用 Fast-CGI 协议进行交流。数据库管理系统,就是管理数据库用的一套系统,比如 MySQL / MariaDB,PostgreSQL 等等,大部分 PHP 网站用的都是 MySQL / MariaDB 这个系统,MariaDB 跟 MySQL 是一回事。

这个环境的大概工作流程是这样的:客户用浏览器发生请求,Web 服务器(nginx)收到请求,如果请求的是静态的资源,就直接给客户返回需要的资源,如果请求的是 php,nginx 会把请求交给 php-fpm 去处理,php-fpm 开始执行 php ,可能会有一些数据库的操作,比如去查找出一些内容,处理好以后,php-fpm 会把结果返回给 nginx,nginx 收到以后,又会把结果返回给客户(浏览器)那里。

在本地搭建这个运行环境来开发网站,跟在服务器上搭建生产环境去运行网站是差不多的。注意看视频的时候,不要只模仿每一步的操作,理解动作背后的意思。

文章

  1. 管理 Linux 上的软件
  2. 在本地 CentOS 7 上搭建 Web 开发环境 — 准备工作
  3. 在本地 CentOS 7 上搭建 Web 开发环境 — 数据库管理系统 MariaDB / MySQL
  4. 在本地 CentOS 7 上搭建 Web 开发环境 — PHP
  5. 在本地 CentOS 7 上搭建 Web 开发环境 — Web 服务器
  6. 在本地 CentOS 7 上搭建 Web 开发环境 — nginx 的基本配置
  7. 在本地 CentOS 7 上搭建 Web 开发环境 — nginx 配置实践
  8. 在本地 CentOS 7 上搭建 Web 开发环境 — nginx 与 php-fpm

视频

  1. 安装 Web 服务器 - nginx  03:44
  2. 设置域名指向服务器的 IP 地址 02:36
  3. 配置 nginx 的虚拟主机 06:39
  4. 添加资源库 - epel, ius 03:27
  5. 安装 PHP 与 php-fpm 02:06
  6. 让 nginx 与 PHP 配合在一起工作 04:47
  7. 安装 PHP 的扩展 03:08
  8. 文件与目录的权限 - 修改 php-fpm 的用户 04:43
  9. 安装 MySQL 03:55
  10. 安装与配置 FTP 服务器 05:17

测试一下运行环境

现在,在本地已经有了一个可以运行 PHP 应用的开发环境,下面在这个环境上去运行一下 WordPress 还有 Drupal 。我们使用命令行工具去安装它们,WordPress 会用到 WP-CLI,Drupal 会用到 Drush,它们是日常维护 WordPress 与 Drupal 必备的工具。

文章

  1. 安装 phpMyAdmin
  2. 安装 Git,Composer, Drush,WP-CLI
  3. 在 nginx 上运行 Drupal 8
  4. 在 nginx 上运行 WordPress

WordPress

  1. 安装 WP-CLI 04:18
  2. 使用 WP-CLI 安装 WordPress:下载 03:01
  3. 使用 WP-CLI 安装 WordPress:创建数据库与配置文件 04:39
  4. 使用 WP-CLI 安装 WordPress:安装 02:26

Drupal

  1. 安装 composer 02:31
  2. 安装 drush 04:05
  3. 使用 drush 命令下载 drupal 03:08
  4. 使用 drush 命令安装 drupal - drush site-install 04:46

打包配置好的虚拟机

把配置好的虚拟机,可以重新打包,下次如果有其它的网站项目用的是同样的运行环境,你就可以使用这个自己制作的 Box 去初始化项目。

重新打包 - package 04:27

搭建生产环境

流程

  1. 购买服务器,比如阿里云,腾讯云...
  2. SSH 连接到服务器
  3. 添加仓库
  4. 安装 Web 服务器
  5. 安装 PHP
  6. 安装数据库

准备

购买一台云服务器,不管是阿里云,腾讯云,还是其它的云。基本的操作都是一样的,你可以为服务器选择操作系统,带宽,CPU,内存,以后还可以很方便的去升级它们。有了服务器以后,你需要用 ssh 连接到服务器,这样就可以去控制服务器了,比如在上面去搭建一个可以运行网站的环境,搭建这个环境的方法跟在本地虚拟机上的操作基本都是一样的。

下面的视频里介绍了在阿里云购买服务器,控制服务器。这些方法同样适用在其它的云服务商那里购买的云服务器,只要为服务器选择的操作系统是 CentOS 就行。

  1. 申请阿里云账号 01:10
  2. 购买阿里云的 ECS 服务 03:53
  3. 云服务器的管理后台预览 01:37

控制服务器

  1. 远程控制 Linux 系统的服务器 02:59
  2. Windows:使用 putty 远程控制服务器 01:53
  3. Mac:使用终端工具远程控制服务器 01:48

基本的操作

  1. 修改主机名 01:54
  2. 修改服务器的密码 01:18
  3. 格式化数据盘 - auto_fdisk.sh 01:53

无需密码登录的方法

  1. Mac:无需密码登录服务器 03:12
  2. Windows:无需密码登录服务器 - 生成密钥 01:57
  3. Windows:无需密码登录服务器 - 把密钥保存在服务器里 02:02
  4. Windows:无需密码登录服务器 - 配置 puTTY 01:51

配置运行环境

参考上面的在本地虚拟机上配置运行环境的方法跟流程。

搭建本地开发环境的具体步骤

上面的文章与视频,可以帮助你理解下面这些步骤的意思。

  1. Windows 打开 Powershell,Mac 打开 Terminal。
  2. Windows 安装 Chocolatey,Mac 安装 Homebrew。
  3. 安装 Vagrant 与 Virtualbox。Windows 输入: choco install vagrant virtualbox ,Mac 输入: brew install Caskroom/cask/virtualbox Caskroom/cask/vagrant 。
  4. 添加 Box。输入:vagrant box chef/centos-7.0
  5. 为项目创建目录并初始化。
    1. cd ~/desktop
    2. mkdir ninghao-project
    3. cd ninghao-project
    4. vagrant init chef/centos-7.0
  6. 配置虚拟机网络。
    1. 打开 Vagrantfile 文件
    2. 添加:config.vm.network "private_network", ip: "192.168.33.10"
    3. 保存 Vagrantfile 文件
  7. 启动虚拟机。输入:vagrant up
  8. ssh 到虚拟机。
    1. Windows:使用 Putty 工具,主机 127.0.0.1,端口 2200 或 2222,点击 open ,登录的用户名是 vagrant ,密码也是 vagrant
    2. Mac:输入 vagrant ssh
  9. 安装仓库。打开 IUS 仓库 可以找到跟操作系统版本对应的 epel 还有 ius 这两个包。
    1. 安装 epel:sudo rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
    2. 安装 ius:sudo rpm -ivh http://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-release-1....
    3. 输入 yum repolist ,查看仓库列表,你会看到 epel 还有 ius 。
  10. 安装 vim 编辑器:sudo yum install vim -y
  11. 数据库管理系统 MariaDB
    1. 安装:sudo yum install mariadb100u mariadb100u-server -y
    2. 启动 MariaDB:sudo service mariadb start
    3. 设置当重启系统时自动启动 MariaDB:systemctl enable mariadb.service
    4. 执行安全安装:mysql_secure_installation
    5. Enter current password for root (enter for none):  直接回车
      输入当前 root 用户的密码
    6. Set root password? [Y/n] Y
      想要设置 root 用户的密码吗?
    7. New password: 输入要为 root 用户设置的密码
      输入 root 用户的新密码
    8. Re-enter new password: 再输入一次设置的密码
      重新输入为 root 用户设置的密码
    9. Remove anonymous users? [Y/n] Y
      要删掉匿名用户吗?
    10. Disallow root login remotely? [Y/n] Y
      要禁用 root 用户远程登录吗?
    11. Remove test database and access to it? [Y/n] Y
      想要删掉 test 这个数据库吗?
    12. Reload privilege tables now? [Y/n] Y
      现在就要重新载入权限吗?
  12. php-fpm
    1. 安装:sudo yum install php56u-fpm
    2. 修改配置
      1. vim /etc/php-fpm.d/www.conf
      2. 按一下 i 键进入编辑模式
      3. 查找 user = apache ,替换成 user = vagrant
      4. 查找 group = apache,替换成 group = vagrant
      5. 按一下 esc 键,退出编辑器模式
      6. 保存并退出文件,可以输入 :wq
    3. 安装 php 扩展:sudo yum install php56u-gd php56u-mysqlnd php56u-pdo php56u-mcrypt php56u-mbstring php56u-xmlrpc php56u-pecl-jsonc -y
    4. 启动 php-fpm:sudo service php-fpm start
    5. 设置当重启系统时自动启动 php-fpm:systemctl enable php-fpm.service
  13. Web 服务器 nginx
    1. 安装 nginx:sudo yum install nginx -y
    2. 编辑 nginx.conf
      1. sudo vim /etc/nginx/nginx.conf,按一个 i 进入编辑模式
      2. 找到 sendfile        on;
      3. 替换成 sendfile        off;
      4. 保存文件并退出:esc 退出编辑模式,再输入 :wq 然后回车!
    3. 创建新的 nginx 服务器(虚拟主机)
      1. sudo vim /etc/nginx/conf.d/dp8.ninghao.dev.conf
      2. dp8.ninghao.dev.conf 文件里的内容见文章底部。
      3. 保存并退出
      4. 创建虚拟主机的根目录:mkdir -p /vagrant/drupal8/public
      5. 测试配置文件是否有效:sudo nginx -t
      6. 启动 nginx:sudo service nginx start
      7. 设置当重启系统时自动启动 nginx:systemctl enable nginx.service
  14. 安装 Git :sudo yum install git2u -y
  15. 安装 Composer
    1. cd ~
    2. curl -sS https://getcomposer.org/installer | php
    3. sudo mv composer.phar /usr/local/bin/composer
    4. composer --help
  16. 安装 Drush
    1. git clone https://github.com/drush-ops/drush.git /usr/local/src/drush
    2. cd /usr/local/src/drush
    3. composer install
    4. sudo ln -s /usr/local/src/drush/drush /usr/bin/drush
    5. drush help
  17. 安装 Drupal 8
    1. 创建数据库
      1. mysql -u root -p ,回车,输入数据库系统的 root 用户的密码
      2. 创建数据库:create database drupal_8;
      3. 为这个数据库指定可以管理它的用户:grant all privileges on drupal_8.* to 'ninghao'@'localhost' identified by 'GcPpQJe0LE9h2Dlhtu69KoOP54RAVz1pN9H5a21fpKU=';
      4. 退出:exit
    2. 安装 Drupal
      1. cd /vagrant/drupal8/public
      2. drush dl drupal-8
      3. mv drupal-8.0.0-beta6/.[!.]* .
      4. wget http://ftp.drupal.org/files/translations/8.x/drupal/drupal-8.0.0-beta4.z... -P core/profiles/standard/translations/
      5. drush site-install --db-url=mysql://ninghao:GcPpQJe0LE9h2Dlhtu69KoOP54RAVz1pN9H5a21fpKU=@localhost/drupal_8 --site-name=ninghao --locale=zh-hans -v
      6. 输入 y ,回车
      7. 提示安装成功,注意看 Drush 会创建一个叫 admin 的管理员(User name: admin User password: tLC4JdVdmd),User Password 后面的密码是随机的,复制一下这个密码,你需要用它登录到 Drupal 后台。
  18. 编辑自己电脑上面的 hosts 文件
    1. Windows:C:\Windows\System32\Drivers\etc\hosts
    2. Mac:/etc/hosts
    3. 在 hosts 文件里添加:192.168.33.10 dp8.ninghao.dev
    4. 保存文件
  19. 打开浏览器,用 http://dp8.ninghao.dev 这个地址,应该可以访问到我们刚才安装的 Drupal 网站。

dp8.ninghao.dev.conf 文件里的内容:

server {
  listen        80;
  server_name   dp8.ninghao.dev;
  root          /vagrant/drupal8/public;
  index         index.php index.html index.htm;

  location / {
    index  index.php index.html index.htm;
    try_files $uri @rewrite;
  }

  location @rewrite {
    rewrite ^ /index.php;
  }

  location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi.conf;
  }

}

 

相关资源

学习手册 CentOS nginx php-fpm MariaDB MySQL WordPress Drupal

评论

皓哥,辛苦了 :)

嘿嘿,不辛苦,昨天睡不着,整理了一下。

皓哥超牛!

学习学习再学习!谢谢!

原来一直是用service nginx start 解决 后来使用自动启动 systemctl enable nginx.service 皓哥 使用了这个命令后就没法启动了 怎么办

报错 是 systemctl status nginx.service
nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled)
Active: failed (Result: exit-code) since Tue 2015-02-03 07:02:29 UTC; 15s ago
Process: 3687 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=1/FAILURE)

用:systemctl status nginx.service ,查看一下原因是什么。

vagrant@localhost ~]$ systemctl status nginx.service
nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled)
Active: failed (Result: exit-code) since Tue 2015-02-03 07:02:29 UTC; 19min ago
Process: 3687 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=1/FAILURE)

下面应该还有一些内容,再贴上来看看。

所有的内容就那么多 剩下的没有了

这样试试,先执行:systemctl stop nginx.server 然后,再执行:systemctl disable nginx.service

systemctl stop nginx.server 执行 后显示 Failed to issue method call: Unit nginx.server.service not loaded.

[root@localhost vagrant]# systemctl status nginx.service
nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled)
Active: failed (Result: exit-code) since Tue 2015-02-03 07:37:52 UTC; 29s ago
Process: 3802 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=1/FAILURE)

我看到一个错误:在 dayongjixie.com.conf 这个文件里,有 unexpected "}" ,一般就是你配置的 nginx 指令的最后,没有添加分号。

server {
listen 80;
server_name dayongjixie.com www.dayongjixie.com;
root /vagrant/main/public;
index index.php index.html index.htm;
location / {
index index.php index.html index.htm;
try_files $uri @rewrite;
}

location @rewrite {
rewrite ^ /index.php;
}

location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}

}
应该没问题啊

嗯,这个是没有问题,不过我看提示说:/etc/nginx/conf.d/dayongjixie.com.conf ,这个文件的第 28 行有问题。你动过 nginx.conf 这个文件吗?

用 nginx -t 这个命令测试一下看看。

还是不成功 算了 我重新安装吧

这样一看思路就清晰多了

这篇文章太强大了,一定要认真阅读

问一下,我现在有一个 4g 内存的服务器,然后单位最近买了 32g 内存的服务器,我该如何配置相关文件,以最大发挥新机器的性能呢?

先让网站跑起来再说,然后慢慢调试。

知识是积累而成的,辛苦啊。

一起进步 :)

王兄,我的的虚拟机用vagrant 一直管理的好好的,今天不知道为什么。用vagrant启动虚拟机的时候报错了
Failed to mount folders in Linux guest. This is usually because
the "vboxsf" file system is not available. Please verify that
the guest additions are properly installed in the guest and
can work properly. The command attempted was:

mount -t vboxsf -o uid=`id -u vagrant`,gid=`getent group vagrant | cut -d: -f3` vagrant /vagrant
mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` vagrant /vagrant

The error output from the last command was:

我用vagrant plugin install vagrant-vbguest 这个命令,这个问题解决了

厉害,嘿嘿。

以前碰到过此类问题,对了,王兄。我有个疑问,想请教下。我在本地开发,基本完成后我就上传到服务器了。可上传到服务器以后,因为测试,体验可能会对网站做比较零碎的修改。每次都要本地修改完了再上传的服务器,上传到修改的文件,再导入数据。这样比较繁琐。你有什么好的办法简化这个过程或者你用什么方法做本地和服务器同步的?

嗯,我现在也没有太好的方法。等我再试试,然后总结一下。

好的~
先麻烦王兄了

请问一下,图片里的英文字体是哪种字体?看起来very nice……

Courier New :)

本页面安装MariaDB,显示的是:sudo yum install mariadb100u mariadb100u-server -y ,而路径(十三)页面显示的是 :yum install mariadb-server mariadb -y 。区别是,应该用哪个。另外如何删除已安装的包(例如MariaDB)

哈,你注意到了,区别其实就是安装的 MariaDB 的版本。直接安装 mariadb ,这个包来自系统自带的仓库。而安装 mariadb100u 这个包,是来自 ius 的,这个包的版本更高一些。你可以使用 yum info xxx 来查看包的相关信息。

痛苦找寻 如何解决问题中: 如何彻底卸载删除 在搭建本地开发环境中的每一步。1.起初是想把mariadb的版本升级到 mariadb100u这个包的版本,找遍ninghao.net没找到答案 2.于是google到 centOS下 卸载软件包命令:rpm -e,卸载成功了两个mariadb打头的包,还有第三个包删不掉,提示好像是关联其它包。3.于是想到把虚拟机删掉(vagrant destroy),但重新初始化启动后发现,仍然有那个删不掉的mariadb打头的包,而且安装 mariadb 100u也提示因为那个包安装失败。这我就纳闷了 不是mariadb 安装在设定的虚拟机里吗,怎么删除了虚拟机,还有呢? 4.于是想到把virtualbox、vagrant都给删了重新装,用命令行brew remove virtualbox 或者 brew remove Caskroom/cask/virtualbox 都不成功。用双击图标 进入图形界面 把virtualbox卸载了;但是 vagrant 咋卸载啊 google了一下 好像挺多步骤,也不知道用哪个方法。5.

强大啊,比我能折腾。是我把你害了。

愁死我了 安装容易,卸载难,命令行且用且闹心。。。

卸载是容易的,你想删除掉项目使用的虚拟机,可以在项目目录下面执行 vagrant destroy 。如果你想删除掉用 Homebrew 安装的 Virtualbox 与 Vagrant ,可以在终端下面执行 brew uninstall xxx 这种方式去删除。可以先用 brew list ,查看一下你用 Homebrew 安装的东西。

虚拟机是删掉了 但是新建一个后,发现mariadb还在。 2. brew uninstall xxx 能删除 例如 tree (brew uninstall tree) 但是 brew uninstall Virtualbox 或者 brew uninstall Caskroom/cask/virtualbox 都不行

Homebrew 用来安装软件,用它你安装了 Virtualbox 与 Vagrant 。Vagrant 可以管理虚拟机,用 Vagrant 你添加了 box ,为项目初始化,启动了 box (虚拟机),然后你连接到了这个虚拟机,在这个虚拟机上安装了一些软件,比如 mariadb 或者 nginx,所有在虚拟机下面的操作,只会影响到当前这个项目下面的这台虚拟机。

所以,你想删除这台虚拟机下面的 mariadb ,就需要先 ssh 连接到这台虚拟机,然后可以使用 yum remove xxx 这种形式去删除。

是的 就按这个过程删掉 两个mariadb打头的, 但还有一个mariadb打头的 remove 不掉。

厉害!

dp8.ninghao.dev.conf 文件里的内容:location / {
index index.php index.html index.htm;
try_files $uri @rewrite;
}

location @rewrite {
rewrite ^ /index.php;
}
这段的作用是什么? 去掉这个,浏览器中可以正常显示 index.html的内容; 加上这个,显示not found page

@rewrite 里面用到了 rewrite 这个指令,所以这是一个地址重写功能。意思就是,可以在访问的时候不加上 index.php 。

感谢耐心解答 ^_^ ,好奇这个地址重写功能是为什么实例而配置的(例如是 wordpress 自定义url 吗?)。本站其它文章和视频教程都没有提及这段代码

是,这个重写规则对 WordPress 也有效。

现在遇到的问题是 /etc/nginx/conf.d/dp8.ninghao.dev.conf 路径下 的index.php 能正常显示,但若换成只有 index.html ,显示File not found.

上个提问路径贴错了 是 /vagrant/drupal8/public 路径下 的index.php 能正常显示,但若换成只有 index.html ,显示File not found.

什么要在 Drupal 下访问到 index.html 呢?

因为是想到 只建一个静态网站的话 ,vim /etc/nginx/conf.d/相应虚拟主机.conf 里是否就要去掉那个 @rewrite 指令

嗯。去掉这个 @rewrite 就行。

不安装Drupal,意思是虚拟主机的根目录下 只有index.html ,会显示 File not found

看样子得建个论坛了,呵呵,这样回复有点费事。

vagrant 打包重新部署时改用public_network,出现如下错误“Vagrant assumes that this means the command failed!
/sbin/ifup enp0s9”。使用vagrant plugin install vagrant-centos7_fix命令,同时写入固定IP解决。另外centOS7不需要执行sudo rm -rf /etc/udev/rules.d/70-persistent-net.rules,因为该文件在centOS7中已经不存在了。

windows server完全没用武之地了?

嗯。暂时还看不出,用 Windows 做服务器的好处。

好处是不用命令行吧

好处是不用命令行吧

接受命令行吧。呵呵。

微信好友

用微信扫描二维码,
加我好友。

微信公众号

用微信扫描二维码,
订阅宁皓网公众号。

240746680

用 QQ 扫描二维码,
加入宁皓网 QQ 群。

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点