2018.12.2 第十六次课堂笔记及预习

本文详细介绍LAMP架构,包括Linux、Apache、MySQL/MariaDB、PHP的安装与配置流程,涵盖数据库管理、用户权限设置、备份恢复及Apache与PHP的结合使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

11.1 LAMP架构的介绍

Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案。 

Linux

Linux 是免费开源软件,这意味着源代码可用的操作系统。

Apache

Apache 是使用中最受欢迎的一个开放源码的WEB服务器软件。

MySQL

MySQL 是多线程、多用户的SQL数据库管理系统。

MySQL 已由Oracle公司自 2010 年 1 月 27 日通过SUN购买。SUN 最初于 2008 年 2 月 26 日收购 MySQL。

PHP,Perl 或 Python

PHP 是一种编程语言最初设计生产动态网站。PHP 是主要用于服务器端的应用程序软件。Perl 和 Python 类似。

11.2 MySQL、MariaDB介绍

 

11.3/11.4/11.5 MySQL安装

 

一、安装MYSQL 

  1、下载MySQL的安装文件 

  安装MySQL需要下面两个文件: 

  MySQL-server-4.0.16-0.i386.rpm     

  MySQL-client-4.0.16-0.i386.rpm 

  下载地址为:http://www.mysql.com/downloads/mysql-4.0.html, 打开此网页,下拉网页找到“Linux x86 RPM downloads”项,找到“Server”和“Client programs”项,下载需要的上述两个rpm文件。 

  2、安装MySQL 

  rpm文件是Red Hat公司开发的软件安装包,rpm可让Linux在安装软件包时免除许多复杂的手续。该命令在安装时常用的参数是 –ivh ,其中i表示将安装指定的rmp软件包,V表示安装时的详细信息,h表示在安装期间出现“#”符号来显示目前的安装过程。这个符号将持续到安装完成后才停止。 

  1)安装服务器端 

  在有两个rmp文件的目录下运行如下命令: 

  如出现如上信息,服务端安装完毕。测试是否成功可运行netstat看Mysql端口是否打开,如打开表示服务已经启动,安装成功。Mysql默认的端口是3306。  

  上面显示可以看出MySQL服务已经启动。 

  2)安装客户端 

  运行如下命令: 

 

  显示安装完毕。 

  用下面的命令连接mysql,测试是否成功。 

 

 

二、登陆MySQL 

 

  登录MySQL的命令是mysql, mysql 的使用语法如下:  

  username 与 password 分别是 MySQL 的用户名与密码,mysql的初始管理帐号是root,没有密码,注意:这个root用户不是Linux的系统用户。MySQL默认用户是root,由于初始没有密码,第一次进时只需键入mysql即可。  

 

  出现了“mysql>”提示符,恭喜你,安装成功! 

  增加了密码后的登录格式如下: 

  mysql -u root -p  

  Enter password: (输入密码) 

  其中-u后跟的是用户名,-p要求输入密码,回车后在输入密码处输入密码。 

  注意:这个mysql文件在/usr/bin目录下,与后面讲的启动文件/etc/init.d/mysql不是一个文件。 

 

三、MySQL的几个重要目录 

  MySQL安装完成后不象SQL Server默认安装在一个目录,它的数据库文件、配置文件和命令文件分别在不同的目录,了解这些目录非常重要,尤其对于Linux的初学者,因为Linux本身的目录结构就比较复杂,如果搞不清楚MySQL的安装目录那就无从谈起深入学习。 

  下面就介绍一下这几个目录。 

  1、数据库目录 

  /var/lib/mysql/ 

  2、配置文件 

  /usr/share/mysql(mysql.server命令及配置文件) 

  3、相关命令 

  /usr/bin(mysqladmin mysqldump等命令) 

  4、启动脚本 

  /etc/rc.d/init.d/(启动脚本文件mysql的目录) 

