您现在的位置是:首页 > 正文

LAMP环境搭建与配置步骤与成果展示

2024-02-29 13:09:36阅读 0

任务1 安装LAMP,基础配置解析PHP

1. 安装MySQL

(1)下载与解压

[root@localhost ~]#cd /usr/local/src       //软件包都放在这里方便管理
[root@localhost src]#tar zxvf mysql-5.6.43-linux-glibc2.12-x86_64.tar

(2)安装和配置

[root@localhost src]# useradd -s /sbin/nologin mysql
[root@localhost src]# mkdir -p /data/mysql
[root@localhost src]# chown -R mysql:mysql /data/mysql
[root@localhost src]# mv mysql-5.6.35-linux-glibc2.12-x86_64 /usr/local/mysql
[root@localhost src]# cd /usr/local/mysql
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
[root@localhost mysql]#cp support-file/my-default.cnf /etc/my.cnf
[root@localhost mysql]#vi  my-default.cnf    //修改配置文件

修改my-default.cnf配置文件

#These are commonly set ,remove the # and set as required
Basedir=/usr/local/mysql   //basedir表示MySQL包所在路径
Datadir=/data/mysql/datadir  //表示定义存放数据的位置
Port=3306     //port表示定义MySQL服务监听的端口号
Server_id=128  //表示该MySQL服务的ID号
socket = /tmp/mysql.sock    //定义MySQL服务监听的套接字地址
[root@localhost mysql]#cp  support-files/mysql.server  /etc/init.d/mysql  
[root@localhost mysql]#chmod  755  /etc/init.d/mysql
[root@localhost mysql]#vi /etc/init.d/mysql    //修改启动脚本
    basedir=/usr/local/mysql
    datadir=/data/mysql
[root@localhost mysql]#chkconfig --add mysql    //把mysql服务加到系统服务列表中
[root@localhost mysql]#chkconfig mysql on       //开机就启动
[root@localhost mysql]#service mysql start      //启动服务

(3)安装成功

[root@localhost mysql]# service mysql start
Starting MySQL SUCCESS!

(4)遇到的问题

[root@localhost mysql]# ./scripts/mysql_install_db  --user=mysql --datadir=/data/mysql
-bash: ./scripts/mysql_install_db: /usr/bin/perl: 坏的解释器: 没有那个文件或目录

解决方法

yum -y install autoconf

2. 安装Apache
(1)下载并解压

[root@localhost src]#tar -zxvf http-2.4.46.tar
[root@localhost src]#tar -zxvf apr-1.6.5.tar
[root@localhost src]#tar -zxvf apr-util-1.6.1.tar

(2)安装和配置

[root@localhost src]#cd apr-1.6.5
[root@localhost apr-1.6.5]#./configure --prefix=/usr/local/apr
[root@localhost apr-1.6.5]#make &&make install
[root@localhost apr-1.6.5]#cd /usr/local/src/apr-util-1.6.1. 
[root@localhost apr-util-1.6.1]#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
[root@localhost apr-util-1.6.1]#make &&make install
[root@localhost apr-util-1.6.1]#cd /usr/local/src/http-2.4.46
[root@localhost http-2.4.46]#./configure  --prefix=/usr/1ocal/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
[root@localhost http-2.4.46]#yum install -y pcre pcre-devel
[root@localhost http-2.4.46]#make && make install
[root@localhost http-2.4.46]#/usr/local/apache2.4/bin/apachectl -M

(3)安装成功
在这里插入图片描述

(4)遇到的问题

