源码编译安装LAMP

目录

一、Apache网站服务安装

 1.准备安装环境:关闭防火墙、光盘挂载、本地yum源、上传解压Apache软件包;

2.安装环境依赖包

3.将apr-1.6.2和apr-uitl软件包移到/opt/apache/httpd-2.4.29/srclib/目录下后,配置软件模块

4.编译及安装

5.优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别,修改httpd服务配置文件,启动httpd服务

6.浏览器访问验证

二、MySQL服务安装

1.安装环境依赖包

2.首先上传解压MySQL的安装包

3.cmake配置软件模块

4.编译及安装

5.创建mysql用户

 6.修改mysql配置文件以及文件的属主、属组

 7.添加到环境变量中,让程序可识别mysql服务

 8.初始化数据库,并开启服务

 9.免交互设置mysql登录密码,登录退出

三、PHP服务安装

1.安装环境依赖包,上传解压软件

2.配置软件模块,编译安装php,将php可执行文件放入环境变量目录中

3.复制模版文件作为PHP 的主配置文件,并进行修改

4.修改httpd服务配置文件,让apache支持php应用程序,重启httpd服务

5.新建测试页文件,浏览器访问http://192.168.170.200/index.php验证php是否安装成功

四、LAMP架构应用实例

MySQL数据库的使用

①登录数据库

②查看数据库

③创建数据库

④数据库授权,需要记住库名discuz、账号discuzadmin和密码admin123

⑤删除数据库

应用实例一:论坛网站应用

①上传、解压discuz软件包

②创建discuz数据库(创建名为discuz的数据库,账号为discuzadmin,密码为admin123)

③修改daemon用户的使用权限

④安装、访问discuz论坛

⑤登录使用discuz论坛

应用案例二:博客网站应用

①上传解压软件包

②创建博客的数据库(数据库名为worldpress,账号bbsadmin,密码admin123)

③修改daemon用户的权限

④安装、访问博客服务


        LAMP网站服务架构,可以同时提供动态和静态页面的能力。LAMP是一个缩写词,具体包括Linux操作系统、Apache网络服务器、MySQL数据库服务器、php网络编程语言。AMP组件也支持在Linux系统之外的mac、Windows等平台。

  1. Linux:提供网站服务应用的运行环境,也支持Windows作为AMP的运行环境
  2. Apache网站服务:作为前段网站服务,直接面向用户提供网站访问入口,并非静态页面请求
  3. MySQL服务安装:作为后端数据库,用于存储网站的业务数据、账户信息等,并且提供访问接口给变成程序语言程序连接使用SQL语句进行数据的读写。市面上主流的数据库有Oracle国外的且收费、MySQL、PostgreSQL开源数据库,国内很多数据库基于他开发的、SQL Server主要是为Windows服务器开发使用的。
  4. PHP服务安装:作为编程语言,负责处理解释动态页面文件;并作为中间件负责沟通前端web网站服务和后端数据库协同工作。在构建LAMP平台时,PHP环境的安装一般放到最后。

一、Apache网站服务安装

 1.准备安装环境:关闭防火墙、光盘挂载、本地yum源、上传解压Apache软件包;

apr组件包用于支持Apache上层应用跨平台,提供底层接口库,能有效的提高并发连接数、降低进程和减少访问堵塞。

[root@pyx ~]# systemctl disable --now firewalld
[root@pyx ~]# setenforce 0
[root@pyx ~]# vim  /etc/selinux/config 
                    ---> SELINUX=disabled
[root@pyx ~]# cd /opt
[root@pyx opt]# ls
rh
[root@pyx opt]# rm -rf *
[root@pyx opt]# mkdir apache
[root@pyx opt]# cd apache
[root@pyx apache]# rz -E     
[root@pyx apache]# ls
apr-1.6.2.tar.gz       httpd-2.4.29.tar.bz2
apr-util-1.6.0.tar.gz
[root@pyx apache]# tar xf httpd-2.4.29.tar.bz2 
[root@pyx apache]# tar xf apr-1.6.2.tar.gz 
[root@pyx apache]# tar xf apr-util-1.6.0.tar.gz 

2.安装环境依赖包

[root@pyx apache]# yum install -y gcc gcc-c++ make perl pcre pcre-devel expat-devel

