源码编译安装 LAMP
2024-01-08 14:30:44
本章内容
- 掌握以源码编译的方法构建 LAMP 环境
- 学会 phpMyAdmin 的使用
没安装apache服务的,看我之前的文章安装apache基本服务服务
2.4 MySQL
的编译安装
MySQL
是一个真正的多线程、多用户的
SQL
数据库服务,凭借其高性能、高
可靠和易于使用的特性,成为服务器领域中最受欢迎的开源数据库系统。本节将介
绍
MySQL
的编译安装过程、服务控制方法。
为 了 确 保
MySQL
数 据 库 功 能 的 完 整 性 、 可 定 制 性 , 本 小 节 将 以
mysql-5.6.36.tar.gz
为例使用源代码编译的方式安装
MySQL
数据库系统。
1
.准备工作
为了避免发生端口冲突、程序冲突等现象,建议先查询
MySQL
软件的安装情况,
确认没有使用以
RPM
方式安装的
mysql-server
、
mysql
、
MariaDB
软件包;否则建议
将其卸载。
[root@ppp ~]# rpm -q mysql-server mysql
未安装软件包 mysql-server
未安装软件包 mysql
[root@ppp ~]# yum install -y ncurses-devel
由于
MySQL 5.5
需要
cmake
编译安装,所以先安装
cmake
包。
[root@ppp ~]# tar zxf cmake-2.8.6.tar.gz
[root@ppp ~]# cd cmake-2.8.6/
[root@ppp cmake-2.8.6]# ./configure
[root@ppp cmake-2.8.6]# gmake && gmake install
2
.源码编译及安装
(
1
)创建运行用户
为了加强数据库服务的权限控制,建议使用专门的运行用户,如
mysql
。此用户不
需要直接登录到系统,可以不创建宿主文件夹。
[root@ppp ~]# groupadd mysql
[root@ppp ~]# useradd -M -s /sbin/nologin mysql -g mysql
[root@ppp ~]#
(
2
)解包
将下载的
MySQL
源码包解压,释放到
/usr/src
目录下,并切换到展开后的源码目
录。
[root@ppp ~]# tar zxf mysql-5.6.36.tar.gz -C /usr/src
[root@ppp ~]# cd /usr/src/mysql-5.6.36/
[root@ppp mysql-5.6.36]#
(
3
)配置
在内容丰富、结构庞大的企业网站平台中,可能会用到多种字符集的网页,相应地
数据库系统也应该支持不同的字符集编码。在配置过程中,可以将默认使用的字符集设
置为
utf8
,并添加其他字符集的支持。
[root@ppp 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@ppp mysql-5.6.36]# make&&make install
3
.安装后的其他调整
(
1
)对数据库目录进行权限设置
[root@ppp mysql-5.6.36]# chown -R mysql:mysql /usr/local/mysql
(
2
)建立配置文件
[root@ppp mysql-5.6.36]# rm -rf /etc/my.cnf
[root@ppp mysql-5.6.36]#
[root@ppp mysql-5.6.36]# cp support-files/my-default.cnf /etc/my.cnf
[root@ppp mysql-5.6.36]#
(
3
)初始化数据库
为了能够正常使用
MySQL
数据库系统,应以运行用户
mysql
的身份执行初始化脚
本
mysql_install_db
,指定数据存放目录等
。
[root@ppp mysql-5.6.36]#
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
为了方便在任何目录下使用
mysql
命令,需要在
/etc/profile
设置环境变量。
[root@ppp mysql-5.6.36]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
[root@ppp mysql-5.6.36]# . /etc/profile
4
.
启动并访问
MySQL
服务
MySQL
源码包中提供的服务控制脚本,使用该脚本即可控制
MySQL
服务。找到
support-files
文件夹下的
mysql.server
脚本文件,将其复制到
/etc/rc.d/init.d
目录下,并
改名为
mysqld
,然后再设置执行权限。
[root@ppp mysql-5.6.36]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@ppp mysql-5.6.36]# chmod +x /usr/local/mysql/bin/mysqld.sh
[root@ppp ~]# vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
After=network.target
[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/usr/local/mysql/data/pp.pid
ExecStart=/usr/local/mysql/bin/mysqld.sh start
ExecStop=/usr/local/mysql/bin/mysqld.sh stop
[Install]
WantedBy=multi-user.target
[root@ppp ~]# systemctl start mysqld
[root@ppp ~]# systemctl enable mysqld
MySQL
服务器默认通过
TCP 3306
端口提供服务。通过编辑
/etc/my.cnf
配置文件
中
[mysqld]
配置段的
“port = 3306”
行,可以更改监听端口。
经过安装后的初始化过程,
MySQL
数据库的默认管理员用户名为
“root”
,密码为给定的
随机密码。以
root
用户登录本机的
MySQL
数据库,可以执行以下操作。
[root@ppp ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.36 Source distribution
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
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>
2.5
构建
PHP
运行环境
PHP
即
“Hypertext Preprocessor”
(超级文本预处理语言)的缩写,是一种服务器
端的
HTML
嵌入式脚本语言。
PHP
的语法混合了
C
、
Java
、
Perl
及部分自创的新语法,
拥有更好的网页执行速度,更重要的是
PHP
支持绝大多数流行的数据库,在数据库层
面的操作功能十分强大,而且能够支持
UNIX
、
Windows
、
Linux
等多种操作系统。
本节将介绍如何构建
PHP
运行环境,以实现
LAMP
协同架构。其前提条件是服务
器中已经编译安装好
Apache HTTP Server
和
MySQL
数据库。
2.5.1
安装
PHP
软件包
PHP
项目最初由
Rasums Lerdorf
在
1994
年创建,
1995
年发布第一个版本
PHP1.0
。
本小节将以稳定版源码包
php-5.5.38.tar.gz
为例。该版本可以从
PHP
官方站点
http://www.php.net
下载。
下面介绍编译安装
PHP
相关软件包的基本过程。
1
.准备工作
为了避免发生程序冲突等现象,建议先将
RPM
方式安装的
PHP
及相关依赖包(如
果已存在)卸载。例如,根据实际安装情况可卸载
php
、
php-cli
、
php-ldap
、
php-common
、
php-mysql
等。另外,需要从光盘中安装
zlib-devel
、
libxml2-devel
等依赖包。
[root@ppp ~]# rpm -e php php-cll php-idap php-common php-mysql --nodeps
[root@ppp ~]# rpm -ivh /mnt/Packages/zlib-devel-1.2.7-18.el7.x86_64.rpm
[root@ppp ~]# rpm -ivh /mnt/Packages/xz-devel-5.2.2-1.el7.x86_64.rpm
[root@ppp ~]# rpm -ivh /mnt/Packages/libxml2-devel-2.9.1-6.el7_2.3.x86_64.rpm
2
.安装扩展工具库
在实际企业应用中,一部分基于
PHP
开发的
Web
应用系统会需要额外的扩展工具,
如数据加密工具
libmcrypt
、
mhash
、
mcrypt
等(可以从站点
http
:
//sourceforge.net
下载)。安装
php
软件包之前,应先安装好这些扩展工具程序。
(
1
)安装
libmcrypt
[root@ppp ~]# tar zxf libmcrypt-2.5.8.tar.gz -C /usr/src/
[root@ppp ~]# cd /usr/src/libmcrypt-2.5.8/
[root@ppp libmcrypt-2.5.8]# ./configure
[root@ppp libmcrypt-2.5.8]# make && make install
[root@ppp libmcrypt-2.5.8]# ln -s /usr/local/lib/libmcrypt.* /usr/lib/
(
2
)安装
mhash
[root@ppp ~]# tar zxf mhash-0.9.9.9.tar.gz -C /usr/src/
[root@ppp ~]# cd /usr/src/mhash-0.9.9.9/
[root@ppp mhash-0.9.9.9]# ./configure
[root@ppp mhash-0.9.9.9]# make && make install
[root@ppp mhash-0.9.9.9]# ln -s /usr/local/lib/libmhash* /usr/lib/
(
3
)安装
mcrypt
[root@ppp ~]# tar zxf mcrypt-2.6.8.tar.gz -C /usr/src/
[root@ppp ~]# cd /usr/src/mcrypt-2.6.8/
[root@ppp mcrypt-2.6.8]# ./configure
[root@ppp mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/lib
[root@ppp mcrypt-2.6.8]# ./configure
[root@ppp mhash-0.9.9.9]# make && make install
3
.编译安装
PHP
(
1
)解包
将下载获得的
PHP
源码包解压并释放到
/usr/src
目录下,切换到展开后的源码目录。
[root@ppp ~]# tar zxf php-5.5.38.tar.gz -C /usr/src
[root@ppp ~]# cd /usr/src/php-5.5.38/
[root@ppp php-5.5.38]#
(
2
)配置
在定制
PHP
的配置选项时,最关键的是要指定
httpd
、
mysqld
的安装路径,以便
添加相关支持设置,使
LAMP
各组件协同工作。除此之外,还可以指定安装路径,启用
多字节支持、加密扩展支持等。
[root@ppp php-5.5.38]# ./configure --prefix=/usr/loacl/php5 --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --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
:启用多字节字符串功能,以便支持中文等代码。
[root@ppp php-5.5.38]# make && make install
编译的过程可能会需要较长时间,需耐心等待。若期间未出现错误,那么
PHP
程
序的安装过程就基本完成了。接下来需要对
LAMP
组件环境进行适当的配置,并验证是
否能够协同工作。
2.5.2
设置
LAMP
组件环境
设置
LAMP
组件环境,主要包括对
PHP
的配置文件
php.ini
、
Apache
的配置文件
httpd.conf
的调整。前者用来确定
PHP
的运行参数,后者用来加载
libphp5.so
模块,
以便支持
PHP
网页。
1
.
php.ini
配置调整
(
1
)
php.ini
的建立及基本设置
安装好
PHP
软件包以后,服务器并不会自动创建
php.ini
配置文件,但在源码目录
下提供了两个样例配置文件,分别对应于开发环境、生产环境。
/usr/src/php-5.5.38/php.ini-development //开发版样例文件,用于学习、测试
/usr/src/php-5.5.38/php.ini-production //生产版样例文件,用于实际运营
选择其中一个样例文件,并复制到
PHP
的配置文件目录
/usr/local/php5
下,并改
名为
php.ini
。在
php.ini
配置文件中,以分号开头的内容表示注释信息。
[root@ppp ~]# cp /usr/src/php-5.5.38/php.ini-development /usr/local/php5/php.ini
[root@ppp ~]# grep -v "^;" /usr/local/php5/php.ini | grep -v "^$"
[PHP]
engine = On
short_open_tag = Off
asp_tags = Off
通过修改
php.ini
文件中的配置内容,可以控制
PHP
网页的执行特性,如是否允许
用户上传文件、设置上传文件的大小限制、设置默认使用的字符集、加载额外的扩展模
块等。如果没有特别要求,可以直接沿用默认配置,不做任何修改。
[root@pp ~]vim /usr/local/php5/php.ini …… //省略部分内容
default_charset = "utf-8" //设置默认字符集为 utf-8
file_uploads = On //允许通过 PHP 网页上传文件
upload_max_filesize = 2M //允许上传的文件大小限制
max_file_uploads = 20 //每个 HTTP 最多允许请求上传的文件数
post_max_size = 8M //每次通过表单 post 提交的数据量限制
short_open_tag = On //允许识别 PHP 短语法标记,即<?…?>
extension=php_mysqli.dll //添加 MySQL 支持
(
2
)添加
ZendGuardLoader
优化模块
为了进一步提高
PHP
程序的执行效率,优化页面加载速度,可以为
PHP
添加
Zend
公司开发的
ZendGuardLoader
优化模块。若需要加密
PHP
代码以限制未经授权的分发,
还可以购买该公司的
ZendGuard
软件。添加
ZendGuardLoader
模块支持的过程如下所
述。
首先将下载的
ZendGuardLoader
包释放,并将其中
php-5.3.x
目录下的模块文件
[root@ppp ~]# cd /usr/src/zend-loader-php5.5-linux-x86_64/
[root@ppp zend-loader-php5.5-linux-x86_64]#
[root@ppp zend-loader-php5.5-linux-x86_64]# cp /usr/src/php-5.5.38/php.ini-development /usr/loacl/php5/lib/php
[root@ppp zend-loader-php5.5-linux-x86_64]#
然后,修改
php.ini
配置文件,添加及启用
ZendGuardLoader.so
模块的配置语句。
[root@ppp ~]# vim /usr/loacl/php5/php.ini
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable=1
2
.
httpd.conf
配置调整
要使
httpd
服务器支持
PHP
页面解析功能,需通过
LoadModule
配置项加载
PHP
程序的模块文件,并通过
AddType
配置项添加对
“.php”
类型网页文件的支持。除此以外,
还应修改
DirectoryIndex
配置行,添加
index.php
配置项,以识别常见的
PHP
首页文
件。
[root@ppp ~]# vim /usr/local/httpd/conf/httpd.conf
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
AddType application/x-httpd-php .php
LoadModule php5_module modules/libphp5.so
[root@ppp ~]# systemctl restart httpd
在上述配置内容中,
LoadModule
行应该会在安装
PHP
的过程中自动添加,其中
的
“php5_module”
表示模块名称;
“modules/libphp5.so”
表示模块文件位置。而
AddType
行需要手动添加,
DirectoryIndex
行在原有基础上对其进行修改即可。
2.5.3
测试
LAMP
协同工作
完成
PHP
相关软件的安装、调整配置以后,应对其进行必要的功能测试,以验证
LAMP
平台各组件是否能够协同运作。在网站根目录下创建相应的
PHP
测试网页,然
后通过浏览器进行访问,根据显示结果即可判断
LAMP
平台是否构建成功。
下面分别从
PHP
网页的解析、通过
PHP
页面访问
MySQL
数据库两个方面进行测
试。
要想测试
PHP
环境是否能够正常工作,需要建立一个使用
PHP
语言编写的网页文
件,并通过
httpd
服务器发布,在浏览器中对其进行访问。由于
PHP
语言并非本章学
习的重点,这里不做过多的讲解。用于测试时,只需要建立一个简短的
PHP
测试文件
即可。
1
.测试
PHP
网页能否正确显示
编写一个
“.php”
格式的网页测试文件,使用
PHP
内建的
“phpinfo()”
函数显示服务器
的
PHP
环境信息,
PHP
代码应包括在
“<?php …?>”
标记之间。将测试网页文件放置到
网站根目录下,如
/usr/local/httpd/htdocs/test1.php
。
[root@ppp ~]# vim /usr/local/httpd/htdocs/test1.php
<?php
phpinfo( );
?>
通过浏览器访问测试网页,如
http://ip/test1.php
。若能够看到
PHP
程
序的版本号、配置命令、运行变量等相关信息,如图
2.1
所示,则表示此
Web
服务器
已经能正常显示
PHP
网页;若还能看到
Zend
引擎相关信息,则表示
ZendGuardLoader
模块也已成功启用。
2
.测试
PHP
网页能否访问
MySQL
数据库
编写一个网页测试文件
test2.php
,添加简单的数据库操作命令,用于验证与
MySQL
服务器的连接、查询等操作。其中,
“mysqli_connect()”
函数用于连接
MySQL
数据库,需
要指定目标主机地址,以及授权访问的用户名、密码。
[root@ppp ~]# vim /usr/local/httpd/htdocs/test2.php
<?php
$link=mysqli_connect('localhost','root','123456');
if($link)echo "hmd";
mysqli_close($link);
?>
通过浏览器访问测试网页,如
http://ip/test2.php
。若能看到成功连接的
提示信息,则表示能够通过
PHP
网页访问
MySQL
数据库。当使用了错误的用户名、
密码,或者因
“mysqld-connect()”
函数未运行而导致连接失败时,执行时将会报错。
2.6 LAMP
架构应用实例
在企业
Web
应用系统中,动态网站已经逐步成为主流,而基于
LAMP
架构的
Web
动 态 网 站 更 是 其 中 的 佼 佼 者 。 本 节 将 介 绍 一 个
LAMP
架 构 协 同 应 用 的 实 例
--phpMyAdmin
管理套件的部署及使用。
2.6.1
部署
phpMyAdmin
系统
phpMyAdmin
是一个使用
PHP
语言编写,用来管理
MySQL
数据库的
Web
应用系
统。通过该套件提供的网页界面,即便是对
SQL
语句不太熟悉的人,也能够非常容易
地对
MySQL
数据库进行管理和维护。
phpMyAdmin
的源码包可以从其官方站点
http://www.phpmyadmin.net
下载。下面
以多国语言版源码包
phpMyAdmin-4.7.2-all-languages.tar.gz
为例,介绍
phpMyAdmin
套件的部署过程。
1
.解包并复制到网站目录
对于大部分
PHP
应用系统,只需要解包后复制到网站目录下即可完成部署,之后
再根据需要调整配置,或者访问安装页面以完成进一步的安装。例如,若要将
phpMyAdmin
套 件 部 署 到 网 站 根 目 录 下 , 以 便 通 过 站 点
http://ip/phpMyAdmin/
访问。
[root@ppp ~]# tar zxf phpMyAdmin-4.7.2-all-languages.tar.gz
[root@ppp ~]# mv phpMyAdmin-4.7.2-all-languages /usr/local/httpd/htdocs/phpMyadmin
[root@ppp ~]#
2
.建立配置文件
config.inc.php
将
phpMyAdmin
套件复制到网站目录以后,还需要创建配置文件方可正常使用。
默 认 提 供 的 样 例 配 置 文 件 为
config.sample.inc.php
, 需 参 照 该 文 件 内 容 建 立
configi.inc.php
配置文件。查找配置文件中的
“blowfish_secret”
行,默认已经设置了一个
短语密钥(此密钥用于网页
cookie
认证,不需要用户记忆),可以根据需要自行修改。
[root@ppp ~]# cd /usr/local/httpd/htdocs/phpMyadmin/
[root@ppp phpMyadmin]# cp config.sample.inc.php config.inc.php
[root@ppp phpMyadmin]#
3
.访问
phpMyAdmin
的
Web
管理界面
在浏览器中访问
http://ip/phpMyAdmin/
,如果能够看到
phpMyAdmin
系统的登录界面,如图
2.3
所示,则表示部署成功。使用
MySQL
数据库的用户(不
能是密码为空的用户)登录后,即可在授权范围内对数据库进行管理。
2.6.2
使用
phpMyAdmin
系统
需要使用
phpMyAdmin
系统时,应先通过
MySQL
服务器中授权的数据库用户(如
root
用户)进行登录,认证成功后可以看到管理界面,如图
2.4
所示。通过
phpMyAdmin
套件,用户可以在授权的范围内执行各种数据库管理操作,使界面更加直观、友好,大
大降低了远程维护
MySQL
数据库服务器的难度。
管理页面的初始界面是一个典型的分栏结构,左侧部分包括一排导航按钮(主
页、退出、查询、帮助、
SQL
文档)、库列表;右侧部分是主体窗口,其中显示了若干
标签、操作面板、界面控制等组件,以及
MySQL
、网站服务器、
phpMyAdmin
的版本
信息。
下面仅简单介绍
phpMyAdmin
系统中几个常见的数据库操作,更多的操作方法需
要大家自行去探索和实践。
1
.创建新的库、新的表
若要创建新的库,可以选择右侧的
“
数据库
”
标签,然后在下方的
“
新建数据库
”
区域
进行操作,如图
2.5
所示。例如,指定新建的库名称为
“kgc”
,使用的校对规则选择
utf8_general_ci
,然后单击
“
创建
”
按钮即可新建
kgc
库。
返回管理界面主页,选择左侧列表中新建的
kgc
库,在右侧的
“
结构
”
标签页下方,
可以输入新的表名、字段数,单击
“
执行
”
按钮;然后根据页面内容设置各字段的名称、
类型(对于要包含中文数据的字段,类型应选用
“
文本
”
栏下的
CHAR
、
VCHAR
等)、长
度等要素后,单击
“
保存
”
按钮即可新建指定的表。
2
.表及数据记录的管理
选中指定库中的表,可以分别进行浏览数据、修改表结构、搜索数据、插入数据等
操作。
值得注意的是,如果数据库、表中需要记录包含中文的数据,应确保
LAMP
平台各
组件使用相同的字符集(如
UTF-8)
,否则可能会出现乱码的情况。在编码一致的前提
下,新建数据库、表,以及插入、浏览记录时,都可以正常使用中文。
3
.直接执行
MySQL
查询语句
单击右侧的
“SQL”
标签 ,可以打开
SQL
查询窗口。在该窗口中,可以直接输入
MySQL 操作语句,并通过单击右下方的
“
执行
”
按钮来完成相应的管理任务
文章来源:https://blog.csdn.net/ZXDNM_zwz/article/details/135449494
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!