CentOS 7 下安装 Nginx

安装所需环境

Nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Windows 版本。

一. gcc 安装

安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:

yum install gcc-c++

二. PCRE pcre-devel 安装

PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx 的 http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:

yum install -y pcre pcre-devel

三. zlib 安装

zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib 对 http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。

yum install -y zlib zlib-devel

四. OpenSSL 安装

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。

yum install -y openssl openssl-devel

官网下载

下载.tar.gz安装包,地址:https://nginx.org/en/download.html

解压

依然是直接命令:

tar -zxvf nginx-1.10.1.tar.gz
cd nginx-1.10.1

配置

其实在 nginx-1.10.1 版本中你就不需要去配置相关东西,默认就可以了。当然,如果你要自己配置目录也是可以的。
1.使用默认配置

./configure

2.自定义配置(不推荐)

./configure 
--prefix=/usr/local/nginx 
--conf-path=/usr/local/nginx/conf/nginx.conf 
--pid-path=/usr/local/nginx/conf/nginx.pid 
--lock-path=/var/lock/nginx.lock 
--error-log-path=/var/log/nginx/error.log 
--http-log-path=/var/log/nginx/access.log 
--with-http_gzip_static_module 
--http-client-body-temp-path=/var/temp/nginx/client 
--http-proxy-temp-path=/var/temp/nginx/proxy 
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi 
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi 
--http-scgi-temp-path=/var/temp/nginx/scgi

注:将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录

编译安装

make
make install

查找安装路径:

whereis nginx

未分类

启动、停止nginx

cd /usr/local/nginx/sbin/
./nginx 
./nginx -s stop
./nginx -s quit
./nginx -s reload

./nginx -s quit:此方式停止步骤是待nginx进程处理任务完毕进行停止。
./nginx -s stop:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。

查询nginx进程:

ps aux|grep nginx

重启 nginx

1.先停止再启动(推荐):
对 nginx 进行重启相当于先停止再启动,即先执行停止命令再执行启动命令。如下:

./nginx -s quit
./nginx

2.重新加载配置文件:
当 ngin x的配置文件 nginx.conf 修改后,要想让配置生效需要重启 nginx,使用-s reload不用先停止 ngin x再启动 nginx 即可将配置信息在 nginx 中生效,如下:

./nginx -s reload

启动成功后,在浏览器可以看到这样的页面:
未分类

开机自启动

即在rc.local增加启动代码就可以了。

vi /etc/rc.local

增加一行 /usr/local/nginx/sbin/nginx
设置执行权限:

chmod 755 rc.local

未分类
到这里,nginx就安装完毕了,启动、停止、重启操作也都完成了,当然,你也可以添加为系统服务,我这里就不在演示了。

Linux CentOS环境下单机安装tomcat多实例

平台: centos 6.9
安装版本:tomcat 9.0 Binary Distributions

安装目的:安装三个tomcat,对外 web端口分别为8080、8081、8082
原理: 多个tomcat实例公用一个JDK,通过安装目录、端口以及配置文件实现独立实例,每个tomcat猫 都有自己独立的运行环境、配置文件 和站点目录。

按照系统的部署流程记录如下:

1、安装JDK

yum search java,这里我们选取java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment。

yum install java-1.8.0-openjdk.x86_64   -y

2、下载安装tomcat

下载地址https://tomcat.apache.org/,这里我们选取tomcat版本后对应下载,以Binary Distributions 9.0做测试。