gcc \                                #C语言的编译器
gcc-c++ \                         #C++的编译器
make \                             #源代码编译器(源代码转换成二进制文件)
pcre \                               #pcre是一个Perl函数库,包括perl 兼容的正则表达式库
pcre-devel \                     #perl的接口开发包
expat-devel \                   #用于支持网站解析HTML、XML文件
perl                                 #perl语言编译器

3.将apr-1.6.2和apr-uitl软件包移到/opt/apache/httpd-2.4.29/srclib/目录下后,配置软件模块

[root@pyx apache]# ls
apr-1.6.2         apr-util-1.6.0.tar.gz 
apr-1.6.2.tar.gz  httpd-2.4.29
apr-util-1.6.0    httpd-2.4.29.tar.bz2
[root@pyx apache]# cd httpd-2.4.29/
[root@pyx httpd-2.4.29]# ls
ABOUT_APACHE     CMakeLists.txt  INSTALL         NWGNUmakefile
acinclude.m4     config.layout   InstallBin.dsp  os
Apache-apr2.dsw  configure       LAYOUT          README
Apache.dsw       configure.in    libhttpd.dep    README.cmake
apache_probes.d  docs            libhttpd.dsp    README.platforms
ap.d             emacs-style     libhttpd.mak    ROADMAP
build            httpd.dep       LICENSE         server
BuildAll.dsp     httpd.dsp       Makefile.in     srclib
BuildBin.dsp     httpd.mak       Makefile.win    support
buildconf        httpd.spec      modules         test
CHANGES          include         NOTICE          VERSIONING
[root@pyx httpd-2.4.29]# cd srclib/
[root@pyx srclib]# ls
Makefile.in
[root@pyx srclib]# cd /opt/apache/
[root@pyx apache]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@pyx apache]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
[root@pyx apache]# cd httpd-2.4.29/srclib/
[root@pyx srclib]# ls
apr  apr-util  Makefile.in
[root@pyx srclib]# cd ..
[root@pyx httpd-2.4.29]# ls
ABOUT_APACHE     CMakeLists.txt  INSTALL         NWGNUmakefile
acinclude.m4     config.layout   InstallBin.dsp  os
Apache-apr2.dsw  configure       LAYOUT          README
Apache.dsw       configure.in    libhttpd.dep    README.cmake
apache_probes.d  docs            libhttpd.dsp    README.platforms
ap.d             emacs-style     libhttpd.mak    ROADMAP
build            httpd.dep       LICENSE         server
BuildAll.dsp     httpd.dsp       Makefile.in     srclib
BuildBin.dsp     httpd.mak       Makefile.win    support
buildconf        httpd.spec      modules         test
CHANGES          include         NOTICE          VERSIONING
[root@pyx httpd-2.4.29]# ./configure --prefix=/usr/local/httpd --enable-so enable-rewrite --enable-charset-lite --enable-cgi
[root@pyx httpd-2.4.29]# ls         #编译完成后会生成Makefire文件
ABOUT_APACHE     config.log     InstallBin.dsp  os
acinclude.m4     config.nice    LAYOUT          README
Apache-apr2.dsw  config.status  libhttpd.dep    README.cmake
Apache.dsw       configure      libhttpd.dsp    README.platforms
apache_probes.d  configure.in   libhttpd.mak    ROADMAP
ap.d             docs           LICENSE         server
build            emacs-style    Makefile        srclib
BuildAll.dsp     httpd.dep      Makefile.in     support
BuildBin.dsp     httpd.dsp      Makefile.win    test
buildconf        httpd.mak      modules         VERSIONING
CHANGES          httpd.spec     modules.c
CMakeLists.txt   include        NOTICE
config.layout    INSTALL        NWGNUmakefile

4.编译及安装

[root@pyx httpd-2.4.29]# lscpu           #查看核心数,我的虚拟机2个核
[root@pyx httpd-2.4.29]# make -j 2       #2核同时编译
[root@pyx httpd-2.4.29]# make install    #安装程序
[root@pyx httpd-2.4.29]# ls /usr/local/  #安装后usr/local目录生成httpd目录
bin  etc  games  httpd  include  lib  lib64  libexec  sbin  share  src
[root@pyx local]# cd /usr/local/httpd
[root@pyx httpd]# ls
bin    cgi-bin  error   icons    lib   man     modules
build  conf     htdocs  include  logs  manual

make -j 2 表示调用2核编译,不要超核 lscpu命令可以查看核心数。

