-
画图解释一次web请求的过程。涉及tcp/ip, dns, nginx,wsgi。
-
编译安装nginx, 详细解读常用参数。
2.1.安装nginx依赖包
[root@localhost ~]# yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
2.2.上传nginx源码包并解压并创建启动nginx的www用户
[root@localhost ~]# tar -xf nginx-1.18.0.tar.gz
[root@localhost nginx-1.18.0]# useradd -s /sbin/nologin www
2.3.进入nginx目录并指定编译参数
[root@localhost ~]# cd nginx-1.18.0
[root@localhost nginx-1.18.0]# ./configure --prefix=/usr/local/nginx --user=www --group=www --with-http_ssl_module --with- http_stub_status_module//–prefix 指定nginx程序安装目录 --user 指定程序启动所属用户 --group 指定程序启动所属组 --with-http_ssl_module 启用nginx的SSL模块 --with- http_stub_status_module 用来监控nginx状态的模块
2.4.安装并编译
[root@localhost nginx-1.18.0]# make && make install
2.5.启动nginx程序
[root@localhost nginx-1.18.0]# cd /usr/local/nginx/sbin/
[root@localhost sbin]# ./nginx
2.6.访问测试
-
基于nginx完成动静分离部署 lamp。php到后端php-fpm, static/ 在nginx本地。
3.1.apache安装
3.1.1.apache依赖安装
(1)安装依赖
[root@localhost ~]# yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
(2)安装apr和apr-util //apr主要为上层的应用程序提供一个可以跨越多操作系统平台使用的底层支持接口库。
[root@localhost ~]# tar xf apr-1.7.0.tar.gz
[root@localhost ~]# cd apr-1.7.0
[root@localhost apr-1.7.0]# ./configure --prefix=/usr/local/apr
安装时报错
解决办法:在apr-1.7.0目录下找到configure文件,在该文件中找到RM=‘$ RM’这一行 修改为RM=’$RM -f’,修改完成后保存,重新编译后解决
[root@localhost apr-1.7.0]# make && make install
安装apr-util:
[root@localhost apr-1.7.0]# yum install expat expat-devel -y
[root@localhost ~]# tar -xf apr-util-1.6.1.tar.gz
[root@localhost ~]# cd apr-util-1.6.1
[root@localhost apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util-1.6.1]# make && make install
安装pcre:
[root@localhost ~]# tar -xf pcre-8.41.tar.gz
[root@localhost ~]# cd pcre-8.41
[root@localhost pcre-8.41]# ./configure --prefix=/usr/local/pcre
[root@localhost pcre-8.41]# make && make install
编译安装apache
[root@localhost ~]# yum install -y epel-release
[root@localhost ~]# yum install -y make gcc-c++ cmake bison-devel ncurses-devel lib tool bison perl perl-devel perl perl-devel
[root@localhost ~]# tar -xf httpd-2.4.54.tar.gz
[root@localhost httpd-2.4.54]# ./configure --prefix=/usr/local/apache2 --with-pcre=/usr/local/pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so–enable-modules=most–enable-mods-shared=all–with-included-apr–enable-rewrite-=shared //–enable-so 表示允许运行时加载DSO模块 --enable-modules=most表示支持动态启用模块,most表示启用常用模块,all表示启用所有模块 --enable-mods-shared=all 表示动态地编译所有的模块 --enable-rewrite-=shared表示将rewrite这个模块编译成动态的
[root@localhost httpd-2.4.54]# make && make install
测试:
[root@localhost bin]# ./apachectl start
[Mon Aug 01 20:30:42.062150 2022] [:crit] [pid 77588] (38)Function not implemented: AH00141: Could not initialize random number generator
解决办法
更新内核版本
yum -y update
在http.conf文件中将
ServerName you@example.com 改成
ServerName localhost:80
启动apache
[root@localhost bin]# ./apachectl start
编译安装mysql
[root@localhost ~]# tar -xf mysql-boost-5.7.23.tar.gz -C /usr/local
[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -r -g mysql -s /bin/false mysql
[root@localhost local]# cd mysql-5.7.23/
[root@localhost mysql-5.7.23]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/db/data \ //指定mysql数据存放路径
-DEXTRA_CHARSETS=all \ //表示安装所有的扩展字符集
-DDEFAULT_CHARSET=utf8 \ //指定默认字符集为uft8
-DDEFAULT_COLLATION=utf8_general_ci \ //设置uft8默认排序规则
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ //表示启用支持InnoDB引擎
-DWITH_MYSQL_STORAGE_ENGINE=1 \ //表示启用支持MyISAM引擎
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306
-DWITH_BOOST=boost \ //指定boost库的路径
-DENABLED_LOCAL_INFILE=1 \ //表示允许从本地导入数据
-DWITH_PARTITION_STORAGE_ENGINE=1 \ //表示安装支持数据库分区
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \ //指定连接数据库socket文件的路径
-DWITH_EMBEDDED_SERVER=1 //表示支持嵌入式服务器
[root@localhost mysql-5.7.23]# make && make install
[root@localhost mysql-5.7.23]# mkdir /db/data
[root@localhost mysql-5.7.23]# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/db/data
修改mysql配置文件my.cnf
[mysqld]
datadir=/db/data
socket=/tmp/mysqld.sock
log-error=/var/log/mysqld.log
配置mysql启动脚本
[root@localhost mysql-5.7.23]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql-5.7.23]# chmod 755 /etc/init.d/mysqld
[root@localhost mysql-5.7.23]# chkconfig --add mysqld
[root@localhost mysql-5.7.23]# chkconfig mysqld on
[root@localhost mysql-5.7.23]# service mysqld start
Starting MySQL. SUCCESS!
修改环境变量
PATH=/usr/local/mysql/bin:$PATH
export PATH
[root@localhost mysql-5.7.23]# source /etc/profile
安装php
[root@localhost ~]# yum install -y libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel
[root@localhost php-7.4.30]# yum install -y sqlite-devel.x86_64
[root@localhost ~]# tar -xf php-7.4.30.tar.gz -C /usr/local/
[root@localhost ~]# cd /usr/local/php-7.4.30/
[root@localhost php-7.4.30]#
./configure --prefix=/usr/local/php7 --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-zlib --with-curl --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-openssl --enable-mbstring --disable-mbregex --enable-xml --enable-session --enable-ftp --enable-pdo -enable-tokenizer --enable-zip --with-apxs2=/usr/local/apache2/bin/apxs
[root@localhost ~]#cd /usr/local/php7/etc/php-fpm.d
[root@localhost php-fpm.d]# cp www.conf.default www.conf
[root@localhost sbin]# cd /usr/local/php7/etc/
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf
在apache的配置文件httpd.conf最后加上一条配置
Addtype application/x-httpd-php .php .phtml
< IfModule dir_module>
DirectoryIndex index.php index.html
< /IfModule>
重新启动apache
[root@localhost conf]# /usr/local/apache2/bin/apachectl restart
测试LAMP
写一个连接mysql的测试
配置动静分离
location ~ .php$ {
proxy_pass http://192.168.8.12;
}
- nginx 利用rewrite完成 全栈ssl配置。
5.(可选)有兴趣,可以完成acme完成自动SSL签发。
- 通过zabbix监控nginx状态,web网站健康状态。
6.1添加监控nginx的主机。
6.2添加监控项
6.3添加触发器
- 简要描述后期学习的计划。
从架构课程学起,每周一到周五进行视频学习,周六日对本周以及以前的知识点进行复习和总结,并完成每周留的作业。每一个月对之前所学的知识进行回忆,并能画出所学课程的基本框架,能大致对所学知识点进行一个简单的描述。