wget  http://mirrors.shuosc.org/apache/tomcat/tomcat-9/v9.0.1/bin/apache-tomcat-9.0.1.tar.gz   -P  /usr/local/src
cd  /usr/local/src
tar zxvf apache-tomcat-9.0.1.tar.gz 
mv apache-tomcat-9.0.1 tomcat_8080
#说明:这里不建议直接mv到/usr/local目录中,因为这个是原始的tomcat,以后创建多实例可以直接从这里拷贝并优化。
#配置单实例tomcat8080
mkdir  /usr/local/tomcat_8080
cp -rfpu  /usr/local/src/tomcat_8080/* /usr/local/tomcat_8080/

启动tomcat8080:

/usr/local/tomcat_8080/bin/startup.sh

查看效果:

[root@mysqlemn local]# netstat  -tunlp | grep 8080
tcp        0      0 :::8080                     :::*                        LISTEN      13240/java

如果防火墙开启,需要加一个规则进去以便web访问:

iptables  -I  INPUT -p tcp  --dport  8080  -j ACCEPT

web访问测试:

未分类

3、多实例安装

刚才创建了一个8080,下边我们再创建两个tomcat,端口分别为8081、8082。 如果熟练了,可以直接跳过8080,直接创建需要的实例个数。
创建多个tomcat目录:

mkdir -p /usr/local/tomcat_808{1..2}
cp  -rfpu  /usr/locat/src/tomcat_8080/*  /usr/local/tomcat_8081/
cp  -rfpu  /usr/locat/src/tomcat_8080/*  /usr/local/tomcat_8082/

分别修改tomcat的 conf目录下的server.xml,修改三个端口设置(Server、Connector、AJP,至于https根据 是否用到修改),防止和之前的tomcat_8080冲突。修改以后分别启动测试:

/usr/local/tomcat_8081/bin/startup.sh
/usr/local/tomcat_8082/bin/startup.sh

iptables 添加端口并save,web单独访问,单机多实例猫已经实现。剩下的就是根据业务需要、服务器配置进行tomcat的配置优化了,比如包括服务设置、站点发布目录以及 jvm优化等等。

说明:

(1),站点发布目录修改:

未分类

重启tomcat生效。

(2),这里建议将站点目录的catalina.sh设置成tomcatX放于/etc/init.d/tomcatPort ,里边设置下java路径以及环境启动目录比如:

[root@21yunwei ROOT]# cp   /usr/local/tomcat_8080/bin/catalina.sh      /etc/init.d/tomcat8080  -p
[root@21yunwei ROOT]# cp   /usr/local/tomcat_8081/bin/catalina.sh      /etc/init.d/tomcat8081  -p
[root@21yunwei ROOT]# cp   /usr/local/tomcat_8082/bin/catalina.sh      /etc/init.d/tomcat8082  -p

针对每个服务设置自己的启动目录:这里以/etc/init.d/tomcat8080 为例进行修改,第二行加入:

CATALINA_HOME=/usr/local/tomcat_8080 #tomcat容器的启动目录

其他容器的服务也是一样,这样以后就可以通过/etc/init.d/tomcatPort start 启动或者stop了,同时这个可以设置到/etc/rc.local脚本中方便开机启动,目前我们线上就是这样实现。

/etc/init.d/tomcat8080  start
/etc/init.d/tomcat8081  start
/etc/init.d/tomcat8082  start

(3),清理tomcat缓存。解决访问有异常,清理下tomcat服务器端的缓存方法:

find /usr/local/ -name  "work*" | xargs   rm -rf

说明:这里只是针对tomcat安装测试,未进行任何优化。

CentOS 服务器修改或增加 SSH 端口

默认 SSH 默认端口为 22,所有服务器都一样,所以比较容易被别人扫描,尝试暴力破解登录。比较简单的办法,就是修改默认端口了。

修改 SSH 端口的方法本来挺简单的,网上也是一搜一把。

下面以修改为 10086 端口为例

1. 修改 /etc/ssh/sshd_config 文件,找到 Port 22 ,在其下方,增加 Port 10086

vi /etc/ssh/sshd_config

注意,这里是增加,而不是修改,主要是为了防止改了之后,新端口不能正确登录的麻烦。所以先新增,然后测试新端口能正确登录了,再将 Port 22 行注释掉即可。

2. 重启 sshd 服务

systemctl restart sshd

一般到这里也就可以试试新端口是否正确工作了。

但是阿里云服务器 ECS 有个安全组策略,需要手动设置其开放 10086 端口的访问:

3. 进入云服务器实例管理界面,左侧菜单“本实例安全组” > 配置规则,找到自定义 TCP (22/22)规则条目,> 克隆,修改协议类型为 “自定义 TCP”,端口范围设置为 10086/10086 ,提交保存即可。

如果经过上面步骤,新端口 SSH 依然连接超时,那么可能需要检查服务器防火墙设置,以及 SELinux 之类配置。

一般阿里云服务器,因为有上述安全组策略的存在,应该是默认没有开启防火墙的。因此前不知道阿里的安全组策略,我把下面几步都做了:

关于 SELinux 和 防火墙的相关配置和描述,请参考 皓煙:http://blog.csdn.net/ausboyue/article/details/53691953
对于使用 iptables 的服务器,请参考 http://blog.csdn.net/default7/article/details/42015409

在新端口连接测试通过之后,注意参考上述第 1 步注释掉原来的 22 端口配置,当然,也可以参考上述第 3 步,删除阿里 ECS 安全组策略里边的 自定义 ICP (22/22)规则条目。

因为 ECS 的安全组策略我是在走完 SELinux 和 防火墙,甚至包括 iptabls 等流程之后,依然连接超时,之后才知道的。现在我也在想:既然有了凌驾于服务器防火墙配置之上的 安全组策略存在了,那么防火墙、SELinux 之类的是不是也可以禁用了呢?

Centos7.0 搭建Zabbix环境

1、实验环境:Centos7.0
IP:192.168.47.140
未分类
2、关闭iptables及setenforce
未分类
3、导入源 rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm
未分类
4、安装zabbix包
未分类
5、安装完成
未分类
6、安装mysql源

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm

未分类

yum install -y mysql-community-server

未分类
7、安装完成
未分类
8、启动mysql服务
未分类
9、设置mysql

mysql_secure_installation

未分类
10、登陆mysql

mysql -uroot -p

未分类
11、创建相关数据库

create database zabbix character set utf8 collate utf8_bin;
grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';

未分类
12、切换目录 复制文件

cd /usr/share/doc/zabbix-server-mysql-3.0.13
zcat create.sql.gz | mysql -uroot -p zabbix

未分类
13、修改配置文件

DBHost=localhost
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix
vim /etc/zabbix/zabbix_server.conf

未分类
未分类
14、启动zabbix-server
未分类
15、修改zabbix配置

vim /etc/httpd/conf.d/zabbix.con
php_value date.timezone Asia/Shanghai

未分类
16、启动http服务

systemctl start httpd

未分类
17、访问测试
未分类
未分类
未分类
未分类

Centos7.4下用Docker-Compose部署WordPress

前言

最近在学习Docker相关知识,通过阅读第一本Docker书后,正想着手实战用一下这个技术,但又不太敢直接在项目环境下动手。考虑足足三秒钟之后决定买个阿里云ECS搭建一个属于自己的基于Docker的WordPress博客Daniel Fu’s hut传送门。

本博客搭建环境(阿里云ECS的购买与基本的安全组配置等工作在文中省略,各位看官可自行研究):

  • 阿里云ECS
  • Centos 7.4

部署工具

  • Docker
  • Docker Compose(Compose工具比起单纯的Dockerfile来更为便利、更易管理)
  • WordPress和MySql5.7(运行在Docker容器中)

现在逐个讲解下如何安装:

Docker:

根据官方文档,Docker分为Community Edition (CE)和Enterprise Edition (EE)两个版本,我们作为学习和个人使用,当然选择的是Community Edition (CE),安装步骤如下:

// 步骤1 - 为了确保没有安装过老的Docker版本,先将已经安装的Docker从宿主机上删除(如果是在使用中的正式服务器,请谨慎执行此步):
$ sudo yum remove docker 
  docker-common 
  docker-selinux 
  docker-engine

// 步骤2 - 安装Docker所需的包:
$ sudo yum install -y yum-utils 
  device-mapper-persistent-data 
  lvm2

// 步骤3 - 配置到稳定的Docker CE安装库:
$ sudo yum-config-manager 
    --add-repo 
    https://download.docker.com/linux/centos/docker-ce.repo

// 步骤4 - 安装Docker CE:
$ sudo yum install docker-ce

// 步骤5 - 启动Docker服务:
$ sudo systemctl start docker

// 步骤6 - 测试是否安装成功:
// 可以通过查看版本的形式确认安装是否成功:
$ docker --version 
// 也可以通过直接运行hello-world容器来确认安装是否成功:
$ docker run hello-world

Docker Compose:

为了便于使用,我们需要安装Docker Compose来管理和运行Docker容器,Docker Compose的安装步骤如下:

// 步骤1 - 下载安装文件:
$ sudo curl -L https://github.com/docker/compose/releases/download/1.17.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

// 步骤2 - 给已下载的安装文件添加执行权限:
$ sudo chmod +x /usr/local/bin/docker-compose

// 步骤3 - 测试是否安装成功:
$ docker-compose --version

部署WordPress和MySql容器:

先创建一个工作目录,并创建名为docker-compose.yml的文件:

$ cd /usr/
$ sudo mkdir myblog && cd myblog
$ sudo vim docker-compose.yml

将如下内容保存在docker-compose.yml文件中:

version: '3'
services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: your-mysql-root-password
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress
   wordpress:
     depends_on:
       - db
     image: wordpress:latest
     volumes:
        - wp_site:/var/www/html
     ports:
       - "80:80"
       - "443:443"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wordpress
       WORDPRESS_DB_PASSWORD: wordpress
volumes:
    db_data:
    wp_site:
  • 关于Composer所使用的的yml文件的语法,请参考官方文档,这里就不一一解释了(因为我自己也是刚入门,只会几个基本的用法)。

  • 和官方给的Demo不同,上述yml文件中,我在volumes中添加了wp_site的卷,并将其挂在到wordpress容器中,这样,当容器被停止或者删除后,重新安装并启动wordpress容器时,已安装的plugins也可以直接继续使用,而不是重新安装。

此时,我们直接使用docker-compose命令启动容器:

$ sudo docker-compose up -d

启动之后,我们就可以通过 http://ecs-ip (因为我们绑定的是宿主机的80端口) 来访问WordPress(如果不能访问,请查看阿里云安全组中,是否已经开启了你所指定端口的公网访问权限,一般80端口是默认开启的)。

如果需要关闭服务,则执行如下命令:

$ sudo docker-compose down

开启你的博客之旅:

我们的WordPress博客已经搭建完成,通过访问后台管理页面来初始化网站。然后找一个喜欢的主题,安装好必要的插件,我们就可以在一个属于自己的博客网站上写下自己的第一篇博客。

分享一下:这是我第一次用WordPress,还有很多东西需要慢慢摸索。目前我安装了Jetpack插件和WP Editor.MD插件,选用的主题是Sirius免费版。

遇到的挫折:

第一次安装时,当使用 sudo docker-compose up -d 命令启动容器后,提示容器启动正常,但是无法访问网站,此时通过sudo docker logs xxx_wordpress_1(xxx_wordpress_1以实际生产的容器名称为准)查看日志,看到日志中不断提示数据库无法连接的错误。花了好几个小时排查,总算找到问题所在,是因为以前在机器上写Docker相关的测试例子的时候,宿主机上设置了几个全局变量(如:ServerName、ServerHost、UserName等,可通过env命令查看当前系统环境变量),这些全局变量导致了wordpress容器无法连接到db容器。这个小插曲告诉我们,不要随便在宿主机上设置环境变量,如果必须设置,也应该做好命名和管理工作。

使用Dockerfile创建带Apache服务的Centos Docker镜像

在宿主机上准备的文件清单:

Dockerfile
#启动ssh和apache服务的角本
run.sh

以上文件都放到/root/apache_centos目录下

mkdir -p /root/apache_centos
cd /root/apache_centos

基础镜像:以镜像centos为基础的开放SSH服务的镜像

[root@localhost apache_centos]# docker images
REPOSITORY      TAG          IMAGE ID         CREATED        VIRTUAL SIZE
sshd         dockerfile    411d5fb16366        23 hours ago        278 MB
centos            latest      0f73ae75014f        5 weeks ago         172.3 MB

一、准备run.sh文件

在/root/apache_centos目录新建run.sh

vim run.sh
#!/bin/bash
/usr/sbin/sshd &
/usr/local/apache2/bin/httpd -D FOREGROUND

二、准备Dockerfile

在/root/apache_centos目录新建Dockerfile

vim Dockerfile

文件内容如下:

#新生成的镜像是基于sshd:dockerfile镜像
FROM sshd:dockerfile
MAINTAINER by Steven
#安装wget
RUN yum install -y wget
WORKDIR /usr/local/src
#下载并解压源码包
RUN wget http://apache.fayea.com/httpd/httpd-2.4.17.tar.gz
RUN tar -zxvf httpd-2.4.17.tar.gz
WORKDIR httpd-2.4.17
#编译安装apache
RUN yum install -y gcc make apr-devel apr apr-util apr-util-devel pcre-devel
RUN ./configure --prefix=/usr/local/apache2  --enable-mods-shared=most  --enable-so
RUN make
RUN make install
#修改apache配置文件
RUN sed -i 's/#ServerName www.example.com:80/ServerName localhost:80/g' /usr/local/apache2/conf/httpd.conf
#启动apache服务
RUN /usr/local/apache2/bin/httpd
#复制服务启动脚本并设置权限
ADD run.sh /usr/local/sbin/run.sh
RUN chmod 755 /usr/local/sbin/run.sh
#开放80端口
EXPOSE 80
CMD ["/usr/local/sbin/run.sh"]

需要注意的是:在Dockerfile文件中更换当前目录不可以用“cd”命令,而要改用“WORKDIR”.

三、生成镜像

docker build -t apache_dockerfile:centos .

查看生成的镜像:

[root@localhost apache_centos]# docker images
REPOSITORY      TAG            IMAGE ID        CREATED          VIRTUAL SIZE
apache_dockerfile centos        f8f30b4a0ee8        24 minutes ago     440 MB
apache         centos        f92c55dddd07        17 hours ago       423.9 MB
sshd          dockerfile     411d5fb16366        23 hours ago       278 MB
centos         latest        0f73ae75014f        5 weeks ago       172.3 MB

四、根据镜像生成的容器并进行测试

1、生成新的容器

docker run -d -p 2222:22 -p 8000:80 apache_dockerfile:centos /usr/local/sbin/run.sh

将容器的22端口和80端口分别映射到到宿主机上的2222端口和8000端口,并运行服务脚本。

2、查看新生成的容器

[root@localhost apache_centos]# docker ps -a
CONTAINER ID IMAGE              COMMAND           CREATED      STATUS       PORTS                                        NAMES
ae560e497f39 apache_dockerfile:centos "/usr/local/sbin/run  45 seconds ago  Up 44 seconds   0.0.0.0:2222->22/tcp, 0.0.0.0:8000->80/tcp   condescending_bardeen
6490cd244c10 apache:centos        "/usr/local/apache2/  17 hours ago   Exited (0) 17 hours ago                            loving_wright
673e946b57e4 sshd:dockerfile      "/usr/local/sbin/run   18 hours ago   Exited (137)                                                    reverent_bell

3、测试

测试apache

[root@localhost apache_centos]# curl localhost:8000
<html><body><h1>It works!</h1></body></html>

成功!

测试ssh

[root@localhost apache_centos]# ssh localhost -p 2222
root@localhost's password:

成功!

CentOS源码安装Apache、MySQL、PHP

一、下载Apache

1. 点击官网链接进入官网,按照下图下载源码包。

有很多下载方式,可以选择http也可以选择ftp,上面的gif我是用的是http方式,随便选择了一个镜像进入站点,然后选择了http目录,进入http目录后,选择了httpd-2.4.29.tar.gz文件,右键复制了该文件的链接地址。

在命令行输入下面的命令下载源码文件:

# wget http://apache.claz.org/httpd/httpd-2.4.29.tar.gz

2.下载后输入下面的命令解压:

# tar -zxvf httpd-2.4.29.tar.gz

二、下载依赖

1. 下载apr

点击链接官网地址下载,如下图

未分类

我选择的是apr-1.6.3.tar.gz的链接,依然是右键,然后选择复制链接地址,输入如下命令下载:

# wget http://apache.mirrors.lucidnetworks.net//apr/apr-1.6.3.tar.gz

输入如下命令解压:

# tar -zxvf apr-1.6.3.tar.gz

进入解压目录

# cd apr-1.6.3

输入如下命令安装

# ./configure --prefix=/wwwAdmin/apr-1.6.3
# make
# make install

--prefix=/wwwAdmin/apr-1.6.3是指定安装目录.

2. 下载apr-util

点击链接官网地址下载,如下图

未分类

我依然选择的是第一个链接,然后复制其地址,输入如下命令下载:

# wget http://mirror.stjschools.org/public/apache//apr/apr-util-1.6.1.tar.gz

然后输入如下命令解压:

# tar -zxvf apr-util-1.6.1.tar.gz

进入解压目录

# cd apr-util-1.6.1

输入如下命令安装

# ./configure --prefix=/wwwAdmin/apr-util-1.6.1 -with-apr=/wwwAdmin/apr-1.6.3/
# make
# make install

--prefix=/wwwAdmin/apr-util-1.6.1是指定安装目录,-with-apr=/wwwAdmin/apr-1.6.3/是apr的安装目录

3. 下载pcre

点击链接官网地址下载,选择一个版本(我选择的pcre2-10.30.tar.gz),然后右键复制其链接地址,输入如下命令下载:

# wget https://ftp.pcre.org/pub/pcre/pcre2-10.30.tar.gz

输入下面的命令解压:

# tar -zxvf pcre2-10.30.tar.gz

进入解压后的目录:

# cd pcre2-10.30

输入如下命令安装

# ./configure
# make
# make install</span>

使用默认安装位置/usr/local/pcre。

4. 下载OpenSSL

点击链接官网地址下载,我选择的是openssl-1.1.0g.tar.gz,然后右键复制其链接地址,输入如下命令下载:

# wget https://www.openssl.org/source/openssl-1.1.0g.tar.gz

注:get下载似乎是提示404,所以我直接点击下载到我的电脑上,然后用ftp工具上传到服务器目录下的。

输入下面的命令解压:

# tar -zxvf openssl-1.1.0g.tar.gz

进入解压后的目录:

# cd openssl-1.1.0g

输入如下命令安装

# ./config shared --prefix=/wwwAdmin/openssl1.1.0g --openssldir=/usr/local/ssl<span class="redactor-invisible-space">
# make
# make install
--prefix=/wwwAdmin/pcre2-10.30是指定安装目录

三、安装Apache

进入解压后的目录

# cd httpd-2.4.29

执行下面的命令安装

# ./configure --prefix=/wwwAdmin/apache2.4.29 --sysconfdir=/wwwAdmin/apache2.4.29/conf --enable-so --enable-ssl=/wwwAdmin/openssl1.1.0g --enable-cgi --enable-rewrite --with-zlib --with-pcre=/usr/local/pcre --with-apr=/wwwAdmin/apr-1.6.3 --with-apr-util=/wwwAdmin/apr-util-1.6.1 --enable-modules=most --enable-mpms-shared=all --with-mpm=event
# make
# make install

安装完成后进入安装目录/wwwAdmin/apache2.4.29下的conf目录,使用vi httpd.conf命令打开文件,找到

#ServerName www.example.com:80

修改为(去掉前面的#号,#号是注释)

ServerName 你的服务器ip:80

这样就可以启动服务器了,启动命令往下读就会看到。(修改ServerName)

注意:安装的时候如果报某个库没有安装是正常的,因为系统中可能默认安装了某些库,有的可能没有默认安装,如果用到了没有安装的库自然会报错。如果遇到困难可以留言给我。

四、安装MySQL

1. 下载MySQL

点击进入Community版下载地址,如下图所示

未分类

根据自己的需要选择版本和系统,然后复制下载链接地址,使用wget命令下载

# wget https://downloads.mysql.com/archives/get/file/mysql-5.5.47.tar.gz

2. 解压缩源码包

# tar -zxvf mysql-5.5.47.tar.gz

3. 源码安装CMake

安装MySQL需要CMake,所以我们先用源码安装CMake。

下载网址:https://cmake.org/download/

下载之后解压, 并进入解压后的目录,执行下面的命令安装:

# ./bootstrap 
# make 
# make install 

4. 源码安装

可以参考这张网页,也可以直接跟着我的描述往下操作。

安装Perl-GD库

# yum install perl-GD

创建用户和组

为了保证安全,我们为MySQL创建一个单独的用户和组。按照下面的操作创建(其中我的mysql要安装在/wwwAdmiin/mysql5.5.47目录下,数据库数据放置在/wwwAdmiin/mysql5.5.47/data目录下,所以下面的目录根据自己要安装的位置而定。)

# useradd -r -U mysql -M -d /wwwAdmiin/mysql5.5.47/data

安装Boost

下载Boost

下载地址:http://sourceforge.net/projects/boost/files/boost/…

下载成功后解压到/usr/local/boost目录下,其他目录也可以,这里是举个例子,下面会用到。Boost使用的是下载目录,而不是安装目录。

安装ncurses lib

网址:http://invisible-island.net/ncurses/ncurses.html#d…

下载地址:ftp://invisible-island.net/ncurses/ncurses.tar.gz

解压后进入解压后的目录依次执行下面的命令:

# ./configuration 
# make 
# make install 

安装MySQL

进入mysql源码包解压后的目录,依次执行下面的命令:

# cmake . -DCMAKE_INSTALL_PREFIX=/wwwAdmiin/mysql5.5.47 -DMYSQL_DATADIR=/wwwAdmiin/mysql5.5.47/data -DMYSQL_USER=mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=/usr/local/boost 
# make 
# make install 

-DMYSQL_USER使用我们上面创建的用户mysql,-DWITH_BOOST指定的是boost的解压目录。

启动MySQL

进入MySQL安装目录的scripts目录下,执行下面的命令:

# ./mysql_install_db --user=mysql --basedir=/wwwAdmiin/mysql5.5.47 --datadir=/wwwAdmiin/mysql5.5.47/data

–user指定用户。如果报错:没有mysql_install_db的权限,使用chmod 777 mysql_install_db即可。

这行命令执行完后,命令行会给出提示接下来如何配置root密码,这个我忘记了。可以按照给出的提示修改,如果不敢操作,可以按照我下面介绍的方法修改,结果是一样的。

进入MySQL安装目录的bin目录下,依次执行下面的命令:

# ./mysqld_safe --user=mysql &
# ./mysql -u root -p //输入这行命令后提示输入密码时直接回车,因为默认密码是空的
# use mysql;
# UPDATE user SET Password = PASSWORD('更改后的密码') WHERE user = 'root';<span class="redactor-invisible-space">
# FLUSH PRIVILEGES;<span class="redactor-invisible-space"></span></span>

将MySQL启动服务添加到系统服务

进入MySQL安装目录,执行下面的命令:

# cp support-files/mysql.server /etc/init.d/mysql

五、安装PHP

1. 下载

下载地址:http://php.net/

2. 依赖库安装

Python(安装libxml2需要用到)

# yum search python | grep python-devel sudo yum install python-devel.x86_64 

libxml2

下载地址:ftp://xmlsoft.org/libxml2/

进入解压后的根目录,依次执行下面的命令:

# ./configuration 
# make 
# make install

libjpeg

# yum install libjpeg-devel

freetype

# yum install freetype-devel 

libmcrypt

下载地址ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt

进入解压后的根目录,依次执行下面的命令:

# ./configuration 
# make
# make install 

libpng

下载地址:http://www.libpng.org/pub/png/libpng.html

下载完成后解压,然后进入解压目录,执行下面的命令:

# ./configuration
# make
# make install

3. 配置

# ./configure --prefix=/wwwAdmin/php5.5.38 --with-config-file-path=/wwwAdmin/php5.5.38/etc --with-apxs2=/wwwAdmin/apache2.4.29/bin/apxs --with-mysql=/wwwAdmin/mysql5.5.47/ --with-mysqli=/wwwAdmin/mysql5.5.47/bin/mysql_config --with-pcre-dir=/wwwAdmin/pcre2-10.30/ --with-libxml-dir --with-png-dir --with-jpeg-dir --with-fretype-dir --with-gd --with-zlib-dir --with-mcrypt --with-curl --enable-zip --enable-soap --enable-mbstring=all --enable-sockets --enable-calendar

4. 安装

# make
# make test
# make install

注意:以上安装并没有将各个服务设为开机启动,如果服务器发生reboot,需要手动开启Apache和MySQL。

apache的启动方式是进入安装目录下的bin目录,然后执行

# ./apachectl start

重启命令

# ./apachectl restart

停止命令

# ./apachectl stop

MySQL的启动相关命令

# service mysql start
# service mysql restart
# service mysql stop

喘口气~

到这里LAMP环境就安装完成了,下面进行配置

1、修改apache的用户名和组

我们先使用下面的命令新建用户:

# groupAdd wwwAdmin
# userAdd -g wwwAdmin wwwAdmin

然后进入apache安装目录下的conf目录下,使用 vi httpd.conf 命令打开apache的配置文件,找到

User daemon
Group daemon

修改为

User wwwAdmin
Group wwwAdmin

然后重启apache即可生效。

2、修改网站根目录

Apache默认的目录是在Apache安装目录下的htdocs目录下,我们可能希望将目录指向我们自建的位置,那么就需要做如下示例的配置:

  • 新建目录

我上面的安装目录都是wwwAdmin,我希望网站也放在这个目录中的某个文件夹下,进入wwwAdmin目录,执行下面的命令创建一个名为www的目录,用了存放网站。

mkdir www
  • 修改目录所属者和权限

我们将www目录的用户和组设置为Apache的用户和组,同时设置权限为可读写。

chown -r wwwAdmin:wwwAdmin www
chmod -r u+w www
  • 配置Apache网站根目录指向

打开apache的配置文件httpd.conf,找到

# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/wwwAdmin/apache2.4.29/htdocs"
<Directory "/wwwAdmin/apache2.4.29/htdocs">
...
</Directory>

修改为

# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/wwwAdmin/www"
<Directory "/wwwAdmin/www">
...
</Directory>

保存,然后重启apache即可生效。

3、配置Apache解析php

打开Apache的配置文件httpd.conf,找到

<Directory />
    AllowOverride none
    Require all denied
    ...
</Directory>

修改为(改为allow from all,不然会提示403)

<Directory />
    AllowOverride none
    #Require all denied
    Order deny,allow
    allow from all
</Directory>

找到

AddType application/x-gzip .gz .tgz

在下面添加(添加对php的解析)

AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php 

找到

<IfModule dir_module>
    DirectoryIndex index.html index.htm index.php
</IfModule>

改为

<IfModule dir_module>
    DirectoryIndex index.html index.htm index.php
</IfModule>
  • 配置域名

打开Apache的配置文件httpd.conf,在文件末尾添加如下内容:

<VirtualHost *:80>
    ServerName www.geek-era.com
    DocumentRoot /wwwAdmin/www/basic/web
    <Directory "/wwwAdmin/www/basic/web">
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

DocumentRoot指定的是网站目录。

到这里整个环境的搭建就完成了(但是我的心情却有点复杂)

下面介绍几个可能会碰到的小问题

  • Fatal error: Can’t open and lock privilege tables: Table ‘mysql.user’ doesn’t exist

MySQL启动的时候使用的命令是

进入MySQL安装目录的scripts目录下,执行下面的命令:

# ./mysql_install_db --user=mysql --basedir=/wwwAdmiin/mysql5.5.47 --datadir=/wwwAdmiin/mysql5.5.47/data 

如果执行这行命令报如上的错误,则使用下面的命令:

# ./mysql_install_db --user=mysql --basedir=/wwwAdmiin/mysql5.5.47 --datadir=/wwwAdmiin/mysql5.5.47/data --ldata=/var/lib/mysql

我安装过程中确实碰到过这个问题,而且用这个方法解决了。

  • 安装PHP报错 ‘ext/date/lib/parse_date.lo’ is not a valid libtool object

出现这个问题是因为在源码包中已经运行过make,然后再次运行。解决方法很简单,执行 make clean 然后再执行 make 即可。

LINUX搭建LAMP(APACHE+PHP+MYSQL环境)CENTOS7.2版

我们更多的网站服务器是选择了Linux系统,这里建议你选择centos,这也是阿里云ecs推荐的系统,在服务器上比较推荐centos,特别对于新手,首选CentOS,并不是centos比Debian和ubuntu好,而是centos是初学者安装vps的首选,它既稳定,占用资源又少此版本生命周期较长,而且网上有关centos的教程很多,方便学习,我们这里选择了Centos7.2,采用yum在线安装。

一、 检查系统环境

1、确认centos版本

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)

2、检查是否安装过apache

rpm -qa | grep httpd

或者:

apachectl -v

或者:

httpd -v

3、检查是否安装过Mysql

service mysqld start

如果未被识别则没有安装
如果系统安装过,或者安装失败,清理一下系统

4、清理Mysql痕迹

yum remove mysql
rm -f /etc/my.cnf

5、卸载Apache包

rpm -qa|grep httpd

注意:如果是新的系统或者你从来没有尝试安装过,则以上步骤省略。

二、安装APACHE、PHP、MYSQL

1、安装apache

[root@localhost ~]# yum -y install httpd

直到返回

......
Installed:
  httpd.x86_64 0:2.4.6-40.el7.centos.4                                          

Dependency Installed:
  apr.x86_64 0:1.4.8-3.el7                      apr-util.x86_64 0:1.5.2-6.el7   
  httpd-tools.x86_64 0:2.4.6-40.el7.centos.4    mailcap.noarch 0:2.1.41-2.el7   

Complete!

表示安装成功!

2、安装Php

[root@localhost ~]# yum -y install php

直到返回:

......
Installed:
  php.x86_64 0:5.4.16-36.3.el7_2                                                

Dependency Installed:
  libzip.x86_64 0:0.10.1-8.el7             php-cli.x86_64 0:5.4.16-36.3.el7_2   
  php-common.x86_64 0:5.4.16-36.3.el7_2   

Complete!

3、安装php-fpm

[root@localhost ~]# yum -y install php-fpm

直到返回:

Installed:
  php-fpm.x86_64 0:5.4.16-36.3.el7_2                                            

Complete!

4、安装Mysql

[root@localhost ~]# yum -y install mysql

直到返回:

Installed:
  mariadb.x86_64 1:5.5.50-1.el7_2                                               

Dependency Updated:
  mariadb-libs.x86_64 1:5.5.50-1.el7_2                                          

Complete!

7.2版本的Centos已经把mysql更名为mariadb,表示安装成功!

5、安装 mysql-server

[root@localhost ~]# yum -y install mysql-server
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirror.lzu.edu.cn
 * extras: mirrors.nwsuaf.edu.cn
 * updates: mirrors.tuna.tsinghua.edu.cn
No package mysql-server available.
Error: Nothing to do

返回错误!!!

分析解决方案

CentOS 7+ 版本将MySQL数据库软件从默认的程序列表中移除,用mariadb代替了,entos7配置教程上,大多都是安装mariadb,因为centos7默认将mariadb视作mysql。

因为mysql被oracle收购后,原作者担心mysql闭源,所以又写了一个mariadb,这个数据库可以理解为mysql的分支。如果需要安装mariadb,只需通过yum就可。

解决方案:

二是从官网下载mysql-server

wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

rpm -ivh mysql-community-release-el7-5.noarch.rpm

yum install mysql-community-server

然后需要确定,输入y回车即可

Install  3 Packages (+8 Dependent packages)

Total download size: 82 M
Is this ok [y/d/N]:

一直选择输入 y ,有两次选择,直到返回:

Replaced:
  mariadb.x86_64 1:5.5.50-1.el7_2      mariadb-libs.x86_64 1:5.5.50-1.el7_2     

Complete!

安装成功!!!

6、安装 php-mysql

[root@localhost ~]# yum -y install php-mysql

直到返回:

Installed:
  php-mysql.x86_64 0:5.4.16-36.3.el7_2                                          

Dependency Installed:
  php-pdo.x86_64 0:5.4.16-36.3.el7_2                                            

Complete!

安装成功!!!

三、安装基本常用扩展包

1、安装Apache扩展包

yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql

返回

......
Installed:
  httpd-manual.noarch 0:2.4.6-40.el7.centos.4                                   
  mod_ssl.x86_64 1:2.4.6-40.el7.centos.4                                        

Complete!

安装成功!!!

2、安装PHP扩展包

yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc php-devel

返回:

......
Dependency Updated:
  pcre.x86_64 0:8.32-15.el7_2.1                                                 

Complete!

安装成功!!!

3、安装Mysql扩展包

yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql

返回:

......
Dependency Installed:
  libdbi.x86_64 0:0.8.4-6.el7         libdbi-drivers.x86_64 0:0.8.3-16.el7     
  unixODBC.x86_64 0:2.3.1-11.el7     

Complete!

安装成功!!!

四、配置APACHE、MYSQL开机启动

重启Apache、mysql服务(注意这里和centos6有区别,Cenots7+不能使用6的方式)

systemctl start httpd.service #启动apache
systemctl stop httpd.service #停止apache
systemctl restart httpd.service #重启apache
systemctl enable httpd.service #设置apache开机启动

启对应服务

service mysqld restart

service php-fpm start

service httpd restart

五、配置MYSQL

初次安装mysql是没有密码的,我们要设置密码,mysql的默认账户为root

设置 MySQL 数据 root 账户的密码:

[root@localhost ~]# mysql_secure_installation

当出现如下提示时候直接按回车:

Enter current password for root

出现如下再次回车:

Set root password? [Y/n]

出现如下提示输入你需要设置的密码,这里输入了root,输入密码是不显示的,回车后再输入一次确认:

New password:

接下来还会有四个确认,分别是:

Remove anonymous users? [Y/n]
Disallow root login remotely? [Y/n]
Remove test database and access to it? [Y/n]
Reload privilege tables now? [Y/n]

直接回车即可。

六、测试环境

1、我们在浏览器地址栏输入http://localhost/如下图,说明我们的apache测试成功

未分类

2、测试Php

进入apache的web根目录:/var/www/html 中写一个最简单的php测试页面

cd /var/www/html

touch phpinfo-test.php

vi phpinfo-test.php

进入到了控制模式之后按键盘字母 i 进入到编辑模式,将如下代码输入到文件中

<?php

echo "<title>Phpinfo Test.php</title>";

phpinfo()

?>

按 esc 退出编辑模式,回到控制模式,输入 :wq 然后回车,在浏览器中输入服地址http://localhost/phpinfo-test.php

出现下图则成功。

未分类

七、小结

1、我们采用了yum在线安装,版本都是默认的Php是5.4,apache的版本是Server version: Apache/2.4.6 (CentOS)

2、要想安装更高版本的php 阅读:centos7.2yum安装php70w.x86_64

3、以上教程亲测完成成功,极力推荐,如果你在调试过程中出现问题,留言讨论,如有错误,敬请指教。

CentOS服务器设置自动时间同步

未分类

在虚拟机中使用centos的时候,经常进行挂起等操作,这样导致时间经常不准确,于是进行自动时间同步的设置,服务器同理。

安装ntpdate

yum install ntp

安装完成后,无需其他配置,直接执行

ntpdate time.nist.gov

如果出现以下内容,说明同步成功了。

15 Jan 11:40:25 ntpdate[804]: adjust time server 132.163.4.101 offset 0.093992 sec

然后在crontab里面加上以下内容

*/10 * * * * ntpdate time.nist.gov #域名或IP

