架构介绍

LAMP=Linux+Apache(httpd)+Mysql+PHP
三个角色可以在一台机器部署,也可以分开(apache和php要在一起)

示例:当一个网站用户登录网站时,apache先检查用户的请求是动态还是静态的,apache在获取用户的登录账户与密码后通过php模块与mysql中用户信息进行比对,在比对后将信息通过php返回给apache,apache将返回给用户一个登录状态,属于动态请求。
登录网站时网页登录时出现的图片,logo文件存放在linux的某个目录下,属于静态文件。及client与服务器之间的请求属于静态请求

mysql安装

  1. mysql5.6安装
  • 将二进制源码包传输到/usr/local/src目录下
[root@zhounan src]# ls
mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
  • 解压压缩包
[root@zhounan src]# tar -zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
  • 将解压后文件移动到对应文件夹下并改名
[root@zhounan src]# mv mysql-5.6.39-linux-glibc2.12-x86_64/ /usr/local/mysql
  • 创建用户组与用户
[root@zhounan src]# groupadd mysql #创建mysql用户组
[root@zhounan src]# useradd -g mysql mysql #创建用户mysql并加入到mysql用户组中
[root@zhounan src]# cd /usr/local/mysql/ #进入mysql程序主目录下
[root@zhounan mysql]# chown -R mysql . #当前目录授权给MySQL用户
[root@zhounan mysql]# chgrp -R mysql . #当前目录授权给MySQL用户组
  • 安装mysql
[root@zhounan mysql]# /usr/local/mysql/scripts/mysql_install_db  --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

/usr/local/mysql/scripts/mysql_install_db 安装程序路径
–user= 指定用户
–basedir= 指定安装路径
–datadir= 指定数据库路径

  • 配置启动服务
[root@zhounan mysql]# cp support-files/my-default.cnf /etc/my.cnf #拷贝配置文件
[root@zhounan mysql]# cp support-files/mysql.server /etc/init.d/mysqld #拷贝启动脚本
[root@zhounan mysql]# vim /etc/init.d/mysqld #修改启动脚本
#找到如下行修改
basedir=/usr/local/mysql #安装路径
datadir=/usr/local/mysql/data #数据库存放路径
  • 加入系统服务
[root@zhounan data]# chkconfig --add mysqld
[root@zhounan data]# chkconfig --list #查看其否成功注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。 要列出 systemd 服务,请执行 'systemctl list-unit-files'。查看在具体 target 启用的服务请执行'systemctl list-dependencies [target]'。mysqld            0:关 1:关 2:开 3:开 4:开 5:开 6:关
netconsole      0:关 1:关 2:关 3:关 4:关 5:关 6:关
network         0:关 1:关 2:开 3:开 4:开 5:开 6:关
  • 启动mysql服务
[root@zhounan data]# service  mysqld startSUCCESS!  #提示success则成功启动服务
  • 注意事项
    如登录mysql时提示未找到命令则需要建立软链接
[root@zhounan mysql]# ln -s /usr/local/mysql/bin/mysql /usr/bin//usr/local/mysql/bin/mysql #mysql安装路径下mysql命令路径
  • 设置root密码
set password = password('your password');

安装apache

  • 将源码包上传到对应目录下解压并且移动到对应目录下
[root@zhounan src]# ls  apr* http*
apr-1.6.5.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.37.tar.gz
[root@zhounan src]# tar zxvf apr-1.6.5.tar.gz #解压三个包
[root@zhounan src]# tar zxvf apr-util-1.6.1.tar.gz
[root@zhounan src]# tar zxvf httpd-2.4.37.tar.gz
  • 安装编译apr
[root@zhounan src]# cd /usr/local/apr-1.6.5
[root@zhounan apr]# ./configure --prefix=/usr/local/apr #安装apr
[root@zhounan apr]# make && make install #编译apr
[root@zhounan apr-1.6.5]# ls /usr/local/apr/ #查看apr安装后生成的文件
bin  build-1  include  lib
  • 安装apr-util