bin目录存放Apache的可执行程序;conf目录存放Apache配置文件;htdocs目录存放Apache的网页文件;logs目录存放日志文件... 

5.优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别,修改httpd服务配置文件,启动httpd服务

#启动Apache的方式一:
[root@pyx httpd]# cd bin
[root@pyx bin]# ls
ab            apu-1-config  dbmmanage    fcgistarter   htdigest  httxt2dbm
apachectl     apxs          envvars      htcacheclean  htpasswd  logresolve
apr-1-config  checkgid      envvars-std  htdbm         httpd     rotatelogs
可以把apachectl和httpd复制到etc/apache.d目录中做脚本文件,
apachectl文件,它本身就是一个脚本文件直接复制使用
[root@pyx bin]# cp apachectl /etc/init.d/httpd
[root@pyx bin]# cd /etc/init.d/
[root@pyx init.d]# ls
functions  httpd  netconsole  network  README
[root@pyx init.d]# vim httpd
               开头添加#!/bin/bash
                      #this is apache service control scprit
                      #chkconfig: 2345 20 99   加入到开机自启的配置
[root@pyx init.d]# chkconfig --add httpd        就可以使用service进行httpd服务管理了
[root@pyx init.d]# cd /usr/local/httpd/
[root@pyx httpd]# ls
bin    cgi-bin  error   icons    lib   man     modules
build  conf     htdocs  include  logs  manual
[root@pyx httpd]# cd conf/
[root@pyx conf]# ls
extra  httpd.conf  magic  mime.types  original
[root@pyx conf]# vim httpd.conf 
    166 User daemon    运行用户根据需求可更改
    167 Group daemon
    197 ServerName www.test.com:80       #取消注释此行内容,修改主机名
    221 DocumentRoot "/usr/local/httpd/htdocs"   Apache读取的网页文件存放目录,网站根目录
    255 DirectoryIndex index.html        网站的默认访问文件
[root@pyx conf]# ln -s /usr/local/httpd/bin/* /usr/local/bin/
[root@pyx conf]# apachectl -t      检查Apache语法是否有误
Syntax OK
[root@pyx conf]# service httpd start 
----------------------------------------------------------------------------------------
#启动Apache的方式二:
这里是接着上面方式一做的:先删掉rm -f /etc/init.d/httpd
cd /usr/lib/systemd/system
vim httpd.service
   vim /lib/systemd/system/httpd.service
        [Unit]											#服务的说明
        Description=The Apache HTTP Server				#描述服务
        After=network.target							#依赖,当依赖的服务启动之后再启动自 
                                                         定义的服务
        [Service]										#服务运行参数的设置
        Type=forking									#后台运行方式
        PIDFile=/usr/local/httpd/logs/httpd.pid			#PID文件位置,不能指定错
        ExecStart=/usr/local/bin/apachectl $OPTIONS		#服务的运行命令
        ExecReload=/bin/kill -HUP $MAINPID				#根据PID重载配置
        [Install]										#服务安装的相关设置
        WantedBy=multi-user.target						#设置为多用户
systemctl daemon-reload 重载
systemctl start httpd
systemctl enable --now httpd

./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
--prefix=/usr/local/httpd \   #指定将 httpd 服务程序的安装路径
--enable-so \                     #启用动态加载模块支持,使 httpd 具备进一步扩展功能的能力
--enable-rewrite \              #启用网页地址重写功能,用于网站优化、防盗链及目录迁移维护
--enable-charset-lite \       #启动字符集支持,以便支持使用各种字符集编码的页面
--enable-cgi                     #启用CGI(通用网关接口)脚本程序支持,便于网站的外部扩展应用访问能力 

6.浏览器访问验证

本机浏览器访问http://192.168.170.0   “it works”表示程序安装成功,访问的就是 /usr/local/httpd/htdocs/index.html 文件的内容。要实现Windows通过域名访问该服务器,可以准备一台DNS服务器,或者修改C盘:Windows/System32/drivers/etc/hosts文件,在最后添加一行解析记录,如192.168.170.200 www.test.com

Linux系统主机想过通过域名访问则是:echo "192.168.170.200 www.test.com" >> /etc/hosts

二、MySQL服务安装

1.安装环境依赖包

[root@pyx mysql]# yum install -y gcc gcc-c++ ncurses ncurses-devel bison cmake openssl-devel

ncurses 是字符终端下图形互动功能的动态库

