Linux运维之LAPM架构,搭建过程

LAMP架构

LAMP架构简介:

lamp是一个常用的web架构

所谓lamp,其实就是由Linux+Apache+Mysql/MariaDB+Php/Perl/Python的一组动态网站或者服务器的开源软件,除Linux外其它各部件本身都是各自独立的程序,但是因为经常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。

安装MySQL

初始化MySQL

# cd /usr/local/src/

●安装包:

#wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz如果此安装包失效,可以访问https://aminglinux.coding.net/public/resource/resource/git/files查询可以有效的安装包

安装包要求:x86_64,tar.gz

注意:5.7之后版本的没有scripts目录,不能进行初始化

●给安装包解压

tar zxvf mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz

●移动mysql包

mv mysql-5.6.47-linux-glibc2.12-x86_64 /usr/local/mysql

●切换位置

cd /usr/local/mysql

●建立mysql用户

useradd -s /sbin/nologin mysql

●新建存放数据的目录

mkdir -p /data/mysql

●更改用户组和用户的权限

chown -R mysql:mysql /data/mysql

●将mysql移到/usr/local/mysq目录下

mv mysql-5.6.47-linux-glibc2.12-x86_64 /usr/local/mysql

●更换目录

cd /usr/local/mysql/

●支持perl,安装perl包

yum install -y perl_Module_Install

●执行脚本

./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

//–user表示定义数据库的以哪个用户的身份运(所属组)

//–datadir表示定义数据库的安装目录

**出现的问题:
1、二进制安装mysql初始化出现:Installing MySQL system tables…/usr/local/mysql/bin/mysqld: error
while loading shared

原因:缺少libaio库文件
解决方法:yum
install libaio* -y
问题:2、FATAL ERROR: please install the following Perl modules before
executing ./scripts/mysql_install_db:
Data::Dumper
解决方法:# yum -y
install autocon*f
解决完错误再次执行:# ./scripts/mysql_install_db
–user=mysql --datadir=/data/mysql

●验证上一步执行是否成功

出现两个OK或者执行:

echo $?

执行成功则返回0,则证明成功了

配置MySQL

●复制配置文件并覆盖默认的配置文件

[root@localhost mysql]# cp support-files/my-default.cnf /etc/my.cnf

cp: overwrite ‘/etc/my.cnf’? y

●修改配置文件

vi support-files/my-default.cnf

在这里插入图片描述

修改basedir是MySQL包所在的路径;datadir定义存放数据的地方,默认情况下,错误的日志也记录在这个目录里;port定义MySQL服务监听的端口,如果不定义默认就是3306;server_id定义改MySQL服务的ID号,这个参数用在做主从配置的时候(习惯性我们写作ip的后三位);socket定义MySQL服务监听的套接字地址。在Linux下面很多服务不仅可以监听一个端口(通过TCP/IP的方式通信),也可以监听socket,两个进程就可以通过socket文件通信,下面的几个buffer是关于内存配置的参数,保持默认即可。

●复制启动脚本文件,并修改其属性:

cp support-files/mysql.server /etc/init.d/mysq

chmod 755 /etc/init.d/mysql //修改权限

●修改启动脚本属性

vim /etc/init.d/mysqld

在这里插入图片描述

修改datadir=/data/mysql(前面初始化数据库是定义的目录),basedir=/usr/local/mysql

●把mysql服务加到系统服务列表中

chkconfig --add mysqld

●设置开机就启动

chkconfig mysqld on

●启动服务

service mysqld start

●可以查看进程

ps -ef |grep mysql

●可以查看端口

netstat -ltunp |grep 3306

在这里插入图片描述

安装Apache

●移动位置

cd /usr/local/src/

●下载httpd-2.2.29.tar、apr-1.6.5.tar和apr-util-1.6.1.tar。

[root@localhost src]# wget http://mirror.hust.edu.cn/apache/httpd/httpd-2.4.43.tar.gz

[root@localhost src]# wgethttp://mirrors.cnnic.cn/apache/apr/apr-1.6.5.tar.gz

[root@localhost src]# http://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz

●解压安装包

tar zxvf httpd-2.4.43.tar.gz

tar zxvf apr-1.6.5.tar.gz

tar zxvf apr-util-1.6.1.tar.gz

●安装apr和apr-util

cd /usr/local/src/apr-1.6.5 //进入apr目录

./configure --prefix=/usr/local/apr //编译apr

在干净的系统安装可能会因缺少libtool而报错,此时可以:

yum install -y libtool

解决完错误后重新编译# ./configure –prefix=/usr/local/apr //编译apr

echo $? //检验是否执行成功

#`make && make install`

cd /usr/local/src/apr-util-1.6.1 //进入apr-util目录

./configure –prefix=/usr/local/apr-util –with-apr=/usr/local/apr

echo $?

#make &&make install               

执行make时如果出现此类错误:
在这里插入图片描述