[root@zhounan apr]# cd /usr/local/apr-util-1.6.1
[root@zhounan apr-util]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr #此时需要跟apr安装路径。否则失败
[root@zhounan apr-util]# make && make install
[root@zhounan apr-util-1.6.1]# ls /usr/local/apr-util/ #查看apr-util安装后生成的文件
bin  include  lib

问题:xml/apr_xml.c:35:19: 致命错误:expat.h:没有那个文件或目录 #include <expat.h>

解决:缺少expat-devel包

yum install expat-devel

  • 安装apache
[root@zhounan httpd-2.4.37]# ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
[root@zhounan httpd-2.4.37]#make && make install
[root@zhounan httpd-2.4.37]# ls /usr/local/apache2.4/
bin  build  cgi-bin  conf  error  htdocs  icons  include  logs  man  manual  modules
  • apache目录介绍
    /bin 程序启动目录
    /conf 配置文件所在目录
    /htdocs 访问页存放目录
    /logs 日志目录
    /man 帮助文档目录
    /modules 扩展模块目录

注意:这里需指定apr apr-util的安装路径
上述命令指定了拓展模块 enable-so与enable-mods-shared=most

错误:configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/

解决:缺少 pcre-devel包

yum -y install pcre-devel

  • 查看apache拓展模块命令
[root@zhounan httpd-2.4.37]# /usr/local/apache2.4/bin/httpd -M
  • 启动apache
[root@zhounan httpd-2.4.37]# /usr/local/apache2.4/bin/apachectl start

安装php5.6

  • 上传文件到对应目录下解压并移动到对应目录下
[root@zhounan php-5.6]# cd /usr/local/src/
[root@zhounan src]# ls php-5.6.32.tar.bz2
php-5.6.32.tar.bz2
[root@zhounan src]# tar -jxvf php-5.6.32.tar.bz2
[root@zhounan src]# mv php-5.6.32 /usr/local/php-5.6/
[root@zhounan src]# cd /usr/local/php-5.6/
  • 安装php
[root@zhounan php-5.6]#  ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc  --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif

安装详解
./configure --prefix= #指定安装后路径
–with-apxs2= #指定安装配置路径
–with-config-file-path= #指定安装后配置文件路径
–with-mysql= #指定mysql安装路径
–with-mysqli= #指定mysql参数路径
其他的为扩展模块

错误1:configure: error: xml2-config not found. Please check your libxml2 installation.
解决:[root@zhounan php-5.6]# yum -y install libxml2-devel
错误2:configure: error: Cannot find OpenSSL’s <evp.h>
解决:[root@zhounan php-5.6]# yum -y install openssl-devel
错误3:configure: error: Please reinstall the BZip2 distribution
解决:[root@zhounan php-5.6]# yum -y install bzip2-devel
错误4:configure: error: jpeglib.h not found.
解决:[root@zhounan php-5.6]# yum -y install libjpeg-devel
错误5:configure: error: png.h not found.
解决:[root@zhounan php-5.6]# yum -y install libpng-devel
错误6:configure: error: freetype-config not found.
解决:[root@zhounan php-5.6]# yum -y install freetype-devel
错误7:configure: error: mcrypt.h not found. Please reinstall libmcrypt.
解决:[root@zhounan php-5.6]# yum -y install epel-release
[root@zhounan php-5.6]# yum -y install libmcrypt-devel

  • 编译php
make && make install
  • 查看php扩展模块
[root@zhounan php]# /usr/local/php/bin/php -m
[root@zhounan php]# ls -sh /usr/local/apache2.4/modules/libphp5.so #与php结合拓展模块文件
36M /usr/local/apache2.4/modules/libphp5.so
  • apache配置文件
[root@zhounan php]# vim /usr/local/apache2.4/conf/httpd.conf

  • 查看apache扩展模块
[root@zhounan php]# /usr/local/apache2.4/bin/httpd -M
  • 复制配置文件并查看是否生效
cp /usr/local/php-5.6/php.ini-production /usr/local/php/etc/php.ini
[root@zhounan ~]# /usr/local/php/bin/php -i |less