ncurses-devel 是ncurses开发包 
bison     语法分析器

cmake   mysql需要用cmake编译安装

openssl-devel 是MySQL5.7最新版本需要的开发包 

2.首先上传解压MySQL的安装包

[root@pyx ~]# cd /opt
[root@pyx opt]# ls
apache
[root@pyx opt]# mkdir mysql
[root@pyx opt]# cd mysql/
[root@pyx mysql]# rz -E
[root@pyx mysql]# ls
mysql-boost-5.7.44.tar.gz 
[root@pyx mysql]# tar xf mysql-boost-5.7.44.tar.gz 

mysql-boost-5.7.44.tar.gz  #是最新版本集成包,包含了boost相关的软件包(支持 c++的运行库) 

3.cmake配置软件模块

[root@pyx mysql]# ls
mysql-5.7.44  mysql-boost-5.7.44.tar.gz
[root@pyx mysql]# cd mysql-5.7.44/
[root@pyx mysql-5.7.44]# ls       #目录下已经有boost文件了   
boost                extra                mysql-test        sql
BUILD                include              mysys             sql-common
client               INSTALL              mysys_ssl         storage
cmake                libbinlogevents      packaging         strings
CMakeLists.txt       libbinlogstandalone  plugin            support-files
config.h.cmake       libmysql             rapid             testclients
configure.cmake      libmysqld            README            unittest
dbug                 libservices          regex             VERSION
Docs                 LICENSE              scripts           vio
Doxyfile-perfschema  man                  source_downloads  win
[root@pyx mysql-5.7.44]# 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_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1

注意:如果在CMAKE的过程中有报错,当找到命令问题后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧

4.编译及安装

[root@pyx mysql-5.7.44]# make -j 2    双核编译
[root@pyx mysql-5.7.44]# make install
[root@pyx mysql-5.7.44]# cd /usr/local/
[root@pyx local]# ls
bin  etc  games  httpd  include  lib  lib64  libexec  mysql  sbin  share  src

5.创建mysql用户

[root@pyx local]# useradd -M -s /sbin/nologin mysql
[root@pyx local]# rpm -qa | grep mariadb        
mariadb-libs-5.5.68-1.el7.x86_64
[root@pyx local]# yum remove -y mariadb-libs.x86_64

mariadb是MySQL的姊妹软件,centOS7系统默认安装了,先删除掉 

 6.修改mysql配置文件以及文件的属主、属组

[root@pyx local]# vim /etc/my.cnf     
[client]
port = 3306
socket=/usr/local/mysql/mysql.sock
[mysql]
port = 3306
socket = /usr/local/mysql/mysql.sock
auto-rehash
[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=4096
default-storage-engine=INNODB
max_allowed_packet=32M
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES
----------------------------------------------------------------------------------------
#递归修改MySQL的安装目录和配置文件的属主属组
[root@pyx local]# chown -R mysql:mysql mysql/          #
[root@pyx local]# ll
总用量 4
drwxr-xr-x.  2 root  root  4096 5月  24 13:06 bin
drwxr-xr-x.  2 root  root     6 4月  11 2018 etc
drwxr-xr-x.  2 root  root     6 4月  11 2018 games
drwxr-xr-x. 15 root  root   175 5月  24 11:09 httpd
drwxr-xr-x.  2 root  root     6 4月  11 2018 include
drwxr-xr-x.  2 root  root     6 4月  11 2018 lib
drwxr-xr-x.  2 root  root     6 4月  11 2018 lib64
drwxr-xr-x.  2 root  root     6 4月  11 2018 libexec
drwxr-xr-x. 11 mysql mysql  177 5月  24 15:41 mysql
drwxr-xr-x.  2 root  root     6 4月  11 2018 sbin
drwxr-xr-x.  5 root  root    49 4月  26 21:07 share
drwxr-xr-x.  2 root  root     6 4月  11 2018 src
[root@pyx local]# chown mysql:mysql /etc/my.cnf 
[root@pyx local]# ll !$
ll /etc/my.conf
-rw-r--r--. 1 mysql mysql 625 5月  24 15:47 /etc/my.conf

 7.添加到环境变量中,让程序可识别mysql服务

[root@pyx local]# vim /etc/profile
             最后一行添加export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
[root@pyx local]# source /etc/profile   #立即生效
[root@localhost bin]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin:/usr/local/mysql/lib

 8.初始化数据库,并开启服务

#初始化数据库
[root@localhost bin]# cd /usr/local/mysql/bin/
[root@localhost bin]# ./mysqld \
> --initialize-insecure \
> --user=mysql \
> --basedir=/usr/local/mysql \
> --datadir=/usr/local/mysql/data
----------------------------------------------------------------------------------------
#添加service管理,开启mysql服务
[root@localhost bin]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
[root@localhost bin]# systemctl daemon-reload
[root@localhost bin]# systemctl start mysqld.service
[root@localhost bin]# systemctl enable mysqld
Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.
[root@localhost bin]# netstat -anpt | grep 3306
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      117832/mysqld       

 9.免交互设置mysql登录密码,登录退出

[root@localhost bin]# mysqladmin -u root password "abc123"
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@localhost bin]# mysql -u root -pabc123
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.44 Source distribution
Copyright (c) 2000, 2023, 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> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)
mysql> quit
以上表示登录使用密码登录成功,quit退出。

