前言
什么是LAMP平台
LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整台系统和相关软件,能够提供动态web站点服务及其应用开发环境
LAMP是一个缩写词,具体包括Linux操作系统,Apache网站服务器,MySQL数据库服务器,PHP(或perl,Python)网页编程语言
LAMP的优势:成本低廉;可定制、易于开发;方便易用、安全和稳定
LAMP平台构建顺序
在构建LAMP平台时,各组件的安装顺序依次为Linux,Apache,MySQL,PHP
其中Apache和MySQL的安装并没有严格的顺序要求,而PHP环境的安装一般放到最后,负责沟通web服务器和数据库系统以协同工作
源代码编译安装的优点
具有较大的自由度,功能可定制
可及时获得最新的软件版本
普遍适用于大多数Linux版本,便于一直使用
一、源码编译安装apache
apache简介
●apache起源
源于A Patchy Server,著名的开源web服务软件
1955年时,发布Apache服务程序的1.0版本
由Apache软件基金会(ASF)负责维护(该基金会还包括了tomcat、kafka)
最新的名称为“Apache HTTP Server”
●apache主要特点
开放源代码,跨平台(由apr软件包支持)应用
支持多种网页编程语言
模块化设计,运行稳定,良好的安全性
●apache编译过程
注意:如果之前使用yum安装过,需要先卸载
yum -y remove httpd
1.将三个源码文件添加到/opt/apache目录下
[root@chen apache]# ls
apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2
2.解压apr跨平台组件包和httpd源码包到当前目录下;并将跨平台组件包移动到源码包srclib目录下
[root@chen apache]# tar zxf apr-1.6.2.tar.gz
[root@chen apache]# tar zxf apr-util-1.6.0.tar.gz
[root@chen apache]# tar jxf httpd-2.4.29.tar.bz2
[root@chen apache]# ls
apr-1.6.2 apr-util-1.6.0 httpd-2.4.29
apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2
[root@chen apache]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@chen apache]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
3.安装编译器和其他工具
[root@chen srclib]# yum -y install \
> gcc \
> gcc-c++ \
> make \ ##gcc、gcc-c++、make为编译工具
> pcre-devel \ ##支持正则表达式的工具
> expat-devel \ ##使网站能解析xml标记语言的工具
> perl ##perl语言工具
4.configure配置
[root@localhost apache]# cd httpd-2.4.29/
[root@localhost httpd-2.4.29]# ls
...省略内容
ap.d configure include Makefile.in
...省略内容
[root@localhost httpd-2.4.29]# ./configure \
> --prefix=/usr/local/httpd \ ##指定路径
> --enable-so \ ##开启核心功能模块(Web服务)
> --enable-rewrite \ ##开启重写功能,如防盗链保护
> --enable-charset-lite \ ##字符集设定
> --enable-cgi ##开启通用网关接口,它定义了web服务器运行时外部程序的规范
5.make编译和make install安装
[root@localhost httpd-2.4.29]# make ##编译,将源码转换成计算机可以识别的二进制文件
...省略内容
[root@localhost httpd-2.4.29]# make install ##安装
6.配置启动脚本
[root@localhost bin]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd ##将启动脚本复制到/etc/init.d/初始化脚本文件中,并重命名为httpd
[root@localhost bin]# cd /etc/init.d/
[root@localhost init.d]# ls
functions httpd netconsole network README
[root@localhost init.d]# vim httpd
#!/bin/sh ##在行首插入下两行内容(前面就是有#的),并保存退出
#chkconfig: 35 85 21 ##3(字符界面)和5(图形化界面)级别自动运行 第85个启动 第21个关闭
#description: Apache is a World Wide Web server ##描述信息,可不加
#
#...省略内容
[root@localhost init.d]# chkconfig --add httpd ##将httpd加入到service管理器
7.编辑配置文件
[root@chen bin]# vim /usr/local/httpd/conf/httpd.conf
...省略内容
Listen 14.0.0.30:80 ##设置ipv4监听地址和端口
#Listen 80 ##将ipv6格式的监听端口注释掉
#
ServerName www.test.com:80 ##设置域名地址
...省略内容
8.设置配置文件的软链接和httpd命令的软链接
[root@chen bin]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf
##设置配置文件的软链接,便于修改(原文件位置太长了)
[root@chen bin]# httpd -t ##未设置命令的软链接时
bash: httpd: 未找到命令...
[root@chen bin]# ls /usr/local/httpd/bin/
ab apxs envvars-std htdigest logresolve
apachectl checkgid fcgistarter htpasswd rotatelogs
apr-1-config dbmmanage htcacheclean httpd
apu-1-config envvars htdbm httxt2dbm
[root@chen bin]# ln -s /usr/local/httpd/bin/* /usr/local/bin/ ##设置httpd命令的软链接
[root@chen bin]# httpd -t ##这时可以使用httpd命令了(httpd -t:检查配置文件语法)
Syntax OK
[root@chen bin]# apachectl -t
Syntax OK
9.开启apache服务
[root@chen bin]# iptables -F ##清空防火墙规则
[root@chen bin]# setenforce 0 ##关闭核心防护
[root@chen bin]# service httpd start ##利用service启动apache服务
[root@chen bin]# netstat -napt |grep 80 ##查看httpd 80端口,开启成功
tcp 0 0 14.0.0.30:80 0.0.0.0:* LISTEN 44819/httpd
10.在浏览器中输入服务器地址验证。
二、源码编译安装mysql
1.准备安装环境
[root@localhost htdocs]# yum -y install ncurses-devel autoconf cmake
ncurses-devel ##字符终端下屏幕控制的基本库
autoconf ##可以自动配置软件源代码
cmake ##跨平台编译安装工具
[root@localhost mysql]# tar zxf mysql-5.6.26.tar.gz ##将mysql源码包解压到当前目录
2.cmake配置
[root@localhost mysql]# cd mysql-5.6.26/
[root@localhost mysql-5.6.26]# cmake \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ ##指定安装路径
> -DDEFAULT_CHARSET=utf8 \ ##指定字符集
> -DDEFAULT_COLLATION=utf8_general_ci \ ##校验字符
> -DEXTRA_CHARSETS=all \ ##安装所有扩展字符集
> -DSYSCONFIDIR=/etc \ ##指定配置文件目录
> -DMYSQL_DATADIR=/home/mysql/ \ ##指定数据文件目录,由mysql用户管理
> -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock ##指定通信文件(连接数据库的必要文件)
3.make&&make install 编译并且安装
4.复制配置文件和启动文件
[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf
##将配置文件复制到/etc目录下my.cnf(原来的覆盖掉)
[root@localhost mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld
##将启动文件复制到/etc/init.d/目录下,可以使用service管理
5.配置脚本文件和命令环境
[root@localhost mysql-5.6.26]# cd /etc/init.d/
[root@localhost init.d]# ls
functions httpd mysqld netconsole network README
[root@localhost init.d]# ls -l
-rw-r--r--. 1 root root 17500 May 3 2017 functions
-rwxr-xr-x. 1 root root 3503 Dec 11 19:01 httpd
-rw-r--r--. 1 root root 10870 Dec 11 20:03 mysqld ##发现mysqld文件没有执行权限
-rwxr-xr-x. 1 root root 4334 May 3 2017 netconsole
-rwxr-xr-x. 1 root root 7293 May 3 2017 network
-rw-r--r--. 1 root root 1160 Aug 5 2017 README
[root@localhost init.d]# chmod +x mysqld ##给mysqld添加可执行权限
[root@localhost init.d]# chkconfig --add /etc/init.d/mysqld ##将mysqld添加到service服务中
[root@localhost init.d]# chkconfig --level 35 mysqld on ##设置mysqld在运行级别3和5都是开启的
[root@localhost init.d]# echo "PATH=$PATH:/usr/local/mysql/bin">> /etc/profile ##设置环境变量,添加mysql命令到/etc/profile中
[root@localhost init.d]# source /etc/profile ##运行脚本,使mysql命令立即生效
[root@localhost init.d]# echo $PATH ##查看环境变量内容,mysql命令已添加成功
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
6.添加用户mysql,专门用来管理进程(程序型用户,禁止登录shell)
[root@localhost init.d]# useradd -s /sbin/nologin mysql ##添加用户mysql,禁止用户登录系统
[root@localhost init.d]# id mysql
uid=1001(mysql) gid=1001(mysql) groups=1001(mysql)
[root@localhost init.d]# chown -R mysql.mysql /usr/local/mysql ##设置属主和数组
7.初始化数据库
[root@localhost mysql]# /usr/local/mysql/scripts/mysql_install_db \
> --user=mysql \
> --ldata=/var/lib/mysql \
> --basedir=/usr/local/mysql \ ##指定管理服务的文件
> --datadir=/home/mysql ##数据的存放位置
..省略内容
8.编辑启动文件
[root@localhost mysql]# vim /etc/init.d/mysqld
...省略内容
basedir=/usr/local/mysql ##添加工作路径
datadir=/home/mysql ##添加数据路径
...省略内容
9.启动服务并设置用户密码
[root@chen scripts]# service mysqld start
Starting MySQL. SUCCESS!
[root@chen scripts]# netstat -napt | grep 3306
tcp6 0 0 :::3306 :::* LISTEN 63274/mysqld
[root@localhost mysql]# mysqladmin -u root -p password "abc123" ##给mysql的root用户设置密码
Enter password: ##原本密码为空,直接回车即可
Warning: Using a password on the command line interface can be insecure.
10.登录mysql操作环境
[root@localhost mysql]# mysql -u root -p ##连接并登录到mysql操作环境
Enter password: ##输入刚设置的密码abc123
…省略内容
mysql> show databases; ##查看有哪些数据库结尾有分号!
±-------------------+
| Database |
±-------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
±-------------------+
4 rows in set (0.00 sec)
mysql> exit ##quit或者exit退出
Bye
三、编译安装php
1.配置安装环境
[root@localhost mysql]# yum -y install \
> gd \ ##安装gd库环境
> libpng \
> libpng-devel \
> pcre \
> pcre-devel \
> libxml2-devel \
> libjpeg-devel
...省略内容
[root@localhost php]# tar jxf php-5.6.11.tar.bz2
2.configure配置
[root@localhost opt]# cd php-5.6.11/
[root@localhost php-5.6.11]# ./configure \
> --prefix=/usr/local/php5 \ ##指定安装路径
> --with-gd \ ##指定GD库
> --with-zlib \ ##支持数据压缩函数库
> --with-apxs2=/usr/local/httpd/bin/apxs \ ##设置Apache服务提供的apxs模块支持程序的文件位置
> --with-mysql=/usr/local/mysql \ ##设置MySQL数据库服务程序的安装位置
> --with-config-file-path=/usr/local/php5 \ ##设置PHP配置文件存放的位置
> --enable-mbstring ##启用多字节字符串功能,以便支持中文等代码
...省略内容
3.make&&make install
[root@localhost php-5.6.11]# make
...省略内容
[root@localhost php-5.6.11]# make install
...省略内容
4.编辑httpd的配置文件设置php的默认首页
[root@localhost php-5.6.11]# cp php.ini-development /usr/local/php5/php.ini ##移动启动脚本
[root@localhost php-5.6.11]# ln -s /usr/local/php5/bin/* /usr/local/bin ##创建命令软链接
[root@localhost php-5.6.11]# vim /etc/httpd.conf ##设置php的默认首页
...省略内容
<IfModule dir_module>
DirectoryIndex index.php index.html ##在index.html前面添加index.php
</IfModule>
...省略内容
##搜索AddType,添加如下两行
5.编辑php首页内容,重启apache服务
[root@localhost php-5.6.11]# cd /usr/local/httpd/htdocs/
[root@localhost htdocs]# ls
index.html
[root@localhost htdocs]# vim index.html
##删除原来的内容,添加以下内容
<?php
phpinfo();
?>
[root@localhost htdocs]# mv index.html index.php
[root@localhost htdocs]# ls
index.php
[root@localhost htdocs]# service httpd restart
6.在浏览器中输入14.0.0.30/index.php验证
四、搭建论坛
1.解压Discuz软件包到指定目录
[root@chen lamp]# unzip /opt/lamp/Discuz_X2.5_SC_UTF8.zip /opt/dis
2.进入解压后的目录,将upload复制到apache服务站点中,命名为bbs
[root@chen lamp]# cd /opt/dis
[root@chen dis]# ls
readme upload utility
[root@chen dis]# cp -r upload/ /usr/local/httpd/htdocs/bbs
3.为论坛创建一个数据库,给用户bbquser设置密码admin123并设置所有权限,所有终端都可登录。(%代表任意终端)
[root@localhost htdocs]# mysql -u root -p
...省略内容
mysql> create database bbs; '//创建数据库'
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| bbs |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)
mysql> grant all on bbq.* to 'bbquser '@'%' identified by 'admin123'; ##给用户bbquser设置密码admin123并设置所有权限、所有终端都可登录
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges; ##刷新数据库
Query OK, 0 rows affected (0.00 sec)
mysql> exit
Bye
4.这时在浏览器中输入14.0.0.30/bbs,开始安装论坛
5.给安装过程中网页中提示的文件指定属主为daemon
[root@localhost dis]# cd /usr/local/httpd/htdocs/
[root@localhost htdocs]# ls
bbs index.php
[root@localhost htdocs]# cd bbs
[root@localhost bbq]# ls -l
...省略内容
[root@localhost bbq]# chown -R daemon ./config
[root@localhost bbq]# chown -R daemon ./data
[root@localhost bbq]# chown -R daemon ./uc_client/
[root@localhost bbq]# chown -R daemon ./uc_server/data/
最后出现如下界面即安装成功!