LNMP概述
L Linux 操作系统
N Nginx 类似于Apache的一种web服务软件
可以做高性能的HTTP和反向代理服务器,也可以做IMAP/POP3/SMTP代理服务器
M MySQL 关系型数据库管理软件,一般指MySQL,也可以指MariaDB
P PHP 一般指PHP,也可以指Perl或Python
LNMP 是Linux Nginx MySQL PHP的简写,将Nginx MySQL PHP安装在Linux系统上,组成一个环境来运行php的脚本语言。
这四种软件均为免费软件,组合到一起,成为一个免费、高效的网站服务系统。
由于Nginx拥有超越Apache的卓越性能,LNMP正在逐渐取代LAMP
静态请求:请求的页面都是*.html,服务器必须存在html文件
动态请求:请求的不是服务器上存在的*.html,带参数的请求
动态页面不是一个存于服务器在的页面,是去数据库或其他库获取数据拼装成的页面;
LNMPA(Nginx/MySQL/PHP/Apache)
LAMP(Apache/MySQL/PHP)
LAMT(Apache/MySQL/Tomcat)
LNMT(Nginx/MySQL/Tomcat)
Nginx与Fast-CGI详细工作流程
1、用户发起请求
2、Nginx收到请求,进行判断是静态请求还是动态请求
3、如果是静态请求就直接返回数据给用户
4、如果是动态请求,通过fastcgi去找PHP的进程管理工具php-fpm
5、php-fpm会下发工作给wrapper工作进程
6、wrapper工作进程会判断请求是否只是PHP内容
7、如果只是PHP内容,wrapper工作进程就会直接解析,然后返回结果
8、如果还有后面数据库等行为,wrapper工作进程会去请求数据库
9、最后由数据库MySQL-wrapper-‘php-fpm’-fastcgi-Nginx-http-user
LNMP 部署
安装 Nginx
1、配置官方源
#官方配置
vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
#简化配置
vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
2、安装
yum install -y nginx
3、创建用户与用户组
groupadd www -g 666
useradd www -u 666 -g 666 -Ms /sbin/nologin
4、配置Nginx用户
vim /etc/nginx/nginx.conf
user www www;
5、启动nginx并开机自启
systemctl start nginx
systemctl enable nginx
6、验证启动
ps -ef | grep [n]ginx
root 17556 1 0 7月06 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
www 17557 17556 0 7月06 ? 00:00:00 nginx: worker process
安装 PHP
1、#配置第三方源
cat > /etc/yum.repos.d/php.repo << EOF
[php-webtatic]
name = PHP Repository
baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64/
gpgcheck = 0
EOF
2、#卸载已安装低版本的php
yum remove php-mysql-5.4 php php-fpm php-common
3、#安装PHP 7.1版本【安装会出一些问题,记住没有安装的包,重新单独安装,保存好所有安装包利于下次使用】
yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb
#上传准备好的安装包后用yum统一安装
yum -y localinstall *.rpm
4、配置php主配置文件
vim /etc/php.ini
upload_max_filesize = 200M # 799行 修改上传文件大小
post_max_size = 200M # 656行 修改请求限制大小,2个配一样
5、配置修改用户
vim /etc/php-fpm.d/www.conf
user = www
group = www
6、启动php-fpm并设置开机启动
systemctl enable php-fpm
systemctl start php-fpm
7、验证
ps -ef | grep [p]hp
cat /etc/nginx/fastcgi_params
fastcgi_param QUERY_STRING $query_string; #请求的参数;如?app=123
fastcgi_param REQUEST_METHOD $request_method; #请求的动作(GET,POST)
fastcgi_param CONTENT_TYPE $content_type; #请求头中的Content-Type字段
fastcgi_param CONTENT_LENGTH $content_length; #请求头中的Content-length字段
fastcgi_param SCRIPT_NAME $fastcgi_script_name; #脚本名称
fastcgi_param REQUEST_URI $request_uri; #请求的地址不带参数
fastcgi_param DOCUMENT_URI $document_uri; #与$uri相同
fastcgi_param DOCUMENT_ROOT $document_root; #网站的根目录,在server配置中root指令中指定的值
fastcgi_param SERVER_PROTOCOL $server_protocol; #请求使用的协议,通常是HTTP/1.0或HTTP/1.1
fastcgi_param REQUEST_SCHEME $scheme; #请求方案
fastcgi_param HTTPS $https if_not_empty; #https支持php文件
fastcgi_param GATEWAY_INTERFACE CGI/1.1; #cgi 版本
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; #nginx 版本号,可修改、隐藏
fastcgi_param REMOTE_ADDR $remote_addr; #客户端IP
fastcgi_param REMOTE_PORT $remote_port; #客户端端口
fastcgi_param SERVER_ADDR $server_addr; #服务器IP地址
fastcgi_param SERVER_PORT $server_port; #服务器端口
fastcgi_param SERVER_NAME $server_name; #服务器名,域名在server配置中指定的server_name
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
fastcgi_param PATH_INFO $path_info; #可自定义变量【此行默认没有】
#设置一个传递给fastcgi服务的参数,可以是文本或者变量,上面就是变量
fastcgi_param
#网站的访问改为https的加密方式后,网站访问正常,但网站注册功能不能正常使用了
#需要设置
location ~ \.php$ {
......
fastcgi_param HTTPS $https if_not_empty; 【或者 fastcgi_param HTTPS on;】
......
}
#有 https 协议时才自动使用 https on,否则忽略这个参数
内嵌的变量:
$https 如果链接是 SSL 就返回 “ON”,否则返回空字符串
if_not_empty 当参数有值时才传递到服务器
注意:这个 if_not_empty 额外参数只适合 Nginx 1.1.11 之后的版本
安装 mariadb
1、安装mariadb
yum install mariadb-server -y
2、启动mariadb并加入开机自启
systemctl enable mariadb
systemctl start mariadb
3、查看mariadb
mysql
Welcome to the ......
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
MariaDB [(none)]>exit
#设置数据库账号密码
mysqladmin -uroot password '123456'
关联 Nginx PHP
语法
1、设置fastcgi服务器的地址,该地址可以指定为域名、IP地址+端口、unix的socket文件 【关联`PHP`服务所在主机】
#语法
Syntax: fastcgi_pass address;
Default: —
Context: location, if in location
#语法示例
fastcgi_pass localhost:9000;
fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/tmp/fastcgi.socket;
2、设置fastcgi默认的首页文件,需要结合fastcgi_param一起设置
#语法
Syntax: fastcgi_index name;
Default: —
Context: http, server, location
#语法示例:详细配置步骤看下面的 》 展示PHP详细信息页面
server {
listen 80;
server_name php.linux.com;
#设置上传文件的大小
client_max_body_size 200m;
location / {
root /code/php;
fastcgi_pass 127.0.0.1:9000;
#默认的 PHP 文件,当请求以 / 结尾的时候,会将请求传递给所设置的 index.php 文件处理
fastcgi_index index.php;
#php解析用户请求数据的真实路径
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#包含 fastcgi 的所有变量,设置后可以被调用
include fastcgi_params;
}
}
#理解:
如果 location /
如果请求的 Fastcgi_index URI 是以 / 结束的, 该指令设置的文件会被附加到URI的后面并保存在变量$fastcig_script_name中
server {
listen 80;
server_name php.linux.com;
location / {
root /code/php;
index index.php;
}
#匹配以 .php 结尾的 URI
location ~ \.php$ {
root /code/php;
#转交给 127.0.0.1:9000 php服务所在的主机处理请求数据
fastcgi_pass 127.0.0.1:9000;
#php解析用户请求数据的真实路径
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#包含 fastcgi 的所有变量,设置后可以被调用
include fastcgi_params;
}
}
#理解
如果 location 后面不是 / 那就不需要设置 fastcgi_index index.php;
3、通过fastcgi_param设置变量,并将设置的变量传递到后端的fastcgi服务器
fastcgi_param 【关联的站点目录和PHP文件名】
Syntax: fastcgi_param parameter value [if_not_empty];
Default: —
Context: http, server, location
#语法示例
fastcgi_param SCRIPT_FILENAME /code$fastcgi_script_name;
#语法调用模块 变量(标准格式) 站点目录 php文件名
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
PHP 解析的真实路径 = /code/index.php
#理解:
用户在浏览器输入:php.linux.com/index.php ---》发送给 web服务器上的 nginx
nginx 发现是 .php 结尾的请求,自己解析不了,通过 fastcgi 交给 PHP 处理
PHP 通过 fastcgi 拿到文件 /code/index.php 开始解析,完成解析后返回数据给 nginx 》 用户的浏览器
4、Nginx默认获取不到path_info的值,要通过fastcgi_split_path_info指定的正则表达式来给$fastcgi_path_info赋值
location ~ ^(.+\.php)(.*)$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param SCRIPT_FILENAME /code/edu/$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
假设原始请求是 www.baidu.com/mcy.php/test/a.txt
fastcgi_split_path_info ^(.+\.php)(.*)$;
获取的2个值 ^(.+\.php)(.*)$ = mcy.php 和 /test/a.txt
$fastcgi_script_name 得到 mcy.php
$fastcgi_path_info 得到 /test/a.txt
5、我的理解:使用下面2行配置,可以提高web传输文件的效率
#加速发送大文件
fastcgi_param HTTP_X-Sendfile-Type X-Accel-Redirect;
#标头指向文件地址
fastcgi_param HTTP_X-Accel-Mapping /udisk=/code/edusoho/app/data/udisk;
PHP在工作的时候只需要输出http头+文件路径,用户请求下载资源的事情交给nginx处理
是一种将文件下载请求由后端应用转交给前端 web 服务器处理的机制,它可以消除后端程序既要读文件又要处理发送的压力,从而显著提高服务器效率,特别是处理大文件下载的情形下。
程序需要将文件内容从磁盘经过一个固定的 buffer 去循环读取到内存,再发送给前端 web 服务器,最后才到达用户。当需要下载的文件很大的时候,这种方式将消耗大量内存,甚至引发 php 进程超时或崩溃。Cache 也很头疼,更不用说中断重连的情况了。
一个理想的解决方式应该是,由 php 程序进行权限检查等逻辑判断,一切通过后,让前台的 web 服务器直接将文件发送给用户——像 Nginx 这样的前台更善于处理静态文件。这样一来 php 脚本就不会被 I/O 阻塞了。
6、Nginx 的 buffer 机制
#语法:
syntax: fastcgi_buffers the_number is_size
default: fastcgi_buffers 8 4k/8k
context: http, server, location
fastcgi_buffers 256 4k; # Sets the buffer size to 4k + 256 * 4k = 1028k
#处理 Response [响应] 时第一个缓冲区的大小,不在下面的8个 buffers 【缓冲区】中
fastcgi_buffer_size 128k;
#这些缓冲区是根据实际的 Response 大小动态生成的,并不是一次性创建的
#控制 nginx 最多创建 8 个大小为 128K 的缓冲区
fastcgi_buffers 8 128K;
先简单的说一下 Nginx 的 buffer 机制,对于来自 FastCGI Server 的 Response,Nginx 将其缓冲到内存中,然后依次发送到客户端浏览器。缓冲区的大小由 fastcgi_buffers 和 fastcgi_buffer_size 两个值控制。
比如如下配置:
fastcgi_buffers 8 4K;
fastcgi_buffer_size 4K;
fastcgi_buffers 控制 nginx 最多创建 8 个大小为 4K 的缓冲区,而 fastcgi_buffer_size 则是处理 Response 时第一个缓冲区的大小,不包含在前者中。所以总计能创建的最大内存缓冲区大小是 8*4K+4K = 36k。而这些缓冲区是根据实际的 Response 大小动态生成的,并不是一次性创建的。比如一个 8K 的页面,Nginx 会创建 2*4K 共 2 个 buffers。
当 Response 小于等于 36k 时,所有数据当然全部在内存中处理。如果 Response 大于 36k 呢?fastcgi_temp 的作用就在于此。多出来的数据会被临时写入到文件中,放在这个目录下面。同时你会在 error.log 中看到一条类似 warning。
显然,缓冲区设置的太小的话,Nginx 会频繁读写硬盘,对性能有很大的影响,但也不是越大越好,浪费内存空间!
一步步调整参数,直到nginx 错误日志中没有这个warn信息:
2011/04/23 17:24:08 [warn] 9639#0: *44 an upstream response is buffered to a temporary file /tmp/fastcgi_temp/8/0/0000000008 while reading upstream, client: 10.0.0.1, server: linux.com, request: "GET / HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000",host: "edu.linux.com"
fastcgi_buffers 32 4k;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KIpEaNg0-1638326773429)(D:/学习/Linux/02 学习资料/图片/nginx fastcgi 01.jpg)]
展示PHP详细信息页面
#设置站点目录
mkdir -p /code/php
#站点目录下创建一个 PHP 文件
mkdir -p /code/php
cat > /code/php/index.php << EOF
<?php
phpinfo();
?>
EOF
chown -R www.www /code
#编辑一个 PHP 主页配置文件
vim /etc/nginx/conf.d/php.linux.com.conf
server {
listen 80;
server_name php.linux.com;
#匹配以 .php 结尾的 URI
location ~ \.php$ {
root /code/php;
#转交给 127.0.0.1:9000 php服务所在的主机处理请求数据
fastcgi_pass 127.0.0.1:9000;
#php解析用户请求数据的真实路径
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#包含 fastcgi 的所有变量,设置后可以被调用
include fastcgi_params;
}
}
$document_root = /code/php
$fastcgi_script_name = 用户请求的URI
# Windows 解析
C:\Windows\System32\drivers\etc\hosts
10.0.0.31 php.linux.com
# 访问web页面查看
php.linux.com/index.php
关联 mariadb
#配置站点目录
mkdir -p /code/mariadb
chown -R www.www /code
#编辑配置文件
vim /etc/nginx/conf.d/mariadb.linux.com.conf
server {
listen 80;
server_name mariadb.linux.com;
#匹配以 .php 结尾的 URI
location ~ \.php$ {
root /code/mariadb;
#转交给 127.0.0.1:9000 php服务所在的主机处理请求数据
fastcgi_pass 127.0.0.1:9000;
#php解析用户请求数据的真实路径
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#包含 fastcgi 的所有变量,设置后可以被调用
include fastcgi_params;
}
}
systemctl restart nginx
#在/code目录下创建 index.php 文件,填入对应的数据库IP、用户名、密码
vim /code/mariadb/index.php
<?php
$servername = "localhost";
$username = "root";
$password = "123456";
// 创建连接
$conn = mysqli_connect($servername, $username, $password);
// 检测连接
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "小哥哥,php可以连接MySQL...";
?>
<img style='width:100%;height:100%;' src=https://blog.driverzeng.com/zenglaoshi/php_mysql.png>
# Windows 解析
C:\Windows\System32\drivers\etc\hosts
10.0.0.31 mariadb.linux.com
# 访问web页面查看
mariadb.linux.com/index.php
实战1
部署 上传文件的网站
下载网站代码
rz kaoshi.zip
设置站点目录
mkdir -p /code/push
unzip -q kaoshi.zip -d /code/push
vim /code/push/upload_file.php
#上传文件的目录
$wen="/code/push/pic";
chown -R www.www /code
编辑 Nginx 配置文件
1、# 先以最简单的方法搭建的上传文件的站点配置文件
cat > /etc/nginx/conf.d/push.linux.com.conf << EOF
server {
listen 80;
server_name push.linux.com;
location / {
root /code/push;
index index.html;
}
}
EOF
systemctl restart nginx
# Windows 解析
C:\Windows\System32\drivers\etc\hosts
10.0.0.31 push.linux.com
# 访问web页面查看
push.linux.com
#点击 选择文件 后选择一个准备上传的文件,再 点击上传
#会提示:405 Not Allowed 或者 413 Request Entity Too Large
#报错为 405 因为 web服务没有办法解析动态请求,即没有办法解析 php 代码
#报错为 413 因为文件过大,可以在 http server location 层配置
client_max_body_size 200m;
# httpd 做 web服务器时,在安装PHP后会自动生成一个php.conf文件,就能关联上PHP,
# nginx 做 web服务器时,需要手动配置关联PHP
2、#正确的配置 Nginx 关联 PHP
vim /etc/nginx/conf.d/push.linux.com.conf
server {
listen 80;
server_name push.linux.com;
#设置上传文件的大小
client_max_body_size 20m;
location / {
root /code/push;
index index.html;
}
#匹配以 .php 结尾的 URI
location ~ \.php$ {
root /code/push;
#转交给 127.0.0.1:9000 php服务所在的主机处理请求数据
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
systemctl restart nginx
访问页面
# Windows 解析
C:\Windows\System32\drivers\etc\hosts
10.0.0.31 push.linux.com
# 访问web页面查看
push.linux.com
实战2
部署 博客 WordPress
下载网站代码
#下载指定版本
[root@web01 ~]# wget https://cn.wordpress.org/wordpress-5.0.3-zh_CN.tar.gz
#下载最新版
[root@web01 ~]# wget https://cn.wordpress.org/latest-zh_CN.tar.gz
配置站点目录
mkdir -p /code
tar xf wordpress-5.0.3-zh_CN.tar.gz -C /code
chown -R www.www /code
编辑 Nginx 配置文件
# 先以最简单的方法搭建的上传文件的站点配置文件
vim /etc/nginx/conf.d/wp.linux.com.conf
server {
listen 80;
server_name wp.linux.com;
client_max_body_size 200m;
location / {
root /code/wordpress;
index index.php;
}
location ~ \.php$ {
root /code/wordpress;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
systemctl restart nginx
配置 数据库
# 数据库
#连接数据库
[root@web01 ~]# mysql -uroot -p123456
#创建数据库
MariaDB [(none)]> create database wordpress;
Query OK, 1 row affected (0.00 sec)
配置wordpress连接数据库的php代码
#这个也可以不设置,通过第一次访问 wp.linux.com 时在 web 页面设置
cp /code/wordpress/wp-config-sample.php /code/wordpress/wp-config.php
vim /code/wordpress/wp-config.php
/** WordPress数据库的名称 */
define('DB_NAME', 'wordpress');
/** MySQL数据库用户名 */
define('DB_USER', 'root');
/** MySQL数据库密码 */
define('DB_PASSWORD', '123456');
/** MySQL主机 */
define('DB_HOST', 'localhost');
/** 创建数据表时默认的文字编码 */
define('DB_CHARSET', 'utf8');
访问页面
# Windows 解析
C:\Windows\System32\drivers\etc\hosts
10.0.0.31 wp.linux.com
# 访问web页面查看
wp.linux.com
1、
现在就开始
数据库名 wordpress 希望将WordPress安装到的数据库名称。
用户名 root 您的数据库用户名。
密码 123456 您的数据库密码。
数据库主机 localhost 如果localhost不能用,您通常可以从网站服务提供商处得到正确的信息。
表前缀 wp_ 如果您希望在同一个数据库安装多个WordPress,请修改前缀。
提交
2、
现在安装
3、
站点标题 我的博客
用户名 admin
密码 1
确认密码 √ 确认使用弱密码
您的电子邮件 123@qq.com
对搜索引擎的可见性 口
安装WordPress
登陆
实战3
部署 知乎 wecenter
下载网站代码
#社区论坛官方下载站点
https://www.wecenter.com/downloads/
设置站点目录
mkdir -p /code/zh
unzip -q WeCenter_3-5-0.zip -d /code/zh
chown -R www.www /code
编辑 Nginx 配置文件
vim /etc/nginx/conf.d/zh.linux.com.conf
server {
listen 80;
server_name zh.linux.com;
location / {
root /code/zh;
index index.php;
}
location ~ \.php$ {
root /code/zh;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
systemctl restart nginx
配置 数据库
# 数据库
#连接数据库
[root@web01 ~]# mysql -uroot -p123456
#创建数据库
MariaDB [(none)]> create database zh;
Query OK, 1 row affected (0.00 sec)
访问页面
# Windows 解析
C:\Windows\System32\drivers\etc\hosts
10.0.0.31 zh.linux.com
# 访问web页面查看
zh.linux.com
1、
服务器环境检查---下面需要全部是绿色的 √ 才可以点下一步
2、
数据库主机 localhost 通常为 localhost
数据库帐号 root
数据库密码 123456
数据库端口 一般情况下不需要填写
数据库名称 zh
数据表前缀 aws_ 同数据库安装多个本程序时需要更改
数据表类型 InnoDB 请根据服务器状态选择数据表类型
#注:MyISAM 不支持数据库热备, InnoDB 支持数据库热备,所以选 InnoDB
开始安装
3、
用户名 admin
密码 1
E-mail 123@qq.com
完成
访问网站首页
实战4
部署 在线教育 edusoho
下载网站代码
https://www.edusoho.com/open/show
设置站点目录
mkdir -p /code
unzip -q edusoho-8.6.20.zip -d /code
chown -R www.www /code
编辑 Nginx 配置文件
vim /etc/nginx/conf.d/edu.linux.com.conf
server {
listen 80;
server_name edu.linux.com;
root /code/edusoho/web;
# 日志路径
access_log /var/log/nginx/edusoho.access.log;
error_log /var/log/nginx/edusoho.error.log;
location / {
index app.php;
try_files $uri @rewriteapp;
}
location @rewriteapp {
rewrite ^(.*)$ /app.php/$1 last;
}
location ~ ^/udisk {
internal;
#存放私有文件课时的视频、音频等资源目录
root /code/edusoho/app/data/;
}
location ~ ^/(app|app_dev)\.php(/|$) {
#PHP服务所在主机地址
fastcgi_pass 127.0.0.1:9000;
#传递URI中匹配 (.+\.php) 这部分内容至 $fastcgi_script_name
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#https不支持PHP文件 【on是支持,有https时才使用 HTTP on】
fastcgi_param HTTPS off;
#加速发送大文件
fastcgi_param HTTP_X-Sendfile-Type X-Accel-Redirect;
#标头指向文件地址
fastcgi_param HTTP_X-Accel-Mapping /udisk=/code/edusoho/app/data/udisk;
#处理 Response [响应] 时第一个缓冲区的大小,不在下面的8个 buffers 【缓冲区】中
fastcgi_buffer_size 128k;
#这些缓冲区是根据实际的 Response 大小动态生成的,并不是一次性创建的
#控制 nginx 最多创建 8 个大小为 128K 的缓冲区
fastcgi_buffers 8 128k;
include fastcgi_params;
}
# 配置设置图片格式文件
location ~* \.(jpg|jpeg|gif|png|ico|swf)$ {
# 过期时间为3年
expires 3y;
# 关闭日志记录
access_log off;
# 关闭gzip压缩,减少CPU消耗,因为图片的压缩率不高。
gzip off;
}
# 配置css/js文件
location ~* \.(css|js)$ {
access_log off;
expires 3y;
}
# 禁止用户上传目录下所有.php文件的访问,提高安全性
location ~ ^/files/.*\.(php|php5)$ {
deny all;
}
# 以下配置允许运行.php的程序,方便于其他第三方系统的集成。
location ~ \.php$ {
# [改] 请根据实际php-fpm运行的方式修改
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
include fastcgi_params;
}
}
systemctl restart nginx
配置 数据库
edusoho 会在页面创建
访问页面
# Windows 解析
C:\Windows\System32\drivers\etc\hosts
10.0.0.31 zxjy.linux.com
# 访问web页面查看
zxjy.linux.com
1、同意协议并开始安装
2、当前状态全部是绿色 √ 再点下一步,如果不符合就去检查配置文件
3、
数据库服务器 127.0.0.1 数据库服务器地址,一般为localhost或者127.0.0.1
数据库端口号 3306 数据库端口号,默认为3306
数据库用户名 root
数据库密码 123456
数据库名 edusoho
√ 覆盖现有数据库 #如果原来数据库中历史数据就先导出
4、
网站名称 在线教育
管理员Email地址 123@qq.com Email地址作为帐号,用于登录网站
管理员用户名 admin
管理员密码 admin123
网站负责人姓名 睡神之首
手机号码 16811111111
QQ号码 12345
初始化系统
AccessKey: gWwxC93UMXGLHX3V5wF6bj1uBQJY4xVn
SecretKey: 6DWwc8SsnwkDWPDtspYBXBEQqrsReqKP
请妥善保管授权码,升级EduSoho系统、购买EduSoho应用、使用EduSoho云服务,都需使用此授权码。
进入系统
扩展练习
搭建
phpmyadmin https://www.phpmyadmin.net/ 基于web的MySQL数据库管理工具站点
zblog https://www.zblogcn.com/ 博客网站【教程 https://www.txcstx.cn/post/975.html】
discuz https://www.dismall.com/forum-38-1.html 论坛网站
总结
上传文件的网站,可以访问,也可以上传文件,所以这是一个动态页面网站
静态文件:上传服务器之后没有任何变化,上传是什么样,访问时就是什么样子
动态文件:不存在于服务器上的文件,他是由数据库等服务获取数据拼接成的
静态请求:请求html的请求
动态请求:请求的是非html文件