LAMP架构部署

一、LAMP是啥

LAMP 架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态 Web 站点服务及其应用开发环境。LAMP 是一个缩写词,具体包括 Linux 操作系统、Apache 网站服务器、MySQL 数据库服务器、PHP(或 Perl、Python)网页编程语言。本章将以源码编译的方式搭建 LAMP 环境,能够满足企业定制化的需求。在构建 LAMP 平台时,各组件的安装顺序依次为 Linux、Apache、MySQL、PHP。其中 Apache 和 MySQL 的安装并没有严格的顺序;而 PHP 环境的安装一般放到最后,负责沟通 Web 服务器和数据库系统以协同工作。

二、Apache简介

  • “Apache HTTP Server”是开源软件项目的杰出代表,基于标准的 HTTP 网络协议提供网页浏览服务,在 Web 服务器领域中长期保持着超过半数的份额。Apache 服务器可以运行在 Linux、UNIX、Windows 等多种操作系统平台中。
  • Apache 服务器是针对之前出现的若干个 Web 服务器程序进行整合、完善后形成的软件,其名称来源于“A Patchy Server”,意思是“基于原有 Web 服务程序的代码进行修改(补丁)后形成的服务器程序”。
  • 1995 年, Apache 服务程序发布了 1.0 版本,之后一直由“Apache Group”负责该项目的管理和维护;直到 1999 年,在“Apache Group”的基础上成立了 Apache 软件基金会(Apache Software Foundation,ASF)。目前,Apache 项目一直由 ASF 负责管理和维护。ASF 是非盈利性质的组织,最初只负责“Apache Web”服务器项目的管理,随着 Web应用需求的不断扩大,ASF 逐渐增加了许多与 Web 技术相关的开源软件项目,因此 Apache现在不仅仅代表着 Web 服务器,更广泛地代表着 ASF 管理的众多开源软件项目。ASF 基金会的官方网站是 http://www.apache.org/。
  • “Apache HTTP Server”是 ASF 旗下著名的软件项目之一,其正式名称是“httpd”,也就是历史上的 Apache 网站服务器。在后续内容中,若未作特殊说明,使用“Apache”或者“httpd”,均指的是“Apache HTTP Server”。

三、Apache特点

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

四、搭建LAMP

搭建YUM仓库
[root@localhost ~]# mount /dev/cdrom /mnt
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ll
[root@localhost yum.repos.d]# mkdir backup
[root@localhost yum.repos.d]# mv C* backup/
[root@localhost yum.repos.d]# cp backup/CentOS-Base.repo local.repo
[root@localhost yum.repos.d]# vi local.repo
[centos]
name=centos
baseurl=file:///mnt
gpgcheck=0
enabled=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[root@localhost yum.repos.d]# yum clean all
[root@localhost yum.repos.d]# yum makecache
[root@localhost yum.repos.d]# systemctl stop firewalld
[root@localhost yum.repos.d]# setenforce 0
编译安装HTTP服务

软件包说明:apr-1.6.2.tar.gz、apr-util-1.6.0.tar.gz(工具)是跨平台的组件包

要测APR给tomcat带来的好处最好的方法是在慢速网络上(模拟Internet),将Tomcat线程数开到300以上的水平,然后模拟一大堆并发请求。如果不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待。但是配上APR之后,并发的线程数量明显下降,从原来的300可能会马上下降到只有几十,新的请求会毫无阻塞的进来。

APR对于Tomcat最大的作用就是socket调度。你在局域网环境测,就算是400个并发,也是一瞬间就处理/传输完毕,但是在真实的Internet环境下,页面处理时间只占0.1%都不到,绝大部分时间都用来页面传输。如果不用APR,一个线程同一时间只能处理一个用户,势必会造成阻塞。所以生产环境下用apr是非常必要的。

