文章目录
一:编译安装Nginx
1:安装支持软件
Nginx的配置及运行需要pcre、zlib等软件包的支持,因此应预先安装这些软件的开发包(devel),以便提供相应的库和头文件,确保Nginx的安装顺利完成。
[root@server2 ~]# yum -y install pcre-devel zlib-devel
- pcre-devel是prel语言的正则表达式库
- zlib-devel是软件包的开发包,库里面包括头文件静态库甚至源码等资源**
2:创建运行用户、组
Nginx服务程序默认以nobody身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限,增加灵活性,降低安全风险。例如,创建一个名为nginx的用户,不建立宿主文件夹,也禁止登录到shell环境。
[root@server2 ~]# useradd -M -s /sbin/nologin nginx
3:编译安装Nginx
配置Nginx的编译选项时,将安装目录设为/usr/local/ngine,运行用户和组均为Nginx;启用http_status_module模块以支持状态统计,便于查看服务器的连接信息,具体选项根据实际需要来定,配置前可参考“./configure --help”给出的说明。
[root@server2 ~]# tar zxvf nginx-1.12.2.tar.gz
[root@server2 ~]# cd nginx-1.12.2/
[root@server2 nginx-1.12.2]# ./configure --prefix=/usr/local/nginx --user=nginx
--group=nginx --with-http_stub_status_module
[root@server2 nginx-1.12.2]# make && make install
- –user=nginx指定其运行时的账户与组
- –with-http_stub_status_module将状态模块启用
为了使Nginx服务器的运行更加方便,可以为主程序nginx创建链接文件,以便管理员直接执行“nginx”命令就可以调用Nginx的主程序。
[root@server2 nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
二:Nginx的运行控制
1:检查配置文件
与Apache的主程序httpd类似,Nginx的主程序也提供了 “-t” 选项来对配置文件进行检查,以便找出不当或错误的配置。
[root@server2 nginx-1.12.2]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
2:启动、停止Nginx
直接运行Nginx即可启动Nginx服务器,这种方式将使用默认的配置文件。
[root@server2 nginx-1.12.2]# cd
[root@server2 ~]# nginx
通过检查Nginx程序的监听状态,或者在浏览器中访问此Web服务(默认页面将显示“Welcome to nginx”),也可以确认Nginx服务是否正常运行。
[root@server2 ~]# netstat -anpt | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 55848/nginx: master
主程序Nginx支持标准的进程信号,通过kill或killall命令发送HUP信号表示重载配置,发送QUIT信号表示退出进程,发送KILL信号表示杀死进程(通过 “-s” 选项指定信号种类)。
[root@server2 ~]# killall -s HUP nginx # -s HUP 等同于 -1
[root@server2 ~]# netstat -anpt | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 55848/nginx: master
[root@server2 ~]# killall -s QUIT nginx # -s QUIT 等同于 -3
[root@server2 ~]# netstat -anpt | grep nginx
3:使用Nginx服务脚本
为了使Nginx服务的启动、停止、重载等操作更加方便,可以编写Nginx服务脚本,并使用chkconfig和service工具来进行管理,也更加符合RHEL系统的管理习惯。
[root@server2 ~]# vi /etc/init.d/nginx
#!/bin/bash
#chkconfig: 35 99 33
#description: Nginx Service Control Script
PROG="/usr/local/nginx/sbin/nginx" #主程序路径
PIDF="/usr/local/nginx/logs/nginx.pid" # PID 存放路径
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF) #根据 PID 终止Nginx进程
;;
reload)
kill -s HUP $(cat $PIDF) #根据进程号重载配置
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0
[root@server2 ~]# chmod +x /etc/init.d/nginx
[root@server2 ~]# chkconfig --add nginx #添加为系统服务
这样一来,就可以通过Nginx脚本来启动、停止、重启、重载Nginx服务器了,方法是在执行时添加相应的start、stop、restart、reload参数。
三:配置文件 nginx.conf
在Nginx服务器的主配置文件 /usr/local/nginx/conf/nginx.conf,包括全局配置、I/O事件配置和HTTP配置这三大块内容,配置语句的格式为 “关键字 值;” (末尾以分号表示结束),以 “#” 开始的部分表示注释
1:全局配置
由各种配置语句组成,不使用特定的界定标记,全局配置部分包括Nginx服务的运行用户、工作进程数、错误日志、PID存放位置等基本设置。
[root@server2 ~]# ln -s /usr/local/nginx/conf/nginx.conf /etc/
[root@server2 ~]# vi /etc/nginx.conf
部分修改后
user nginx nginx; #运行用户
worker_processes 4; #工作进程数量
#error_log logs/error.log;
#error_log logs/error.log notice;
error_log logs/error.log info; #错误日志文件的未知
#pid logs/nginx.pid; #PID文件的位置
2:I/O时间配置
使用 “events { }” 界定标记,用来指定Nginx进程的 I/O 响应模型,每个进程的连接数等设置。对于2.6及以上版本的内核,建议使用epoll模型以提高性能;每个进程的连接数根据实际需要来定,一般在10000以下(默认为1024)。
部分修改后
events {
use epoll;
worker_connections 4096;
}
3:HTTP配置
使用 “http{ }” 界定标记,包括访问日志、HTTP端口、网页目录、默认字符集、连接保持。
部分修改后
http {
include mime.types;
default_type application/octet-stream;
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 logs/access.log main; #访问日志位置
sendfile on; #支持文件发送(下载)
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65; #连接保持超时
#gzip on;
server { #Web服务的监听位置
listen 80; #监听地址及端口
server_name localhost; #网站名称
charset utf-8; #网页的默认字符集
access_log logs/aa.com.access.log main;
location / { #根目录配置
root html; #网站根目录的位置
index index.html index.htm; #默认首页
}
查看和更改系统本地打开资源数
[root@server2 ~]# ulimit -n
1024
[root@server2 ~]# ulimit -n 65535 >> /etc/rc.local #增加连接限制数量
[root@server2 ~]# ulimit -n
65535
四:访问状态统计
1:配置统计功能
要使用Nginx的状态统计功能,出了启用内建模块以外,还需要修改 nginx.conf 配置文件,指定访问位置并添加 stub_status 配置代码。
[root@server2 ~]# vi /etc/nginx.conf
找到
location / {
root html;
index index.html index.htm;
}
location ~ /status { #添加:访问位置为 /status
stub_status on; #添加:打开状态统计功能
access_log off; #添加:关闭此位置的日志记录
}
[root@server2 ~]# systemctl restart nginx
2:访问状态统计
新的配置生效以后,在浏览器中访问Nginx服务器的/status 网站位置,可以看到当前的状态统计信息,如图所示,“Active connections”表示当前的活动连接数,而“server accepts handled requests”表示已经处理的连接信息。
[root@server2 ~]# cd /usr/local/nginx/logs/
[root@server2 logs]# ll
总用量 12
-rw-r--r--. 1 root root 221 11月 28 13:07 aa.com.access.log #站点下启用的日志文件
-rw-r--r--. 1 root root 0 11月 27 20:59 access.log
-rw-r--r--. 1 root root 1273 11月 28 13:08 error.log
-rw-r--r--. 1 root root 6 11月 28 13:04 nginx.pid
[root@server2 logs]# cat aa.com.access.log | wc -l #查看请求数
1
三个数字依次表示已处理的连接数(1)、成功的 TCP 握手次数(1)、已处理的请求数(1),
Reading表示:读取客户端的连接数、Writing表示:响应数据到客户端的数量、Waiting表示:升启keep-alive的情况卜,这个值等于active-(reading+writing),意思就是Nginx已经处理完正在等候下一次请求指令的驻留连接。
五:配置Nginx的验证功能
1:生成用户生成文件
使用 htpasswd 生成用户认证文件,如果没有该命令,可使用 yum 安装 httpd-tools 软件包,在 /usr/local/nginx/ 目录下生成了 passwd.db 文件,用户名是jack,密码输入两次。
[root@server2 ~]# yum -y install httpd-tools
[root@server2 ~]# htpasswd -c /usr/local/nginx/passwd.db jack
New password:
Re-type new password:
Adding password for user jack
修改密码文件的权限为400,将所有者改为 nginx ,设置 nginx 的运行用户能够读取
[root@server2 ~]# chmod 400 /usr/local/nginx/passwd.db
[root@server2 ~]# chown nginx /usr/local/nginx/passwd.db
2:修改配置文件
修改主配置文件 nginx.conf ,添加相应认证配置项。检查语法,重启服务。
[root@server2 ~]# vi /etc/nginx.conf
找到
location / {
root html;
index index.html index.htm;
auth_basic "secret"; #添加:添加认证配置
auth_basic_user_file /usr/local/nginx/passwd.db; #添加
[root@server2 ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@server2 ~]# systemctl restart nginx
3:基于客户端的访问控制
deny IP/IP 段:拒绝某个 IP或IP 段的客户端访问
allow IP/IP段:允许某个 IP/IP 段的客户端访问
规则从上往下执行,如匹配则停止,不再往下匹配
[root@server2 ~]# vi /etc/nginx.conf
找到
location / {
root html;
index index.html index.htm;
allow all; #添加:先允许
deny 20.0.0.1/32; #添加:后拒绝
auth_basic "secret";
auth_basic_user_file /usr/local/nginx/passwd.db
}
[root@server2 ~]# systemctl restart nginx
[root@server2 ~]# vi /etc/nginx.conf
找到
location / {
root html;
index index.html index.htm;
deny 20.0.0.1/32; #添加:先拒绝
allow all; #添加:后允许
auth_basic "secret";
auth_basic_user_file /usr/local/nginx/passwd.db
}
[root@server2 ~]# systemctl restart nginx
由于不需要做权限的设定,要删除
location / {
root html;
index index.html index.htm;
}
location ~ /status {
stub_status on;
access_log off;
[root@server2 ~]# systemctl restart nginx
六:Nginx虚拟主机
1:基于域名的虚拟主机
加入 www.aa.com 和 www.bb.com 这两个域名,他们都指向同一个服务器 IP 地址,用于实现不同的域名访问不同的虚拟主机。
修改 server{} 中的配置,加入一个新的 server{} 段,对应两个域名
[root@server2 ~]# vi /etc/nginx.conf
修改
server {
listen 80;
server_name www.aa.com; #域名
charset utf-8;
access_log logs/aa.com.access.log main; #日志文件
location / {
root /var/www/aa; #www.aa.com 的工作目录
index index.html index.htm;
}
合适位置添加新的(注意大括号)
server {
listen 80;
server_name www.bb.com;
charset utf-8;
access_log logs/bb.com.access.log;
location / {
root /var/www/bb;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
[root@server2 ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@server2 ~]# systemctl restart nginx
文件生效、添加映射和测试
[root@server2 ~]# mkdir -p /var/www/aa
[root@server2 ~]# mkdir -p /var/www/bb
[root@server2 ~]# echo "<h1>this is my web aa.</h1>" > /var/www/aa/index.html
[root@server2 ~]# echo "<h1>this is my web bb.</h1>" > /var/www/bb/index.html
[root@server2 ~]# vi /etc/hosts
20.0.0.11 www.aa.com www.bb.com
[root@server2 ~]# curl http://www.aa.com
<h1>this is my web aa.</h1>
[root@server2 ~]# curl http://www.bb.com
<h1>this is my web bb.</h1>
2:基于 IP 的虚拟主机
目前主机有一个网卡,IP 地址为20.0.0.11,再配置一个虚拟 IP 为 192.168.1.11.
[root@server2 ~]# ifconfig ens33:1 192.168.1.11/24
[root@server2 ~]# ifconfig
ens33:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:0c:29:49:77:39 txqueuelen 1000 (Ethernet)
[root@server2 ~]# vi /etc/nginx.conf
server {
listen 20.0.0.11:80; #www.aa.com地址为20.0.0.11
server_name www.aa.com;
server {
listen 192.168.1.11:80; #www.bb.com地址为192.168.1.11
server_name www.bb.com;
[root@server2 ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@server2 ~]# systemctl restart nginx
[root@server2 ~]# netstat -anpt | grep nginx #两个监听地址
tcp 0 0 192.168.1.11:80 0.0.0.0:* LISTEN 59018/nginx: master
tcp 0 0 20.0.0.11:80 0.0.0.0:* LISTEN 59018/nginx: master
[root@server2 ~]# curl http://20.0.0.11
<h1>this is my web aa.</h1>
[root@server2 ~]# curl http://192.168.1.11
<h1>this is my web bb.</h1>
3:基于端口的虚拟主机
选择系统中不使用的端口,将多个端口映射到同一个IP地址或不同的 IP 。
[root@server2 ~]# vi /etc/nginx.conf
server {
listen 20.0.0.11:6666; #监听6666端口
server_name www.aa.com;
server {
listen 192.168.1.11:9999; #监听9999端口
server_name www.bb.com;
[root@server2 ~]# systemctl restart nginx
[root@server2 ~]# netstat -anpt | grep nginx
tcp 0 0 192.168.1.11:9999 0.0.0.0:* LISTEN 59130/nginx: master
tcp 0 0 20.0.0.11:6666 0.0.0.0:* LISTEN 59130/nginx: master
[root@server2 ~]# curl http://20.0.0.11:6666
<h1>this is my web aa.</h1>
[root@server2 ~]# curl http://192.168.1.11:9999
<h1>this is my web bb.</h1>
LNMP 架构部署要还原,删除添加的 server{}
[root@server2 ~]# vi /etc/nginx.conf
server {
listen 20.0.0.11:80;
server_name www.aa.com;
location / {
root html; #还原
index index.html index.htm;
[root@server2 ~]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@server2 ~]# systemctl restart nginx
七: LNMP 架构部署
LAMP 平台是目前应用最为广泛的网站服务器架构,其中 ”A“ 对应着 Web 服务软件 Apache HTTP Server。
就像构建 LAMP 平台一样,构建 LNMP 平台也需要 Linux 服务器、Mysql 数据库和 PHP 解析环境,区别主要在 Nginx 与 PHP 的协作配置上。
1:安装 MySQL 数据库
为了与 Nginx、PHP 环境保持一致,仍选择采用源代码编译的方式安装 Mysql 组件。
[root@server2 ~]# yum -y install ncurses ncurses-devel bison cmake
[root@server2 ~]# useradd -s /sbin/nologin mysql #创建不可登录用户
[root@server2 ~]# tar zxvf mysql-boost-5.7.20.tar.gz
[root@server2 ~]# cd mysql-5.7.20/
[root@server2 mysql-5.7.20]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
> -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
> -DSYSCONFDIR=/etc \
> -DSYSTEMD_PID_DIR=/usr/local/mysql \
> -DDEFAULT_CHARSET=utf8 \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
> -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
> -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
> -DMYSQL_DATADIR=/usr/local/mysql/data \
> -DWITH_BOOST=boost \
> -DWITH_SYSTEMD=1
[root@server2 mysql-5.7.20]# make && make install
2:优化调整
数据库目录进行权限调整
[root@server2 mysql-5.7.20]# chown -R mysql:mysql /usr/local/mysql/
调整配置文件
[root@server2 mysql-5.7.20]# vi /etc/my.cnf
清空原配置重新配置
[client]
port = 3306
default-character-set = utf8
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set = utf8
socket = /usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server = utf8
socket = /usr/local/mysql/mysql.sock
pid-file = /usr/local/mysql/mysqld.pid
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,
N0_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
设置环境变量
[root@server2 mysql-5.7.20]# cd
[root@server2 ~]# chown mysql.mysql /etc/my.cnf
[root@server2 ~]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH'>> /etc/profile
[root@server2 ~]# source /etc/profile
初始化数据库
[root@server2 ~]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data
[root@server2 mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system
启动服务并登录
[root@server2 ~]# systemctl start mysqld #启动服务
[root@server2 ~]# systemctl enable mysqld #开机自启
[root@server2 ~]# mysqladmin -uroot -p123123 #初始化密码
Enter password: #直接回车
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
[root@server2 ~]# mysql -uroot -p123123 #登录
mysql> exit #退出
Bye
3:安装 PHP 解析环境
使用 yum 工具安装 PHP 的依赖包
[root@server2 ~]# yum -y install libjpeg libjpeg-devel libpng libpng-devel
freetype freetype-devel libxml2 libxml2-devel zlib zlib curl curl-devel openssl
openssl-devel
编译安装 PHP
[root@server2 ~]# tar jxvf php-7.1.10.tar.bz2
[root@server2 ~]# cd php-7.1.10/
[root@server2 php-7.1.10]# ./configure --prefix=/usr/local/php
--with-mysql-sock=/usr/local/mysql/mysql.sock
--with-mysqli --with-zlib --with-curl --with-gd
--with-jpeg-dir --with-png-dir --with-freetype-dir --with-openssl --enable-fpm
--enable-mbstring --enable-xml --enable-session --enable-ftp
--enable-pdo --enable-tokenizer --enable-zip
[root@server2 php-7.1.10]# make && make install
复制模板文件作为 PHP 的主配置文件并编辑 ini 文件
[root@server2 ~]# cd php-7.1.10/
[root@server2 php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini
[root@server2 php-7.1.10]# vi /usr/local/php/lib/php.ini
mysqli.default_socket = /usr/local/mysql/mysql.sock #:1170行 进行修改
date.timezone = Asia/Shanghai #:939行 进行修改
验证安装的模块
[root@server2 php-7.1.10]# /usr/local/php/bin/php -m | wc -l
38
[root@server2 php-7.1.10]# cd
4:配置 Nginx 支持 PHP 环境
复制模板文件 php-fpm.conf.default 作为 PHP-FPM 的配置文件
[root@server2 ~]# cd /usr/local/php/etc/
[root@server2 etc]# cp php-fpm.conf.default php-fpm.conf
[root@server2 etc]# cd /usr/local/php/etc/php-fpm.d/
[root@server2 php-fpm.d]# cp www.conf.default www.conf
[root@server2 php-fpm.d]# cd /usr/local/php/etc/
修改 php-fpm.conf 配置文件
[root@server2 etc]# vi php-fpm.conf
pid = run/php-fpm.pid #去点前面的分号,确定 pid 文件位置
启动 PHP-FPM 模块,进程使用9000端口
[root@server2 ~]# /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini
[root@server2 ~]# netstat -anpt | grep 9000
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 85196/php-fpm: mast
设置软连接,方便命令使用
[root@server2 ~]# ln -s /usr/local/php/bin/* /usr/bin/
5:配置 Nginx 支持 PHP 解析
在 Nginx 的主配置文件中的cserver{ } 配置段,将 PHP 的网页请求转给 FPM 模块处理。
[root@server2 ~]# vi /etc/nginx.conf
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
[root@server2 ~]# systemctl start nginx
创建 php 测试页面
[root@server2 ~]# vi /usr/local/nginx/html/index.php
<?php
phpinfo();
?>
测试数据库工作是否正常
[root@server2 ~]# mysql -uroot -p123123
mysql> create database bbs;
Query OK, 1 row affected (0.01 sec)
mysql> show databases; #查看数据库
+--------------------+
| Database |
+--------------------+
| information_schema |
| bbs |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
mysql> grant all privileges on bbs.* to 'bbsuser'@'localhost' identified by 'admin123'; #授权
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> grant all privileges on bbs.* to 'bbsuser'@'%' identified by 'admin123'; #授权
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges; #刷新
Query OK, 0 rows affected (0.00 sec)
mysql> show grants for 'bbsuser'; #查看授权
+--------------------------------------------------+
| Grants for bbsuser@% |
+--------------------------------------------------+
| GRANT USAGE ON *.* TO 'bbsuser'@'%' |
| GRANT ALL PRIVILEGES ON "bbs".* TO 'bbsuser'@'%' |
+--------------------------------------------------+
2 rows in set (0.00 sec)
mysql> show grants for 'bbsuser'@'localhost'; #查看授权
+----------------------------------------------------------+
| Grants for bbsuser@localhost |
+----------------------------------------------------------+
| GRANT USAGE ON *.* TO 'bbsuser'@'localhost' |
| GRANT ALL PRIVILEGES ON "bbs".* TO 'bbsuser'@'localhost' |
+----------------------------------------------------------+
2 rows in set (0.00 sec)
mysql> exit
Bye
[root@server2 ~]# vi /usr/local/nginx/html/index.php
<?php
$link=mysqli_connect('20.0.0.11','bbsuser','admin123');
if($link) echo "<h1>Success!</h1>";
else echo "Fail!"
?>
八:安装论坛
1:安装论坛软件和增加权限
[root@server2 ~]# unzip Discuz_X3.4_SC_UTF8.zip
[root@server2 ~]# cd dir_SC_UTF8/
[root@server2 dir_SC_UTF8]# cp -r upload /usr/local/nginx/html/bbs
[root@server2 dir_SC_UTF8]# cd /usr/local/nginx/html/bbs/
[root@server2 bbs]# chown -R root.nginx ./config/
[root@server2 bbs]# chown -R root.nginx ./data/
[root@server2 bbs]# chown -R root.nginx ./uc_client/
[root@server2 bbs]# chown -R root.nginx ./uc_server/
[root@server2 bbs]# chmod -R 777 ./config/
[root@server2 bbs]# chmod -R 777 ./data/
[root@server2 bbs]# chmod -R 777 ./uc_client/
[root@server2 bbs]# chmod -R 777 ./uc_server/
2:隐藏文件
[root@server2 ~]# cd /usr/local/nginx/html/bbs/
[root@server2 bbs]# mv install/ install.lock
[root@server2 bbs]# chmod 600 install.lock/ #只有root用户可以查看