mysql -u root -p登录时p后面直接跟密码,没有空格

三、PHP服务安装

1.安装环境依赖包,上传解压软件

安装GD库和GD库关联程序,用来处理和生成图片

[root@centOS2 ~]# yum -y install \
> gd \
> libjpeg libjpeg-devel \
> libpng libpng-devel \
> freetype freetype-devel \
> libxml2 libxml2-devel \
> zlib zlib-devel \
> curl curl-devel \
> openssl openssl-devel
[root@centOS2 ~]# cd /opt/php/
[root@centOS2 php]# rz -e
[root@centOS2 php]# ls
php-7.1.10.tar.bz2
[root@centOS2 php]# tar xf php-7.1.10.tar.bz2 
[root@centOS2 php]# cd php-7.1.10/
[root@centOS2 php-7.1.10]# ls
acinclude.m4      footer           mkinstalldirs             README.PARAMETER_PARSING_API      snapshot
aclocal.m4        generated_lists  netware                   README.REDIST.BINS                stamp-h.in
appveyor          genfiles         NEWS                      README.RELEASE_PROCESS            stub.c
build             header           pear                      README.SELF-CONTAINED-EXTENSIONS  tests
buildconf         INSTALL          php7.spec.in              README.STREAMS                    travis
buildconf.bat     install-sh       php.gif                   README.SUBMITTING_PATCH           TSRM
CODING_STANDARDS  LICENSE          php.ini-development       README.TESTING                    UPGRADING
config.guess      ltmain.sh        php.ini-production        README.TESTING2                   UPGRADING.INTERNALS
config.sub        main             README.EXT_SKEL           README.UNIX-BUILD-SYSTEM          vcsclean
configure         makedist         README.GIT-RULES          README.WIN32-BUILD-SYSTEM         win32
configure.in      Makefile.frag    README.input_filter       run-tests.php                     Zend
CONTRIBUTING.md   Makefile.gcov    README.MAILINGLIST_RULES  sapi
CREDITS           Makefile.global  README.md                 scripts
ext               makerpm          README.namespaces         server-tests-config.php
EXTENSIONS        missing          README.NEW-OUTPUT-API     server-tests.php

2.配置软件模块,编译安装php,将php可执行文件放入环境变量目录中

--prefix=/usr/local/php \                            #指定将 PHP 程序的安装路径
--with-apxs2=/usr/local/httpd/bin/apxs \   #指定Apache httpd服务提供的apxs 模块支持程序的文件位置
--with-mysql-sock=/usr/local/mysql/mysql.sock \   #指定mysql 数据库连接文件的存储路径
--with-config-file-path=/usr/local/php/lib      #设置 PHP 的配置文件 php.ini 将要存放的位置
--with-mysqli \                                             #添加 MySQL 扩展支持,mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定
--with-zlib \                                        #支持zlib功能,提供数据压缩
--with-curl \                                        #开启curl扩展功能,实现HTTP的Get下载和Post请求的方法
--with-gd \                                         #激活gd 库的支持
--with-jpeg-dir \                                 #激活jpeg 的支持
--with-png-dir \                                  #激活png 的支持
--with-freetype-dir \
--with-openssl \
--enable-mbstring \                            #启用多字节字符串功能,以便支持中文等代码
--enable-xml \                                    #开启扩展性标记语言模块
--enable-session \                             #会话
--enable-ftp \                                     #文本传输协议
--enable-pdo \                                   #函数库
--enable-tokenizer \                          #令牌解释器
--enable-zip                                      #ZIP压缩格式  