centos下ngrok服务器搭建及ngrok客户端使用

ngrok 简介及作用

ngrok 是一款用 go 语言开发的开源软件,它是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道.ngrok 可以做 TCP 端口转发,对于 Linux 可以将其映射到 22 端口进行 SSH 连接,Windows 的远程桌面可以将其映射到 3389 端口来实现.同理,如果要做 MySQL 的远程连接,只需映射 3306 端口即可. 最重要的是可以本地调试微信开发,极其方便

开发前注意事项

  1. 防火墙设置:服务器和客户端都要关闭对应端口的防火墙,否则无法通过连接使用.ngrok默认端口是4443.

  2. 编译客户端及服务器时要注意系统是32位和64位,不能编译错了,否则将无法使用.

安装前的准备

除了ngrok是需要git下来安装 其他都通过yum安装(方便管理)

域名设置

假设你的域名是xxx.com,服务器地址是123.123.123.123则你需要解析2条A记录值到服务器

  1. 第一条是 @.xxx.com 第二条是 *.xxx.com

  2. 这样就可以任意二级域名就是作为你ngrok客户端的地址了

如果想使用二级域名则解析以下2个A记录值到服务器,假设你想使用的二级域名是ngrok.xxx.com

  1. 第一条是 ngrok.xxx.com 第二条是 *.ngrok.xxx.com

  2. 这样 子域名.ngrok.xx.com的三级域名就是作为你ngrok客户端的地址了

  3. 说明:

  4. 主机记录就是域名前缀,常见用法有:

  5. www:解析后的域名为www.aliyun.com。

  6. @:直接解析主域名 aliyun.com。

  7. *:泛解析,匹配其他所有域名 *.aliyun.com。

  8. mail:将域名解析为mail.aliyun.com,通常用于解析邮箱服务器。

  9. 二级域名:如:abc.aliyun.com,填写abc。

  10. 手机网站:如:m.aliyun.com,填写m。

  11. 显性URL:不支持泛解析(泛解析:将所有子域名解析到同一地址)

