第十一章 LAMP架构上预习笔记

11.1 LAMP架构介绍

11.2 MySQL_MariaDB介绍

11.3 MySQL安装(上)

进入/usr/local/src下

r.aminglinux.com 有下载地址 

wget 下载软件包

11.4 MySQL安装(中)

解压完把解压的文件mv到/usr.local下并改名

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

useradd mysql

mkdir /data/

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

出现两个ok, 或执行echo $? 返回零

这一步课程视频中遇到的报错

my-default.cnf 默认的配置文件

实验中用系统自带的配置文件 /etc/my.conf

[mysqld]
datadir=/data/mysql
socket=/tmp/mysql.sock

11.5 MySQL安装(下)

cp support-files/mysql.server /etc/init.d/mysqld 拷贝启动脚本

vim /etc/init.d/mysqld  在启动脚本里面定义程序目录和数据目录

basedir=/usr/local/mysql
datadir=/data/mysql

/etc/init.d/mysqld权限是755

chkconfig --add mysqld  加入到开机启动

service mysqld start  启动服务

/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql &

如果没有启动脚本,可以使用这种方法启动mysql

killall mysql 比较安全的杀死进程,等待数据写入完以后才杀死进程,很重要

实验中遇到的报错,可能是之前实验装过mariadb,有mysqld进程,杀掉就可以了

11.6 MariaDB安装

11.7 Apache安装(上)

 

11.8 Apache安装(中)

• ./configure \   //这里的反斜杠是脱义字符,加上它我们可以把一行命令写成多行

--prefix=/usr/local/apache2.4 \

--with-apr=/usr/local/apr \

--with-apr-util=/usr/local/apr-util \

--enable-so \

--enable-mods-shared=most

 make && make install

11.9 Apache安装(下)

static 代表静态的,模块加载到了httpd里面

shared 代表的是一个扩展的模块

/usr/local/apache2.4/bin/apachectl start 启动服务

11.10 安装PHP5(上)

安装时遇到的报错

yum -y install libxml2-devel.x86_64
11.11 安装PHP5(中)

报错

yum -y install openssl-devel

yum -y install bzip2-devel

yum -y install libjpeg-devel

yum -y install libpng-devel

11.12 安装PHP5(下)

yum -y install freetype-devel

yum -y install libmcrypt-devel

php 加载的模块

/usr/local/php/bin/php

bin/php -i | less  查看php的一些信息

11.13 安装PHP7

11.14 Apache和PHP结合(上)

添加一条防火墙规则

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

把denied 改成 granted

/usr/local/apache2.4/bin/apachectl -t 检查语法

/usr/local/apache2.4/bin/apachectl graceful 重新加载配置文件,不会重启服务

AddType application/x-httpd-php .php  增加这行配置时为了能解析php网页

增加 index.php

目录

一、LAMP架构介绍
二、MySQL、MariaDB介绍
三、MySQL安装
四、MariaDB安装
五、Apache安装
六、安装PHP5
七、安装PHP7
八、Apache和PHP结合
九、扩展链接

 

一、LAMP架构介绍

LAMP是Linux、Apache、MySQL、PHP的简称。linux是操作系统、apache提供web服务、mysql用来存储数据、php是一种脚本语言。LAMP组成的各组件都是开源软件,因此可以很方便的获取,使得这些组件广泛使用,并不断完善发展。

LAMP的工作原理

浏览器向服务器发送http请求,服务器 (Apache) 接受请求,由于php作为Apache的组件模块也会一起启动,它们具有相同的生命周期。Apache会将一些静态资源保存,然后去调用php处理模块进行php脚本的处理。脚本处理完后,Apache将处理完的信息通过http response的方式发送给浏览器,浏览器解析,渲染等一系列操作后呈现整个网页。

php和mysql之间是动态请求(如用户的登录操作就会用到)

而如果只是查看图片就是静态请求,apache可以直接解析。不会用到php和mysql动态请求。(mysql不能存图片等文件)

 

二、MySQL、MariaDB介绍

MySQL是一个关系型数据库,由mysql ab公司开发,mysql在2008年被sun公司收购(10亿美金),2009年sun公司被oracle公司收购(74亿美金),Mysql最终归入Oracle公司。

MySQL官网https://www.mysql.com。

MySQL5.6变化比较大,5.7性能上有很大提升

Mariadb为MySQL的一个分支,官网https://mariadb.com 最新版本10.2

MariaDB主要由SkySQL公司(现更名为MariaDB公司)维护,SkySQL公司由MySQL原作者带领大部分原班人马创立.

Mariadb5.5版本对应MySQL的5.5,10.0对应MySQL5.6

Mysql的版本介绍