[root@centOS2 php-7.1.10]# ./configure \
> --prefix=/usr/local/php \
> --with-apxs2=/usr/local/httpd/bin/apxs \
> --with-mysql-sock=/usr/local/mysql/mysql.sock \
> --with-config-file-path=/usr/local/php/lib \
> --with-mysqli \
> --with-zlib \
> --with-curl \
> --with-gd \
> --with-jpeg-dir \
> --with-png-dir \
> --with-freetype-dir \
> --with-openssl \
> --enable-mbstring \
> --enable-xml \
> --enable-session \
> --enable-ftp \
> --enable-pdo \
> --enable-tokenizer \
> --enable-zip
[root@centOS2 php-7.1.10]# make -j 2
[root@centOS2 php-7.1.10]# make install
[root@centOS2 php-7.1.10]# cd /usr/local/php
[root@centOS2 php]# ln -s /usr/local/php/bin/* /usr/local/bin/

3.复制模版文件作为PHP 的主配置文件,并进行修改

[root@centOS2 php]# cd /opt/php/
[root@centOS2 php]# ls
php-7.1.10  php-7.1.10.tar.bz2
[root@centOS2 php]# cd php-7.1.10/
[root@centOS2 php-7.1.10]# ls
php.ini-development         #测试环境用
php.ini-production          #生产环境用,二者随便用一个即可
[root@centOS2 php-7.1.10]# cp php.ini-production /usr/local/php/lib/php.ini
[root@centOS2 lib]# cd /usr/local/php/lib/
[root@centOS2 lib]# ls
php  php.ini
[root@centOS2 lib]# vim php.ini
                        939 date.timezone = Asia/Shanghai   #取消注释,修改时区
                        1170 mysqli.default_socket = /usr/local/mysql/mysql.sock

4.修改httpd服务配置文件,让apache支持php应用程序,重启httpd服务

[root@centOS2 lib]# cd /usr/local/httpd/conf/
[root@centOS2 conf]# ls
extra  httpd.conf  httpd.conf.bak  magic  mime.types  original
[root@centOS2 conf]# vim httpd.conf
    258  DirectoryIndex index.php index.html  指定首页文件名,如果没有访问的是默认的index.html
    394  AddType application/x-compress .Z
    395  AddType application/x-gzip .gz .tgz   #在后面追加下面两行内容,让apache支持php程序
    396  AddType application/x-httpd-php .php
    397  AddType application/x-httpd-php-source .phps
    158 LoadModule php7_module        modules/libphp7.so   
    #检查LoadModule的两个模块,安装完apache和php后即可看到,如果不存在即表示安装有问题。
[root@centOS2 conf]# systemctl restart httpd

5.新建测试页文件,浏览器访问http://192.168.170.200/index.php验证php是否安装成功

[root@centOS2 conf]# cd /usr/local/httpd/htdocs/
[root@centOS2 htdocs]# ls
index.html
[root@centOS2 htdocs]# vim index.php          #php测试页文件
                            <?php
                            phpinfo();
                            ?>

四、LAMP架构应用实例

MySQL数据库的使用

①登录数据库

[root@centOS2 ~]# mysql -u root -pabc123
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 7
Server version: 5.7.44 Source distribution

Copyright (c) 2000, 2023, 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> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

③创建数据库