我使用的是二级域名解析 也就是ngrok.xxx.com

未分类

下载常用依赖库

yum -y install zlib-devel openssl-devel perl hg cpio expat-devel gettext-devel curl curl-devel perl-ExtUtils-MakeMaker hg wget gcc gcc-c++

安装go和git

yum -y install go git

我的是centos7.2 yum安装下来的git版本是1.8.3.1 go版本是1.8.3

要注意git版本必须大于1.7.9,go版本必须大于1.4,否则可能有意想不到的错误

开始安装ngrok

下载ngrok源码

个人习惯安装到/usr/local/目录下 如果你想安装到其他目录 则进入你想安装的目录

cd /usr/local/
git clone https://github.com/inconshreveable/ngrok.git ngrok

cd ngrok #进入ngrok目录,后面操作都是在ngrok目录下完成!

生成域名证书(确保在ngrok目录下)

#生成并替换源码里默认的证书,注意域名要修改为你自己的,这里是一个虚拟的测试域名
NGROK_DOMAIN="ngrok.xxx.com"

#测试一下有没有设置成功
echo $NGROK_DOMAIN #输出ngrok.xxx.com表示成功

openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000

之后会在 ngrok 目录下生成 root,device 等六个文件。 然后需要拷贝到配置的目录中,在编译的时候会使用这些文件。

