简介
编译安装的优点
- 具有较大的自由度,功能可定制
- 可及时获得最新的软件版本
- 普遍适用于大多数Linux版本,便于移植使用编译安装httpd服务器
一、LAMP
1.1 LAMP概述
- LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。
- LAMP是一个缩写词,具体包括Linux操作系统、Apache网站服务器、MariaDB或MySQL(
数据库管理系统或者数据库服务器
)、PHP(或Perl、Python
)网页编程j脚本语言。 - 虽然这些开放源代码程序本身并不是专门设计成同另几个程序一起工作的,但由于它们的廉价和普遍,这个组合开始流行(
大多数Linux发行版本捆绑了这些软件
)。当一起使用的时候,它们表现的像一个具有活力的“解决方案包”(Solution Packages
)。其他的方案包有苹果的WebObjects(最初是应用服务器
),Java/J2EE和微软的.NET架构。 - “LAMP包”的脚本组件中包括了CGIweb接口,它在90年代初期变得流行。这个技术允许网页浏览器的用户在服务器上执行一个程序,并且和接受静态的内容一样接受动态的内容。程序员使用脚本语言来创建这些程序因为它们能很容易有效的操作文本流,甚至当这些文本流并非源自程序自身时也是。正是由于这个原因系统设计者经常称这些脚本语言为胶水语言。
1.2 为什么需要LAMP
- 手动逐个编译安装各个组件,需要输入各种命令,且有可能会中途出错。
- 对于想要成功搭建 LAMP 建站环境来说,可以节约大量时间和精力
1.3 LAMP组成的作用
- linux:提供操作系统支持/提供一个环境支持。
作为LAMP架构的基础,提供用于支撑Web站点的操作系统,能够与其他三个组件提供更好的稳定性,兼容性(AMP组件也支持Windows、UNIX等平台) 。 - Apoache:提供静态页面的请求。
作为LAMP架构的前端,是一款功能强大,稳定性好的Web服务器程序,该服务器直接面向用户提供网站访问,发送网页,图片等文件内容。 - Mysoi;只会处理动态页面请求
作为LAMP架构的后端,是一款流行的开源关系数据库系统。在企业网站、业务系统等应用中,各种账户信息、产品信息,客户资料、业务数据等都可以存储到MySQL数据库,其他程序可以通过SQL语句来查询,更改这些信息 - php(
PHP/Perl/Python
):持久化保存数据/状态信息。
作为三种开发动态网页的编程语言,负责解释动态网页文件,负责沟通Web服务器和数据库系统以协同工作,并提供Web应用程序的开发和运行环境。其中PHP是一种被广泛应用的开放源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合于Web应用开发。
1.4 安装顺序
- 各组件的安装顺序依次为
Linux、Apache、MySQL、PHP
。 - 其中Apache和MySQL的安装并没有严格的顺序,PHP环境的安装一般放到最后安装,负责沟通 Web 服务器和数据库系统以协同工作。
二、安装Apoache
- ① 安装前准备
systemctl stop firewalld //停止防护墙
systemctl disable firewalld //关闭不自启
setenforce 0 //临时生效可以直接用setenforce 0
pache官网:https://www.apache.org
Apache是一个基金会的名字,httpd才是我们要安装的软件包,早期它的名字就叫apache。 编译安装apache之前先安装apr以及apr-util,apr和apr-util是一个通用的函数库,主要为上层应用提供支持,它让httpd可以不关心底层的操作系统平台,可以很方便地移植(从linux移植到windows)。
2.1 解压依赖包并移动改名
tar xf apr-1.6.2.tar.gz
tar xf apr-util-1.6.0.tar.gz
tar xf httpd-2.4.29.tar.bz2
mv apr-1.6.2 httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
2.2安装语言环境
yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \
expat-devel \
perl
2.3上传httpd及配置
cd /opt/httpd-2.4.29/
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
make && make install
优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中.
ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/
./usr/local/httpd/bin/httpd
2.4 service管理
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
vim /etc/init.d/httpd
# chkconfig: 35 85 21 //35级别自动运行 第85个启动 第21个关闭
# description: Apache is a World Wide Web server //这两行添加到最前面#/bin/bash下
chkconfig --add httpd //将httpd加入到系统管理器
2.5 配置监听端口和ip
vi /usr/local/httpd/conf/httpd.conf
--52行--修改
Listen 192.168.226.128:80
--197行--取消注释,修改
ServerName www.kgc.com:80
--221行--默认首页存放路径
DocumentRoot "/usr/local/httpd/htdocs"
--255行--默认首页文件名设置
DirectoryIndex index.html
2.6启动httpd和检查端口
service httpd restart
netstat -anpt | grep 80
- Apache安装成功!
三、部署MYSQL服务
MySQL是一个关系型数据库,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
3.1 安装编译语言环境
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake autoconf
3.2 编译安装
useradd -s /sbin/nolog mysql
tar zxf mysql-boost-5.7.20.tar.gz -C /opt
cd mysql-5.6.26
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
make && make install
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定安装目录
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定通信文件,连接数据库和通讯的载体
-DSYSCONFDIR=/etc \ #指定配置文件位置
-DSYSTEMD_PID_DIR=/usr/local/mysql \ #指定存放pid文件位置
-DDEFAULT_CHARSET=utf8 \ #支持中文等字符串
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #下面三行均为存储引擎ENGINE
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
-DMYSQL_DATADIR=/usr/local/mysql/data \ #指定数据存放位置
-DWITH_BOOST=boost \ #底层c++的运营库
-DWITH_SYSTEMD=1 #守护进程id
3.2 优化server管理
chown -R mysql:mysql /usr/local/mysql
vim /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
3.3 设置环境变量
echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
echo 'export PATH' >> /etc/profile
source /etc/profile
[root@localhost local]# cd /usr/local/mysql/
[root@localhost mysql]# ls
bin COPYING-test include man README share usr
COPYING docs lib mysql-test README-test support-files
[root@localhost mysql]# cd bin/
[root@localhost bin]# ls
innochecksum mysql_config mysqlslap
lz4_decompress mysql_config_editor mysql_ssl_rsa_setup
myisamchk mysqld mysqltest
myisam_ftdump mysqld_pre_systemd mysqltest_embedded
myisamlog mysqldump mysql_tzinfo_to_sql
myisampack mysqldumpslow mysql_upgrade
my_print_defaults mysql_embedded mysqlxtest
mysql mysqlimport perror
mysqladmin mysql_install_db replace
mysqlbinlog mysql_plugin resolveip
mysqlcheck mysqlpump resolve_stack_dump
mysql_client_test mysql_secure_installation zlib_decompress
mysql_client_test_embedded mysqlshow
- 将mysql的服务脚本从软件内复制到/lib/systemd/system中
[root@localhost mysql]# cp usr/lib/systemd/system/mysqld.service /lib/systemd/system/
[root@localhost system]# ls -l mysqld.service
-rw-r--r--. 1 root root 1639 Dec 23 17:33 mysqld.service
3.4初始化数据库
- ① 数据库的初始化
cd /usr/local/mysql/
bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
3.5 开启服务并检查端口
systemctl start mysqld
systemctl status mysqld
netstat -antp | grep 3306
3.6 设置密码
mysqladmin -u root -p password #先回车,在输入两次要设置的新密码
mysql -u root -p #以root身份登录,输之前的密码
登录成功
四、安装PHP
PHP官网:http://www.php.net/
前面讲到,PHP是作为Apache的一个模块存在的
4.1安装编译语言环境
yum -y install \
gd \
libpng \
libpng-devel \
pcre \
pcre-devel \
libxml2-devel \
libjpeg-devel
4.2 安装和编译
cd /opt
tar xjvf php-5.6.11.tar.bz2
cd php-5.6.11
./configure \
--prefix=/usr/local/php5 \
--with-gd \
--with-zlib \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql=/usr/local/mysql \
--with-config-file-path=/usr/local/php5 \
--enable-mbstring
make && make install
4.3 优化把PHP
ln -s /usr/local/php5/bin/* /usr/local/bin/
4.4 修改Apache配置文件让Apache支持PHP
vi /etc/httpd.conf
#添加index.php
255 <IfModule dir_module>
256 DirectoryIndex index.html index.php
257 </IfModule>
#在392行下方插入一下内容,让Apache可以支持.php的网页文件
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
##检查156行默认支持php5的模块是否存在
4.5 创建网页和启动服务
vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>
#重启服务
service httpd stop
service httpd start
restart --> stop start
在网页测试“http://192.168.1.130/index.php”
示例:安装论坛
设置登录密码
给root账号设置密码
mysqladmin -u root -p password “abc123”
————》直接回车
登录刷新数据库
mysql> CREATE DATABASE bbs; //创建一个数据库//
mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123'; //把bbs数据库里面所有表的权限授予给bbsuser,并设置密码// 所有访问来源/渠道
mysql> GRANT all ON bbs.* TO 'bbsuser'@'localhost' IDENTIFIED BY 'admin123';
mysql>flush privileges; //刷新数据库//
create database [database name] ;//创建数据库
show databases; //查看数据库
drop database [database name]; //删除数据库
五、安装Discuz
unzip /opt/lamp/Discuz_X2.5_SC_UTF8.zip -d /opt/dis
cd /opt/dis
cp -r upload/ /usr/local/httpd/htdocs/bbs
chown -R daemon ./config
chown -R daemon ./data
chown -R daemon ./uc_client
chown -R daemon ./uc_server/data
论坛安装成功
六、 小结
- L :linux平台上
A:静态页面处理使用了Apache
P:动态处理;后台程序
M:MySQL 数据库 存储PHP数据信息** - Apache 怎么和PHP对接支持
1、支持php 网页文件的格式 index.php
2、开启识别index.php网页格式文件的支持
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
- PHP 如何和Apache去做对接
./configure
--with-apxs2=/usr/local/httpd/bin/apxs
#可以让php服务模块直接提供给apache加载使用
- php 如何与mysql 对接
--with-mysql=/usr/local/mysql \
对接mysql
- MySQL为PHP 提供了哪些支持
1、给php动态处理的一些数据,提供了一个数据库(bbs) 和访问的用户权限@登陆方式
2、给bbsuser 进行了提权 grant all