一、Apache 网站服务基础

1.Apache 简介

Apache HTTP Server”是开源软件项目的杰出代表,它基于标准的 HTTP 网络协议提供网页浏览服务,在 Web 服务器领域中长期保持着超过半数的份额。Apache 服务器可以运行在 Linux、UNIX、Windows 等多种操作系统平台中。


2.Apache 的主要特点

Apache 服务器在功能、性能和安全性等方面的表现都是比较突出的,可以较好地满足 Web 服务器用户的应用需求。其主要特点包括以下几个方面。

  • 开放源代码:这是 Apache 服务器的重要特性之一,也是其他特性的基础。Apache服务程序由全世界的众多开发者共同维护,并且任何人都可以自由使用,这充分体现了开源软件的精神。
  • 跨平台应用:这个特性得益于 Apache 的源代码开放。Apache 服务器可以运行在绝大多数软硬件平台上,所有 UNIX 操作系统都可以运行 Apache 服务器,甚至Apache 服务器可以良好地运行在大多数 Windows 系统平台中。Apache 服务器的跨平台特性使其具有被广泛应用的条件。
  • 支持各种 Web 编程语言:Apache 服务器可支持的网页编程语言包括 Per、PHPPython、Java 等,甚至微软的 ASP 技术也可以在 Apache 服务器中使用。支持各种常用的 Web 编程语言使 Apache 具有更广泛的应用领域。模块化设计:Apache 并没有将所有的功能集中在单一的服务程序内部,而是尽可能地通过标准的模块实现专有的功能,这为Apache 服务器带来了良好的扩展性。其他软件开发商可以编写标准的模块程序,从而添加Apache 本身并不具有的其他功能。
  • 运行非常稳定:Apache 服务器可用于构建具有大负载访问量的Web 站点,很多知名的企业网站都使用 Apache 作为 Web 服务软件。
  • 良好的安全性:Apache 服务器具有相对较好的安全性,这是开源软件共同具有的特性。并且,Apache 的维护团队会及时对已发现的bug提供修补程序,为Apache的所有使用者提供尽可能安全的服务器程序。


3.安装httpd 服务器

(1)准备工作

检查是否用rpm方式安装有httpd,如果有,卸载使用 RPM 方式安装的httpd,并且编译安装之前需要先安装依赖软件。

[root@www ~]# systemctl stop firewalld

[root@www ~]# systemctl disable firewalld


[root@localhost ~]# rpm -qa httpd

#检查是否已经安装有httpd


[root@localhost ~]# rpm -e httpd --nodeps

注意:

如果提示错误,证明没有rpm安装的httpd


[root@localhost ~]# yum install -y apr-util-devel pcre-devel gcc* lrzsz


(2)源码编译及安装

a.解包

[root@localhost ~]# tar zxvf httpd-2.4.25.tar.gz

[root@localhost ~]# cd httpd-2.4.25


b.配置

