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平台
root@promote ~]# setenforce 0 ##关闭linux核心防护
[root@promote ~]# systemctl stop firewalld.service ##关闭防火墙
[root@promote ~]# cd /opt
[root@promote opt]# mkdir apache mysql php ##建立三个目录
[root@promote opt]# ls
apache a.sh mysql php rh test.txt
[root@promote opt]# cd apache/
[root@promote apache]# ls
[root@promote apache]# rz -E ##把软件包拖进去
rz waiting to receive.
[root@promote apache]# ls
apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2
[root@promote apache]# tar jxvf httpd-2.4.29.tar.bz2 ##解压软件包到当前目录
[root@promote apache]# ls
apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz httpd-2.4.29 httpd-2.4.29.tar.bz2
[root@promote apache]# tar zxvf apr-util-1.6.0.tar.gz ##解压软件包
[root@promote apache]# tar zxvf apr-1.6.2.tar.gz ##解压软件包
[root@promote 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@promote apache]# mv apr-1.6.2 httpd-2.4.29/srclib/apr ##把解压的软件包移到/srclib/apr下面
[root@promote apache]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util ##把解压的软件包移到/srclib/apr-util下面
[root@promote apache]# ls httpd-2.4.29/srclib/
apr apr-util Makefile.in
[root@promote apache]# yum -y install \ ##安装环境
> gcc \
> gcc-c++ \
> make \
> pcre-devel \ ##支持正则表达式
> expat-devel \ ##支持解析xml格式
> perl ##支持perl语言
[root@promote apache]# ls
apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz httpd-2.4.29 httpd-2.4.29.tar.bz2
[root@promote apache]# cd httpd-2.4.29/
[root@promote httpd-2.4.29]# ls
ABOUT_APACHE CMakeLists.txt INSTALL NWGNUmakefile
acinclude.m4 config.layout InstallBin.dsp os
Apache-apr2.dsw configure LAYOUT README
Apache.dsw configure.in libhttpd.dep README.cmake
apache_probes.d docs libhttpd.dsp README.platforms
ap.d emacs-style libhttpd.mak ROADMAP
build httpd.dep LICENSE server
BuildAll.dsp httpd.dsp Makefile.in srclib
BuildBin.dsp httpd.mak Makefile.win support
buildconf httpd.spec modules test
CHANGES include NOTICE VERSIONING
[root@promote httpd-2.4.29]# ./configure \ ##进行配置
> --prefix=/usr/local/httpd \ ##指定安装路径
> --enable-so \
> --enable-rewrite \
> --enable-charset-lite \
> --enable-cgi
[root@promote httpd-2.4.29]# make
[root@promote httpd-2.4.29]# make install
[root@promote httpd-2.4.29]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd ##把启动脚本放到/etc/init.d/httpd目录下
[root@promote httpd-2.4.29]# ls /etc/init.d
functions httpd netconsole network README
[root@promote httpd-2.4.29]# cd /etc/init.d
[root@promote init.d]# vim httpd ##进配置文件修改 加入下面两行 进行优化
#chkconfig: 35 85 21 ## //35级别自动运行 第85个启动 第21个关闭
#description: Apache is a World Wide Web server ## 这个属于描述性信息 可以不写
[root@promote init.d]# chkconfig --add httpd ## 添加服务名称 便于server所识别
[root@promote init.d]# ln -s /usr/local/httpd/conf/httpd.conf /etc/httpd.conf ##建立软连接
[root@promote init.d]# vim /etc/httpd.conf
##1.进入配置文件查找Listen 监听端口 注释ipv6 开启ipv4 ipv4后面地址改成自己本地地址
##2. 查找ServerName 修改域名
[root@promote init.d]# ln -s /usr/local/httpd/bin/* /usr/local/bin/ ##建立软连接
[root@promote 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@promote init.d]# httpd -t ## 验证语法
Syntax OK
[root@promote init.d]# service httpd start ##启动服务
[root@promote init.d]# netstat -ntap | grep 80 ##查看80端口是否开启
tcp 0 0 192.168.169.100:80 0.0.0.0:* LISTEN 48546/httpd
最后进入网页输入网址看是否成功192.168.169.100
安装Mysql
[root@promote init.d]# cd /opt
[root@promote opt]# ls
apache a.sh mysql php rh test.txt
[root@promote opt]# cd mysql/
[root@promote mysql]# ls
[root@promote mysql]# rz -E ##把软件包拖进去
rz waiting to receive.
[root@promote mysql]# yum install -y ncurses-devel autoconf cmake ##安装三个包 //Autoconf是一个用于包,以适应多种Unix类系统的 shell脚本的工具
[root@promote mysql]# ls
mysql-5.6.26.tar.gz
[root@promote mysql]# tar zxvf mysql-5.6.26.tar.gz ##解压缩
[root@promote mysql]# cd mysql-5.6.26/
[root@promote mysql-5.6.26]# ls
BUILD dbug libmysqld regex unittest
BUILD-CMAKE Docs libservices scripts VERSION
client Doxyfile-perfschema man sql vio
cmake extra mysql-test sql-bench win
CMakeLists.txt include mysys sql-common zlib
cmd-line-utils INSTALL-SOURCE mysys_ssl storage
config.h.cmake INSTALL-WIN-SOURCE packaging strings
configure.cmake libevent plugin support-files
COPYING libmysql README tests
[root@promote mysql-5.6.26]# cmake \
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ ##指定安装路径
> -DDEFAULT_CHARSET=utf8 \---------------------------------
> -DDEFAULT_COLLATION=utf8_general_ci \------------------##三行都是字符集的设定
> -DEXTRA_CHARSETS=all \-------------------------------------
> -DSYSCONFIDIP=/etc \ ##指定配置文件所在的位置
> -DMYSQL_DATADIR=/home/mysql/ \ ##数据文件存放的位置
> -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock ##mysql.sock通信文件也是一个连接文件 连接数据库的文件
[root@promote mysql-5.6.26]# make
[root@promote mysql-5.6.26]# make install
[root@promote mysql-5.6.26]# cp support-files/my-default.cnf /etc/my.cnf ##覆盖 这是配置文件
cp:是否覆盖"/etc/my.cnf"? yes
[root@promote mysql-5.6.26]# cp support-files/mysql.server /etc/init.d/mysqld ##启动脚本 复制
[root@promote mysql-5.6.26]# cd /etc/init.d/
[root@promote init.d]# ls
functions httpd mysqld netconsole network README
[root@promote init.d]# chmod +x mysqld ##给执行权限
[root@promote init.d]# chkconfig --add /etc/init.d/mysqld ##让server管理mysqld 把名字告诉他
[root@promote init.d]# chkconfig --level 35 mysqld on ##开机自启动
[root@promote init.d]# vim /etc/profile
进入配置文件在最后一行加入这段话 PATH=$PATH:/usr/local/mysql/bin
[root@promote init.d]# source /etc/profile ##加载
[root@promote init.d]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
[root@promote init.d]# useradd -s /sbin/nologin mysql ##添加管理用户
[root@promote init.d]# id mysql
uid=1001(mysql) gid=1001(mysql) 组=1001(mysql)
[root@promote init.d]# chown -R mysql.mysql /usr/local/mysql/ ##把主和组都变成mysql
[root@promote init.d]# cd /usr/local/mysql/
[root@promote mysql]# ls
bin data include lib mysql-test scripts sql-bench
COPYING docs INSTALL-BINARY man README share support-files
[root@promote mysql]# cd scripts/
[root@promote scripts]# ls
mysql_install_db
[root@promote scripts]# /usr/local/mysql/scripts/mysql_install_db \
> --user=mysql \
> --ldata=/var/lib/mysql \ ##数据库的库文件所在位置
> --basedir=/usr/local/mysql \ ##数据库服务文件所在位置 根目录
> --datadir=/home/mysql ##数据存放位置
[root@promote scripts]# vim /etc/init.d/mysqld
##进入配置文件查找basedir 去指定两个路径basedir=/usr/local/mysql
datadir=/home/mysql
[root@promote scripts]# service mysqld start ##启动服务
Starting MySQL. SUCCESS!
[root@promote scripts]# netstat -ntap | grep 3306 ##查看端口号
tcp6 0 0 :::3306 :::* LISTEN 64488/mysqld
[root@promote scripts]# mysqladmin -u root -p password "abc123" ##设置管理员用户密码
Enter password: ##这个是原始密码为空
Warning: Using a password on the command line interface can be insecure.
[root@promote scripts]# mysql -u root -p ##登录数据库
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> quit
Bye
安装php
[root@promote php-5.6.11]# yum -y install \ ##安装环境
> gd \ ##处理图像的扩展库
> libpng \ ##png图片
> libpng-devel \
> pcre \ ##正则
> pcre-devel \
> libxml2-devel \ ##xml文件
> libjpeg-devel ##图片处理
[root@promote scripts]# cd /opt
[root@promote opt]# ls
apache a.sh mysql php rh test.txt
[root@promote opt]# cd php/
[root@promote php]# ls
[root@promote php]# rz -E ##把软件包拖进去
rz waiting to receive.
[root@promote php]# ls
php-5.6.11.tar.bz2
[root@promote php]# tar jxvf php-5.6.11.tar.bz2 ##解压
[root@promote php]# ls
php-5.6.11 php-5.6.11.tar.bz2
[root@promote php]# cd php-5.6.11/
[root@promote php-5.6.11]# ./configure \ ##进行配置
>--prefix=/usr/local/php5 \ ##把php装在 /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@promote php-5.6.11]# make
[root@promote php-5.6.11]# make install
[root@promote php-5.6.11]# cp php.ini-development /usr/local/php5/php.ini ##把配置文件php.ini复制到php5当中
[root@promote php-5.6.11]# ln -s /usr/local/php5/bin/* /usr/local/bin/ ##让命令让系统能识别
[root@promote php-5.6.11]# vim /etc/httpd.conf
##1.进入配置文件查找AddType 在 #AddType application/x-gzip .tgz 这个后面加入两行语句
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
##2.查找index 在 DirectoryIndex index.html 这段话中做修改 DirectoryIndex index.php index.html
[root@promote htdocs]# service httpd stop
[root@promote htdocs]# service httpd start
[root@promote php-5.6.11]# 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
进网址查看是否成功 192.168.169.100/index.php