四、修改登录密码 

  MySQL默认没有密码,安装完毕增加密码的重要性是不言而喻的。 

  1、命令 

  格式:mysqladmin -u用户名 -p旧密码 password 新密码

  2、例子 

  例1:给root加个密码123456。

  键入以下命令 :

  注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。 

     3、测试是否修改成功

   1)不用密码登录 

  2)用修改后的密码登录 

  成功! 

  这是通过mysqladmin命令修改口令,也可通过修改库来更改口令。 

五、启动与停止 

  1、启动

  MySQL安装完成后启动文件mysql在/etc/init.d目录下,在需要启动时运行下面命令即可。 

  2、停止

  3、自动启动 

  1)察看mysql是否在自动启动列表中 

  2)把MySQL添加到你系统的启动服务组里面去 

  3)把MySQL从启动服务组里面删除。 

六、更改MySQL目录

  MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步: 

  1、home目录下建立data目录

  

  2、把MySQL服务进程停掉:  

 

  3、把/var/lib/mysql整个目录移到/home/data 

  这样就把MySQL的数据文件移动到了/home/data/mysql下 

 

  4、找到my.cnf配置文件

  如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下: 

 

  5、编辑MySQL的配置文件/etc/my.cnf 

  为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。 修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock 。操作如下: 

  6、修改MySQL启动脚本/etc/rc.d/init.d/mysql 

  最后,需要修改MySQL启动脚本/etc/rc.d/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:home/data/mysql。 

  7、重新启动MySQL服务 

 

 

  或用reboot命令重启Linux 

  如果工作正常移动就成功了,否则对照前面的7步再检查一下。 

 

七、MySQL的常用操作 

  注意:MySQL中每个命令后都要以分号;结尾。 

  1、显示数据库 

  2 rows in set (0.04 sec) 

  Mysql刚安装完有两个数据库:mysql和test。mysql库非常重要,它里面有MySQL的系统信息,我们改密码和新增用户,实际上就是用这个库中的相关表进行操作。 

  2、显示数据库中的表 

 

  3、显示数据表的结构:  

  4、显示表中的记录:  

 

  例如:显示mysql库中user表中的纪录。所有能对MySQL用户操作的用户都在此表中。 

 

  5、建库:  

 

  例如:创建一个名字位aaa的库 

 

      6、建表:  

  use 库名;  

  create table 表名 (字段设定列表); 

  例如:在刚创建的aaa库中建立表name,表中有id(序号,自动增长),xm(姓名),xb(性别),csny(出身年月)四个字段 

  可以用describe命令察看刚建立的表结构。 

 

  7、增加记录 

 

  例如:增加几条相关纪录。

 

  可用select命令来验证结果。 

 

  8、修改纪录 

  例如:将张三的出生年月改为1971-01-10 

 

  9、删除纪录 

  例如:删除张三的纪录。 

 

  10、删库和删表  

 

八、增加MySQL用户 

 

  格式:

        例1、增加一个用户user_1密码为123,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL,然后键入以下命令: 

 

        例1增加的用户是十分危险的,如果知道了user_1的密码,那么他就可以在网上的任何一台电脑上登录你的MySQL数据库并对你的数据为所欲为了,解决办法见例2。 

  例2、增加一个用户user_2密码为123,让此用户只可以在localhost上登录,并可以对数据库aaa进行查询、插入、修改、删除的操作(localhost指本地主机,即MySQL数据库所在的那台主机),这样用户即使用知道user_2的密码,他也无法从网上直接访问数据库,只能通过MYSQL主机来操作aaa库。 

 

  用新增的用户如果登录不了MySQL,在登录时用如下命令: 

 

九、备份与恢复 

 

  1、备份 

  例如:将上例创建的aaa库备份到文件back_aaa中 

  2、恢复 

11.6 MariaDB安装

1.下载mariaDB

2.解压

3.将目录重命名

 

4.创建mysql用户

5.创建存放数据库的目录

6.初始化

7.配置文件

Mariadb的配置文件也在/user/local/mariadb/support-files/目录下,和mysql有一定区别,这个目录下有好几个配置模板