解决方法:# yum install -y expat-devel

解决完问题再次执行#make &&make
install

查看apr和apr-util是否都安装完成

ls /usr/local/

●安装httpd

#cd /usr/local/src/ httpd-2.4.43

./configure --prefix=/usr/local/apache2.4--with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most

–enable-so:支持动态扩展的模块(以.so为后缀文件);–enable-mods-shared=most:支持大多数动态扩展模块

●为了防止遇见问题先安装这个再编译

#yum install -y pcre pcre-devel

●安装

#make
&& make install

安装PHP

PHP下载网站:https://www.php.net/downloads.php

●切换目录

cd /usr/local/src

●下载压缩包

wget https://www.php.net/distributions/php-7.4.7.tar.gz

●解压缩

tar zxf php-7.4.7.tar.gz

●配置编译

cd php-7.4.7

./configure --prefix=/usr/local/php7 --with-apxs2=/usr/local/apache2.4/bin/apxs
--with-config-file-path=/usr/local/php7/etc --with-pdo-mysql=/usr/local/mysql
--with-mysql=/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

--p

refix:安装PHP的目录;–with-apxs2:这是一个指定工具的目录;–with-config-file-path=/usr/local/php7/etc:PHP配置文件的目录;–with-pdo-mysql=/usr/local/mysql
–with-mysql=/usr/local/mysql/bin/mysql_config:不同版本的MySQL的路径;

●出现错误:1、configure: error: Package requirements (sqlite3 > 3.7.4) were not met:

No package ‘sqlite3’ found

解决方法:yum install sqlite-devel

2、configure: error: Package requirements
(oniguruma) were not met:

No package
‘oniguruma’ found

解决方法:sudo yum
install oniguruma-devel

3、问题:configure: error: jpeglib.h not
found.

解决方案如下:

rpm -qa | grep

libjpeg

libjpeg-turbo-1.2.90-5.el7.x86_64

yum -y install

libjpeg-devel

已加载插件:langpacks,
product-id, search-disabled-repos, subscription-manager

This system is not
registered with an entitlement server. You can use subscription-manager to register.

正在解决依赖关系

–> 正在检查事务

—> 软件包
libjpeg-turbo-devel.x86_64.0.1.2.90-5.el7 将被 安装

–> 解决依赖关系完成

yum list installed

| grep libjpeg

libjpeg-turbo.x86_64

1.2.90-5.el7 @anaconda/7.4

libjpeg-turbo-devel.x86_64
1.2.90-5.el7
@yaya

rpm -ql

libjpeg-turbo

/usr/lib64/libjpeg.so.62

/usr/lib64/libjpeg.so.62.1.0

/usr/share/doc/libjpeg-turbo-1.2.90

/usr/share/doc/libjpeg-turbo-1.2.90/ChangeLog.txt

/usr/share/doc/libjpeg-turbo-1.2.90/README

/usr/share/doc/libjpeg-turbo-1.2.90/README-turbo.txt

/usr/share/doc/libjpeg-turbo-1.2.90/change.log

/usr/lib/libjpeg.so.62

/usr/lib/libjpeg.so.62.1.0

/usr/share/doc/libjpeg-turbo-1.2.90

/usr/share/doc/libjpeg-turbo-1.2.90/ChangeLog.txt

/usr/share/doc/libjpeg-turbo-1.2.90/README

/usr/share/doc/libjpeg-turbo-1.2.90/README-turbo.txt

/usr/share/doc/libjpeg-turbo-1.2.90/change.log

再次编译即可成功。

●检查编译是否成功

echo $?

●编译安装

#make && make install

●复制配置文件

# `cp php.ini-production` /usr/local/php7/etc/php.ini 

配置httpd支持PHP

●httpd主配置文件/usr/local/apache2.4/conf/httpd.conf

#vim /usr/local/apache2.4/conf/httpd.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;(增加解析PHP文件)

找到:

<IfModule dir_module>

   
DirectoryIndex index.html 

</IfModule>

改为:

<IfModule dir_module>

   
DirectoryIndex index.html index.php

</IfModule>

目的:增加索引页

●测试安装

(1)测试配置文件是否正确

#/usr/local/apach e2.4/bin/apachectl -t //测试语法

//检验配置文件是否正确:Syntax OK

#/usr/local/apache2.4/bin/apachectl start

//启动httpd命令

#netstat -lnp |grep httpd

Tcp6 0 0 :::80 ::😗 LISTEN 47533/httpd

//查看是否启动(出现这一行,说明已经启动httpd)

#curl localhost

It works!

//使用curl命令简单测试是否能够解析,显示了就是成功

(2)测试是否正确解析PHP

先编写一个测试脚本:

#vim /usr/local/apache2.4/htdocs/1.php
<?

echo  “php解析正确”

?>

   

//编写一个测试脚本

#curl localhost/1.php

php解析正确

 //如显示此信息则PHP解析正确
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值