企业级使用LAMP源码安装教程
来源:脚本之家
时间:2022-12-30 20:25:38 296浏览 收藏
本篇文章给大家分享《企业级使用LAMP源码安装教程》,覆盖了数据库的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。
LAMP架构
(同一台服务器上搭建)
1.lamp介绍
lamp,由linux+apache+mysql/mariadb+php/perl/python的一组动态网站或者服务器的开源软件,除linux外其它各部分都是各种独立的程序,经常一起使用,拥有很强的兼容性,共同组成一个强大的web应用程序平台。
Linux(操作系统),Apache(HTTP服务器),Mysql(mariadb,数据库软件),PHP(perl或python),建立web应用平台
2.web服务工作流程
web服务器的资源分为俩种:静态和动态资源
静态资源:静态内容,客户端从服务器获得的资源的表达形式与源文件相同。就是直接储存于文件系统中的资源(.mp3/.mp4/.jpg/.gif)
动态资源:通常是程序文件,需要在服务器执行之后,将执行的结构返回给客户端(.php/.asp/.py/.net)
web服务器如何处理客户端的请求
阶段1显示httpd服务器(apache)和php服务器通过fastCGI协议进行通信,且php作为独立的服务进程运行。
阶段2显示php服务器和mysql服务器通过mysql协议进行通信,php与mysql本身没有联系,但是由php语言写的程序可以与mysql进行数据交互,同理python写的程序和perl也可以和MySQL数据库进行数据交互。
2.1cgi和fastcgi
CGI(common gateway lnterface,通用网关接口)
cgi是外部应用程序(cgi程序)与web服务之间的接口标准,是在cgi程序和web服务器之间传递信息的过程。CGI规范允许web服务器执行外部程序,并将它们的输出发送给web服务器,cgi将web的一组简单的静态超媒体文档变成一个完整的交互式媒体。
FastCGI(Fast common Gateway Interface)是CGI的改良版
CGI是通过启动一个解释器进程来处理每个任务请求,耗时耗资源,而FastCGI是通过master-worker形式来处理每个请求,启动一个master主进程,会根据配置启动几个worker进程,当请求进来时,master会从worker进程中选一个去处理请求,这样就避免了重复的生成和杀手进程带来的频繁cpu导致的消耗
2.2httpd与php结合
php与httpd三种方式:
- 方式一:modules(模块):php将以httpd的扩展模块形式存在,需要加载动态资源时,httpd可以直接php模块来加工资源返回给客户端
httpd prefork:libphp5.so(多进程模型php)
httpd event or worker:libphp5-zts.so(线程模式的php) - 方式二:CGI:httpd需要加载动态资源时,通过CGI与php解释器联系,获得php执行的结果,此时httpd负责与php连接的建立和断开等
- 方式三:FastCGI:利用php-fpm机制,启动为服务进程,php自行运行为一个服务,https通过socket与php通信
FastCGI最常用,很少人使用CGI方式来加载动态资源
2.3web工作流程
- 客户端通过网站协议请求web服务器资源
- web服务器收到请求后,判断客户端请求的资源是静态还是动态资源
- 静态资源的话,则直接从本地文件系统取之返回给客户端
- 动态资源的话,通过FastCGI协议与php服务器联系,通过CGI程序的master进程调度worker进程来执行程序以获得客户端请求的动态资源,并将执行的结果通过FastCGI协议返回给网站服务器,网站服务器收到php的执行结果后将其封装为http响应报文响应给客户端,在执行程序获取动态资源时若需要获得数据库中的资源时,由php服务器通过mysql协议与Mysql(MariaDB)服务器交互,获得后返回给httpd,httpd将从php服务器收到的执行结果封装成http响应报文响应给客户端。
3.LAMP平台构建
环境:
系统平台 | ip | 安装的服务 |
---|---|---|
centos/redhat | 192.168.136.145 | httpd-2.4/mysql-5.7/php/php-mysql |
lamp安装的顺序:
httpd >mysql >php
注意php要求httpd使用prefock MPM安装统一采用lamp方式安装
3.1安装httpd
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | #redhat源 [root@clq ~] # cat /etc/yum.repos.d/CentOS-Stream- CentOS - Stream - AppStream.repo CentOS - Stream - HighAvailability.repo CentOS - Stream - BaseOS.repo CentOS - Stream - Media.repo CentOS - Stream - Debuginfo.repo CentOS - Stream - PowerTools.repo CentOS - Stream - Extras.repo CentOS - Stream - RealTime.repo #安装epel源 [root@clq ~] # yum -y install epel-release #查看包组 [root@clq ~] # yum grouplist #安装包组 [root@clq ~] # dnf -y groups mark install "Development Tools" #创建apache用户 [root@clq ~] # useradd -r -M -s /sbin/nologin apache #安装依赖包(openssl-devel:加密传输模块) [root@cb ~] # yum -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ make #下载安装apr和apr-util和httpd [root@cb ~] # cd /usr/src/ #利用wget下载三包 略 #tar解压包 略 #进入apr包进行修改 [root@cb apr - 1.7 . 0 ] # vim configure cfgfile = "${ofile}T" trap "$RM \"$cfgfile\";exit 1" 1 2 15 $RM "$cfgfile" #此行删掉或注释 #apr编译三步 . / configure - - prefix = / usr / local / apr make make install #apr-util编译三步 . / configure - - prefix = / usr / local / apr - util - - with - apr = / usr / local / apr make make install #httpd编译三步 . / configure - - prefix = / usr / local / apache \ - - sysconfdir = / etc / httpd24 \ - - enable - so \ - - enable - ssl \ - - enable - cgi \ - - enable - rewrite \ - - with - zlib \ - - with - pcre \ - - with - apr = / usr / local / apr \ - - with - apr - util = / usr / local / apr - util / \ - - enable - modules = most \ - - enable - mpms - shared = all \ - - with - mpm = prefork make make install #安装完配置 环境变量:echo 'export PATH=/usr/local/apache/bin:$PATH' > / etc / profile.d / apache.sh 读取:source / etc / profile.d / httpd.sh 头文件映射:ln - s / usr / local / apache / include / usr / include / httpd 帮助文档:vim / etc / man_db.conf 22 MANDATORY_MANPATH / usr / local / share / man 23 MANDATORY_MANPATH / usr / local / apache / man #取消ServerName前面的注释(警告信息无关紧要) [root@cb src] # vim /etc/httpd24/httpd.conf ServerName #启动apache [root@cb src] # systemctl stop firewalld [root@cb src] # systemctl disbles firewalld [root@cb src] # /usr/local/apache/bin/apachectl start [root@cb src] # ss -antl State Recv - Q Send - Q Local Address:Port Peer Address:Port Process LISTEN 0 128 0.0 . 0.0 : 22 0.0 . 0.0 : * LISTEN 0 128 * : 80 * : * LISTEN 0 128 [::]: 22 [::]: * #注意删掉系统本身的apache #编写service文件实现开机自启 #编写httpd.service文件: vim / etc / systemd / system / httpd.service 文件内俩个具体的路径: .配置文件路径: / etc / httpd24 / httpd.conf .程序文件路径: / usr / local / apache / bin / httpd #系统加载文件:systemctl daemon-reload #启动systemctl start httpd #自启动systemctl enable httpd |
1 2 3 4 5 6 7 8 9 10 11 12 | [root@clq ~] # vim /etc/systemd/system httpd.service [root@clq system] # cat httpd.service [Unit] Description = Start httpd [Service] Type = simple EnvironmentFile = / etc / httpd24 / httpd.conf ExecStart = / usr / local / apache / bin / httpd - k start - DFOREGROUND ExecReload = / usr / local / apache / bin / httpd - k graceful ExecStop = / bin / kill - WINCH ${MAINPID} [Install] WantedBy = multi - user.target |
3.2安装mysql
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 | #安装依赖包(cmake:编译自动配置工具) dnf - y install ncurses - devel openssl - devel openssl cmake mariadb - devel #创建用户 useradd - r - M - s / sbin / nologin mysql #下载mysql5.7.31包 #解压放到/usr/local下 #改名字方便操作 cd / usr / local mv mysql5. 7.31 mysql #改属主 chown - R mysql.mysql mysql / #环境变量 echo 'export PATH=/usr/local/mysql/bin:$PATH' > / etc / profile.d / mysql.sh source / etc / profile.d / mysql.sh #头文件映射 ln - s / usr / local / mysql / include / usr / include / mysql #库文件 vim / etc / ld.so.conf.d / mysql.conf / usr / local / mysql / lib ldconfig #重新读取一下 #帮助文档 vim / etc / man_db.conf 23 MANDATORY_MANPATH / usr / local / apache / man 24 MANDATORY_MANPATH / usr / local / mysql / man #创建数据目录 mkdir / opt / data chown - R mysql.mysql / opt / data #初始化 mysqld - - initialize - - user = mysql - - datadir = / opt / data #编写配置文件 cat > / etc / my.cnf <h4> 3.3 安装php< / h4> <pre class = "brush:py;" > #centos8可yum安装php,php是一门语言,安装7.2版本以上即可 yum - y install php * < / pre> <h4> 3.4 配置php< / h4> <pre class = "brush:py;" > #php配置 vim / etc / php - fpm.d / www.conf 38 ;listen = / run / php - fpm / www.sock #取消注释 39 listen = 127.0 . 0.1 : 9000 #添加此行 65 listen.allowed_clients = 127.0 . 0.1 mkdir - p / data / php #创建php目录 chown - R apache.apache / data / #改变属主 vim / data / php / index.php #编写index.php文件 #重新启动systemctl restart php-fpm.service < / pre> <h5> 3.4 . 4php 编译安装< / h5> <pre class = "brush:py;" >centos8之前版本 / / 配置yum源 [root@localhost ~] # wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm [root@localhost ~] # rpm -Uvh remi-release-7.rpm [root@localhost ~] # yum makecache --enablerepo=remi-php74 / / 安装依赖包 [root@localhost ~] # yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libicu-devel libjpeg libjpeg-devel libpng libpng-devel openldap-devel pcre-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel mhash mhash-devel php72-php-mysqlnd 安装过程略.... / / 下载php [root@localhost ~] # cd /usr/src/ [root@localhost src] # wget <a target="_blank" href="https://www.17golang.com/gourl/?redirect=MDAwMDAwMDAwML57hpSHp6VpkrqbYLx2eayza4KafaOkbLS3zqSBrJvPsa5_0Ia6sWuR4Juaq6t9nq5roGCUgXpusdyfopabbNzFfHLZmtC6aYSYgqDFZYKtxpCCYZSApa7H0bOul3mf3LCIlNmFzJhthNSCmMWbZWjKooWaebKGor-qu2iDdniVvoiclJKnrbGGmHqar5ybaLSNoJx9s52ist20pIKJhJe9rpyh">http://cn.php.net/distributions/php-7.2.8.tar.xz < / a>下载过程略.... / / 编译安装php [root@localhost src] # tar xf php-7.2.8.tar.xz [root@localhost src] # cd php-7.2.8 [root@localhost php - 7.2 . 8 ] # ./configure --prefix=/usr/local/php7 \ - - with - config - file - path = / etc \ - - enable - fpm \ - - enable - inline - optimization \ - - disable - debug \ - - disable - rpath \ - - enable - shared \ - - enable - soap \ - - with - openssl \ - - enable - bcmath \ - - with - iconv \ - - with - bz2 \ - - enable - calendar \ - - with - curl \ - - enable - exif \ - - enable - ftp \ - - with - gd \ - - with - jpeg - dir \ - - with - png - dir \ - - with - zlib - dir \ - - with - freetype - dir \ - - with - gettext \ - - enable - json \ - - enable - mbstring \ - - enable - pdo \ - - with - mysqli = mysqlnd \ - - with - pdo - mysql = mysqlnd \ - - with - readline \ - - enable - shmop \ - - enable - simplexml \ - - enable - sockets \ - - enable - zip \ - - enable - mysqlnd - compression - support \ - - with - pear \ - - enable - pcntl \ - - enable - posix [root@localhost php - 7.2 . 8 ] # make -j $(cat /proc/cpuinfo |grep processor|wc -l) 编译过程略 [root@localhost php - 7.2 . 8 ] # make install 安装过程略 / / 安装后配置 [root@localhost ~] # echo 'export PATH=/usr/local/php7/bin:$PATH' > /etc/profile.d/php7.sh [root@localhost ~] # source /etc/profile.d/php7.sh / / 安装后配置 [root@localhost ~] # echo 'export PATH=/usr/local/php7/bin:$PATH' > /etc/profile.d/php7.sh [root@localhost ~] # source /etc/profile.d/php7.sh [root@localhost php - 7.2 . 8 ] # which php / usr / local / php7 / bin / php [root@localhost php - 7.2 . 8 ] # php -v PHP 7.2 . 8 (cli) (built: Aug 16 2018 13 : 27 : 30 ) ( NTS ) Copyright (c) 1997 - 2018 The PHP Group Zend Engine v3. 2.0 , Copyright (c) 1998 - 2018 Zend Technologies / / 配置php - fpm [root@localhost php - 7.2 . 8 ] # cp php.ini-production /etc/php.ini [root@localhost php - 7.2 . 8 ] # cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm [root@localhost php - 7.2 . 8 ] # chmod +x /etc/rc.d/init.d/php-fpm [root@localhost php - 7.2 . 8 ] # cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf [root@localhost php - 7.2 . 8 ] # cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf / / 编辑php - fpm的配置文件( / usr / local / php7 / etc / php - fpm.conf): / / 配置fpm的相关选项为你所需要的值: [root@localhost ~] # vim /usr/local/php7/etc/php-fpm.conf ..... ..... pm.max_children = 50 ;最多同时提供 50 个进程提供 50 个并发服务 pm.start_servers = 5 ;启动时启动 5 个进程 pm.min_spare_servers = 2 ;最小空闲进程数 pm.max_spare_servers = 8 ;最大空闲进程数 [root@localhost ~] # tail /usr/local/php7/etc/php-fpm.conf ; file . ; Relative path can also be used. They will be prefixed by: ; - the global prefix if it's been set ( - p argument) ; - / usr / local / php7 otherwise include = / usr / local / php7 / etc / php - fpm.d / * .conf pm.max_children = 50 pm.start_servers = 5 pm.min_spare_servers = 2 pm.max_spare_servers = 8 / / 启动php - fpm [root@localhost ~] # service php-fpm start Starting php - fpm done / / 默认情况下,fpm监听在 127.0 . 0.1 的 9000 端口,也可以使用如下命令验证其是否已经监听在相应的套接字 [root@localhost ~] # ss -antl State Recv - Q Send - Q Local Address:Port Peer Address:Port LISTEN 0 128 * : 22 * : * LISTEN 0 100 127.0 . 0.1 : 25 * : * LISTEN 0 128 127.0 . 0.1 : 9000 * : * LISTEN 0 128 ::: 80 ::: * LISTEN 0 128 ::: 22 ::: * LISTEN 0 100 :: 1 : 25 ::: * LISTEN 0 80 ::: 3306 ::: * [root@localhost ~] # ps -ef|grep php root 81070 1 0 14 : 13 ? 00 : 00 : 00 php - fpm: master process ( / usr / local / php7 / etc / php - fpm.conf) nobody 81071 81070 0 14 : 13 ? 00 : 00 : 00 php - fpm: pool www nobody 81072 81070 0 14 : 13 ? 00 : 00 : 00 php - fpm: pool www nobody 81073 81070 0 14 : 13 ? 00 : 00 : 00 php - fpm: pool www nobody 81074 81070 0 14 : 13 ? 00 : 00 : 00 php - fpm: pool www nobody 81075 81070 0 14 : 13 ? 00 : 00 : 00 php - fpm: pool www root 81079 83354 0 14 : 15 pts / 1 00 : 00 : 00 grep - - color = auto php < / pre> <h4> 3.5 配置apache< / h4> <p>apache 2.4 以后有一个针对FastCGI的实现,模块为mod_proxy_fcgi.so,它其实是作为mod_proxy.so模块的扩展,因此,这俩个模块都要加载,编辑httpd.conf文件,取消两行注释< / p> <pre class = "brush:py;" >vim / etc / httpd24 / httpd.conf LoadModule proxy_module modules / mod_proxy.so LoadModule proxy_fcgi_module modules / mod_proxy_fcgi.so 或者sed修改 sed - i '/proxy_module/s/#//g' / etc / httpd24 / httpd.conf sed - i '/proxy_fcgi_module/s/#//g' / etc / httpd24 / httpd.conf < / pre> <p>apache yum安装网页的文件路径: / var / www / html< / p> <p>apache 源码安装网页的文件路径: / usr / local / apache / htdocs< / p> <p>配置虚拟主机< / p> <p>在需要使用fcgi的虚拟主机添加俩行:< / p> <pre class = "brush:plain;" >ProxyRequests Off #关闭正向代理 ProxyPassMatch ^ / (. * \.php)$ fcgi: / / 127.0 . 0.1 : 9000 / 网页目录 / redhat.com / $ 1 #以上设置是表示把.php结尾的文件发送到php-fpm进程,php-fpm至少需要知道运行的目录和URL,fcgi后面指名了这俩个参数,其它参数被mod——proxy_fcgi.so进行了封装,不需要手动指定。 #redhat是域名 #$1表示匹配所有以.php结尾的httpd请求 < / pre> <pre class = "brush:php;" > / etc / httpd24 / httpd.conf #主配置文件 [root@clq ] vim / etc / httpd24 / httpd.conf #进入主配置文件添加一个虚拟主机配置文件 [root@clq ]vim / etc / httpd24 / extra / vhosts.conf #编辑虚拟主机配置文件 <virtualhost> DocumentRoot "/data/php/" #文件存放路径 ServerName www.clq.com #域名 DirectoryIndex index.php ProxyRequests Off ProxyPassMatch ^ / (. * \.php)$ fcgi: / / 127.0 . 0.1 : 9000 / data / php / $ 1 <directory> Options none AllowOverride none Require all granted < / directory>< / virtualhost> [root@clq] vim / etc / httpd24 / httpd.conf 203 ServerName 0.0 . 0.0 .com: 80 #修改 261 DirectoryIndex index.php index.html #中间加index.php 399 AddType application / x - httpd - php .php #添加此行 400 AddType application / x - httpd - php - source .phps #添加此行 488 # 489 Include / etc / httpd24 / httpd / extra / vhosts.conf #添加此条 #重启 systemctl restart httpd < / pre> <p style = "text-align: center" ><img alt = "在这里插入图片描述" src = "/uploads/20221230/167240341663aed9d82427a.jpg" >< / p> <h3> 4. 博客创建 1 < / h3> <p>下载地址:<a target = "_blank" href = "https://www.17golang.com/gourl/?redirect=MDAwMDAwMDAwML57hpSHp6VpkrqbYLx2eayza4KafaOkbLS3zqSBrJvPsa5_0Ia6sWuR4Juaq6t9nq5roGCUgXuytMyerphkcN6-fHPdkruys4TTaam8q2mfx2ycpZKAcqC_pp6ijnlwmMahqdqRurWtmb1lqsZ5dqfHfIWaebKGor-qu2iDdniVvoiclJKnrbGGmHqar5ybaLSNoJx9s52ist20pIKJhJe9rpyh" >https: / / wordpress.org / download / #download-install</a></p> <pre class = "brush:plain;" > #解压该包 [root@clq ~] # unzip wordpress-5.7.2.zip #解压的包全部放到/data/php下 [root@clq ~] # mv wordpress/* /data/php/ < / pre> <p style = "text-align: left" >再次访问:< / p> <p style = "text-align: center" ><img alt = "在这里插入图片描述" src = "/uploads/20221230/167240341663aed9d86b51e.jpg" >< / p> <pre class = "brush:py;" > #数据库权限 mysql> grant all on * . * to root@ '192.168.136.219' identified by 'huawei@123' ; Query OK, 0 rows affected, 1 warning ( 0.00 sec) mysql> flush privileges; Query OK, 0 rows affected ( 0.00 sec) #创建数据库wordpress mysql> create database wordpress; < / pre> <h3> 5. 服务开机自启配置选择性使用< / h3> <p style = "text-align: center" ><img alt = "在这里插入图片描述" src = "/uploads/20221230/167240341663aed9d8dd510.jpg" >< / p> <p> <link rel = "stylesheet" href = "https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/markdown_views-d7a94ec6ab.css" ><link rel = "stylesheet" href = "https://csdnimg.cn/release/blogv2/dist/mdeditor/css/style-49037e4d27.css" >以上就是企业使用LAMP源码安装教程的详细内容,更多关于企业用LAMP源码安装的资料请关注golang学习网!< / p><p>今天带大家了解了安装、企业级LAMP的相关知识,希望对你有所帮助;关于数据库的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~< / p> |
-
318 收藏
-
358 收藏
-
186 收藏
-
269 收藏
-
275 收藏
-
469 收藏
-
289 收藏
-
239 收藏
-
315 收藏
-
361 收藏
-
184 收藏
-
227 收藏
-
202 收藏
-
140 收藏
-
111 收藏
-
415 收藏
-
454 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 508次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习