lamp
2022/8/3 6:25:01
本文主要是介绍lamp,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
lamp
- 1. lamp简介
- 2. web服务器工作流程
- 2.1 cgi与fastcgi
- 2.2 httpd与php结合的方式
- 2.3 web工作流程
- 3. lamp平台搭建
- 3.1 安装httpd
- 3.2 安装mysql
- 3.3 安装php
1. lamp简介
有了前面学习的知识的铺垫,今天可以来学习下第一个常用的web架构了。
所谓lamp,其实就是由Linux+Apache+Mysql/MariaDB+Php/Perl/Python的一组动态网站或者服务器的开源软件,除Linux外其它各部件本身都是各自独立的程序,但是因为经常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。
LAMP指的是Linux(操作系统)、Apache(HTTP服务器)、MySQL(也指MariaDB,数据库软件)和PHP(有时也是指Perl或Python)的第一个字母,一般用来建立web应用平台。
2. web服务器工作流程
在说lamp架构平台的搭建前,我们先来了解下什么是CGI,什么是FastCGI,什么是......
web服务器的资源分为两种,静态资源和动态资源
- 静态资源就是指静态内容,客户端从服务器获得的资源的表现形式与原文件相同。可以简单的理解为就是直接存储于文件系统中的资源
- 动态资源则通常是程序文件,需要在服务器执行之后,将执行的结果返回给客户端
那么web服务器如何执行程序并将结果返回给客户端呢?下面通过一张图来说明一下web服务器如何处理客户端的请求
阶段①显示的是httpd服务器(即apache)和php服务器通过FastCGI协议进行通信,且php作为独立的服务进程运行
阶段②显示的是php程序和mysql数据库间通过mysql协议进行通信。php与mysql本没有什么联系,但是由Php语言写成的程序可以与mysql进行数据交互。同理perl和python写的程序也可以与mysql数据库进行交互
2.1 cgi与fastcgi
CGI(Common Gateway Interface,通用网关接口),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.2 httpd与php结合的方式
httpd与php结合的方式有以下三种:
- 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通信
较于CGI方式,FastCGI更为常用,很少有人使用CGI方式来加载动态资源
2.3 web工作流程
- 客户端通过http协议请求web服务器资源
- web服务器收到请求后判断客户端请求的资源是静态资源或是动态资源
- 若是静态资源则直接从本地文件系统取之返回给客户端。
- 否则若为动态资源则通过FastCGI协议与php服务器联系,通过CGI程序的master进程调度worker进程来执行程序以获得客户端请求的动态资源,并将执行的结果通过FastCGI协议返回给httpd服务器,httpd服务器收到php的执行结果后将其封装为http响应报文响应给客户端。在执行程序获取动态资源时若需要获得数据库中的资源时,由Php服务器通过mysql协议与MySQL/MariaDB服务器交互,取之而后返回给httpd,httpd将从php服务器收到的执行结果封装成http响应报文响应给客户端。
3. lamp平台搭建
环境说明:
系统平台 | IP | 需要安装的服务 |
---|---|---|
centos7 redhat7 | 172.16.12.128 | httpd-2.4 mysql-5.7 php php-mysql |
lamp平台软件安装次序:
httpd --> mysql --> php
3.1 安装httpd
[root@mr ~]# cd /etc/yum.repos.d/ [root@mr yum.repos.d]# ls CentOS-Stream-AppStream.repo CentOS-Stream-Extras.repo CentOS-Stream-PowerTools.repo CentOS-Stream-BaseOS.repo CentOS-Stream-HighAvailability.repo CentOS-Stream-RealTime.repo CentOS-Stream-Debuginfo.repo CentOS-Stream-Media.repo [root@mr yum.repos.d]# rm -rf * [root@mr yum.repos.d]# ls [root@mr yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 2495 100 2495 0 0 15993 0 --:--:-- --:--:-- --:--:-- 16096 [root@mr yum.repos.d]# ls CentOS-Base.repo [root@mr yum.repos.d]# sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo [root@mr yum.repos.d]# yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm CentOS-8.5.2111 - Base - mirrors.aliyun.com 144 kB/s | 3.9 kB 00:00 CentOS-8.5.2111 - Extras - mirrors.aliyun.com 69 kB/s | 1.5 kB 00:00 CentOS-8.5.2111 - AppStream - mirrors.aliyun.com 176 kB/s | 4.3 kB 00:00 epel-release-latest-8.noarch.rpm 449 kB/s | 24 kB 00:00 Dependencies resolved. ========================================================================================================= Package Architecture Version Repository Size ========================================================================================================= Installing: epel-release noarch 8-16.el8 @commandline 24 k Transaction Summary ========================================================================================================= Install 1 Package Total size: 24 k Installed size: 34 k Downloading Packages: Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : epel-release-8-16.el8.noarch 1/1 Running scriptlet: epel-release-8-16.el8.noarch 1/1 Many EPEL packages require the CodeReady Builder (CRB) repository. It is recommended that you run /usr/bin/crb enable to enable the CRB repository. Verifying : epel-release-8-16.el8.noarch 1/1 Installed products updated. Installed: epel-release-8-16.el8.noarch Complete! [root@mr yum.repos.d]# [root@mr yum.repos.d]# sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel* [root@mr yum.repos.d]# sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel* [root@mr yum.repos.d]# ls CentOS-Base.repo epel-modular.repo epel.repo epel-testing-modular.repo epel-testing.repo [root@mr yum.repos.d]# cd [root@mr ~]# dnf clean all 37 files removed [root@mr ~]# [root@mr ~]# dnf makecache CentOS-8.5.2111 - Base - mirrors.aliyun.com 10 MB/s | 4.6 MB 00:00 CentOS-8.5.2111 - Extras - mirrors.aliyun.com 104 kB/s | 10 kB 00:00 CentOS-8.5.2111 - AppStream - mirrors.aliyun.com 11 MB/s | 8.4 MB 00:00 Extra Packages for Enterprise Linux Modular 8 - x86_64 3.2 MB/s | 1.0 MB 00:00 Extra Packages for Enterprise Linux 8 - x86_64 10 MB/s | 13 MB 00:01 Module yaml error: Unexpected key in data: static_context [line 9 col 3] Module yaml error: Unexpected key in data: static_context [line 9 col 3] Metadata cache created. [root@mr ~]# dnf -y install openssl-devel pcre-devel expat-devel libtool gcc gcc-c++ make vim wget ...... perl-threads-shared-1.58-2.el8.x86_64 pkgconf-1.4.2-1.el8.x86_64 pkgconf-m4-1.4.2-1.el8.noarch pkgconf-pkg-config-1.4.2-1.el8.x86_64 zlib-devel-1.2.11-17.el8.x86_64 Complete! [root@mr ~]# [root@mr ~]# useradd -r -M -s /sbin/nologin apache [root@mr ~]# wget https://downloads.apache.org/apr/apr-1.7.0.tar.gz --2022-08-02 19:20:01-- https://downloads.apache.org/apr/apr-1.7.0.tar.gz Resolving downloads.apache.org (downloads.apache.org)... 135.181.214.104, 88.99.95.219, 2a01:4f9:3a:2c57::2, ... Connecting to downloads.apache.org (downloads.apache.org)|135.181.214.104|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 1093896 (1.0M) [application/x-gzip] Saving to: ‘apr-1.7.0.tar.gz’ apr-1.7.0.tar.gz 100%[=====================================>] 1.04M 15.8KB/s in 54s 2022-08-02 19:20:56 (19.9 KB/s) - ‘apr-1.7.0.tar.gz’ saved [1093896/1093896] [root@mr~]#https://downloads.apache.org/apr/apr-util-1.6.1.tar.gz ...... --2022-08-02 19:21:15-- https://downloads.apache.org/apr/apr-util-1.6.1.tar.gz Resolving downloads.apache.org (downloads.apache.org)... 135.181.214.104, 88.99.95.219, 2a01:4f9:3a:2c57::2, ... Connecting to downloads.apache.org (downloads.apache.org)|135.181.214.104|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 554301 (541K) [application/x-gzip] Saving to: ‘apr-util-1.6.1.tar.gz’ apr-util-1.6.1.tar.gz 100%[=====================================>] 541.31K 4.23KB/s in 2m 13s 2022-08-02 19:23:29 (4.08 KB/s) - ‘apr-util-1.6.1.tar.gz’ saved [554301/554301] [root@mr ~]# wget https://downloads.apache.org/httpd/httpd-2.4.54.tar.gz --2022-08-02 19:25:49-- https://downloads.apache.org/httpd/httpd-2.4.54.tar.gz Resolving downloads.apache.org (downloads.apache.org)... 88.99.95.219, 135.181.214.104, 2a01:4f9:3a:2c57::2, ... Connecting to downloads.apache.org (downloads.apache.org)|88.99.95.219|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 9743277 (9.3M) [application/x-gzip] Saving to: ‘httpd-2.4.54.tar.gz’ httpd-2.4.54.tar.gz 100%[=====================================>] 9.29M 48.2KB/s in 4m 57s 2022-08-02 19:30:47 (32.0 KB/s) - ‘httpd-2.4.54.tar.gz’ saved [9743277/9743277] [root@mr ~]# ls anaconda-ks.cfg apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.54.tar.gz [root@mr ~]# tar xf apr-1.7.0.tar.gz [root@mr ~]# tar xf apr-util-1.6.1.tar.gz [root@mr ~]# ls anaconda-ks.cfg apr-1.7.0 apr-1.7.0.tar.gz apr-util-1.6.1 apr-util-1.6.1.tar.gz httpd-2.4.54.tar.gz [root@mr ~]# cd apr-1.7.0 [root@mr apr-1.7.0]# ls apr-config.in atomic config.layout file_io LICENSE network_io README.cmake time apr.dep build configure helpers locks NOTICE shmem tools apr.dsp build.conf configure.in include Makefile.in NWGNUmakefile strings user apr.dsw buildconf docs libapr.dep Makefile.win passwd support apr.mak build-outputs.mk dso libapr.dsp memory poll tables apr.pc.in CHANGES emacs-mode libapr.mak misc random test apr.spec CMakeLists.txt encoding libapr.rc mmap README threadproc [root@mr apr-1.7.0]# vim configure # $RM "$cfgfile" //将此行加上注释,或者删除此行 [root@mr apr-1.7.0]# ./configure --prefix=/usr/local/apr ...... config.status: creating build/apr_rules.mk config.status: creating build/pkg/pkginfo config.status: creating apr-1-config config.status: creating apr.pc config.status: creating test/Makefile config.status: creating test/internal/Makefile config.status: creating include/arch/unix/apr_private.h config.status: executing libtool commands config.status: executing default commands [root@mr apr-1.7.0]# make ...... /unix -I/root/apr-1.7.0/include/arch/unix -I/root/apr-1.7.0/include -I/root/apr-1.7.0/include/private -I/root/apr-1.7.0/include/private export_vars.c | sed -e 's/^\#[^!]*//' | sed -e '/^$/d' >> apr.exp sed 's,^\(location=\).*$,\1installed,' < apr-1-config > apr-config.out sed -e 's,^\(apr_build.*=\).*$,\1/usr/local/apr/build-1,' -e 's,^\(top_build.*=\).*$,\1/usr/local/apr/build-1,' < build/apr_rules.mk > build/apr_rules.out make[1]: Leaving directory '/root/apr-1.7.0' [root@mr apr-1.7.0]# make install ...... /usr/bin/install -c -m 755 apr-config.out /usr/local/apr/bin/apr-1-config [root@mr apr-1.7.0]# cd ../apr-util-1.6.1 [root@mr apr-util-1.6.1]# ls aprutil.dep apu-config.in CHANGES dbd include LICENSE NWGNUmakefile strmatch aprutil.dsp buckets CMakeLists.txt dbm ldap Makefile.in README test aprutil.dsw build config.layout docs libaprutil.dep Makefile.win README.cmake uri aprutil.mak build.conf configure encoding libaprutil.dsp memcache README.FREETDS xlate apr-util.pc.in buildconf configure.in export_vars.sh.in libaprutil.mak misc redis xml apr-util.spec build-outputs.mk crypto hooks libaprutil.rc NOTICE renames_pending [root@mr apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking target system type... x86_64-pc-linux-gnu ...... config.status: creating test/Makefile config.status: creating include/private/apu_config.h config.status: executing default commands [root@mr apr-util-1.6.1]# make && make install ...... See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- /usr/bin/install -c -m 644 aprutil.exp /usr/local/apr-util/lib /usr/bin/install -c -m 755 apu-config.out /usr/local/apr-util/bin/apu-1-config [root@mr apr-util-1.6.1]# cd [root@mr ~]# ls /usr/local/ apr apr-util bin etc games include lib lib64 libexec sbin share src [root@mr ~]# [root@mr ~]# ls anaconda-ks.cfg apr-1.7.0 apr-1.7.0.tar.gz apr-util-1.6.1 apr-util-1.6.1.tar.gz httpd-2.4.54.tar.gz [root@mr ~]# tar xf httpd-2.4.54.tar.gz [root@mr ~]# cd httpd-2.4.54 [root@mr httpd-2.4.54]# ls ABOUT_APACHE BuildBin.dsp docs InstallBin.dsp modules ROADMAP acinclude.m4 buildconf emacs-style LAYOUT NOTICE server Apache-apr2.dsw CHANGES httpd.dep libhttpd.dep NWGNUmakefile srclib Apache.dsw changes-entries httpd.dsp libhttpd.dsp os support apache_probes.d CMakeLists.txt httpd.mak libhttpd.mak README test ap.d config.layout httpd.spec LICENSE README.CHANGES VERSIONING build configure include Makefile.in README.cmake BuildAll.dsp configure.in INSTALL Makefile.win README.platforms [root@mr httpd-2.4.54]# ./configure --prefix=/usr/local/apache \ > --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 ...... config.status: executing default commands configure: summary of build options: Server Version: 2.4.54 Install prefix: /usr/local/apache C compiler: gcc CFLAGS: -g -O2 -pthread CPPFLAGS: -DLINUX -D_REENTRANT -D_GNU_SOURCE LDFLAGS: LIBS: C preprocessor: gcc -E [root@mr httpd-2.4.54]# make && make install ...... Installing build system files mkdir /usr/local/apache/build Installing man pages and online manual mkdir /usr/local/apache/man mkdir /usr/local/apache/man/man1 mkdir /usr/local/apache/man/man8 mkdir /usr/local/apache/manual make[1]: Leaving directory '/root/httpd-2.4.54' [root@mr httpd-2.4.54]# cd [root@mr ~]# ls anaconda-ks.cfg apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.54.tar.gz apr-1.7.0 apr-util-1.6.1 httpd-2.4.54 [root@mr ~]# echo 'export PATH=/usr/local/apache/bin:$PATH' > /etc/profile.d/httpd.sh [root@mr ~]# cat /etc/profile.d/httpd.sh export PATH=/usr/local/apache/bin:$PATH [root@mr ~]# source /etc/profile.d/httpd.sh [root@mr ~]# which httpd /usr/local/apache/bin/httpd [root@mr ~]# ls /usr/local/apache/ bin build cgi-bin conf error htdocs icons include logs man manual modules [root@mr ~]# ln -s /usr/local/apache/include/ /usr/include/apache [root@mr ~]# vim /etc/man_db.conf MANDATORY_MANPATH /usr/man MANDATORY_MANPATH /usr/share/man MANDATORY_MANPATH /usr/local/share/man MANDATORY_MANPATH /usr/local/apache/man(添加这一行) [root@mr ~]# cd /usr/lib/systemd/system [root@mr system]# ls auditd.service runlevel0.target autovt@.service runlevel1.target basic.target runlevel1.target.wants basic.target.wants runlevel2.target ...... rngd-wake-threshold.service user-.slice.d rpcbind.target vgauthd.service rsyslog.service vmtoolsd.service [root@mr system]# cp sshd.service httpd.service [root@mr system]# vim httpd.service [Unit] Description=web server daemon Documentation=man:httpd(5) After=network.target sshd-keygen.target [Service] Type=forking ExecStart=/usr/local/apache/bin/apachectl start ExecReload=/bin/kill -HUP $MAINPID ExecStop=/usr/local/apache/bin/apachectl stop [Install] WantedBy=multi-user.target [root@mr system]# cd [root@mr ~]# systemctl daemon-reload [root@mr ~]# systemctl status httpd ● httpd.service - web server daemon Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled) Active: inactive (dead) Docs: man:httpd(5) [root@mr ~]# systemctl start httpd [root@mr ~]# 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 [::]:* [root@mr ~]# systemctl enable httpd Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service. [root@mr ~]# systemctl status httpd ● httpd.service - web server daemon Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2022-08-02 20:12:20 CST; 53min ago Docs: man:httpd(5) Main PID: 48353 (httpd) Tasks: 6 (limit: 24717) Memory: 5.8M CGroup: /system.slice/httpd.service ├─48353 /usr/local/apache/bin/httpd -k start ├─48354 /usr/local/apache/bin/httpd -k start ├─48355 /usr/local/apache/bin/httpd -k start ├─48356 /usr/local/apache/bin/httpd -k start ├─48357 /usr/local/apache/bin/httpd -k start └─48358 /usr/local/apache/bin/httpd -k start Aug 02 20:12:02 mr systemd[1]: Starting web server daemon... Aug 02 20:12:20 mr apachectl[48350]: AH00558: httpd: Could not reliably determine the server's fully qua> Aug 02 20:12:20 mr systemd[1]: Started web server daemon. [root@mr ~]#
3.2 安装mysql
[root@mr ~]# dnf -y install ncurses-devel openssl-devel openssl cmake mariadb-devel ...... mariadb-connector-c-devel-3.1.11-2.el8_3.x86_64 mariadb-devel-3:10.3.28-1.module_el8.3.0+757+d382997d.x86_64 ncurses-c++-libs-6.1-9.20180224.el8.x86_64 ncurses-devel-6.1-9.20180224.el8.x86_64 Complete! [root@mr ~]# [root@mr ~]# useradd -r -M -s /sbin/nologin mysql [root@mr ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz ...... HTTP request sent, awaiting response... 200 OK Length: 674830866 (644M) [application/x-tar-gz] Saving to: ‘mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz’ mysql-5.7.38-linux-glibc2. 100%[=====================================>] 643.57M 659KB/s in 9m 26s 2022-08-02 22:09:46 (1.14 MB/s) - ‘mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz’ saved [674830866/674830866] [root@mr ~]# ls anaconda-ks.cfg apr-1.7.0.tar.gz apr-util-1.6.1.tar.gz httpd-2.4.54.tar.gz apr-1.7.0 apr-util-1.6.1 httpd-2.4.54 mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz [root@mr ~]# tar xf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ [root@mr ~]# cd /usr/local/ [root@mr local]# ls apache apr-util etc include lib64 mysql-5.7.38-linux-glibc2.12-x86_64 share apr bin games lib libexec sbin src [root@mr local]# mv mysql-5.7.38-linux-glibc2.12-x86_64 mysql [root@mr local]# ls apache apr apr-util bin etc games include lib lib64 libexec mysql sbin share src [root@mr local]# chown -R mysql.mysql mysql [root@mr local]# ll total 0 drwxr-xr-x. 14 root root 164 Aug 2 19:53 apache drwxr-xr-x. 6 root root 58 Aug 2 19:38 apr drwxr-xr-x. 5 root root 43 Aug 2 19:44 apr-util drwxr-xr-x. 2 root root 6 May 19 2020 bin drwxr-xr-x. 2 root root 6 May 19 2020 etc drwxr-xr-x. 2 root root 6 May 19 2020 games drwxr-xr-x. 2 root root 6 May 19 2020 include drwxr-xr-x. 2 root root 6 May 19 2020 lib drwxr-xr-x. 3 root root 17 Aug 1 15:49 lib64 drwxr-xr-x. 2 root root 6 May 19 2020 libexec drwxr-xr-x. 9 mysql mysql 129 Aug 2 22:11 mysql drwxr-xr-x. 2 root root 6 May 19 2020 sbin drwxr-xr-x. 5 root root 49 Aug 1 15:49 share drwxr-xr-x. 2 root root 6 May 19 2020 src [root@mr local]# ls /usr/local/mysql/ bin docs include lib LICENSE man README share support-files [root@mr local]# ln -s /usr/local/mysql/include /usr/include/mysql [root@mr local]# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf [root@mr local]# vim /etc/man_db.conf MANDATORY_MANPATH /usr/man MANDATORY_MANPATH /usr/share/man MANDATORY_MANPATH /usr/local/share/man MANDATORY_MANPATH /usr/local/mysql/man [root@mr local]# cd [root@mr ~]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh [root@mr ~]# source /etc/profile.d/mysql.sh [root@mr ~]# which mysql /usr/local/mysql/bin/mysql [root@mr ~]# [root@mr ~]# mysqld --initialize --user mysql --datadir /opt/data 2022-08-02T14:22:01.195167Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2022-08-02T14:22:01.338468Z 0 [Warning] InnoDB: New log files created, LSN=45790 2022-08-02T14:22:01.364317Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2022-08-02T14:22:01.423393Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 799aa4e2-126e-11ed-a53b-000c29f0dfce. 2022-08-02T14:22:01.424482Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2022-08-02T14:22:01.621913Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher. 2022-08-02T14:22:01.621947Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher. 2022-08-02T14:22:01.622320Z 0 [Warning] CA certificate ca.pem is self signed. 2022-08-02T14:22:01.648745Z 1 [Note] A temporary password is generated for root@localhost: <rC:S!uXs6yk [root@mr ~]# echo '<rC:S!uXs6yk' > pass [root@mr ~]# rpm -qa|grep mariadb mariadb-connector-c-config-3.1.11-2.el8_3.noarch mariadb-connector-c-3.1.11-2.el8_3.x86_64 mariadb-connector-c-devel-3.1.11-2.el8_3.x86_64 mariadb-devel-10.3.28-1.module_el8.3.0+757+d382997d.x86_64 [root@mr ~]# dnf -y remove mariadb* Removed: mariadb-connector-c-3.1.11-2.el8_3.x86_64 mariadb-connector-c-config-3.1.11-2.el8_3.noarch mariadb-connector-c-devel-3.1.11-2.el8_3.x86_64 mariadb-devel-3:10.3.28-1.module_el8.3.0+757+d382997d.x86_64 Complete! [root@mr ~]# rpm -qa|grep mariadb [root@mr ~]# vim /etc/my.cnf [mysqld] basedir = /usr/local/mysql datadir = /opt/data socket = /tmp/mysql.sock port = 3306 pid-file = /opt/data/mysql.pid user = mysql skip-name-resolve [root@mr ~]# cd /usr/local/mysql/ [root@mr mysql]# ls bin docs include lib LICENSE man README share support-files [root@mr mysql]# cd support-files/ [root@mr support-files]# ls magic mysqld_multi.server mysql-log-rotate mysql.server [root@mr support-files]# file mysql.server mysql.server: POSIX shell script, ASCII text executable [root@mr support-files]# cp mysql.server /etc/init.d/mysqld [root@mr support-files]# vim /etc/init.d/mysqld basedir=/usr/local/mysql datadir=/opt/data [root@mr support-files]# chmod +x /etc/init.d/mysqld [root@mr support-files]# cd [root@mr ~]# service mysqld start Starting MySQL.Logging to '/opt/data/mr.err'. SUCCESS! [root@mr ~]# 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 [::]:* LISTEN 0 80 *:3306 *:* [root@mr ~]# chkconfig --add mysqld [root@mr ~]# chkconfig --list Note: This output shows SysV services only and does not include native systemd services. SysV configuration data might be overridden by native systemd configuration. If you want to list systemd services use 'systemctl list-unit-files'. To see services enabled on particular target use 'systemctl list-dependencies [target]'. mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@mr ~]# [root@mr ~]# systemctl disable --now firewalld Removed /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [root@mr ~]# vim /etc/selinux/config SELINUX=disabled [root@mr ~]# reboot [root@master ~]# 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 80 *:3306 *:* LISTEN 0 128 *:80 *:* LISTEN 0 128 [::]:22 [::]:* [root@master ~]# [root@master ~]# dnf provides libncurses.so.5 Last metadata expiration check: 2:52:43 ago on Tue 02 Aug 2022 07:55:40 PM CST. Module yaml error: Unexpected key in data: static_context [line 9 col 3] Module yaml error: Unexpected key in data: static_context [line 9 col 3] ncurses-compat-libs-6.1-9.20180224.el8.i686 : Ncurses compatibility libraries Repo : base Matched from: Provide : libncurses.so.5 [root@master ~]# dnf -y install ncurses-compat-libs [root@master ~]# cat pass <rC:S!uXs6yk [root@master ~]# mysql -uroot -p'<rC:S!uXs6yk' mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.38 Copyright (c) 2000, 2022, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> set password = password('marui'); Query OK, 0 rows affected, 1 warning (0.01 sec) mysql> exit Bye [root@master ~]# mysql -uroot -pmarui mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.7.38 MySQL Community Server (GPL) Copyright (c) 2000, 2022, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> exit Bye [root@master ~]#
3.3 安装php
[root@master ~]# wget https://www.php.net/distributions/php-7.4.30.tar.xz ...... Saving to: ‘php-7.4.30.tar.xz’ php-7.4.30.tar.xz 100%[++++++++++++++++=====================>] 9.94M 16.1KB/s in 5m 16s 2022-08-02 23:24:04 (18.5 KB/s) - ‘php-7.4.30.tar.xz’ saved [10419136/10419136] [root@master ~]# sha256sum php-7.4.30.tar.xz ea72a34f32c67e79ac2da7dfe96177f3c451c3eefae5810ba13312ed398ba70d php-7.4.30.tar.xz [root@master ~]# [root@master ~]# dnf list all|grep php|grep mysql Module yaml error: Unexpected key in data: static_context [line 9 col 3] Module yaml error: Unexpected key in data: static_context [line 9 col 3] php-mysqlnd.x86_64 7.2.24-1.module_el8.2.0+313+b04d0a66 AppStream [root@master ~]# dnf -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 php-mysqlnd ..... mhash-0.9.9.9-20.el8.x86_64 mhash-devel-0.9.9.9-20.el8.x86_64 openldap-devel-2.4.46-18.el8.x86_64 php-common-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64 php-mysqlnd-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64 php-pdo-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64 readline-devel-7.0-10.el8.x86_64 xz-devel-5.2.4-3.el8.x86_64 zlib-1.2.11-17.el8.i686 Complete! [root@master ~]# dnf -y install libsqlite3x-devel Last metadata expiration check: 3:40:33 ago on Tue 02 Aug 2022 07:55:40 PM CST. Module yaml error: Unexpected key in data: static_context [line 9 col 3] Module yaml error: Unexpected key in data: static_context [line 9 col 3] Dependencies resolved. ============================================================================================================================= Package Architecture Version Repository Size ============================================================================================================================= Installing: libsqlite3x-devel x86_64 20071018-26.el8 epel 143 k Upgrading: sqlite-libs x86_64 3.26.0-15.el8 base 581 k Installing dependencies: libsqlite3x x86_64 20071018-26.el8 epel 39 k sqlite x86_64 3.26.0-15.el8 base 668 k sqlite-devel x86_64 3.26.0-15.el8 base 165 k Transaction Summary ============================================================================================================================= Install 4 Packages Upgrade 1 Package Total download size: 1.6 M Downloading Packages: (1/5): sqlite-3.26.0-15.el8.x86_64.rpm 7.1 MB/s | 668 kB 00:00 (2/5): sqlite-devel-3.26.0-15.el8.x86_64.rpm 1.3 MB/s | 165 kB 00:00 (3/5): libsqlite3x-20071018-26.el8.x86_64.rpm 233 kB/s | 39 kB 00:00 (4/5): sqlite-libs-3.26.0-15.el8.x86_64.rpm 12 MB/s | 581 kB 00:00 (5/5): libsqlite3x-devel-20071018-26.el8.x86_64.rpm 269 kB/s | 143 kB 00:00 ----------------------------------------------------------------------------------------------------------------------------- Total 2.5 MB/s | 1.6 MB 00:00 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Upgrading : sqlite-libs-3.26.0-15.el8.x86_64 1/6 Installing : sqlite-3.26.0-15.el8.x86_64 2/6 Installing : sqlite-devel-3.26.0-15.el8.x86_64 3/6 Installing : libsqlite3x-20071018-26.el8.x86_64 4/6 Installing : libsqlite3x-devel-20071018-26.el8.x86_64 5/6 Cleanup : sqlite-libs-3.26.0-13.el8.x86_64 6/6 Running scriptlet: sqlite-libs-3.26.0-13.el8.x86_64 6/6 Verifying : sqlite-3.26.0-15.el8.x86_64 1/6 Verifying : sqlite-devel-3.26.0-15.el8.x86_64 2/6 Verifying : libsqlite3x-20071018-26.el8.x86_64 3/6 Verifying : libsqlite3x-devel-20071018-26.el8.x86_64 4/6 Verifying : sqlite-libs-3.26.0-15.el8.x86_64 5/6 Verifying : sqlite-libs-3.26.0-13.el8.x86_64 6/6 Installed products updated. Upgraded: sqlite-libs-3.26.0-15.el8.x86_64 Installed: libsqlite3x-20071018-26.el8.x86_64 libsqlite3x-devel-20071018-26.el8.x86_64 sqlite-3.26.0-15.el8.x86_64 sqlite-devel-3.26.0-15.el8.x86_64 Complete! [root@master ~]# dnf -y install http://mirror.centos.org/centos/8-stream/PowerTools/x86_64/os/Packages/oniguruma-devel-6.8.2-2.el8.x86_64.rpm ...... Verifying : oniguruma-6.8.2-2.el8.x86_64 1/2 Verifying : oniguruma-devel-6.8.2-2.el8.x86_64 2/2 Installed products updated. Installed: oniguruma-6.8.2-2.el8.x86_64 oniguruma-devel-6.8.2-2.el8.x86_64 Complete! [root@master ~]# ls anaconda-ks.cfg apr-util-1.6.1 httpd-2.4.54.tar.gz php-7.4.30.tar.xz apr-1.7.0 apr-util-1.6.1.tar.gz mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz apr-1.7.0.tar.gz httpd-2.4.54 pass [root@master ~]# dnf -y install libzip-devel Verifying : libzip-devel-1.5.1-2.module_el8.2.0+313+b04d0a66.x86_64 2/2 Installed products updated. Installed: libzip-1.5.1-2.module_el8.2.0+313+b04d0a66.x86_64 libzip-devel-1.5.1-2.module_el8.2.0+313+b04d0a66.x86_64 Complete! [root@master ~]# [root@master ~]# tar xf php-7.4.30.tar.xz [root@master ~]# cd php-7.4.30 [root@master php-7.4.30]# ./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 \ ...... config.status: creating main/php_config.h config.status: executing default commands +--------------------------------------------------------------------+ | License: | | This software is subject to the PHP License, available in this | | distribution in the file LICENSE. By continuing this installation | | process, you are bound by the terms of this license agreement. | | If you do not agree with the terms of this license, you must abort | | the installation process at this point. | +--------------------------------------------------------------------+ Thank you for using PHP. [root@master php-7.4.30]# make ...... pharcommand.inc invertedregexiterator.inc directorytreeiterator.inc directorygraphiterator.inc phar.inc Build complete. Don't forget to run 'make test'. [root@master php-7.4.30]# make install Installing shared extensions: /usr/local/php7/lib/php/extensions/no-debug-non-zts-20190902/ Installing PHP CLI binary: /usr/local/php7/bin/ Installing PHP CLI man page: /usr/local/php7/php/man/man1/ ...... /root/php-7.4.30/build/shtool install -c ext/phar/phar.phar /usr/local/php7/bin/phar.phar ln -s -f phar.phar /usr/local/php7/bin/phar Installing PDO headers: /usr/local/php7/include/php/ext/pdo/ [root@master php-7.4.30]# echo 'export PATH=/usr/local/php7/bin:$PATH' > /etc/profile.d/php7.sh [root@master php-7.4.30]# source /etc/profile.d/php7.sh [root@master php-7.4.30]# which php /usr/local/php7/bin/php [root@master php-7.4.30]# php -v PHP 7.4.30 (cli) (built: Aug 3 2022 00:00:44) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies [root@master php-7.4.30]# cp php.ini-production /etc/php.ini cp: overwrite '/etc/php.ini'? y [root@master php-7.4.30]# cd sapi/ [root@master sapi]# ls apache2handler cgi cli embed fpm litespeed phpdbg [root@master sapi]# cd fpm/ [root@master fpm]# ls config.m4 init.d.php-fpm.in php-fpm.8 php-fpm.service tests CREDITS LICENSE php-fpm.8.in php-fpm.service.in www.conf fpm Makefile.frag php-fpm.conf status.html www.conf.in init.d.php-fpm php-fpm php-fpm.conf.in status.html.in [root@master fpm]# file init.d.php-fpm init.d.php-fpm: POSIX shell script, ASCII text executable [root@master fpm]# cp init.d.php-fpm /etc/init.d/php-fpm [root@master fpm]# chmod +x /etc/init.d/php-fpm [root@master fpm]# cd [root@master ~]# service php-fpm status php-fpm is stopped [root@master ~]# cd /usr/local/php7/ [root@master php7]# ls bin etc include lib php sbin var [root@master php7]# cd etc/ [root@master etc]# ls pear.conf php-fpm.conf.default php-fpm.d [root@master etc]# cp php-fpm.conf.default php-fpm.conf [root@master etc]# ls pear.conf php-fpm.conf php-fpm.conf.default php-fpm.d [root@master etc]# cd php-fpm.d/ [root@master php-fpm.d]# ls www.conf.default [root@master php-fpm.d]# cp www.conf.default www.conf [root@master php-fpm.d]# ls www.conf www.conf.default [root@master php-fpm.d]# service php-fpm start Starting php-fpm done [root@master php-fpm.d]# ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:Port Process LISTEN 0 128 127.0.0.1:9000 0.0.0.0:* LISTEN 0 128 0.0.0.0:22 0.0.0.0:* LISTEN 0 80 *:3306 *:* LISTEN 0 128 *:80 *:* LISTEN 0 128 [::]:22 [::]:* [root@master php-fpm.d]# [root@master php-fpm.d]# cd [root@master ~]# chkconfig --add php-fpm [root@master ~]# chkconfig --list Note: This output shows SysV services only and does not include native systemd services. SysV configuration data might be overridden by native systemd configuration. If you want to list systemd services use 'systemctl list-unit-files'. To see services enabled on particular target use 'systemctl list-dependencies [target]'. mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off php-fpm 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@master ~]#
这篇关于lamp的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?
- 2024-05-09这种运行结果里的10.100000001,怎么能最快改成10.1?