my-huge.cnf;my-large.cnf;my-medium.cnf;my-small.cnf这些配置文件的区别就在于缓存数字的大小不一样,这些值是根据内存的大小指定合适的缓存,这样会让mysql达到一个更高效的性能。我们做实验内存是1G 拷贝my-small.cnf就可以,如果你的内存有几十G,可以拷贝my-huge.cnf,再根据实际情况适当调整这些参数。

(1)拷贝配置文件

(2)修改配置文件

注:如果不添加数据库的存储目录,仅仅在在系统中存在其他数据库时(如MySQL),则mariadb数据库会使用之前数据库中的配置文件里面的数据库的存储目录

8.拷贝启动脚本

(1)修改启动脚本

(2)启动脚本

这里要注意:之前安装过mysql,所以在安装mariadb的时候,要先关闭mysqld服务,在启动脚本中指定了配置文件路径conf,并将添加到启动脚本中,如果之前没有装过mysql,可以直接将配置文件拷贝到/etc/my.cnf,启动脚本中也不用指定配置文件路径。

11.7/11.8/11.9 Apache安装

 

1.下载apache和apr、apr-util

2.解压

3.安装apr

4.安装apr-util

5.安装apache

(1)初始化

 

这里出现一个错误:

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

可以用yum list来查找缺少那个包

(2)然后重新编译参数

(3)编译make&&安装make install

[root@linux-5 httpd-2.4.33]# make

 

此时编译出现一个错误

经查询相关资料后,将apr-util重新初始化并编译一次即可解决。

再次重新编译并安装apache

 

查看apache都加载了那些模块

[root@linux-5 apache2.4]# /usr/local/apache2.4/bin/apachectl -M

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::fdb8:14ca:d41b:3dc8. Set the 'ServerName' directive globally to suppress this message

Loaded Modules: //这里不用管它

core_module (static) //static 表示静态模块

so_module (static)

http_module (static)

mpm_event_module (static)

authn_file_module (shared) //shared表示动态共享模块

authn_core_module (shared)

authz_host_module (shared)

authz_groupfile_module (shared)

authz_user_module (shared)

authz_core_module (shared)

access_compat_module (shared)

auth_basic_module (shared)

reqtimeout_module (shared)

filter_module (shared)

mime_module (shared)

log_config_module (shared)

env_module (shared)

headers_module (shared)

setenvif_module (shared)

version_module (shared)

unixd_module (shared)

status_module (shared)

autoindex_module (shared)

dir_module (shared)

alias_module (shared)

动态和静态模块的区别:静态模块(static)直接和主程序(/usr/local/apache2.4/bin/httpd)绑定在一起,动态模块(shared)都是一个个独立存在的文件(moudles目录下面的.so文件)这些动态模块不会全部加载,如果想用哪个动态模块,直接在配置文件里面配置即可。

11.10/11.11/11.12 安装PHP5 11.7安装php7

 

• PHP官网www.php.net

• 当前主流版本为5.6/7.1

下载PHP5.6安装包

cd /usr/local/src/

wget http://cn2.php.net/distributions/php-5.6.32.tar.bz2

解压安装包

tar jxvf php-5.6.32.tar.bz2

初始化

cd /usr/local/src/php-5.6.32/

 

./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

//--prefix=/usr/local/php 指定安装目录//--with-apxs2=/usr/local/apache2.4/bin/apxs 自动在httpd上配置PHP模块//--with-config-file-path=/usr/local/php/etc 指定PHP配置文件所在路径(PHP配置文件后缀为.ini)// --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-

mysqli=/usr/local/mysql/bin/mysql_config 三种连接MySQL的驱动

在初始化时出现一个错误

通过报错信息判断是缺少libxml2-devel(库)类型的安装包,也可通过命令做进一步确认(安装PHP时一般都会缺少各种各样的库文件)

yum list |grep xml2

第二个错误

第三个错误(yum安装的包应为小写)

第四个错误

[root@linux-5 php-5.6.32]# yum install -y libjpeg-turbo-devel.x86_64

