目录
一、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等平台。
- Linux:提供网站服务应用的运行环境,也支持Windows作为AMP的运行环境
- Apache网站服务:作为前段网站服务,直接面向用户提供网站访问入口,并非静态页面请求
- MySQL服务安装:作为后端数据库,用于存储网站的业务数据、账户信息等,并且提供访问接口给变成程序语言程序连接使用SQL语句进行数据的读写。市面上主流的数据库有Oracle国外的且收费、MySQL、PostgreSQL开源数据库,国内很多数据库基于他开发的、SQL Server主要是为Windows服务器开发使用的。
- 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 daemon197 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.servicevim /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.ini939 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.conf258 DirectoryIndex index.php index.html 指定首页文件名,如果没有访问的是默认的index.html394 AddType application/x-compress .Z395 AddType application/x-gzip .gz .tgz #在后面追加下面两行内容,让apache支持php程序396 AddType application/x-httpd-php .php397 AddType application/x-httpd-php-source .phps158 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测试页文件<?phpphpinfo();?>
四、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 distributionCopyright (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