解压缩软件包
1 [root@localhost ~]# cd /opt
[root@localhost ~]# cd /opt
[root@localhost opt]# ll
[root@localhost opt]# tar xf apr-1.6.2.tar.gz
[root@localhost opt]# tar xf apr-util-1.6.0.tar.gz
[root@localhost opt]# tar xf httpd-2.4.29.tar.bz2    ###yum -y install bzip2
[root@localhost opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@localhost opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
安装环境
[root@localhost opt]#yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl

依赖环境包包说明:

gcc###C语言的编译器
gcc-c++###C++的编译器
make###源代码编译(源代码转换成二进制文件)
pcre-devel###支持正则表达式
expat-devel###网站解析HTML文件
perl###perl编译器
./configure
1 [root@localhost opt]# cd /opt/httpd-2.4.29/
2 ./configure \
3 --prefix=/usr/local/httpd \
4 --enable-so \
5 --enable-rewrite \
6 --enable-charset-lite \
7 --enable-cgi
配置模块解释:
–prefix指定将 httpd 服务程序安装到哪个目录下,如/usr/local/httpd
–enable-so启用动态加载模块支持,使 httpd 具备进一步扩展功能的能力。
–enable-rewrite启用网页地址重写功能,用于网站优化及目录迁移维护。
–enable-charset-lite启动字符集支持,以便支持使用各种字符集编码
–enable-cgi启用 CGI 脚本程序支持,便于扩展网站的应用访问能力。
编译及安装并优化执行路径
 make && make install        ###先make -j3   然后make install   -j3是你核心数,最大不要超过虚拟机的核心数
####优化执行路径####
ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/
httpd -v      ###查看下HTTP版本
建立[service].service 配置文件添加系统给服务

在/lib/systemd/system/目录下,建立一个以.service 结尾的单元(unit)配置文件,用于控制由 systemd 管理或监控的 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
ExecrReload= /bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
开启服务,设置开机自启,检查HTTP单元开机启动状态
 [root@localhost system]# systemctl start httpd.service
 [root@localhost system]# systemctl enable httpd.service         ###开机自启http
 [root@localhost system]# systemctl is-enabled httpd.service   ###检查HTTP单元是否启动
httpd.conf修改配置文件并重启服务
[root@localhost system]# vi /etc/httpd.conf 
ServerName www.xuhao.com:80 
[root@localhost system]# systemcti restart httpd
主机测试

httpd.conf配置文件解读

全局配置项
全局配置决定 httpd 服务器的全局运行参数,使用“关键字 值”的配置格式。例如,配置网站名称时使用的“ServerName www.kgc.com”,其中“ServerName”为配置关键字,而“www.kgc.com”为对应的值。 每一条全局配置都是一项独立的配置,不需要包含在其他任务区域中。以下列出了 httpd.conf 文件中最常用的一些全局配置项

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

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

<Directory />                           ###定义"/"目录区域的开始
       Options FollowSymLinks          ###控制选项,允许使用符号链接
       AllowOverride None         ###不允许隐含控制文件中的覆盖配置
       Require all denied                    ###禁止任何人访问此区域
</Directory>                            ###定义"/"目录区域的结束
构建虚拟主机

虚拟 Web 主机指的是在同一台服务器中运行多个 Web 站点,其中的每一个站点实际上并不独立占用整个服务器,因此被称为“虚拟”Web 主机。通过虚拟 Web 主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。使用 httpd 可以非常方便地构建虚拟主机服务器,只需要运行一个 httpd 服务就能够同时支撑大量的 Web 站点。httpd 支持的虚拟主机类型包括以下三种。

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

在部署环境中DNS需要修改下A记录,在本案中我们采用hosts映射的方式做域名解析,为虚拟主机准备网页文档

[root@localhost system] mkdir -p /opt/www/html/51xit.top
[root@localhost system] mkdir -p /opt/www/html/52xit.top
[root@localhost system] echo "<h1>www.51xit.top</h1>" > /opt/www/html/51xit.top/index.html
[root@localhost system] echo "<h1>www.52xit.top</h1>" > /opt/www/html/52xit.top/index.html
添加虚拟主机配置
  • 虚拟主机区域:使用<VirtualHost 监听地址>……区域配置,为每一个虚拟 Web 主机建立独立的配置内容。其中至少应包括虚拟主机的网站名称、网页根目录的配置项;其他(如管理邮箱、访问日志等)配置项可根据实际需要添加。
  • 目录权限:使用<Directory 目录位置>……区域配置,为每一个虚拟 Web 主机的网站目录设置访问权限,如允许任何人访问。目录访问可以继承其父目录的授权许可,因此可以采取直接为父文件夹授权访问权限的方法来简化配置当虚拟Web 主机的数量较多时,建议使用独立的虚拟主机配置文件,然后在 httpd.conf文件中通过 Include 加载这些配置。这样可以将对 httpd.conf 文件的改动减至最少,更方便配置内容的维护。
[root@www ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
 <VirtualHost *:80>                                                             
     DocumentRoot "/opt/www/html/51xit.top"
     ServerName www.51xit.top
     ErrorLog "logs/www.51xit.top.error_log"
     CustomLog "logs/www.51xit.top.access_log" common
 <Directory "/opt/www/html">                      
         Require all granted
     </Directory>
 </VirtualHost>
 
<VirtualHost *:80>                                                            
     DocumentRoot "/opt/www/html/52xit.top"
     ServerName www.52xit.top
     ErrorLog "logs/www.52xit.top.error_log"
     CustomLog "logs/www.52xit.top.access_log" common
     <Directory "/opt/www/html">                                       
        Require all granted
     </Directory>
    </VirtualHost>
[root@www ~]# vim /usr/local/httpd/conf/httpd.conf   
Include conf/extra/httpd-vhosts.conf                   去掉#加载独立的配置文件
#ServerName www.xuhao.com:80
[root@www ~]# systemctl restart httpd               ####重启服务使新配置生效

验证
更改客户机hosts映射关系
192.168.100.41   www.51xit.top  www.52xit.top
登录客户机访问www.51xit.top    在访问www.52xit.top
基于 IP 地址

主机上有2块网卡

  • VM1网卡:192.168.100.41
  • VM1网卡:192.168.100.42

添加另外一块网卡VM1 配置ens36网卡

 [root@localhost 51xit.top]# nmcli connection
 NAME        UUID                                  TYPE      DEVICE
 ens33       49511b41-e51a-41f0-a43e-d13274d3ce10  ethernet  ens33 
 virbr0      2526d384-aa95-4b4c-9c39-226fc07a2844  bridge    virbr0
 有线连接 1  816178ee-807e-3499-9d19-20507cbb8ad3  ethernet  ens36      
 复制UUID值  这里值 根据你实际情况来
 [root@localhost 51xit.top]# cd /etc/sysconfig/network-scripts/
 [root@localhost network-scripts]# ll
  总用量 252
 -rw-r--r--. 1 root root   349 2月  20 17:27 ifcfg-ens33
 [root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36    
 [root@localhost network-scripts]# vi ifcfg-ens36
 TYPE=Ethernet
 PROXY_METHOD=none
 BROWSER_ONLY=no
 BOOTPROTO=none
 DEFROUTE=yes
 IPV4_FAILURE_FATAL=no
 IPV6INIT=no
 IPV6_AUTOCONF=yes
 IPV6_DEFROUTE=yes
 IPV6_FAILURE_FATAL=no
 IPV6_ADDR_GEN_MODE=stable-privacy
 NAME=ens36                                             ###更改为ens36                    
 UUID=816178ee-807e-3499-9d19-20507cbb8ad3             ###更改UUID值
 DEVICE=ens36                                            ###更改为ens36                         
 ONBOOT=yes
 IPADDR=192.168.100.42                                    ###更改IP地址                 
 PREFIX=24
 GATEWAY=192.168.100.1
 IPV6_PRIVACY=no
 [root@localhost network-scripts]# systemctl restart network
 [root@localhost network-scripts]# ifdown ens36
 [root@localhost network-scripts]# ifup ens36
 [root@www ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
 <VirtualHost 192.168.100.41:80>                ####设置 51xit.top 虚拟站点区域
 DocumentRoot "/opt/www/html/51xit.top"
 ServerName www.51xit.top
 ......
 </VirtualHost>
  
 <VirtualHost 192.168.100.42:80>               ####设置 52xit.top 虚拟站点区域
 DocumentRoot "/opt/www/html/52xit.top"
 ServerName www.52xit.top
 ......
 </VirtualHost>
 [root@www ~]# vim /usr/local/httpd/conf/httpd.conf
 Include conf/extra/httpd-vhosts.conf                  ####加载独立的配置文件
 [root@www ~]# systemctl restart httpd                ####重启服务使新配置生效  

验证

更改客户机hosts映射关系

  • 192.168.100.41 www.51xit.top
  • 192.168.100.42 www.52xit.top

登录客户机访问www.51xit.top 在访问www.52xit.top

基于端口
 [root@www ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
 <VirtualHost 192.168.100.41:80>              ####设置 51xit.top 虚拟站点区域
 DocumentRoot "/opt/www/html/51xit.top"
 ServerName www.51xit.top
 </VirtualHost>
  
 
 <VirtualHost 192.168.100.41:8080>            ####设置 52xit.top 虚拟站点区域
 DocumentRoot "/opt/www/html/52xit.top"
 ServerName www.52xit.top
 </VirtualHost>
 [root@www ~]# vi /usr/local/httpd/conf/httpd.conf      ####省略部分内容
 Include conf/extra/httpd-vhosts.conf                  ####加载独立的配置文件
 Listen 192.168.100.41:80                             ####监听 80 端口
 Listen 192.168.100.41:8080                           ####监听 8080 端口
 [root@www ~]# systemctl restart httpd                ####重启服务使新配置生效  

验证

更改客户机hosts映射关系

192.168.100.41 www.51xit.top www.52xit.top

安装mysql

安装环境
yum -y install \
ncurses \
ncurses-devel \
bison \
cmake
useradd -s /sbin/nologin  mysql
cd /opt
tar xf mysql-boost-5.7.20.tar.gz
cd /opt/mysql-5.7.20/
###添加配置选项
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_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1
配置选项含义
DCMAKE_INSTALL_PREFIX指定将 mysql 数据库程序安装到某目录下,如目录/usr/local/ mysql。
DMYSQL_UNIX_ADDR指定套接字文件的存储路径,数据库连接的文件
DSYSCONFDIR指定初始化参数文件目录
DDEFAULT_CHARSET指定默认使用的字符集编码,如 utf8。
DDEFAULT_COLLATION指定默认使用的字符集校对规则,utf8_general_ci 是适用于 UTF-8 字符集的通用规则。
DWITH_INNOBASE_STORAGE_ENGINE=1安装INNOBASE存储引擎
DWITH_ARCHIVE_STORAGE_ENGINE=1安装ARCHIVE存储引擎
DWITH_BLACKHOLE_STORAGE_ENGINE=1安装BLACKHOLE存储引擎
DWITH_PERFSCHEMA_STORAGE_ENGINE安装PERFSCHEMA存储引擎
其它常用的选项:
-DMYSQL_TCP_PORT=3306设置默认端口的
-DMYSQL_UNIX_ADDR=/tmp/mysql.sockMySQL进程间通信的套接字的位置
-DENABLED_LOCAL_INFILE=1是否启动本地的LOCAL_INFILE
-DEXTRA_CHARSETS=all支持哪些额外的字符集
-DDEFAULT_CHARSET=utf8默认字符集
-DDEFAULT_COLLATION=utf8_general_ci默认的字符集排序规则
-DWITH_DEBUG=0是否启动DEBUG功能
-DENABLE_PROFILING=1是否启用性能分析功能
编译安装及数据库目录进行权限调整
make && make install 

chown -R mysql:mysql /usr/local/mysql/
建立调整配置文件
vi /etc/my.cnf
[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[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
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
chown mysql:mysql /etc/my.cnf
设置环境变量
echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile
安装及开启服务
1 cd /usr/local/mysql/
2 bin/mysqld \
3 --initialize-insecure \
4 --user=mysql \
5 --basedir=/usr/local/mysql \
6 --datadir=/usr/local/mysql/data
1 cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
2 systemctl enable mysqld
3 systemctl start mysqld
4 systemctl status mysqld
5 netstat -anpt | grep 3306
mysqladmin -u root -p password //刚开始没密码是空的直接回车,然后输入密码abc123,在此确认abc123,这是在root账户下运行的

mysql -u root -p     ##这个命令敲下,提示要输入密码,这个就是刚才设置的密码abc123

安装PHP

安装PHP环境
yum -y install \
libjpeg \
libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 \
libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel
上传php-7.1.10.tar.bz2包到opt目录下
解压缩并安装
cd /opt
tar xjvf php-7.1.10.tar.bz2
cd 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-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
make && make install
prefix=/usr/local/php###指定将 PHP 程序安装到哪个目录下
with-apxs2=/usr/local/httpd/bin/apxs###设置 Apache HTTP Server 提供的 apxs 模块支持程序的文件位置
with-mysql-sock=/usr/local/mysql/mysql.sock###指定mysql的mysql.sock位置
with-mysqli###mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定。
with-zlib###支持zlib功能–压缩流
with-curl###开启curl扩展功能
libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap协议。libcurl同时也支持HTTPS认证、HTTP POST、HTTP PUT、 FTP 上传(这个也能通过PHP的FTP扩展完成)、HTTP 基于表单的上传、代理、cookies和用户名+密码的认证。PHP中使用cURL实现Get和Post请求的方法
with-gd###激活gd库的支持
with-jpeg-dir###要激活 jpeg 的支持
with-png-dir###要激活png的支持
enable-mbstring###启用多字节字符串功能,以便支持中文等代码。

4.5.4、配置文件

1 cp php.ini-development /usr/local/php/lib/php.ini          ###将php.ini-development开发样板,复制到生产环境中去
1 vi /usr/local/php/lib/php.ini
2 mysqli.default_socket = /usr/local/mysql/mysql.sock
3 date.timezone = Asia/Shanghai
1 /usr/local/php/bin/php -m //验证安装的模块
2 vi /etc/httpd.conf             ####在合适位置新增
3 AddType application/x-httpd-php .php
4 AddType application/x-httpd-php-source .phps
5 DirectoryIndex index.php index.html
如果开启了虚拟主机功能,需要在主配置文件里将其注释掉
删除默认测试网页并新建
rm -f /usr/local/httpd/htdocs/index.html
vi /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>
重启服务
systemctl restart httpd
下面测试数据库工作是否正常(未设置密码直接按回车进入)
mysql -u root -p

CREATE DATABASE myadm;
GRANT all ON myadm.* TO 'myadm'@'%' IDENTIFIED BY 'admin123';
GRANT all ON myadm.* TO 'myadm'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;
vi /usr/local/httpd/htdocs/index.php

<?php
$link=mysqli_connect('20.0.0.10','myadm','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>
安装phpMyAdmin
上传phpMyAdmin-4.7.6-all-languages.zip到opt下面
安装
cd /opt
unzip phpMyAdmin-4.7.6-all-languages.zip 
mv phpMyadmin-4.7.6-all-languages /usr/local/httpd/htdocs/myadm
cd /usr/local/httpd/htdocs/myadm
更改配置文件
vi config.inc.php
$cfg['Servers'][$i]['host'] = '127.0.0.1'; //把localhost 改成IP 31行
测试
http://20.0.0.10/myadm        #客户端测试

注意:利用之前设置的用户名root及密码登录,空密码不可以

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值