php与apache结合

  • 取消php启动告警
[root@zhounan ~]# vim /usr/local/apache2.4/conf/httpd.conf
############找到如下行###########
#ServerName www.example.com:80 #删除前面的#号后保存
  • 修改granted
############找到如下行##############
<Directory />AllowOverride noneRequire all denied #修改denied为granted
</Directory>#
  • 增加php解析配置
##########找到如下两行######################AddType application/x-compress .ZAddType application/x-gzip .gz .tgz
##########增加其下一行######################AddType application/x-httpd-php .php
  • 增加php索引页
########找到如下行添加index.php##############
<IfModule dir_module>DirectoryIndex index.html index.php #增加index.php
</IfModule>

修改后正确如图



  • 重新加载配置文件
[root@zhounan ~]# /usr/local/apache2.4/bin/apachectl -t #检查配置文件是否有误
Syntax OK
[root@zhounan ~]# /usr/local/apache2.4/bin/apachectl graceful #重新加载配置文件
  • 测试php是否正常
[root@zhounan ~]# vim /usr/local/apache2.4/htdocs/1.php #新建1.php文件
#########插入如下内容保存############
<?php
phpinfo();
?>
~

然后在网页中输入ip加1.php

配置默认虚拟主机

  • 取消虚拟主机配置文件注销
[root@zhounan ~]# vim /usr/local/apache2.4/conf/httpd.conf
##########删除前面的#号############
#Include conf/extra/httpd-vhosts.conf #删除#号
  • 虚拟主机配置文件