Community 社区版本,Enterprise 企业版,GA(Generally Available)指通用版本,在生产环境中用的,DMR(Development Milestone Release)开发里程碑发布版,RC(Release Candidate)发行候选版本,Beta开放测试版本,Alpha内部测试版本

 

三、MySQL安装

Myql主要有三种安装方式

1.yum安装,缺少定制功能,安装简单。

2.二进制免编译安装包安装,有足够的可定制性,性能基本也不会损失。安装速度也比较快。推荐使用。

3.源代码编译安装。可以按需定制,可以提供最高的性能,编译耗费的时间长,安装速度慢。

这里以源代码包编译安装为例

1.环境:
CentOS Linux release 7.4.1708 (Core)
mysql-5.6.36.tar.gz

2.依赖包安装
yum -y install gcc gcc-c++ ncurses-devel perl cmake autoconf

3.创建mysql的数据库存放目录
mkdir -p /data/mysql

4、 创建mysql用户及用户组
useradd -r mysql -s /sbin/nologin
id mysql

5.设置mysql的数据库存放目录权限
chown -R mysql:mysql /data/mysql

6.编译安装MySQL
cd /usr/local/src
//下载,地址仅供参考。
wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36.tar.gz -O /usr/local/src
tar -zxvf mysql-5.6.36.tar.gz
cd mysql-5.6.36
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 - DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/data/mysql -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1
echo $?
make && make install
echo $?

7.配置MySQL
7.1 初始化配置
cd /usr/local/mysql
进入安装路径,执行初始化配置脚本,创建系统自带的数据库和表
scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql

7.2 设置配置文件
\cp ./support-files/my-default.cnf /etc/my.cnf
修改配置文件
vim /etc/my.cnf 修改如下如下内容:
basedir = /usr/local/mysql
datadir = /data/mysql

7.3启动MySQL
添加服务,拷贝服务脚本到init.d目录,并设置开机启动
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig mysqld on
service mysqld start --启动MySQL
ss -nat |grep 3306
LISTEN 0 80 :::3306 :::*

8、设置PATH(否则不能直接调用mysql)
修改/etc/profile文件,在文件末尾添加
export PATH=/usr/local/mysql/bin:$PATH

关闭文件,运行下面的命令,让配置立即生效
source /etc/profile

Error
FATAL ERROR: please install the following Perl modules before executing scripts/mysql_install_db:
Data::Dumper
解决:yum -y install autoconf

 

四、MariaDB安装

以源代码包安装为例

1.环境:
CentOS Linux release 7.4.1708 (Core)
mariadb-5.5.57.tar.gz

2.依赖包安装
yum -y install gcc gcc-c++ ncurses-devel perl cmake autoconf

3.创建mariadb的数据库存放目录
mkdir -p /data/mariadb

4、 创建mariadb用户及用户组
useradd -r mariadb -s /sbin/nologin
id mariadb

5.设置mariadb的数据库存放目录权限
chown -R mariadb:mariadb /data/mariadb

6.编译安装Mmariadb
cd /usr/local/src
//下载,地址仅供参考。
wget https://mirrors.shu.edu.cn/mariadb//mariadb-5.5.60/source/mariadb-5.5.60.tar.gz -O /usrlocal/src
tar -zxvf mariadb-5.5.60
cd mariadb-5.5.60
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all echo $?
make && make install
echo $?

7.配置mariadb

7.1 初始化配置
cd /usr/local/mariadb
进入安装路径,执行初始化配置脚本,创建系统自带的数据库和表
scripts/mysql_install_db --basedir=/usr/local/mariadb --datadir=/data/mariadb --user=mariadb

7.2 设置配置文件
\cp ./support-files/my-medium.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mariadbd
cd /etc/init.d
chkconfig mariadbd on
修改配置文件
vim /etc/my.cnf 修改如下内容:
basedir = /usr/local/mariadb
datadir = /data/mariadb
//启动mariadb
/etc/init.d/mariadbd start

8.设置mariadb环境变量
echo "export PATH=$PATH:/usr/local/mariadb/bin">>/etc/profile

9.安全初始化mysql及设定
/usr/local/mysql/bin/mysql_secure_installation

10.登录测试
mysql -uroot -p

 

五、Apache安装

1.环境
CentOS Linux release 7.4.1708 (Core)
httpd-2.4.33
apr-1.6.3
apr-util-1.6.1

2.下载软件包
wget https://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz -O /usr/local/src/apr-1.6.3.tar.gz
wget https://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz -O /usr/local/src/apr-util-1.6.1.tar.gz
wget https://mirrors.cnnic.cn/apache/httpd/httpd-2.4.33.tar.gz -O /usr/local/src/httpd-2.4.33.tar.gz

3.依赖包
yum -y install libtool libtool-ltdl-devel.x86_64 expat-devel pcre.x86_64 pcre-devel.x86_64
如无gcc,可将开发工具组装上
rpm -q gcc
yum group -y install "Development Tools"

