理论+实验·手工编译安装LAMP架构===>Apache,MySQL,PHP
文章目录
LAMP平台概述
什么是LAMP
目前最为成熟的一种企业网站应用模式,可提供动态Web站点应用及开发环境
构成组件
Linux;Apache;MySQL;PHP/Perl/Python
LAMP的优势
成本低廉
可定制,易于开发
方便易用,安全和稳定
Apache简介
Apache起源
源于A Patchy Server,著名的开源Web服务软件
1995年时,发布Apache服务程序的1.0版本
由Apache软件基金会(ASF)负责维护
最新的名称为"Apache HTTP Server"
官方站点: http://httpd.apache.org/
主要特点
开放源代码、跨平台应用
支持种网页编程语言
模块化设计、运行稳定、良好的安全性
软件版本
1.X
目前最高版本是1.3,运行稳定
向下兼容性较好,但缺乏一些较新的功能
2.X
目前最高版本是2.4
具有更多的功能特性
与1.X相比,配置管理风格存在较大差异
编译安装httpd服务器
编译安装的优点
具有较大的自由度,功能可定制
可及时获得最新的软件版本
普遍适用于大多数Linux版本,便于移植使用
获得Apache服务器的源码包
参考地址: http://httpd.apache.org/download.cgi
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
Web站点部署过程
1:确定网站名字,IP地址
2:配置并启动httpd服务
3:部署网页文档
4:在客户机中访问Web站点
5:查看Web站点访问情况
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:需要包含进来的其他配置文件
Apache实验
实验环境
CentOS 7.6
相关源码包
实验步骤
#解压缩源码包
[root@hostname apache]# tar jxvf httpd-2.4.29.tar.bz2
[root@hostname apache]# tar zxvf apr-1.6.2.tar.gz
[root@hostname apache]# tar zxvf apr-util-1.6.0.tar.gz
#将解压后的源码包放入apr与apr-util
[root@hostname apache]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@hostname apache]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
#切换目录后进行后续操作
[root@hostname apache]# cd httpd-2.4.29/
#安装一些必需的工具
[root@hostname httpd-2.4.29]# yum -y install \
gcc \
gсc-c++ \
make \
pcre-devel \
expat-devel \
perl
#设置安装路径等相关配置信息
[root@hostname httpd-2.4.29]# ./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cg
#编译安装
[root@hostname httpd-2.4.29]# make && make install
#将apachectl拷贝到init.d目录下方便后续直接使用service调用
[root@hostname httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
#修改配置文件信息
[root@hostname httpd-2.4.29]# vim /etc/init.d/httpd
#!/bin/sh
#chkconfig: 35 85 21 ===>自行添加
#description: Apache is a World Wide Web server ===>自行添加
......
#修改配置文件信息
[root@hostname httpd-2.4.29]# vim /usr/local/httpd/conf/httpd.conf
......
ServerName www.test.com:80
......
Listen 20.0.0.10:80
#Listen 80
......
#建立软链接方便后续操作
[root@hostname httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/
[root@hostname httpd-2.4.29]# ln -s /usr/local/httpd/bin/* /usr/local/bin/
#关闭防火墙跟核心防护
[root@hostname httpd-2.4.29]# systemctl stop firewalld
[root@hostname httpd-2.4.29]# setenforce 0
#开启服务
[root@hostname httpd-2.4.29]# service httpd start
实验结果
在网页上面输入"20.0.0.10"测试
MySQL实验
实验环境
CentOS 7.6
相关源码包
实验步骤
#解压缩源码包
[root@hostname mysql]# tar zxvf mysql-5.6.26.tar.gz
#进入该目录进行后续操作
[root@hostname mysql]# cd mysql-5.6.26/
#安装相关的软件
[root@hostname mysql-5.6.26]# yum -y install ncurses-devel autoconf cmake git
#设置安装路径及相关配置信息
[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/\
-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock
#编译安装
[root@localhost mysql-5.6.26]# make && make install
#将文件my-default.xnf拷贝到/etc/my.cnf
[root@localhost mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? yes
#将mysql.server拷贝到/etc/init.d/mysqld
[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]# chmod +x mysqld
#增加mysqld服务
[root@localhost init.d]# chkconfig --add mysqld
#把mysqld在运行级别为3,5的情况下都是on(开启)的状态。
[root@localhost init.d]# chkconfig mysqld --level 35 on
#添加进环境变量方便直接调用
[root@localhost init.d]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
#重新加载
[root@localhost init.d]# source /etc/profile
#创建不能登录的mysql用户
[root@localhost init.d]# useradd -s /sbin/nologin mysql
#修改属主属组
[root@localhost init.d]# chown -R mysql.mysql /usr/local/mysql/
#指定数据库的文件存放位置
/usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--data=/var/lib/mysql \
--basedir=/usr/local/mysql \
--datadir=/home/mysql
#修改配置文件
[root@localhost init.d]# vim /etc/init.d/mysqld
......
basedir=/usr/local/mysql
datadir=/home/mysql
......
#开启mysqld服务
[root@localhost home]# service mysqld start
#创建数据库的密码
[root@localhost home]# mysqladmin -u root -p password "abc123"
实验结果
#登录数据库
[root@hostname ~]# mysql -u root -p
Enter password: 输入密码abc123
mysql> 进入数据库成功
PHP实验
实验环境
CentOS 7.6
相关源码包
实验步骤
#安装相关的软件
[root@localhost php]# yum -y install \
gd \
libpng \
libpng-devel \
pcre \
pcre-devel \
libxml2-devel \
libjpeg-devel
#解压源码包
[root@localhost php]# tar jxvf php-5.6.11.tar.bz2
#进入该目录进行后续的操作
[root@localhost php]# cd php-5.6.11/
#设置安装目录及相关配置信息
[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 \
--enable-mbstring
#编译安装
[root@localhost php-5.6.11]# make && make install
#将php.ini-development拷贝到/usr/local/php5/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/
#修改配置文件
[root@localhost php-5.6.11]# vim /etc/httpd.conf
......
AddType application/x-httpd-php .php ===>追加到通用的语句后面就可以
AddType application/x-httpd-php-source .phps ===>追加到通用的语句后面就可以
......
DirectoryIndex index.php index.html
#修改网页信息
[root@localhost php-5.6.11]# vim /usr/local/httpd/htdocs/index.html
<?php
phpinfo();
?>
#进入网页的目录下
[root@hostname php-5.6.11]# cd /usr/local/httpd/htdocs/
#重命名文件名
[root@hostname htdocs]# mv index.html index.php
#关闭核心防护跟防火墙
[root@localhost php-5.6.11]# setenforce 0
[root@localhost php-5.6.11]# systemctl stop firewalld
#开启服务
[root@localhost php-5.6.11]# service httpd restart
[root@localhost php-5.6.11]# service mysqld restart
实验结果
在网页上面测试"20.0.0.10/index.php"
安装论坛
实验环境
论坛软件包
CentOS 7.6
实验步骤
#登录mysql数据库
[root@localhost bbs]# mysql -u root -p
Enter password:
#创建一个数据库
mysql> CREATE DATABASE bbs;
#未数据库bbsuser创建密码
mysql> GRANT all ON bbs.* To 'bbsuser'@'%' IDENTIFIED BY 'admin123';
#刷新数据库
mysql>flush privileges;
#退出数据库
mysql>exit
#解压压缩包
unzip Discuz X2.5 SC UTF8.zip -d /opt/dis
#进入当前目录进行后续操作
[root@localhost opt]# cd /opt/dis
#复制文件
[root@localhost dis]# cp -r upload/ /usr/local/httpd/htdocs/bbs
#进入该目录进行后续操作
[root@localhost dis]# cd /usr/local/httpd/htdocs/bbs
#添加权限
[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
实验结果
浏览器上面输入"20.0.0.10/bbs"