mysql> create database discuz;
Query OK, 1 row affected (0.02 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| discuz             |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

④数据库授权,需要记住库名discuz、账号discuzadmin和密码admin123

mysql> grant all on discuz.* to 'discuzadmin'@'%' identified by 'admin123';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| discuz             |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

⑤删除数据库

mysql> drop database 库名;

应用实例一:论坛网站应用

①上传、解压discuz软件包

[root@centOS2 htdocs]# cd /opt/
[root@centOS2 opt]# rz -e     #上传网站应用discuss
[root@centOS2 opt]# ls
apache       Discuz_X3.4_SC_UTF8.zip  php                           说明.htm
mysql                    wordpress-4.9.4-zh_CN.tar.gz
[root@centOS2 opt]# unzip Discuz_X3.4_SC_UTF8.zip
[root@centOS2 opt]# ls
apache       Discuz_X3.4_SC_UTF8.zip  php                           说明.htm
dir_SC_UTF8  mysql 
[root@centOS2 opt]# cd dir_SC_UTF8/
[root@centOS2 dir_SC_UTF8]# ls
readme  upload  utility             #upload目录中就是网站目录
[root@centOS2 dir_SC_UTF8]# cp -a upload/ /usr/local/httpd/htdocs/discuz
[root@centOS2 dir_SC_UTF8]# cd /usr/local/httpd/htdocs
[root@centOS2 htdocs]# ls
discuz  index.html  index.php
[root@centOS2 htdocs]# ls discuz/
admin.php  connect.php      group.php  member.php  search.php  uc_server
api        crossdomain.xml  home.php   misc.php    source
api.php    data             index.php  plugin.php  static
archiver   favicon.ico      install    portal.php  template
config     forum.php        m          robots.txt  uc_client

②创建discuz数据库(创建名为discuz的数据库,账号为discuzadmin,密码为admin123)

[root@centOS2 ~]# mysql -u root -pabc123
mysql> create database discuz;
Query OK, 1 row affected (0.02 sec)

mysql> grant all on discuz.* to 'discuzadmin'@'%' identified by 'admin123';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| discuz             |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

③修改daemon用户的使用权限

我们之前在做apache的配置时看到 /usr/local/httpd/conf/httpd.conf 文件中,httpd默认的用户名为Daemon,在这里需要给Daemon给提权,否则论坛无法正常使用。

[root@centOS2 htdocs]# cd discuz/
[root@centOS2 discuz]# ll
总用量 68
-rw-r--r--.  1 root root 2748 12月 28 2017 admin.php
drwxr-xr-x. 10 root root  149 12月 29 2017 api
-rw-r--r--.  1 root root  727 12月 28 2017 api.php
drwxr-xr-x.  2 root root   23 12月 29 2017 archiver
drwxr-xr-x.  2 root root   90 12月 29 2017 config
-rw-r--r--.  1 root root 1017 12月 28 2017 connect.php
-rw-r--r--.  1 root root  106 12月 28 2017 crossdomain.xml
drwxr-xr-x. 12 root root  202 12月 29 2017 data
-rw-r--r--.  1 root root 5558 12月 28 2017 favicon.ico
-rw-r--r--.  1 root root 2245 12月 28 2017 forum.php
-rw-r--r--.  1 root root  821 12月 28 2017 group.php
-rw-r--r--.  1 root root 1280 12月 28 2017 home.php
-rw-r--r--.  1 root root 5885 12月 28 2017 index.php
drwxr-xr-x.  5 root root   64 12月 29 2017 install
drwxr-xr-x.  2 root root   23 12月 29 2017 m
-rw-r--r--.  1 root root 1025 12月 28 2017 member.php
-rw-r--r--.  1 root root 2435 12月 28 2017 misc.php
-rw-r--r--.  1 root root 1788 12月 28 2017 plugin.php
-rw-r--r--.  1 root root  977 12月 28 2017 portal.php
-rw-r--r--.  1 root root  582 12月 28 2017 robots.txt
-rw-r--r--.  1 root root 1155 12月 28 2017 search.php
drwxr-xr-x. 10 root root  168 12月 29 2017 source
drwxr-xr-x.  7 root root   86 12月 29 2017 static
drwxr-xr-x.  3 root root   38 12月 29 2017 template
drwxr-xr-x.  7 root root  106 12月 29 2017 uc_client
drwxr-xr-x. 14 root root  256 12月 29 2017 uc_server
[root@centOS2 discuz]# chown -R daemon config/ data/ uc_client/ uc_server/
[root@centOS2 discuz]# ll
总用量 68
-rw-r--r--.  1 root   root 2748 12月 28 2017 admin.php
drwxr-xr-x. 10 root   root  149 12月 29 2017 api
-rw-r--r--.  1 root   root  727 12月 28 2017 api.php
drwxr-xr-x.  2 root   root   23 12月 29 2017 archiver
drwxr-xr-x.  2 daemon root   90 12月 29 2017 config
-rw-r--r--.  1 root   root 1017 12月 28 2017 connect.php
-rw-r--r--.  1 root   root  106 12月 28 2017 crossdomain.xml
drwxr-xr-x. 12 daemon root  202 12月 29 2017 data
-rw-r--r--.  1 root   root 5558 12月 28 2017 favicon.ico
-rw-r--r--.  1 root   root 2245 12月 28 2017 forum.php
-rw-r--r--.  1 root   root  821 12月 28 2017 group.php
-rw-r--r--.  1 root   root 1280 12月 28 2017 home.php
-rw-r--r--.  1 root   root 5885 12月 28 2017 index.php
drwxr-xr-x.  5 root   root   64 12月 29 2017 install
drwxr-xr-x.  2 root   root   23 12月 29 2017 m
-rw-r--r--.  1 root   root 1025 12月 28 2017 member.php
-rw-r--r--.  1 root   root 2435 12月 28 2017 misc.php
-rw-r--r--.  1 root   root 1788 12月 28 2017 plugin.php
-rw-r--r--.  1 root   root  977 12月 28 2017 portal.php
-rw-r--r--.  1 root   root  582 12月 28 2017 robots.txt
-rw-r--r--.  1 root   root 1155 12月 28 2017 search.php
drwxr-xr-x. 10 root   root  168 12月 29 2017 source
drwxr-xr-x.  7 root   root   86 12月 29 2017 static
drwxr-xr-x.  3 root   root   38 12月 29 2017 template
drwxr-xr-x.  7 daemon root  106 12月 29 2017 uc_client
drwxr-xr-x. 14 daemon root  256 12月 29 2017 uc_server

④安装、访问discuz论坛

访问论坛其实就是访问的/usr/local/httpd/htdocs/discuz/index.php文件,在浏览器输入:http://192.168.170.200/discuz/index.php 与操作后访问的页面是一致的。我们之前也在Windows上做了域名解析,这里http://www.test.com/discuz/index.php 效果也一样。

⑤登录使用discuz论坛

普通用户直接注册登录即可,管理员用户想要登录是要访问admin.php文件

应用案例二:博客网站应用

①上传解压软件包

[root@centOS2 discuz]# cd /opt/
[root@centOS2 opt]# ls
apache       Discuz_X3.4_SC_UTF8.zip  php                           说明.htm
dir_SC_UTF8  mysql                    wordpress-4.9.4-zh_CN.tar.gz
[root@centOS2 opt]# tar xf wordpress-4.9.4-zh_CN.tar.gz 
[root@centOS2 opt]# ls
apache       Discuz_X3.4_SC_UTF8.zip  php        wordpress-4.9.4-zh_CN.tar.gz
dir_SC_UTF8  mysql                    wordpress  说明.htm

②创建博客的数据库(数据库名为worldpress,账号bbsadmin,密码admin123)

mysql> create database wordpress;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| discuz             |
| mysql              |
| performance_schema |
| sys                |
| wordpress          |
+--------------------+
6 rows in set (0.00 sec)

mysql> grant all on wordpress.* to 'bbsadmin'@'%' identified by 'admin123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

③修改daemon用户的权限

[root@centOS2 opt]# ls wordpress
index.php        wp-blog-header.php    wp-includes        wp-settings.php
license.txt      wp-comments-post.php  wp-links-opml.php  wp-signup.php
readme.html      wp-config-sample.php  wp-load.php        wp-trackback.php
wp-activate.php  wp-content            wp-login.php       xmlrpc.php
wp-admin         wp-cron.php           wp-mail.php
[root@centOS2 opt]# cp -a wordpress /usr/local/httpd/htdocs/
[root@centOS2 opt]# cd /usr/local/httpd/htdocs/
[root@centOS2 htdocs]# ls
discuz  index.html  index.php  wordpress
[root@centOS2 htdocs]# ll
总用量 16
drwxr-xr-x. 13 root   root      4096 12月 29 2017 discuz
-rw-r--r--.  1 root   root        45 6月  12 2007 index.html
-rw-r--r--.  1 root   root        21 5月  26 01:19 index.php
drwxr-xr-x.  5 nobody nfsnobody 4096 2月   8 2018 wordpress
[root@centOS2 htdocs]# chown -R daemon:daemon wordpress/
[root@centOS2 htdocs]# ll
总用量 16
drwxr-xr-x. 13 root   root   4096 12月 29 2017 discuz
-rw-r--r--.  1 root   root     45 6月  12 2007 index.html
-rw-r--r--.  1 root   root     21 5月  26 01:19 index.php
drwxr-xr-x.  5 daemon daemon 4096 2月   8 2018 wordpress

④安装、访问博客服务

  • 53
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值