4.编译安装

4.1 解压软件包
cd /usr/local/src/
tar zxvf httpd-2.4.33.tar.gz
tar zxvf apr-1.6.3.tar.gz
tar zxvf apr-util-1.6.1.tar.gz

4.2 编译安装apr
cd apr-1.6.3/
./configure --prefix=/usr/local/apr
echo $?
make && make install
echo $?

4.3编译安装apr-util
cd ../apr-util-1.6.1/
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
echo $?
make && make install
echo $?

4.4编译安装httpd
cd ../httpd-2.4.33/
./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
echo $?
make && make install
echo $?

4.5防火墙规则设定及selinux状态
systemctl status firewalld.service
firewall-cmd --get-default-zone
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload

getenforce

4.6启动httpd
/usr/local/apache2.4/bin/apachectl start

4.7测试
服务端查看端口
netstat -nltup | grep :80

从宿主机访问

[root@lanquark httpd-2.4.33]# curl 127.0.0.1

It works!

 

Error 1
xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory

include <expat.h>

解决:yum -y install expat-devel

Error 2
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
解决:yum -y install pcre.x86_64 pcre-devel.x86_64

Error 3
collect2: error: ld returned 1 exit status
make[2]: *** [htpasswd] Error 1
解决:yum -y install libtool-ltdl-devel.x86_64
注意:如果已经编译过了apr-util,需要重新编译

Error 4
configure: error: no acceptable C compiler found in $PATH
解决:yum group -y install "Development Tools"

//bin/apachectl -t测试配置语法

//重载配置
[root@localhost apache2.4]# bin/apachectl --gracefully
httpd (pid 50431) already running

 

六、安装PHP5

1.环境

CentOS Linux release 7.4.1708 (Core)
php5.5.38

2.依赖安装

yum -y install libxml2-devel libpng-devel openssl openssl-devel bzip2 bzip2-devel libjpeg-devel freetype-devel libmcrypt.x86_64 libmcrypt-devel.x86_64

3.编译安装php

cd /usr/local/src/
wget http://cn2.php.net/distributions/php-5.6.30.tar.gz
tar zxvf php-5.6.30.tar.gz
cd 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-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
make && make install
echo $?
cp php.ini-production /usr/local/php/etc/php.ini

Error
Cannot find OpenSSL's <evp.h>
yum install openssl openssl-devel

configure: error: Please reinstall the BZip2 distribution
yum install bzip2 bzip2-devel

configure: error: jpeglib.h not found.
yum -y install libjpeg-devel

configure: error: freetype-config not found.
yum install freetype-devel

configure: error: mcrypt.h not found. Please reinstall libmcrypt.
libmcrypt.x86_64 libmcrypt-devel.x86_64

 

七、安装PHP7

1.环境

CentOS Linux release 7.4.1708 (Core)
php-7.2.7.tar.gz

2.依赖安装

yum -y install libxml2-devel libpng-devel openssl openssl-devel bzip2 bzip2-devel libjpeg-devel freetype-devel libmcrypt.x86_64 libmcrypt-devel.x86_64 pcre pcre-devel
libxslt libxslt-devel

3.编译安装php

cd /usr/local/src/
wget http://php.net/get/php-7.2.7.tar.gz/from/a/mirror
tar php-7.2.7.tar.gz
cd php-7.2.7
./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip
make && make install
echo $?
cp php.ini-development /usr/local/php/lib/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp sapi/fpm/php-fpm /usr/local/bin

 

八、Apache和PHP结合

1.配置httpd支持php
httpd主配置文件/usr/local/apache2.4/conf/httpd.conf
vim /usr/local/apache2.4/conf/httpd.conf //修改以下4个地方
ServerName-->我改的localhost
Require all denied-->Require all granted
AddType application/x-httpd-php .php-->增加这一行
DirectoryIndex index.html index.php-->增加 index.php
//修改配置文件后测试语法
/usr/local/apache2.4/bin/apachectl -t
//启动服务
/usr/local/apache2.4/bin/apachectl start
//重载配置文件
/usr/local/apache2.4/bin/apachectl graceful

2.验证

curl localhost

//增加如下内容,验证php解析是否正常

 vim /usr/local/apache2.4/htodcs/index.php   
<?php  
phpinfo;  
?>
curl localhost/index.php

 

九、扩展链接

mysql5.5源码编译安装

http://www.aminglinux.com/bbs/thread-1059-1-1.html

mysql5.7二进制包安装(变化较大)

http://www.apelearn.com/bbs/thread-10105-1-1.html

apache dso

https://yq.aliyun.com/articles/6298

 

AddType application/x-httpd-php .php

AddType application/x-httpd-php .php

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值