[root@localhost httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi

备注:

  • --prefix:制定程序的安装目录
  • --enable-so:启用动态加载模块DSO的支持,使httpd具备进一步扩展功能的能力
  • --enable-rewrite:启用网页地址重写功能,用于网站优化
  • --enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网页
  • --enable-cgi:启用cgi脚本程序支持,扩展网站的应用访问能力

DSO是Dynamic SharedObjects(动态共享目标)的缩写,它是现代Unix派生出来的操作系统都存在着的一种动态连接机制。它提供了一种在运行时将特殊格式的代码,在程序运行需要时,将需要的部分从外存调入内存执行的方法。


c.编译及安装

[root@localhost httpd-2.4.25]# make && make install


(3)确认安装结果

[root@localhost httpd-2.4.25]# ls /usr/local/httpd/

在安装后的/usr/localhttpd 目录下包含 httpd 服务相关的各种子目录,主要子目录的用途如下:

  • /usr/local/httpd/bin:存放 httpd 服务的各种可执行程序文件,包括主程序 httpd、服务控制工具 apachectl 等。
  • /usr/local/httpd/conf: 存放 httpd 服务的各种配置文件,包括主配置文件 httpd.conf、增强配置子目录 extra 等。
  • /usr/local/httpd/htdocs:存放网页文档,包括默认首页文件 index.html 等。
  • /usr/local/httpd/logs:存放 httpd 服务的日志文件。
  • /usr/local/httpd/modules:存放 httpd 服务的各种模块文件。
  • /usr/local/httpd/cgi-bin:存放各种 CG| 程序文件。


(4)优化执行路径

[root@localhost ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin

[root@localhost ~]# httpd -v

Server version: Apache/2.4.25 (Unix)

Server built:   Jun  6 2022 20:42:04


(5)添加 httpd 系统服务

[root@localhost ~]# cd /lib/systemd/system

[root@localhost system]# vim httpd.service

[Unit]

Description=The Apache HTTP Server

After=network.target


[Service]

Type=forking

PIDFile=/usr/local/httpd/logs/httpd.pid

ExecStart= /usr/local/bin/apachectl $OPTIONS

ExecReload= /bin/kill -HUP $MAINPID


[Install]

WantedBy=multi-user.target

注释:

After=network.target

Before/After:要是一个服务 Before 另一个服务,那么在并行启动时(Systemd 总是用进程 0 并行启动所有东西,然后通过这两个标记来二次等待排序),那另一个服务这时就会等这个服务先启动并返回状态,注意是先启动而不是启动成功,因为失败也是一种状态,一定要成功才启动另一个服务是通过依赖关系定义的。反之 After 亦然。After=network.target 指的是后于network服务启动。


Type=forking

服务的启动方式,有fork方式和simple方式

forking的方式在启动程序后会调用 fork() 函数,把必要的通信频道都设置好之后父进程退出,留下守护精灵的子进程。你要是使用的这种方式,最好也指定下 PIDFILE=,不要让 Systemd 去猜,非要猜也可以,设置GuessMainPID 为 yes。


ExecReload= /bin/kill -HUP $MAINPID

$ MAINPID是服务的systemd变量,它指向主应用程序的PID


WantedBy=multi-user.target

指定运行级别


[root@localhost system]# systemctl daemon-reload

[root@localhost system]# systemctl enable httpd.service


[root@localhost system]# systemctl start httpd

[root@localhost system]# netstat -anpt | grep httpd


二、httpd 服务器的基本配置

1.Web 站点的部署过程

(1)确定网站名称、IP 地址

[root@localhost ~]# hostnamectl set-hostname

[root@localhost ~]# bash



(2)配置并启动 httpd 服务

a.配置httpd 服务


[root@www ~]# vim /usr/local/httpd/conf/httpd.conf

修改网站名称:

ServerName


[root@www ~]# httpd -t

Syntax OK


b.启动httpd 服务

[root@www ~]# systemctl restart httpd

[root@www ~]# netstat -anpt | grep httpd


(3)部署网页文档

[root@www ~]# echo "it works" > /usr/local/httpd/htdocs/index.html


(4)在客户机中访问 Web 站点

[root@localhost ~]# vim /etc/hosts

添加域名解析:

192.168.10.101


[root@localhost ~]# curl



(5)查看 Web 站点的访问情况

[root@www ~]# tail /usr/local/httpd/logs/access_log


2.httpd.conf 配置文件

主配置文件 httpd.conf 由注释行、设置行两部分内容组成。与大多数 Linux 配置文件一样,注释性的文字以“#"开始,包含了对相关配置内容进行的说明和解释。除了注释行和空行以外的内容即设置行,构成了Web 服务的有效配置。根据配置所作用的范围不同,设置行又可分为全局配置、区域配置。

(1)全局配置项

全局配置决定 httpd 服务器的全局运行参数,使用“关键字 值”的配置格式。

每一条全局配置都是一项独立的配置,不需要包含在其他任务区域中。以下列出了httpd.conf 文件中最常用的一些全局配置项:

  • ServerRoot: 设置 httpd 服务器的根目录,该目录下包括了运行 Web 站点必需的子目录和文件。默认的根目录为/usr/localhttpd,与 httpd 的安装目录相同。在httpd.conf配置文件中,如果指定目录或文件位置时不使用绝对路径,则目录或文件位置都认为是在服务器的根目录下。
  • Listen:设置 httpd 服务器监听的网络端口号,默认为 80。
  • User:设置运行 httpd 进程时的用户身份,默认为 daemon.
  • Group:设置运行 httpd 进程时的组身份,默认为daemon
  • ServerAdmin:设置 httpd 服务器的管理员 E-mail 地址,可以通过此 E-mail 地址及时联系 Web 站点的管理员。
  • ServerName:设置 Web 站点的完整主机名(主机名+域名)。
  • DocumentRoot:设置网站根目录,即网页文档在系统中的实际存放路径。此配置项比较容易和 ServerRoot 混淆,需要格外注意。
  • Directorylndex:设置网站的默认索引页(首页),可以设置多个首页文件,以空格分开,默认的首页文件为index.html。
  • ErrorLog:设置错误日志文件的路径,默认路径为logs/error log。
  • LogLevel:设置记录日志的级别,默认级别为warn(警告)。
  • CustomLog:设置访问日志文件的路径、日志类型,默认路径为logs/access log使用的类型为 common(通用格式
  • PidFile: 设置用于保存 httpd 进程号(PID)的文件,默认保存地址为logs/httpd.pidlogs 日录位于 Apache 的服务器根目录下。
  • AddDefaultCharset: 设置站点中的网页默认使用的字符集编码,如 UTF-8、gb2312
  • Include:包含另一个配置文件的内容,可以实现将一些特殊功能的配置放到一个单独的文件中,再使用 Include 配置项将其包含到 httpd.conf文件中,这样便于独立进行配置功能的维护而不影响主配置文件。


(2)区域配置项

除了全局配置项以外,httpd.conf文件中的大多数配置是包括在区域中的。区域配置使用一对组合标记,限定了配置项的作用范围。例如,最常见的目录区域配置的形式如下所示。

<Directory />//定义"/目录区域的开始

Options FollowSymLinks//控制选项,允许使用符号链接

AllowOverride None//不允许隐含控制文件中的覆盖配置

Require all denied//禁止任何人访问此区域

</Directory> //定义"!"目录区域的结束

在以上区域定义中,设置了一个根目录的区域配置,其中添加的访问控制相关配置只对 httpd 服务的根目录有效,而不会作用于全局或其他目录区域。


三、构建虚拟Web 主机

虚拟 Web 主机指的是在同一台服务器中运行多个 Web 站点,其中每一个站点实际上并不独立占用整个服务器,因此被称为“虚拟"Web 主机。通过虚拟 Web 主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。

使用 htpd 服务可以非常方便地构建虚拟主机服务器,只需要运行一个 httpd 服务就能够同时支撑大量的 Web 站点。httpd 服务支持的虚拟主机类型包括以下三种:

  • 基于域名:为每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的。例如,www.kgc.com 和 站点的 IP 地址都是 173.17.17.11。这是使用最为普遍的虚拟 Web 主机类型。
  • 基于IP 地址:为每个虚拟主机使用不同的域名,且各自对应的IP 地址也不相同。这种方式需要为服务器配备多个网络接口,因此应用并不是非常广泛。
  • 基于端口:这种方式并不使用域名、IP 地址来区分不同的站点内容,而是使用了不同的 TCP 端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才能访问。

在上述几种虚拟 Web 主机中,基于域名的虚拟主机是使用最为广泛的。


1.基于域名的虚拟主机

(1)为虚拟主机提供域名解析(两个域名)

[root@www ~]# vim /etc/hosts

192.168.10.101 

192.168.10.101 www.accp.com


(2)为虚拟主机准备网页文档(两个网站)

[root@www ~]# mkdir -p /var/www/html/benetcom

[root@www ~]# mkdir -p /var/www/html/accpcom

[root@www ~]# echo "<h1></h1>"> /var/www/html/benetcom/index.html

[root@www ~]# echo "<h1>www.accp.com</h1>"> /var/www/html/accpcom/index.html


(3)添加虚拟主机配置

[root@www ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

<Directory "/var/www/html">

Require all granted

</Directory>


<VirtualHost *:80>

    DocumentRoot "/var/www/html/benetcom"

    ServerName

    ErrorLog "logs/.error_log"

    CustomLog "logs/.access_log" common

</VirtualHost>



<VirtualHost *:80>

    DocumentRoot "/var/www/html/accpcom"

    ServerName www.accp.com

    ErrorLog "logs/www.accp.com.error_log"

    CustomLog "logs/www.accp.com.access_log" common

</VirtualHost>



[root@www ~]# vim /usr/local/httpd/conf/httpd.conf

去掉注释符号:

Include conf/extra/httpd-vhosts.conf


[root@www ~]# systemctl restart httpd


(4)在客户机中访问虚拟 Web 主机

[root@node2 ~]# cat /etc/hosts

192.168.10.101 

192.168.10.101 www.accp.com



[root@node2 ~]# curl

<h1></h1>


[root@node2 ~]# curl www.accp.com

<h1>www.accp.com</h1>


2.基于 IP 地址、基于端口的虚拟主机

(1)为主机设置多个IP地址

[root@www ~]# cd /etc/sysconfig/network-scripts/

[root@www network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0

[root@www network-scripts]# cp ifcfg-ens33 ifcfg-ens33:1


[root@www network-scripts]# vim ifcfg-ens33:0

IPADDR=192.168.10.210

NETMASK=255.255.255.0

GATEWAY=192.168.10.254

NAME=ens33:0

DEVICE=ens33:0


[root@www network-scripts]# vim ifcfg-ens33:1

IPADDR=192.168.10.220

NETMASK=255.255.255.0

GATEWAY=192.168.10.254

NAME=ens33:1

DEVICE=ens33:1


[root@www network-scripts]# systemctl restart network

[root@www network-scripts]# ip address


(2)基于 IP 地址的虚拟主机

[root@www ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

<Directory "/var/www/html">

Require all granted

</Directory>


<VirtualHost 192.168.10.210:80>

    DocumentRoot "/var/www/html/benetcom"

    ServerName

    ErrorLog "logs/.error_log"

    CustomLog "logs/.access_log" common

</VirtualHost>



<VirtualHost 192.168.10.220:80>

    DocumentRoot "/var/www/html/accpcom"

    ServerName www.accp.com

    ErrorLog "logs/www.accp.com.error_log"

    CustomLog "logs/www.accp.com.access_log" common

</VirtualHost>


[root@www ~]# systemctl restart httpd

客户端测试

[root@node2 ~]# curl 192.168.10.210

<h1></h1>


[root@node2 ~]# curl 192.168.10.220

<h1></h1>


(3)基于端口的虚拟主机

[root@www ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf

<Directory "/var/www/html">

Require all granted

</Directory>


Listen 80

Listen 8080


<VirtualHost 192.168.10.101:80>

    DocumentRoot "/var/www/html/benetcom"

    ServerName

    ErrorLog "logs/.error_log"

    CustomLog "logs/.access_log" common

</VirtualHost>



<VirtualHost 192.168.10.101:8080>

    DocumentRoot "/var/www/html/accpcom"

    ServerName www.accp.com

    ErrorLog "logs/www.accp.com.error_log"

    CustomLog "logs/www.accp.com.access_log" common

</VirtualHost>



[root@www ~]# systemctl restart httpd

[root@www ~]# netstat -anpt | grep httpd


客户端测试

[root@node2 ~]# curl 192.168.10.101:80

<h1></h1>


[root@node2 ~]# curl 192.168.10.101:8080

<h1>www.accp.com</h1>


四、MySQL 的编译安装

1.准备工作

(1)检查安装环境

[root@www ~]# rpm -q mysql-server mysql

未安装软件包mysql-server

未安装软件包mysql

[root@www ~]# yum install -y ncurses-develautoconf

备注:

初始化mysql需要autoconf,它是自动化配置脚本生成工具,安装自动化脚本生成工具


(2)安装cmake

[root@www ~]# tar zxf cmake-2.8.6.tar.gz

[root@www ~]# cd cmake-2.8.6

[root@www cmake-2.8.6]# ./configure

[root@www cmake-2.8.6]# gmake && gmake install

备注:

此步骤可以用yum的方法安装cmake

yum -y install cmake


2.源码编译及安装

(1)创建运行用户

[root@www ~]# useradd -M -s /sbin/nologin mysql


(2)解包

[root@www ~]# tar zxf mysql-5.6.36.tar.gz


(3)配置

[root@www ~]# cd mysql-5.6.36

[root@www mysql-5.6.36]# cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DSYSCONFDIR=/etc \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS=all

上述配置命令中,各选项的含义如下:

  • -DCMAKE INSTALL PREFIX:指定将 MySQL数据库程序安装到某目录下,如目录/usr/local/mysql.
  • -DSYSCONFDIR:指定初始化参数文件目录。
  • -DDEFAULT CHARSET:指定默认使用的字符集编码,如 utf8.
  • -DDEFAULT_COLLATION:指定默认使用的字符集校对规则,utf8 general ci是适用于 UTF-8 字符集的通用规则。
  • -DWITH EXTRA CHARSETS:指定额外支持的其他字符集编码。


(4)编译并安装

[root@www mysql-5.6.36]# make && make install


3.安装后的其他调整

(1)对数据库目录进行权限设置

[root@www mysql-5.6.36]# chown -R mysql:mysql /usr/local/mysql


(2)建立配置文件

[root@www mysql-5.6.36]# rm -rf /etc/my.cnf

备注:

系统原来已经有这个文件了,该文件是由mariadb-libs包生成的

[root@www mysql-5.6.36]# cp support-files/my-default.cnf /etc/my.cnf


(3)初始化数据库

[root@www mysql-5.6.36]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/


(4)设置环境变量

[root@www mysql-5.6.36]# vim /etc/profile

export PATH=$PATH:/usr/local/mysql/bin

[root@www mysql-5.6.36]# source /etc/profile


4.启动并访问 MySQL 服务

[root@www mysql-5.6.36]# cp support-files/mysql.server /etc/init.d/mysqld

[root@www mysql-5.6.36]# chmod +x /etc/init.d/mysqld

[root@localhost mysql-5.6.36]# chkconfig --add mysqld

[root@localhost mysql-5.6.36]# chkconfig mysqld on

[root@localhost mysql-5.6.36]# systemctl start mysqld

[root@www mysql-5.6.36]# netstat -anpt | grep mysqld

[root@www ~]# mysql -u root -p

注意:

此时的mysql是空密码


mysql>set password =password('123456');

mysql>EXIT


[root@www ~]#mysql -u root -p123456


五、构建PHP 运行环境

PHP 即“Hypertext Preprocessor”(超级文本预处理语言)的缩写,是一种服务器端的 HTML 嵌入式脚本语言。PHP 的语法混合了 C、Java、Per 及部分自创的新语法,拥有更好的网页执行速度,更重要的是 PHP 支持绝大多数流行的数据库,在数据库层面的操作功能十分强大,而且能够支持 UNIX、Windows、Linux 等多种操作系统。

1.安装 PHP 软件包

(1)准备工作

为了避免发生程序冲突等现象,建议先将RPM 方式安装的PHP 及相关依赖包

[root@www ~]# rpm -e php php-cli php-ldap php-common php-mysql --nodeps

[root@www ~]# yum -y install zlib-devellibxml2 libxml2-devel xz-devel


(2)安装扩展工具库

a.安装libmcrypt

[root@www ~]# tar zxf libmcrypt-2.5.8.tar.gz

[root@www ~]# cd libmcrypt-2.5.8/

[root@www libmcrypt-2.5.8]# ./configure

[root@www libmcrypt-2.5.8]# make && make install

[root@www libmcrypt-2.5.8]# ln -s /usr/local/lib/libmcrypt.* /usr/lib/


b.安装mhash

[root@www ~]# tar zxf mhash-0.9.9.9.tar.gz

[root@www ~]# cd mhash-0.9.9.9/

[root@www mhash-0.9.9.9]# ./configure

[root@www mhash-0.9.9.9]# make && make install

[root@www mhash-0.9.9.9]# ln -s /usr/local/lib/libmhash* /usr/lib/


c.安装mcrypt

[root@www ~]# tar zxf mcrypt-2.6.8.tar.gz

[root@www ~]# cd mcrypt-2.6.8/

[root@www mcrypt-2.6.8]# ./configure

[root@www mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

[root@www mcrypt-2.6.8]# ./configure

[root@www mcrypt-2.6.8]# make && make install

备注:

上述三个扩展工具库,可以设置好阿里的yum仓库,用yum安装

yum-y install libmcrypt libmcrypt-devel mcrypt mhash


(3)编译安装 PHP

a.解包

[root@www ~]# tar zxf php-5.5.38.tar.gz

[root@www ~]# cd php-5.5.38


b.配置

[root@www php-5.5.38]# ./configure --prefix=/usr/local/php5 \

--with-mcrypt \

--with-apxs2=/usr/local/httpd/bin/apxs \

--with-mysql=/usr/local/mysql \//--with-mysql=mysqlnd

--with-mysqli=/usr/local/mysql/bin/mysql_config \ //--with-mysqli=mysqlnd

--with-config-file-path=/usr/local/php5 \

--enable-mbstring

上述配置命令中,各选项的含义如下:

  • --prefix:指定将 PHP 程序安装到哪个目录下,如/usr/local/php5.
  • --with-mcrypt:加载数据加密等扩展工具支持。
  • --with-apxs2:设置 Apache HTTP Server 提供的 apxs 模块支持程序的文件位置--with-mysql:设置 MySQL 数据库服务程序的安装位置。
  • --with-mysqli:添加 MySQL 扩展支持。
  • --with-config-file-path:设置 PHP 的配置文件 php.ini 将要存放的位置。
  • --enable-mbstring:启用多字节字符串功能,以便支持中文等代码。

注意:

不能用192.168.10.101连接。

想用主机IP连接需要在安装php时指定mysql函数集为mysqlnd

--with-mysqli=mysqlnd

如果使用本地函数集,php连接mysql数据库可以使用localhost、127.0.0.1、本机主机名,但不能用本机IP地址192.168.10.101


--with-apxs2=/usr/local/httpd/bin/apxs

整合apache,apxs功能是使用mod_so中的LoadModule指令,加载指定模块到apache,要求apache要打开SO模块


c.编译及安装

[root@www php-5.5.38]# make && make install



2.设置 LAMP 组件环境

(1)php.ini 配置调整

a.php.ini 的建立及基本设置

[root@www php-5.5.38]# cp php.ini-development /usr/local/php5/php.ini

[root@www php-5.5.38]# vim /usr/local/php5/php.ini


default_charset = "UTF-8"  #去掉前面的注释

short_open_tag = On ##修改值

extension=php_mysqli.dll ##去掉前面的注释


b.添加ZendGuardLoader 优化模块

[root@www~]#tar zxf zend-loader-php5.5-linux-x86_64_update1.tar.gz

[root@www~]#cd zend-loader-php5.5-linux-x86_64/

[root@www zend-loader-php5.5-linux-x86_64]#cp /usr/local/php5/lib/php

[root@www ~]# vim /usr/local/php5/php.ini

在[PHP]下面添加:


[PHP]

zend_extension=/usr/local/php5/lib/php/

zend_loader.enable=1


(2)httpd.conf 配置调整

[root@www ~]# vim /usr/local/httpd/conf/httpd.conf

Listen *:80

…… //省略部分内容

LoadModule php5_module modules/


<IfModule mime_module>

AddType application/x-httpd-php .php

</IfModule>


DirectoryIndex index.html index.php

#Include conf/extra/httpd-vhosts.conf



[root@www ~]# apachectl -t

Syntax OK

[root@www ~]# systemctl restart httpd


3.测试 LAMP 协同工作

(1)测试 PHP 网页能否正确显示

[root@www ~]# vim /usr/local/httpd/htdocs/test1.php

<?php

phpinfo( );

?>

通过浏览器访问测试网页,如 192.168.10.101/test1.php。若能够看到 PHP 程序的版本号、配置命令、运行变量等相关信息。


(2)测试 PHP 网页能否访问MySQL 数据库

[root@www ~]# vim /usr/local/httpd/htdocs/test2.php

<?php

$link=mysqli_connect('localhost','root','123456');

if($link) echo "恭喜你,数据库连接成功啦!!";

mysqli_close($link);

?>

注意:

如果用的是mysqlnd,要用IP地址进行连接,127.0.0.1或192.168.10.101都可以

通过浏览器访问测试网页,如192.168.10.101/test2.php。若能看到成功连接的提示信息,则表示能够通过 PHP 网页访问 MySQL 数据库。当使用了错误的用户名、密码,或者因“mysqld-connect()”函数未运行而导致连接失败时,执行时将会报错。


六、LAMP 架构应用实例

部署 phpMyAdmin 系统

(1)解包并复制到网站目录

[root@www ~]# tar zxf phpMyAdmin-4.7.2-all-languages.tar.gz

[root@www ~]# mv phpMyAdmin-4.7.2-all-languages/ /usr/local/httpd/htdocs/phpMyAdmin


(2)建立配置文件 config.inc.php

[root@www ~]# cd /usr/local/httpd/htdocs/phpMyAdmin

[root@www phpMyAdmin]# cp config.sample.inc.php config.inc.php

备注:

用msqlnd,需要修改文件

[root@www phpMyAdmin]# vim config.inc.php

$cfg['Servers'][$i]['host'] = '192.168.10.101';


(3)访问 phpMyAdmin 的Web 管理界面

通过浏览器访问测试网页,如192.168.10.101/phpMyAdmin