第五个错误

第六个错误

第七个错误(这是基于epel扩展源的包,需要先安装epel扩展源)

看到此标识,说明已经初始化成功(以防万一可用echo $?进行检查)

将PHP配置文件模板拷贝至初始化规定的配置文件路径下

cp php.ini-production(development)/usr/local/php/etc/php.ini

//production为生产环境,development为测试开发环境

第一次安装PHP时所需要的包汇总

libxml2-developenssl-develbzip2-devellibjpeg-turbo-devel.x86_64libpng-devel.x86_64freetype-devel.x86_64libmcrypt-devel.x86_64(需要先安装epel扩展源)

编译&&安装PHP5

make

make install

在LAMP架构中,Apache所需要PHP中的模块文件是/usr/local/apache2.4/modules/libphp5.so,PHP的作用是将php5_module模块安装在Apache上帮助Apache进行一些通信,因此LAMP中的PHP无需启动也可正常工作

[root@linux-5 php-5.6.32]# /usr/local/apache2.4/bin/httpd -M

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::531b:14ea:3a75:f113. Set the 'ServerName' directive globally to suppress this message

Loaded Modules:

core_module (static)

so_module (static)

http_module (static)

mpm_event_module (static)

authn_file_module (shared)

authn_core_module (shared)

authz_host_module (shared)

authz_groupfile_module (shared)

alias_module (shared)

php5_module (shared)

Apache的配置文件/usr/local/apache2.4/conf/httpd.conf

配置文件可随用随取,被注释掉的模块都不会显示,也不会加载该模块。

11.13 安装PHP7

下载PHP7.1安装包

cd /usr/local/src/

wget http://cn2.php.net/distributions/php-7.1.6.tar.bz2

解压安装包

tar jxvf php-7.1.6.tar.bz2

初始化

./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-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

编译&&安装PHP7

make

make install

 

注:一个机器中可以同时安装两个PHP,但是要配置好Apache调用哪一个PHP,避免混乱,可去Apache的配置文件/usr/local/apache2.4/conf/httpd.conf中进行修改

11.14/11.15 Apache和PHP结合

 

修改Apache(httpd)主配置文件

定义ServerName以消除Apache启动时所产生的警告

未修改前

[root@linux-5 ~]# /usr/local/apache2.4/bin/apachectl start

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::531b:14ea:3a75:f113. Set the 'ServerName' directive globally to suppress this message

httpd (pid 5756) already running

定义ServerName

完成修改后

[root@linux-5 ~]# /usr/local/apache2.4/bin/apachectl restart[root@linux-5 ~]#

打开服务器的80端口

[root@linux-5 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

测试连接Apache服务器

修改配置文件以防止打开虚拟主机配置文件时拒绝访问(访问时提示403)

<Directory />

AllowOverride none

Require all granted //将denied改为granted

</Directory>

...

DocumentRoot "/usr/local/apache2.4/htdocs"

<Directory "/usr/local/apache2.4/htdocs">

...

Require all granted //将denied改为granted

</Directory>

检查配置文件语法

[root@linux-5 ~]# /usr/local/apache2.4/bin/apachectl -t

Syntax OK

重新加载配置文件

[root@linux-5 ~]# /usr/local/apache2.4/bin/apachectl graceful

修改配置文件以用于解析PHP文件

 

增加PHP的索引页

增加索引页可以直接输入域名或IP,后自动跳转至索引页,无需单独输入

编写PHP测试脚本

[root@linux-5 ~]# vim /usr/local/apache2.4/htdocs/test.php

 

<?php

phpinfo();

?>

//该脚本用于打印PHP版本信息

注:增加PHP文件无需重启服务

测试PHP解析效果

上图为成功解析PHP脚本文件的效果,如果不支持解析,则会产生如下结果

 

Tips:使用ctrl+r可以快速查找并使用历史命令

扩展

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

apache apxs https://wizardforcel.gitbooks.io/apache-doc/content/51.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值