[root@zhounan1 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>ServerAdmin webmaster@dummy-host.example.com #定义网站管理员邮箱可删除不用DocumentRoot "/usr/local/apache2.4/docs/dummy-host.example.com"  #网站配置文件根目录ServerName dummy-host.example.com #网站域名ServerAlias www.dummy-host.example.com #网站另一个域名 即两个域名都可以访问都同一个网站ErrorLog "logs/dummy-host.example.com-error_log"  #定义错误日志CustomLog "logs/dummy-host.example.com-access_log" common #定义访问日志
</VirtualHost>

第一个虚拟主机既默认虚拟主机,在该服务器上N个网站时,当其他虚拟主机没有设置ServerName时,当用户访问该服务器ip时,则都指向第一个虚拟主机。

实例配置虚拟主机

  • 修改虚拟主机配置文件
[root@zhounan1 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>ServerAdmin webmaster@dummy-host.example.comDocumentRoot "/usr/local/apache2.4/docs/dummy-host.example.com"ServerName dummy-host.example.comServerAlias www.dummy-host.example.comErrorLog "logs/dummy-host.example.com-error_log"CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost><VirtualHost *:80>DocumentRoot "/data/www/phpems.com" #网站目录ServerName phpems.com #网站域名ServerAlias www.phpems.com www.zhounan.com #网站域名别名ErrorLog "logs/phpems.com-error_log"  #访问失败日志CustomLog "logs/phpems.com-access_log" common #访问成功日志
</VirtualHost>

创建网站根目录及文件

[root@zhounan1 ~]#mkdir -p /data/www/phpems.com/
[root@zhounan1 ~]# vim /data/www/phpems.com/index.php 创建php解析文件
###########添加如下内容###############
<?
echo "I'm fine";
~
  • 测试访问
[root@zhounan1 ~]# curl -x192.168.131.10:80 phpems.com
I'm fine[root@zhounan1 ~]#  #可以访问到index.php中的内容
[root@zhounan1 ~]# curl -x192.168.131.10:80 www.zhounan.com
I'm fine[root@zhounan1 ~]#  #使用别名域名也可以正常访问

LAMP架构介绍与网站部署相关推荐

  1. Lamp 架构 搭建 论坛网站

    实验环境: firewalld : stoped selinux: disabled 一. 构建lamp架构搭建论坛网站 在server1和server2上都安装部署相同的论坛网站,且二者共用同一个数 ...

  2. LAMP架构介绍以及Apache源码安装

    一.LAMP架构介绍以及Apache源码安装 1.1.LAMP概述 LAMP是企业基础的应用架构 LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web ...

  3. LAMP架构介绍、MySQL和MariaDB介绍、MySQL安装

    2019独角兽企业重金招聘Python工程师标准>>> LAMP架构介绍 Linux+Apache+MySQL+PHP 就是在linux系统上安装httpd. mysql .PHP, ...

  4. LAMP架构介绍,MySQL、MariaDB介绍,MySQL安装

    2019独角兽企业重金招聘Python工程师标准>>> LAMP架构介绍: MySQL.MariaDB介绍: Community 社区版本   =开源版本 Enterprise 企业 ...

  5. 5月23日任务 LAMP架构介绍、MySQL、MariaDB介绍、 MySQL安装

    2019独角兽企业重金招聘Python工程师标准>>> 11.1 LAMP架构 LAMP 是Linux. Apache. MySQL. PHP的简写,其实就是把Apache.MySQ ...

  6. 《淘宝技术这十年》使用LAMP架构开发的网站

    摘要:不论什么站点的发展都不是一蹴而就的.它在发展过程中会遇到各种各样的问题和业务带来的压力.作者子柳从工程师的角度讲述淘宝这个超大规模互联网系统的成长历程,及其全部主动和被动的技术变革的前因后果. ...

  7. LAMP架构介绍MySQL、MariaDB介绍 MySQL安装

  8. LAMP架构(LAMP介绍,mysql/mariaDB介绍,Mysql安装)

    一.LAMP架构介绍: Linux+  Apache(httpd)+ mysql  +   php 操作系统+外网服务软件 + 存储软件 + 脚本语言(由C开发) PHP网站 三个角色可以装在一台机器 ...

  9. 基于 LAMP 架构实现 Discuz 论坛搭建

    目录 1. LAMP 架构介绍 1.1 概述 1.2 构建顺序 1.3 各组件主要作用 1.4 源码编译安装的优点 2. 架构搭建过程 2.1 安装前准备 2.2 安装 apache 2.3 安装 m ...

最新文章

  1. AutoML前沿技术与实践经验分享 | 免费报名
  2. javascript音频管理方案:SoundManager2
  3. 英国《金融时报》:全力加码早期投资,红杉中国在下一盘怎样的棋?
  4. stm32 IAP在线升级的个人经验以及实现方法
  5. python网络编程视频教程_Java网络开发视频教程 – 一站式学习Java网络编程视频教程 全面理解BIO(无密)...
  6. 数据库查询某一列大写转化小写字母表示_算法/开发 面试必看! 【数据库】面试题合集...
  7. MySQL利用存储过程清除所有表中的所有记录
  8. VMware文件共享
  9. Apache POI导出Excel
  10. Hadoop1.0.4单节点StandAlone及Pseudo-Distributed部署方法
  11. CSS 相对定位与绝对定位
  12. PSD缩略图的设置方法
  13. linux环境刷amd显卡bios,amd显卡刷bios方法
  14. 阿里云 银行卡 信息 四要素 验证
  15. 上海提取公积金所需材料
  16. 重点工作事项督办督查跟踪管理方案
  17. U盘文件全变快捷方式解决办法
  18. 当你觉得生活快熬不下去时,请你读一读《活着》
  19. Oracle函数的确定性
  20. 数字化转型的失败原因及成功之道

热门文章

  1. 一战成硕之双非二本科班考上中科大软院
  2. 技术管理实战笔记-自我认知篇下
  3. python求时间序列所有的极值点
  4. Python 继承/基础综合练习题
  5. 洛谷P3243 [HNOI2015]菜肴制作——拓扑排序
  6. Dev C++开发环境的配置及使用
  7. Cannot reattach ActivatedRouteSnapshot created from a different route
  8. 用eclipse编写第一个程序详解(hello world)
  9. CSS中的自适应字体大小
  10. EF for MySql中文乱码问题解决