一、LAMPLAMP架构平台
1.1 LAMP平台概述
-
LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整台系统和相关软件,能够提供动态web站点服务及其应用开发环境
-
LAMP是一个缩写词,具体包括Linux操作系统,Apache网站服务器,MySQL数据库服务器,PHP(或perl,Python)网页编程语言
1.2 LAMP的优势
-
成本低廉
-
可定制,易于开发
-
方便易用,安全和稳定
1.3 构建LAMP平台顺序
-
在构建LAMP平台时,各组件的安装顺序依次为Linux,Apache,MySQL,PHP
-
其中Apache和MySQL的安装并没有严格的顺序要求,而PHP环境的安装一般放到最后,负责沟通web服务器和数据库系统以协同工作
1.4 编译安装的优点及步骤
- 具有较大的自由度,功能可定制
- 可及时获得最新的软件版本
- 普遍适用于大多数Linux版本,便于一直使用
二、Apache网站服务
2.1 Apache简介
Apache起源
- 源于A Patchy Server,著名的开源web服务软件
- 1955年时,发布Apache服务程序的1.0版本
- 由Apache软件基金会(ASF)负责维护
- 最新的名称为“Apache HTTP Server”
- 官方站点: http://httpd.apache.org/
主要特点
- 开放源代码,跨平台应用
- 支持多种网页编程语言
- 模块化设计,运行稳定,良好的安全性
软件版本
-
1.X
-
目前最高版本是1.3,运行稳定
-
向下兼容性较好,但缺乏一些较新的功能
-
-
2.X
-
目前最高版本是2.4
-
具有更多的功能特性
-
与1.X相比,配置管理风格存在较大差异
-
2.2 httpd服务的目录结构
- 主要目录和文件
-
服务目录: /usr/local/httpd/
-
主配置文件: /usr/local/httpd/conf/httpd.conf
-
网页目录: /usr/local/httpd/htdocs/
-
服务脚本: /usr/local/httpd/bin/apachectl
-
执行程序: /usr/local/httpd/bin/httpd
-
访问日志: /usr/local/httpd/log/access-log
-
错误日志: /usr/local/httpd/log/error-log
-
2.3 httpd.conf配置文件
- 常见的全局配置参数
-
ServerRoot:服务目录
-
Listen:监听的IP地址、端口号
-
User:运行服务的用户身份
-
Group:运行服务的组身份
-
ServerAdmin:管理员邮箱
-
ServerName:网站服务器的域名
-
DocumentRoot:网页文档的根目录
-
Directorylndex:默认的索引页 文件
-
ErrorLog:设置错误日志文件的路径
-
LogLevel:记录日志的级别,默认为warn
-
CustomLog:访问日志文件的位置
-
PidFile:保存httpd进程PID号的文件
-
AddDefaultCharset:设置站点中网页默认的字符集编码
-
Timeout:网络连接超时,默认为300秒
-
KeepAlive:是否保持连接,可选On或Off
-
MaxKeepAliveRequests:每次连接最多请求文件数
-
KeepAliveTimeout:保持连接状态时的超时时间
-
Include:需要包含进来的其他配置文件
-
2.4 部署安装Apache
环境
一台centos 7 虚拟机作为服务端
一台win10 客户机
【1】上传httpd压缩包并解压
[root@localhost ~]# iptables -F '清空防火墙规则'
[root@localhost ~]# setenforce 0 '关闭linux核心防护'
[root@localhost ~]# cd /opt
[root@localhost opt]# mkdir apache mysql php
[root@localhost opt]# ls
apache
[root@localhost opt]# cd apache/
[root@localhost apache]# rz -E '拖进去三个安装包'
rz waiting to receive.
[root@localhost apache]# ls
apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2
[root@localhost apache]# tar jxvf httpd-2.4.29.tar.bz2
[root@localhost apache]# tar zxvf apr-1.6.2.tar.gz
[root@localhost apache]# tar zxvf apr-util-1.6.0.tar.gz
[root@localhost 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
【2】源码编译安装
'移动http所需的依赖包到http/srclib目录下'
[root@localhost apache]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@localhost apache]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
[root@localhost apache]# ls httpd-2.4.29/srclib/
apr apr-util Makefile.in
[root@localhost apache]# yum -y install \ '安装源码编译所需要的软件'
> gcc \
> gcc-c++ \
> make \
> pcre-devel \ '支持正则表达式'
> expat-devel \ '支持解析xml格式 '
> perl '支持perl语言'
'部署好后,下面是手工编译安装过程'
[root@localhost apache]# cd httpd-2.4.29/ '找到configure的脚本配置'
[root@localhost httpd-2.4.29]# ls
configure
[root@localhost httpd-2.4.29]# ./configure \ '手动编译安装'
> --prefix=/usr/local/httpd \ ###指定安装路径
> --enable-so \ '开启核心功能模块'
> --enable-rewrite \ '重写功能'
> --enable-charset-lite \ '字符集设定'
> --enable-cgi '通用网关接口'
[root@localhost httpd-2.4.29]# make 'make 编译,把源码变为二进制可执行文件'
[root@localhost httpd-2.4.29]# make install
【3】优化执行路径
'配置启动脚本'
[root@localhost httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd '启动脚本放在init.d目录下'
[root@localhost httpd-2.4.29]# ls /etc/init.d/
functions httpd netconsole network README
'设置配置文件'
[root@localhost httpd-2.4.29]# cd /etc/init.d/
[root@localhost init.d]# vim httpd
# chkconfig: 35 85 21 '35级别自动运行 第85个启动 第21个关闭'
# description: Apache is a World Wide Web server
[root@localhost init.d]# chkconfig --add httpd '添加httpd系统服务(可以自动补全了)'
[root@localhost init.d]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf '创建软链接'
[root@localhost init.d]# vim /etc/httpd.conf '修改配置文件'
Listen 14.0.0.14:80 '监听地址'
#Listen 80
...
ServerName www.yyc.com:80 '监听域名'
[root@localhost init.d]# ln -s /usr/local/httpd/bin/* /usr/local/bin/ '命令识别设置'
[root@localhost init.d]# ls /usr/local/httpd/bin/
ab apu-1-config dbmmanage fcgistarter htdigest httxt2dbm
apachectl apxs envvars htcacheclean htpasswd logresolve
apr-1-config checkgid envvars-std htdbm httpd rotatelogs
[root@localhost init.d]# httpd -t '后面加-t,验证语法是否正确'
Syntax OK
【4】启动httpd服务
[root@localhost init.d]# service httpd start ###启动httpd服务
[root@localhost init.d]# netstat -ntap | grep 80 ###查看系统80端口状态
tcp 0 0 14.0.0.14:80 0.0.0.0:* LISTEN 48900/httpd
【5】验证(在浏览器上面输入服务器的IP地址)
三、MySQL的编译安装
3.1 MySQL概述
- MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。
- MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。
MySQL是一个真正的多线程,多用户的SQL数据库服务,凭借其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。 - MySQL 5.X系列版本的最为广泛,稳定性、兼容性都不错,此处选用mysql-5.6.36.tar.gz源码包
3.2 MySQL源码编译安装过程
环境
一台centos 7 虚拟机作为服务端
一台win10 客户机
【1】上传MySQL服务并解压
[root@localhost init.d]# cd /opt
[root@localhost opt]# ls
mysql
[root@localhost opt]# cd mysql/
[root@localhost mysql]# ls
[root@localhost mysql]# rz -E '拖入mysql软件包'
rz waiting to receive.
[root@localhost mysql]# ls
mysql-5.6.26.tar.gz
[root@localhost mysql]# tar xzvf mysql-5.6.26.tar.gz '解压包'
[root@localhost mysql]# ls
mysql-5.6.26 mysql-5.6.26.tar.gz
【2】安装编译
[root@localhost mysql]# yum install -y ncurses-devel autoconf cmake '安装环境包(ncures-devel 终端包、autoconf 处理shell脚本的工具包、cmake 等同于configure )'
[root@localhost mysql]# cd mysql-5.6.26/ '进入到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 \ '指定配置文件所在位置(原本/etc/my.cnf文件要删掉或者覆盖掉)'
> -DMYSQL_DATADIR=/home/mysql/ \ '数据文件存放位置(会建一个用户,用户家目录,mysql享有家目录中所有权限)'
> -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock 'mysql.sock 是一个通信文件,即使本地连接也要连接这个文件,是连接数据库的文件(属主属组必须都是mysql)'
[root@localhost mysql-5.6.26]# make '编译(时间最长)'
[root@localhost mysql-5.6.26]# make install
【3】建立配置文件
[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf '配置文件拎出来覆盖原有的my.cnf文件,yes确认'
【4】添加系统服务
[root@localhost mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld '启动脚本复制出来'
[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]# chmod +x mysqld '加执行权限x'
[root@localhost init.d]# chkconfig --add /etc/init.d/mysqld
[root@localhost init.d]# chkconfig --level 35 mysqld on '默认开机自启动'
【5】设置全局环境变量
[root@localhost init.d]# vim /etc/profile
...
PATH=$PATH:/usr/local/mysql/bin '文件末尾加一行'
[root@localhost init.d]# source /etc/profile '加载'
[root@localhost init.d]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin '能够识别mysql'
【6】创建运行用户
[root@localhost init.d]# useradd -s /sbin/nologin mysql ###创建管理mysql进程的用户mysql
[root@localhost init.d]# id mysql ###查看到这个用户和组(属主属组都是mysql)
uid=1027(mysql) gid=1027(mysql) 组=1027(mysql)
[root@localhost init.d]# chown -R mysql.mysql /usr/local/mysql/
【7】数据库初始化
[root@localhost init.d]# cd /usr/local/mysql/
[root@localhost mysql]# ls
bin data include lib mysql-test scripts sql-bench
COPYING docs INSTALL-BINARY man README share support-files
[root@localhost mysql]# cd scripts/
[root@localhost scripts]# ls
mysql_install_db
[root@localhost scripts]# /usr/local/mysql/scripts/mysql_install_db \ '数据库初始化'
> --user=mysql \ '用户名'
> --ldata=/var/lib/mysql \ '数据库的库文件'
> --basedir=/usr/local/mysql \ '服务文件的位置:根目录'
> --datadir=/home/mysql '数据存放位置'
【8】编辑启动脚本
指明两个位置:服务目录位置为根目录,数据存放位置
[root@localhost scripts]# vim /etc/init.d/mysqld
basedir=/usr/local/mysql
datadir=/home/mysql
[root@localhost scripts]# service mysqld start '启动数据库服务'
Starting MySQL.. SUCCESS!
[root@localhost scripts]# netstat -ntap | grep 3306 '查看mysql的服务端口号3306状态'
tcp6 0 0 :::3306 :::* LISTEN 11434/mysqld
[root@localhost scripts]# mysqladmin -u root -p password "19961207" '确定数据库管理员用户的密码'
Enter password: '第一次设置密码,密码为空,直接回车就行'
Warning: Using a password on the command line interface can be insecure. '警告你的密码不要显示在控制台上,用history可以查看到'
【9】登录及退出mysql操作环境
[root@localhost scripts]# mysql -u root -p '登录(-uroot可以连这写,因为只读第一个字符作为可选项)'
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.26 Source distribution
Copyright (c) 2000, 2015, 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> show databases; '查看数据库'
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql> exit '退出mysql操作环境'
Bye
四、PHP代码源码编译安装
4.1 PHP概述
- PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。
4.2 PHP源码编译安装过程
环境
一台centos 7 虚拟机作为服务端
一台win10 客户机
【1】安装PHP所需的软件包
[root@localhost scripts]# yum -y install \
> gd \ 'GD库是处理图形的扩展库,提供了一系列用来处理图片的API'
> libpng \ '小图片'
> libpng-devel \ 'png开发'
> pcre \ '正则表达式'
> pcre-devel \ '支持正则表达式'
> libxml2-devel \ '识别xml文件'
> libjpeg-devel '图片处理'
【2】上传php并解压
[root@localhost scripts]# cd /opt
[root@localhost opt]# ls
Apache mysql php rh
[root@localhost opt]# cd php/
[root@localhost php]# ls '确认没有php软件包'
[root@localhost php]# rz -E '将php软件包拖入xshell'
rz waiting to receive.
[root@localhost php]# ls
php-5.6.11.tar.bz2
[root@localhost php]# tar jxvf php-5.6.11.tar.bz2 '解压php软件包(bz2格式,用j)'
[root@localhost php]# ls
php-5.6.11 php-5.6.11.tar.bz2
【3】configure配置及编译安装
[root@localhost 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 \ '加载php5模块'
> --enable-mbstring '多字符串处理'
[root@localhost php-5.6.11]# make '编译'
[root@localhost php-5.6.11]# make install
【4】优化PHP执行路径
'php的配置文件:php.ini配置调整'
[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/ '让一些命令不能被系统识别'
'让apache支持php'
[root@localhost php-5.6.11]# vim /etc/httpd.conf
......
LoadModule php5_moudle moudles/libphp5.so
.......
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
......
DirectoryIndex index.php index.html
[root@localhost php-5.6.11]# service httpd stop
[root@localhost php-5.6.11]# service httpd start
[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
(一定要清空防火墙规则,关闭核心防护,不然php页面出不来)
【5】验证PHP服务是否启动
五、安装Discuz论坛
安装完上面三个服务后,接着操作
【1】安装环境
[root@localhost local]# cd /opt
[root@localhost opt]# ls
apache mysql php rh
[root@localhost opt]# rz -E '拖入Discuz_X2.5_SC_UTF8.zip 论坛软件包到xshell中'
rz waiting to receive.
[root@localhost opt]# ls
apache Discuz_X2.5_SC_UTF8.zip mysql php rh
[root@localhost opt]# unzip Discuz_X2.5_SC_UTF8.zip ###解压缩
[root@localhost opt]# ls
apache Discuz_X2.5_SC_UTF8.zip mysql php readme rh upload utility
[root@localhost opt]# cp -r upload/ /usr/local/httpd/htdocs/bbs ###把upload复制到/usr/local/httpd/htdocs/bbs文件中
在网页搜索14.0.0.14/bbs,要装的是这个论坛,点击我同意
会发现好多是当前状态处于不可写状态
(./config的目录、./data/ 的目录、./uc_client/的目录、./uc_server/data的目录都需要给权限)
【2】添加权限并设置论坛目录的属主为daemon
[root@localhost bbs]# chown -R daemon ./config
[root@localhost bbs]# chown -R daemon ./data
[root@localhost bbs]# chown -R daemon ./uc_client
[root@localhost bbs]# chown -R daemon ./uc_server/data
[root@localhost bbs]# ll '查看属主变成了deamon'
总用量 76
-rw-r--r--. 1 root root 2603 8月 4 09:55 admin.php
drwxr-xr-x. 11 root root 163 8月 4 09:55 api
-rw-r--r--. 1 root root 727 8月 4 09:55 api.php
drwxr-xr-x. 2 root root 23 8月 4 09:55 archiver
drwxr-xr-x. 2 daemon root 90 8月 4 09:55 config
-rw-r--r--. 1 root root 922 8月 4 09:55 connect.php
-rw-r--r--. 1 root root 253 8月 4 09:55 cp.php
-rw-r--r--. 1 root root 106 8月 4 09:55 crossdomain.xml
drwxr-xr-x. 13 daemon root 216 8月 4 09:55 data
-rw-r--r--. 1 root root 5558 8月 4 09:55 favicon.ico
-rw-r--r--. 1 root root 2110 8月 4 09:55 forum.php
-rw-r--r--. 1 root root 823 8月 4 09:55 group.php
-rw-r--r--. 1 root root 1223 8月 4 09:55 home.php
-rw-r--r--. 1 root root 5448 8月 4 09:55 index.php
drwxr-xr-x. 5 root root 64 8月 4 09:55 install
-rw-r--r--. 1 root root 1040 8月 4 09:55 member.php
-rw-r--r--. 1 root root 1381 8月 4 09:55 misc.php
-rw-r--r--. 1 root root 1757 8月 4 09:55 plugin.php
-rw-r--r--. 1 root root 985 8月 4 09:55 portal.php
-rw-r--r--. 1 root root 582 8月 4 09:55 robots.txt
-rw-r--r--. 1 root root 1158 8月 4 09:55 search.php
drwxr-xr-x. 10 root root 168 8月 4 09:55 source
drwxr-xr-x. 6 root root 72 8月 4 09:55 static
drwxr-xr-x. 3 root root 38 8月 4 09:55 template
drwxr-xr-x. 6 daemon root 92 8月 4 09:55 uc_client
drwxr-xr-x. 13 root root 241 8月 4 09:55 uc_server
-rw-r--r--. 1 root root 1691 8月 4 09:55 userapp.php
再进网页刷新一下页面,当前状态变成了可写状态
后面要连接数据库数据库中现在只有一个管理员,要为论坛单独创建数据库,单独创建管理数据库的用户
【3】创建管理数据库的用户
[root@localhost bbs]# mysql -u root -p ###进入数据库
Enter password: '输入密码'
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.26 Source distribution
Copyright (c) 2000, 2015, 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> show databases; '先查看一下数据库'
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.01 sec)
mysql> create database bbs; '创建名为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> use bbs; '进入到bbs数据库中'
Database changed
mysql> show tables; '现在还是空的数据库'
Empty set (0.00 sec)
mysql> grant all on bbs.* to 'bbsuser'@'%' identified by 'admin123'; 'grant on提升权限bbs中的所有表格,给指定的用户bbsuser,%代表可以从任意终端登录,密码为admin123'
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges; '刷新数据库'
Query OK, 0 rows affected (0.00 sec)
【4】安装登录验证
开始安装,点下一步
点击下一步
管理员密码随便设,19961207
直接登录bbs
后台登录为14.0.0.14/bbs/admin.php
输入密码19961207,点击提交
下面退出登录,到主页面点击立即注册
点击完提交后就进入yyc用户界面
搭建完成