configure:error: in `/usr/local/src/httpd-2.2.21/srclib/apr’:
configure:error: no acceptable C compiler found in $PATH
执行./configure命令时,在遇到以上错误是,这个是因为gcc包没有安装。
yum install -y gcc命令就可以了

xml/apr_xml.c:35:19: 致命错误:expat.h:没有那个文件或目录
#include <expat.h>
^
编译中断。
make[1]: *** [xml/apr_xml.lo] 错误 1
make[1]: 离开目录“/usr/local/src/apr-util-1.6.1”
make: *** [all-recursive] 错误 1
执行make &&make install命令时报错,没有expat库文件,用yum install -y expat-devel命令安装

[root@localhost httpd-2.4.46]# ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-so --enable-mods-shared=most
执行完如果是以下报错内容
checking for pcre-config… false
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
yum install -y pcre-devel命令安装再重新执行上面命令

安装PHP
(1)下载并解压

[root@localhost ~]#cd /usr/local/src
[root@localhost src]#tar -zxvf php-5.6.30.tar.gz

(2)安装和配置

[root@localhost src]# yum install -y libxml2-devel
[root@localhost src]# yum install -y openssl openssl-devel
[root@localhost src]# yum install -y bzip2 bzip2-devel
[root@localhost src]# yum install -y libpng libpng-devel
[root@localhost src]# yum install -y freetype freetype-devel
[root@localhost src]# yum install -y epel-release
[root@localhost src]# yum install -y libmcrypt-devel    //为防止配置时出错提前安装库文件	
[root@localhost src]# cd  php-5.6.30
[root@localhost php-5.6.30]#./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-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
[root@localhost php-5.6.30]#make && make install

4. httpd解析PHP
编辑httpd的主配置文件

[root@localhost php-5.6.30]# cd /usr/local/apache2.4/conf/

搜索ServerName,把ServerName www.example.com:80前#去掉;

<Directory />
    AllowOverride none
    Require all denied
</Directory>

改成

<Directory />
    AllowOverride none  
    Require all granted
</Directory>    //目的允许所有请求访问

搜索AddType application/x-gzip .gz .tgz,在下面添加一行 AddType application/x-httpd-php .php

<IfModule dir_module>
    DirectoryIndex index.html 
</IfModule>

改成

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

(4)测试安装
① 测试配置文件是否正确

[root@localhost conf]#/usr/local/apache2.4/bin/apachectl -t    //检验配置文件是否正确
Syntax OK
[root@localhost conf]#/usr/local/apache2.4/bin/apachectl start      //启动httpd命令
[root@localhost conf]# netstat -lnp |grep httpd   //查看是否启动
tcp6       0      0 :::80                   :::*                    LISTEN      5427/httpd          
[root@localhost conf]# curl localhost     //使用curl命令简单测试,,显示了就是成功
<html><body><h1>It works!</h1></body></html>

② 测试是否正确解析PHP

[root@localhost conf]# vi /usr/local/apache2.4/htdocs/1.php     //编写一个测试脚本
<?
echo  “php解析正确”
?>
[root@localhost conf]# curl localhost/1.php
“php解析正确”[root@localhost conf]# 

测试成功

在这里插入图片描述
在这里插入图片描述

任务2 Apache配置

1. 默认虚拟主机
(1)虚拟主机
虚拟主机(共享主机,又称虚拟服务器)是一种在单一主机或主机群上,实现多网域服务的方法,可以运行多个网站或服务的技术。虚拟主机之间完全独立,并可由用户自行管理,虚拟并非指不存在,而是指空间是由实体的服务器延伸而来,其硬件系统可以是基于服务器群,或者单个服务器。
(2)配置

[root@localhost ~]# vi /usr/local/apache2.4/conf/httpd.conf
  Include conf/extra/httpd-vhosts.conf    //搜索httpd-vhost,去掉#
[root@localhost ~]# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf   //编辑虚拟主机配置文件  

配置文件

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/usr/local/apache2.4/docs/abc.com"
    ServerName abc.com
    ServerAlias www.abc.com www.aaa.com
    ErrorLog "abc.com-error_log"
    CustomLog "logs/abc.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/usr/local/apache2.4/docs/111.com"
    ServerName 111.com
    ErrorLog "logs/111.com-error_log"
    CustomLog "logs/111.com-access_log" common
</VirtualHost>

ServerAdmin指定管理员邮箱,
DocumentRoot为该虚拟主机站点的根目录,
ServaerName为网站的域名
ServerAlias为网站的第二域名
ErrorLog为站点的错误日志
CustomLog为站点的访问日志

[root@localhost apache2.4]# mkdir docs
[root@localhost apache2.4]# cd docs/
[root@localhost docs]# mkdir abc.com 111.com
[root@localhost docs]# vi abc.com/index.html
abc.com
[root@localhost docs]# vi 111.com/index.html
111.com
[root@localhost docs]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@localhost docs]# /usr/local/apache2.4/bin/apachectl graceful

(3)配置验证

[root@localhost docs]# curl -xlocalhost:80 www.abc.com 
abc.com
[root@localhost docs]# curl -xlocalhost:80 www.aaa.com 
abc.com
[root@localhost docs]# curl -xlocalhost:80 111.com 
111.com

(4)测试成功
在这里插入图片描述

网站文章

  • 修改framework中config.xml的networkAttributes网络资源后导致CTS testGetAllNetworkInfo失败

    修改framework中资源后导致CTS testGetAllNetworkInfo失败[ANSWER]原因:修改了framework资源,编译的时候资源ID发生了变化,导致通过ID获取的资源不正确,导致此项CTS case失败。修改方案:在current.txt和public.xml固定这个ID,不随平台资源修改变化:

    2024-02-29 13:09:08
  • js 类数组转数组

    对 js 稍有了解的朋友应该知道, js 里有一种叫做"类数组"的东西如字面意思, 是一些类似数组的数据类型为什么用"一些"呢?因为类数组不是一种数据类型, 是好几种类型的统称, 如:NodeList...

    2024-02-29 13:09:00
  • java localdate2018年1月12日到2023年3月1日以月分割

    java localdate2018年1月12日到2023年3月1日以月分割

    【代码】java localdate2018年1月12日到2023年3月1日以月分割。

    2024-02-29 13:08:52
  • MySql开启远程连接

    MySql开启远程连接

    MySql开启远程连接

    2024-02-29 13:08:25
  • 浅析jackson反序列化的白名单机制

    初探Jackson白名单机制1.PolymorphicTypeValidator1.1简介1.2 方法1.3使用2.白名单的基本实现 1.PolymorphicTypeValidator 1.1简介 ...

    2024-02-29 13:08:19
  • 机器学习-基于矩阵分解算法的梯度下降推荐系统 (C++实现)

    机器学习-基于矩阵分解算法的梯度下降推荐系统 (C++实现)

    N个用户,M个商品,分别有若干评分,要求预测用户对未评分商品的评分值 定义每个用户为一维向量p;定义每个商品为一维向量q 通过对损失函数梯度下降不断更新所有用户向量与所有商品向量直到其均适应训练集

    2024-02-29 13:08:11
  • python基础之模块初识

      Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有相应的Python库支持一、time模块和datetime模块和时间有关系的我们就要用到时间模块。在使用模块之前,应该首先导入这个模块。常用方法:#time模块import time# time.sleep() #让程序停一会,休眠时间***print(time...

    2024-02-29 13:08:04
  • C#中怎么复制数组?C#复制数组的5种方法!

    方法一:使用for循环int []pins = {9,3,7,2}int []copy = new int[pins.length];for(int i =0;i!=copy.length;i++){copy[i] = pins[i];}方法二:使用数组对象中的CopyTo()方法int []pins = {9,3,7,2}int []copy2 = new int[pins.length];pi

    2024-02-29 13:07:36
  • SpringBoot 2.1.7.RELEASE + Activiti 5.18.0 喂饭级练习手册

    SpringBoot 2.1.7.RELEASE + Activiti 5.18.0 喂饭级练习手册

    通过日志可以看到,启动流程后,Service Task1、Service Task2自动执行了,执行到User Task时,触发了任务监听器,给用户任务分配了具体用户。看日志,调用完成任务接口,Ser...

    2024-02-29 13:07:29
  • RTP/RTCP(实时传输协议/实时传输控制协议)自定义的相关C结构(参考)

    wgscd转摘的RTP/RTCP(实时传输协议/实时传输控制协议)基于UDP派生出的协议,并增加了对实时传输的控制。一般用于网上传输实时视频数据,比如远程视频监控,视频点播等。有一本名叫《多媒体网络传输协议》的书上对此2个协议的结构和原理做了比较详细的介绍,好象是清华大学出版社出版的。    我去年做远程视频监控系统时,曾用基于2个协议,用Wonsock工具封装了一个网络传输动态连接库,专门用于局

    2024-02-29 13:07:21