本章结构
一、Apache网站服务
1.Apache简介
(1) Apache起源
- 源于A Patchy Server,著名的开源Web服务软件
- 1995年时,发布Apache服务程序的1 .0版本
- 由Apache软件基金会(ASF) 负责维护
- 最新的名称为“Apache HTTP Server”
- 官方站点: ht:/:ttdt .apache.org/
Apache简介2-2
(2)主要特点
- 开放源代码、跨平台应用(apr帮助跨平台)
- 支持多种网页编程语言
- 模块化设计、运行稳定、良好的安全性
(3)软件版本
1.X
- 目前最高版本是1.3,运行稳定
- 向下兼容性较好,但缺乏- 些较新的功能
2.X - 目前最高版本是2.4.
- 具有更多的功能特性
- 与1.X相比,配置管理风格存在较大差异
2.编译安装httpd服务器
1.准备工作
[root@www ~]# rpm -e httpd --nodeps //先卸载rpm安装的httpd,--nodeps忽略软件包依赖性
[root@www ~]# yum install -y apr-util-devel pcre-devel //安装相关依赖包
2.源码编译及安装
[root@www ~]# tar zxf httpd-2.4.25.tar.gz -C /usr/src //解包,将下载获得的httpd源码包解压并释放到/usr/src目录下
[root@www ~]# cd /usr/src/httpd-2.4.25/ //切换到展开后的源码目录中
[root@www httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi //--prefix:指定将httpd服务程序安装到哪个目录;--enable-so:启动动态加载模块支持,开启核心功能模块,使httpd具备扩展功能能力;--enable-rewrite:启用网页地址重写功能,做防盗链,网站优化及目录迁移维护;--enable-charset-lite:启用字符集支持,支持使用各种字符集编码的网页;--enable-cgi:启用CGI脚本程序支持,定义规范,便于扩展网页的应用访问能力。
[root@www httpd-2.4.25]# make //编译
[root@www httpd-2.4.25]# make install //安装
3.确认安装结果
[root@www ~]# ls /usr/local/httpd
bin cgi-bin eror icons logs manual
build conf htdocs include man modules
bin:存放执行程序文件
conf:存放配置问价
htdoc:存放网页文档
logs:存放日志文件
modules:存放各种模块文件
cgi-bin:存放各种CGI程序文件
4.优化执行路径
[root@www ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin //为执行程序链接添加符号链接(软链接)
[root@www ~]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl
Irwxrwxrwx 1 root root 30 5月10 06:20 /usr/ocal/bin/apachectl ->/usr/local/httpd/bin/apachectl
Irwxrwxrwx 1 root root 265月10 06:20 /usr/local/bin/httpd ->/usr/local/httpd/bin/httpd
5.添加httpd系统服务
- 通过systemctl进行管理系统服务
[root@www system]# vim /lib/systemd/system/httpd.service
[Unit]
Description=The Apache HTTP Server
After=network.target
[Service]
Type=forking
PlFile-/s/locaclttptd/og/httpd.pid
ExecStart=/usr/local/bin/apachectl $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RetartSec=42s
[Install]
WantedBy=graphical.target
[root@www system]# systemctl enable httpd.service
[root@www system]# systemctl is-enabled httpd.service
enabled
3.httpd服务的目录结构
主要目录和文件
服务目录: /usr/local/httpd/
主配置文件: /usr/local/httpd/conf/httpd.conf //配置文件
网页目录: /usr/ocal/httpd/htdocs/
服务脚本: /s/local/httpd/bin/apachectl //启动脚本
执行程序: /usr/local/httpd/bin/httpd
访问日志: /usr/local/httpd/log/access_ log
错误日志: /sr/locahlttpd/og/error _log
httpd服务器基本配置
4.Web站点部署过程
1.确定网站名字、 IP地址
2.配置并启动httpd服务
[root@www ~]# vim /uslocal/httpd/confttpd.conf
ServerName www.kgc.com
[root@www ~]# /sr/localhttpd/bin/apachectl -t // 验证语法是否正确
Syntax OK
[root@www ~]# systemctl restart httpd
5.全局配置项:决定httpd服务器的全局运行参数
ServerRoot "/usrlocalttpd"
Listen 80 //要改的地方
User daemon
Group daemon
ServerAdmin webmaster@kgc.com
ServerName www.kgc.com //要改的地方
DocumentRoot "/usr/local/httpd/htdocs"
DirectoryIndex index.html index.php
ErrorLog logs/error log
LogLevel warn
CustomLog logs/access_ log common
PidFile logs/httpd.pid
CharsetDefault UTF-8
Include conf/extra/httpd-default.conf
......
6.常用的全局配置参数
- ServerRoot:服务目录 安装路径
- Listen:监听的IP地址、端口号
- User:运行服务的用户身份
- Group:运行服务的组身份
- ServerAdmin:管理员邮箱
- ServerName:网站服务器的域名
- DocumentRoot:网页文档的根目录
- DirectoryIndex:默认的索引页文件
- ErrorLog:设置错误日志文件的路径
- LogLevel:记录日志的级别,默认为warn
- CustomLog:访问日志文件的位置
- PidFile: 保存httpd进程PID号的文件
- AddDefaultCharset: 设置站点中网页默认的字符集编码
- Timeout:网络连接超时,默认为300秒
- KeepAlive:是否保持连接,可选On或Off
- MaxKeepAliveRequests:每次连接最多请求文件数
- KeepAlive’ Timeout:保持连接状态时的超时时间
- Include:需要包含进来的其他配置文件
7.区域配置项
- 使用一对组合标记,限定了配置项的作用范围
<Directory />
Options FollowSymLinks
AllowOverride none
**Require all denied**
</Directory>
设置黑白名单,允许哪些用户访问
二、mysql服务
1、MySQL的编译安装
1.MySQL 5.X系列版本的使用最为广泛,稳定性、兼容性都不错,此处选用mysql-5.6.36.tar.gz源码包
2.准备工作
- 确认没有使用RPM方式安装mysql-server、mysq|
- 安装光盘自带的ncurses-devel包
- 安装cmake包
[root@www ~]# tar zxf cmake-2.8.6.tar.gz
[root@www ~]# cd cmake-2.8.6
[root@www cmake-2.8.6]# .configure
[rootwww cmake-2.8.6]# gmake && gmake instll
3.源码编译及安装
[root@www ~]# groupadd mysql
[root@www ~]# useradd -M -S /sbin/nologin mysql -g mysql
[root@www ~]# tar zxf mysql-5.6.36.tar.gz -C /usr/src
[root@www ~]# cd /usr/src/mysq|-5.6.36
[root@www mysql-5.6.36]# cmake -DCMAKE_ INSTALL PREFIX=/sr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT CHARSET=utf8 -DDEFAULT_ COLLATION=utf8_ general_ ci -DWITH_ EXTRA_ CHARSETS=all
[root@www mysql-5.6.36]# make && make install
4.安装后调整
[root@www mysq|-5.6.36]# chown -R mysql:mysql /usrloca/mysql
[root@www mysq|-5.6.36]# rm -rf /etc/my.cnf
[root@www mysq|-5.6.36]# cp suppor-files/my-default.cnf /etc/my.cnf
[root@www mysq|-5.6.36]# /usr/local/mysql/scripts/mysql install db -user=mysql --basedir=/usrlocal/mysql --datadir-/usr/local/mysql/data/
[root@www mysql-5.6.36]# echo "PATH=$PATH:/usrlocal/mysql/bin"》>>/etc/profile
[root@www mysql-5.6.36]# . /etc/profile
5.启动MySQL服务
[root@www mysql-5.6.36]# cp support-files/mysql.server /etc/rc.d/init.d/ mysqld
[root@www mysql-5.6 36]# chmod +x /etc/rc.d/init.d/mysqld
[root@www mysq|-5.6.36]# chkconfig --add mysqld
[root@www mysql-5. 636]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/uslocal/mysq/daa/www.err'... SUCCESS!
[root@www mysql-5.6 36]# /etc/init.d/mysqld status
SUCCESS! MySQL running (58860)
[root@www mysql-5.6.36]# netstat -anpt I grep mysqld
tcp6 0 0 ::3306 . LISTEN 41548/mysqld
2、登录及退出MySQL环境
1.连接并登录到MySQL操作环境
mysql -u用户名[p]
提示符: mysq|>
2.设置数据库用户的密码
mysqladmin -u root [-p] password 新密码
3.退出MySQL操作环境
mysql> exit
三、PHP服务
1.准备工作
确认没有使用RPM方式安装PHP及相关依赖包
2.安装扩展工具库
数据加密工具libmcypt. mhash. mcrypt
[root@www ~]# rpm -e php php-cli php-ldap php-common php-mysql --nodeps
[root@www Packages]# rpm -ivh zlib-devel-1.2.7-17.el7.x86_ 64.rpm libxml2-devel-2.9.1-6.el7_ _2.3.x86 64.rpm xz-devel-5.2.2-1.el7 .x86_ _64.rpm
3.编译安装PHP
[root@www ~]# tar zxf php-5.5.38.tar.gz -C /usr/src
[root@www ~]# cd /usr/src/php-5.5.38
[root@www php-5.5.38]# ./configure --prefix=/usr/local/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
[root@www php-5.5.38]# make && make install
四、LAMP机构应用实例
1.LAMP平台概述
- 什么是LAMP
目前最为成熟的-种企业网站应用模式, 可提供动态Web站点应用及开发环境 - 构成组件
Linux、Apache、 MySQL、 PHP/Per/Python - LAMP的优势
成本低廉
可定制、易于开发
方便易用、安全和稳定
2.设置LAMP组件环境
1.php.ini配置调整
[rootwww ~]# tar zxf zend-ladr-p5.5-inux_x86_ 64. _update1.tar.gz C /usr/src/
[roo@www ~]# cd /usr/src/zend-loader-php5.5-linux-x86_64/
[root@www zend-loader-php5.5-linux-x86_64]# cp ZendGuardLoader.so /usr/local/php5/lib/php
[root@www php-5.3.x]# vim /usr/local/php5/php.ini
......
zend_ extension=/us/local/php5/lib/php/ZendGuardl oader.so
zend_ loader.enable=1
2.http.conf配置调整
使httpd服务器支持PHP页面解析功能
[root@www ~]# vim /usr/local/httpd/conf/httpd.conf
......
LoadModule php5_ module modules/libphp5.so
AddType application/x-httpd-php .php
DirectoryIndex index.php index.htmI
#Include conf/extra/httpd-vhosts.conf
[root@www ~]# systemctl restart httpd
3.测试LAMP协同工作
- 测试PHP网页能否正确显示
- 测试PHP网页能否访问MySQL数据库
[root@www ~]# vim /usr/local/httpd/htdocs/test1.php
<?php
phpinfo( );
?>
- 测试PHP网页能否正确显示:
- 测试PHP网页能否访问MySQL数据库
4.使用phpMyAdmin系统
- 创建新的库、新的表
- 表及数据记录的管理
- 直接执行MySQL查询语句
五.实验
实验目的:搭建LAMP架构,完成一个论坛的搭建
实验环境:VMware虚拟机中linux服务器
实验步骤:
[root@promote ~]# iptables -F //关闭防火墙
[root@promote ~]# setenforce 0 //关闭核心防护
[root@promote ~]# cd /opt
[root@promote opt]# mkdir apache mysql php //创建新目录
1、安装Apache
[root@promote opt]# cd apache/ //将三个软件压缩包用xshell放入该目录中
[root@promote apache]# tar zxvf apr-1.6.2.tar.gz //解压三个压缩包
[root@promote apache]# tar zxvf apr-util-1.6.0.tar.gz
[root@promote apache]# tar jxvf httpd-2.4.29.tar.bz2
[root@promote apache]# mv apr-1.6.2 httpd-2.4.29/srclib/apr //将apr移入httpd的安装包里面
[root@promote apache]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
[root@promote apache]#yum -y install gcc gcc-c++ make pcre-devel expat-devel perl //pcre支持正则表达式 expat支持解析xml格式 perl支持perl语言
[root@promote apache]# cd httpd-2.4.29/
[root@promote httpd-2.4.29]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi //--prefix:指定httpd服务安装目录;--enable-so:启动动态加载模块支持;--enable-rewrite:启动网页地址重写功能;--enable-charset-lite:启动字符集支持;--enable-cgi :启动CGI脚本支持
[root@promote httpd-2.4.29]# make //编译
[root@promote httpd-2.4.29]# make install //安装
[root@localhost httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd//将apchectl交给service管理
[root@promote httpd-2.4.29]# vim /etc/init.d/httpd
# chkconfig: 35 85 21 //服务识别参数,在级别3,5中启动;启动和关闭的顺序分别为85、21
# description: Apache is a World Wide Web server
[root@promote httpd-2.4.29]# chkconfig --add httpd //将httpd加入到service管理器,将httpd添加为系统服务
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf //设置软连接
[root@localhost httpd-2.4.29]# vim /etc/httpd.conf
Listen 192.168.200.120:80
#Listen 80
ServerName www.kgc.com:80
:wq //保存
[root@localhost httpd-2.4.29]# ln -s /usr/local/httpd/bin/* /usr/local/bin//
[root@localhost httpd-2.4.29]# httpd -t //验证语法
Syntax OK
[root@localhost httpd-2.4.29]# service httpd start //启动服务
[root@localhost httpd-2.4.29]# netstat -ntap | grep 80 //查看端口
tcp 0 0 192.168.200.130:80 0.0.0.0:* LISTEN 44505/httpd
Apache安装完成
2、安装mysql
[root@localhost opt]# cd /opt/mysql/
[root@localhost mysql]# ls //将压缩包通过xshell拖入目录中
mysql-5.6.26.tar.gz
[root@promote mysql]# tar xzvf mysql-5.6.26.tar.gz //解压缩
[root@promote mysql]# cd mysql-5.6.26/
[root@promote mysql]# cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ //指定mysql数据库程序安装路径
-DDEFAULT_CHARSET=utf8 \ //指定默认使用字符集编码
-DDEFAULT_COLLATION=utf8_general_ci \ //指定默认使用的字符集校对规则
-DEXTRA_CHARSETS=all \
-DSYSCONFIDIR=/etc \ //指定初始化参数文件目录
-DMYSQL_DATADIR=/home/mysql \ //管理账户家目录
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock //连接数据库的文件
[root@promote mysql-5.6.26]# make
[root@promote mysql-5.6.26]# make install
[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf //覆盖原有配置文件
cp:是否覆盖"/etc/my.cnf"? yes
[root@localhost mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld //将启动脚本交给service管理
[root@localhost mysql-5.6.26]# cd /etc/init.d/
[root@localhost init.d]# chmod +x mysqld //增加执行权限
[root@localhost init.d]# chkconfig --add /etc/init.d/mysqld //告诉service管理
[root@localhost init.d]# chkconfig --level 35 mysqld on //开机自启动
[root@localhost init.d]# vim /etc/profile
PATH=$PATH:/usr/local/mysql/bin //插入最后一行,为了方便在任何目录下使用mysql,需要设置环境变量
[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 //加载成功
[root@localhost init.d]# useradd -s /sbin/nologin mysql //添加管理mysql进程的用户mysql
[root@localhost init.d]# id mysql
uid=1001(mysql) gid=1001(mysql) 组=1001(mysql)
[root@localhost init.d]# chown -R mysql.mysql /usr/local/mysql/ //使属主属组都属于mysql用户
[root@localhost init.d]# cd /usr/local/mysql/
[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 // //以用户mysql身份执行初始化脚本mysql_install_db,指定数据存放目录
[root@localhost scripts]# vim /etc/init.d/mysqld //编辑启动脚本
basedir=/usr/local/mysql //指定根目录
datadir=/home/mysql //指定数据存放位置
[root@localhost scripts]# service mysqld start //开启mysqld服务
Starting MySQL. SUCCESS!
[root@localhost scripts]# netstat -ntap | grep 3306 //查看端口情况
tcp6 0 0 :::3306 :::* LISTEN 118373/mysqld
[root@localhost scripts]# mysqladmin -u root -p password "abc123" //设置账户mysql密码
Enter password: //原始密码为空,空格
Warning: Using a password on the command line interface can be insecure.
3.安装php
[root@localhost scripts]#yum -y install \ //安装环境
gd \
libpng \
libpng-devel \
pcre \
pcre-devel \
libxml2-devel \
libjpeg-devel
[root@localhost scripts]# cd /opt/php/
插入压缩包
[root@localhost php]# ls
php-5.6.11.tar.bz2
[root@localhost php]# tar jxvf php-5.6.11.tar.bz2 //解压压缩包
[root@localhost php]# cd php-5.6.11/
[root@localhost php]#./configure \
--prefix=/usr/local/php5 \ //php服务安装目录
--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配置文件php.ini存放位置
--enable-mbstring //启用多字节字符串功能
[root@localhost php-5.6.11]# make
[root@localhost php-5.6.11]# make install
[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 //修改Apache配置文件
LoadModule php5_module modules/libphp5.so //系统自动添加php5
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
DirectoryIndex index.php index.html //添加index.php
[root@promote ~]# service httpd restart //重启Apache服务
[root@promote ~]# cd /usr/local/httpd/htdocs/
[root@promote htdocs]# ls
index.html
[root@promote htdocs]# vim index.html
<?php
phpinfo();
?>
[root@promote htdocs]# mv index.html index.php //改成php
[root@promote htdocs]# vim index.php //查看
打开谷歌浏览器输入 192.168.200.120/index.php 成功
[root@promote htdocs]# ls /home/mysql/
auto.cnf ib_logfile0 localhost.localdomain.err mysql performance_schema
ibdata1 ib_logfile1 localhost.localdomain.pid mysql.sock test //查看sock
4、安装论坛
[root@promote htdocs]# cd /opt/
[root@promote opt]# ls
apache Discuz_X2.5_SC_UTF8.zip mysql php rh //插入论坛压缩包
[root@promote opt]# unzip Discuz_X2.5_SC_UTF8.zip //解压缩
[root@promote opt]# ls
apache Discuz_X2.5_SC_UTF8.zip mysql php readme rh upload utility
[root@promote opt]# cp -r upload/ /usr/local/httpd/htdocs/bbs
[root@promote opt]# cd /usr/local/httpd/htdocs/
[root@promote htdocs]# ls
bbs index.php
[root@promote htdocs]# cd bbs/
[root@promote bbs]# ls
admin.php config data home.php misc.php search.php uc_client
api connect.php favicon.ico index.php plugin.php source uc_server
api.php cp.php forum.php install portal.php static userapp.php
archiver crossdomain.xml group.php member.php robots.txt template
[root@promote bbs]# chown -R daemon ./config //给权限
[root@promote bbs]# chown -R daemon ./data
[root@promote bbs]# chown -R daemon ./uc_client
[root@promote bbs]# chown -R daemon ./uc_server/data
[root@promote bbs]# mysql -uroot -p
Enter password: //密码abc123
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> use bbs;
Database changed
mysql> show tables;
Empty set (0.00 sec)
mysql>
mysql> grant all on bbs.* to 'bbsuser'@'%' identified by 'admin123'; //设置论坛管理账户名和密码
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges; //刷新数据库
Query OK, 0 rows affected (0.01 sec)
5、登录浏览器
http://192.168.200.120/bbs/admin.php 后台登录
安装论坛