cp -r rootCA.pem assets/client/tls/ngrokroot.crt
cp -r device.crt assets/server/tls/snakeoil.crt
cp -r device.key assets/server/tls/snakeoil.key

到这个地方,证书生成已经复制的准备工作就已经完成了。

生成服务器的ngrokd

make release-server

这样就会在bin目录下生成ngrokd 这个文件,就是我们ngrok的服务器程序

编译客户端ngrok(不同系统不同的命令如下)

  • 32位linux客户端: GOOS=linux GOARCH=386 make release-client

  • 64位linux客户端: GOOS=linux GOARCH=amd64 make release-client

  • 32位windows客户端: GOOS=windows GOARCH=386 make release-client

  • 64位windows客户端: GOOS=windows GOARCH=amd64 make release-client

  • 32位mac平台客户端:GOOS=darwin GOARCH=386 make release-client

  • 64位mac平台客户端:GOOS=darwin GOARCH=amd64 make release-client

  • ARM平台linux客户端: GOOS=linux GOARCH=arm make release-client

我这里是64位linux和64位windows客户端编译

GOOS=linux GOARCH=amd64 make release-client
GOOS=windows GOARCH=amd64 make release-client

依次执行这2个命令之后就会在bin目录里面生成所有的客户端文件,客户端平台是文件夹的名字,客户端放在对应的目录下,当前Linux平台客户端就直接在bin目录下一个ngrok的程序

