云服务器
程序员都很希望别人能写文档,而自己却不愿意写文档。文档的编写和管理影响了团队沟通协作的效率,ShowDoc 是一个非常适合 IT 团队的在线文档分享工具,为提升团队之间的沟通协作效率而生。本实验带您在 centos 系统上搭建基于 Nginx + PHP 的 ShowDoc 文档工具。
首次可免费使用云主机 45 分钟 ,到期后云主机将被重置并退库,若想保留成果请及时留用。
# 搭建 ShowDoc 文档工具
## 准备 Nginx + PHP 环境
> <time>10min ~ 20min</time>
### 安装 Nginx
使用 `yum` 安装 Nginx:
```
yum install nginx
```
修改 [/etc/nginx/nginx.conf][modify-nginx] 文件为如下内容:
> <locate for="modify-nginx" path="/etc/nginx/nginx.conf" hint="修改 nginx.conf 文件配置" />
```
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
server {
listen 80;
server_name 127.0.0.1;
root /var/www/html;
index index.php index.html
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
location ~ \.php$ {
root /var/www/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
}
```
启动 Nginx 并设置为开机启动:
```
systemctl start nginx
systemctl enable nginx.service
```
> <checker type="output-contains" command="netstat -npl" hint="nginx 未正常启动">
> <keyword regex="80" />
> </checker>
### 安装 PHP
使用 `yum` 安装 php-fpm:
```
yum install php php-gd php-fpm php-mcrypt php-mbstring php-mysql php-pdo
```
启动 php-fpm 并设置为开机启动:
```
systemctl start php-fpm
systemctl enable php-fpm.service
```
> <checker type="output-contains" command="netstat -npl" hint="php-fpm 未正常启动">
> <keyword regex="9000" />
> </checker>
## 创建项目
> <time>10min ~ 20min</time>
### 下载安装 Composer
Composer 是 PHP 的一个依赖管理工具,推荐使用 Composer 创建 ShowDoc 项目。
执行如下命令[安装 Composer][install-composer]:
> <bubble for="install-composer">
> 安装过程可能需要耗费几分钟
> </bubble>
```
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
```
> <checker type="output-contains" command="composer --version" hint="Composer 未安装成功">
> <keyword regex="Composer version" />
> </checker>
### 设置 Composer 使用国内镜像
执行命令[设置 Composer 使用国内镜像][mainland-composer]:
> <bubble for="mainland-composer">
> 为了避免访问国外网络导致的延迟,推荐使用国内镜像源
> </bubble>
```
composer config -g repo.packagist composer https://packagist.phpcomposer.com
```
### 使用 Composer 创建项目
执行命令创建项目:
```
cd /var/www/html/ && composer create-project showdoc/showdoc
```
> <checker type="output-contains" command="ls /var/www/html/showdoc" hint="未检测到创建项目,若您使用了自定义的路径或者名称创建项目">
> <keyword regex="install" />
> </checker>
### 设置 showdoc 目录写权限
执行命令赋予 showdoc 下部分目录的写权限
```
chmod a+w showdoc/install
chmod a+w showdoc/Sqlite
chmod a+w showdoc/Sqlite/showdoc.db.php
chmod a+w showdoc/Public/Uploads/
chmod a+w showdoc/server/Application/Runtime
chmod a+w showdoc/server/Application/Common/Conf/config.php
chmod a+w showdoc/server/Application/Home/Conf/config.php
```
创建完毕,您现在可以通过浏览器访问 http://${runtime.vars.cvmIpAddress}/showdoc/install/ ,进行语言的选择以后即可通过 http://${runtime.vars.cvmIpAddress}/showdoc 查看站点效果。
## 准备域名和解析
> <time>15min ~ 30min</time>
### 域名注册
注:如果您不需要通过域名访问您的站点,请通过`已完成,下一步`跳过`域名注册`环节
如果您需要使用域名,可以[在腾讯云上选购][buy_link],过程可以参考下面的视频。
* [视频 - 在腾讯云上购买域名][buy_domain_video]
> <link for="buy_link" href="https://dnspod.qcloud.com/?fromSource=lab"></link>
> <video for="buy_domain_video" platform="qq" vid="p05077pwelw" name="域名选购"></video>
### 域名解析
注:如果您不需要通过域名访问您的站点,请通过`已完成,下一步`跳过`域名解析`环节
域名购买完成后, 需要将域名解析到实验云主机上,实验云主机的 IP 为:
```
${runtime.vars.cvmIpAddress}
```
在腾讯云购买的域名,可以[到控制台添加解析记录][https://console.qcloud.com/domain],过程可参考下面的视频:
* [视频 - 如何在腾讯云上解析域名][video_resolve_domain]
> <video for="video_resolve_domain" platform="qq" vid="t0507ps9kxo" name="域名解析"></video>
域名设置解析后需要过一段时间才会生效,通过 `ping` 命令检查域名是否生效 [:question][replace],如:
> <bubble for="replace">注意替换下面命令中的 `www.yourmpdomain.com` 为您自己的注册的域名</bubble>
```
ping www.yourdomain.com
```
如果 ping 命令返回的信息中含有你设置的解析的 IP 地址,说明解析成功。
### 大功告成!
恭喜,您的 ShowDoc 站点已经部署完成,您可以通过浏览器访问查看效果。
通过IP地址查看:[http://${runtime.vars.cvmIpAddress}/showdoc][]
通过域名查看:[http://www.yourdomain.com/showdoc][],其中替换 `www.yourdomain.com` 为之前申请的域名。