配置启动服务器

  • httpAddr 是访问普通的http使用的端口号,用后面用 子域名.ngrok.xxx.com 来访问服务

  • httpsAddr 是访问的https使用的端口号,同上,只不过是需要https的服务访问才用这个端口(一般用不上)

  • tunnelAddr 是ngrok通道的端口号,这个端口是Ngrok用来通信的,所以这个端口在服务器上和客户端上设置必须要对应才可以正常的链接,默认端口是4443

完整命令

bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80" -httpsAddr=":443" -tunnelAddr=":4443"

我使用的

bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80"

其中NGROK_DOMAIN对应的就是一开始设置过的域名地址。

要注意我这里使用的是80端口。要确保服务器上没有apache或nginx占用80端口,后面会介绍使用其他端口的方式

配置windows客户端

首先先把bin目录下windows_amd64文件夹ftp或者sftp传到windows下并进入

然后新建一个 ngrok.cfg,在里面填写以下内容

server_addr: "ngrok.xxx.com:4443"
trust_host_root_certs: false

server_addr地址和服务器设置的 NGROK_DOMAIN=”ngrok.xxx.com” 中的地址保持一致,如果你服务器启动的时候设置了tunnelAddr端口则把4443也改成你设置的端口

启动客户端

完整命令

ngrok.exe -log=ngrok_log.txt -subdomain=test -config="ngrok.cfg" 80

我的命令

ngrok.exe -subdomain=test -config="ngrok.cfg" 80
  • 日志: -log=ngrok_log.txt 是记录ngrok的日志,如果前期调试的时候加上这个参数,如果不能访问就可以查看到底是什么问题

  • 子域名: -subdomain=test 是定义访问的时候的子域名,现在访问 test.ngrok.xxx.com 就可以访问到这一台机器上80端口的服务

ngrok

Tunnel Status online
Version 1.7/1.7
Forwarding https://test.ngrok.xxx.com -> 127.0.0.1:80
Forwarding http://test.ngrok.xxx.com -> 127.0.0.1:80
Web Interface 127.0.0.1:4040
# Conn 0
Avg Conn Time 0.00ms

online是绿色的 表示连接成功!

到这里不出意外的话就会启动成功了,访问test.ngrok.xxx.com的时候就是你本地的ip了.你可以通过apache或nginx配置test.ngrok.xxx.com域名指定你的目录开始使用啦~

你可以访问127.0.0.1:4040来看到所有对test.ngrok.xxx.com的请求~