【linux】运维之LAMP

1、什么是LAMP

LAMP:Linux + Apache + MySQL + PHP LAMP 架构(组合)

LNMP:Linux + Nginx + MySQL + php-fpm LNMP 架构(组合)

LNMPA:Linux + Nginx(80) + MySQL + PHP + Apache Nginx 代理方式

Apache:Apache是世界使用排名第一的Web服务器软件。

PHP:一种专门用于Web开发的编程语言。

MySQL:MySQL是一个关系型数据库管理系统,主要用于永久存储项目数据。

2、LAMP部署前期准备

☆ 关闭防火墙

# systemctl stop firewalld
# systemctl disable firewalld

☆ 关闭SELinux

SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。

获取SELinux的状态:

# getenforce

临时关闭SElinux:重启后SELinux还会自动启动

# setenforce 0

永久关闭SELinux:编辑SELinux的配置文件

# vim /etc/selinux/config
SELINUX=disabled

☆ 检查系统中是否已安装Apache

# rpm -qa |grep httpd

# rpm -e httpd-2.4.6-90.el7.centos.x86_64
# rpm -e httpd-tools-2.4.6-90.el7.centos.x86_64

☆ 检查系统中是否已安装MySQL

# rpm -qa |grep mysql

☆ 检查系统中是否已安装PHP

# rpm -qa |grep php

AMP安装指南:在Linux中安装AMP必须先安装Apache,在安装MySQL,最后安装PHP

3、LAMP环境之Apache安装

Apache:阿帕奇,Apache基金会

httpd软件 => 前身apache,随着时间的推移以及互联网行业的发展,越来越多的软件加入到了Apache的基金会。

第一步:安装httpd软件

# yum install httpd -y

第二步:配置/etc/httpd/conf/httpd.conf文件

# vim /etc/httpd/conf/httpd.conf
/ServerName => 搜索
96 ServerName localhost:80

localhost : 代表本机,对应的IP地址可以使127.0.0.1或本机的公网IP

第三步:启动httpd服务

# systemctl start httpd

第四步:把httpd服务添加到开机启动项中

# systemctl enable httpd

第五步:使用ss或netstat命令查询httpd占用的端口

# netstat -tnlp |grep httpd# ss -naltp |grep httpd

第六步:在浏览器中,使用公网IP访问阿里云服务器
【linux】运维之LAMP_第1张图片

4、LAMP环境之MySQL安装

☆ 下载MySQL的官网yum源

由于yum源上默认没有mysql-server。所以必须去官网下载后在安装

# wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

☆ 安装MySQL的官网镜像源

# rpm -ivh mysql-community-release-el7-5.noarch.rpm

☆ 使用yum安装mysql最新版软件

# yum install mysql-community-server -y

MySQL软件是一个C/S架构的软件,拥有客户端与服务器端。mysql-server服务器端(内部也包含了客户端),community代表社区版(免费开源)

☆ 启动mysql,查看端口占用情况

# systemctl start mysqld
# netstat -tnlp |grep mysqld

☆ MySQL数据库初始化(重要)

默认情况下,数据库没有密码,也没有任何数据,必须要初始化

① 初始化数据,设置root密码(MySQL管理员)
# mysql_secure_installation

【linux】运维之LAMP_第2张图片

扩展:以上说的root和Linux中的root不是同一个用户,这个root代表MySQL数据库的管理员,只不过这个管理员也叫root。

【linux】运维之LAMP_第3张图片

学习环境下,密码越简单越好。生产环境下越复杂越好。

【linux】运维之LAMP_第4张图片

② 把mysqld服务添加到开机启动项
# systemctl enable mysqld

默认已经开机启动,这里可以跳过

③ 连接MySQL数据库,测试
# mysql -u root -p 回车
Enter password:输入刚才设置的密码,如123,回车
mysql> show databases;    =>   代表显示所有数据库
mysql> exit

5、LAMP环境之PHP安装

☆ 使用yum命令安装php软件

# yum install php -y

☆ 使用systemctl启动php软件(重启Apache)

# systemctl restart httpd

为什么启动php就是重启Apache呢?答:因为LAMP架构中,PHP是以模块的形式追加到Apache的内核中,所以启动php就相当于重置Apache软件

【linux】运维之LAMP_第5张图片

☆ 测试LAMP环境是否可以使用

第一步:使用cd命令进入/var/www/html目录

# cd /var/www/html
Apache的项目目录 => /var/www/html,以后程序员开发的代码都是放置于此目录

第二步:使用vim命令创建demo.php文件

# vim demo.php

第三步:编写php代码


	echo 'hello world';
?>

编写完成后,保存退出,然后在浏览器中使用http://公网IP/demo.php

【linux】运维之LAMP_第6张图片

二、LAMP源码构建

1、项目背景

为企业内部的开发人员,部署一套“预发布系统”,要求其环境与线上环境一模一样。

由于项目是基于PHP + MySQL进行开发设计的,所以我们需要选配环境。

LAMP = Linux + Apache + MySQL + PHP

LNMP = Linux + Nginx + MySQL + PHP

经过开发人员的沟通确认 => LAMP作为预发布环境!

【linux】运维之LAMP_第7张图片

2、任务要求

  • 源码部署LAMP环境,和生产保持一致
  • 静态资源文件同步生产环境(生产发生改变立马同步到预发布平台)

3、环境准备

系统环境:CentOS7.6

软件环境:AMP(Apache、MySQL以及PHP)

Apache——>2.4.37(2.2与2.4)
MySQL——>5.6.31(5.5、5.6与5.7)
PHP——>7.2.17(5.2、5.4、5.6、7.0、7.1、7.2)

4、系统环境

编号 主机名称 IP地址 备注信息
1 web.itcast.cn 10.1.1.13 LAMP预发布环境

① 更改主机名称、配置IP地址(静态IP、更改UUID编号、关闭NetworkManager)

② 关闭防火墙、SELinux

③ 配置YUM源(有网配公网,没网配光盘或自建YUM源)

5、依赖软件安装

# yum install cmake pcre-devel ncurses-devel openssl-devel libcurl-devel

6、AMP软件安装注意事项

【linux】运维之LAMP_第8张图片
编译安装顺序:

Linux+Apache(2.4)+MySQL(5.6.31)+PHP(7.2.17)

Apache——>MySQL——>PHP 或者  MySQL——>Apache——>PHP

三、编译安装MySQL软件

1、安装需求

软件版本 安装目录 数据目录 端口
mysql-5.6.31 /usr/local/mysql /usr/local/mysql/data 3306

2、MySQL安装详解

第一步:创建一个mysql系统账号(没有这个账号mysql无法运行)

# useradd -r -s /sbin/nologin mysql

第二步:对软件进行解压

# tar xf mysql-5.6.31.tar.gz
# cd mysql-5.6.31

第三步:使用cmake配置MySQL的安装向导

# vim cmake.sh
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DMYSQL_TCP_PORT=3306 \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DMYSQL_USER=mysql

# chmod +x cmake.sh
# ./cmake.sh

第四步:make && make install

# make && make install

第五步:更改目录权限以及初始化数据库

# chown -R mysql.mysql /usr/local/mysql

# cd /usr/local/mysql
删除/etc/my.cnf文件,如果不删除此文件,会导致初始化失败
# rm -f /etc/my.cnf
初始化就是给mysql数据库一些初始化的数据(如账号、密码、数据文件,ll data)
# ./scripts/mysql_install_db --user=mysql
# ll data
这个目录如果产生了一个mysql的文件夹就代表初始化成功了

第六步:把mysql的启动脚本copy到/etc/init.d目录下,起一个名称叫做mysql

# cp support-files/mysql.server /etc/init.d/mysql
# service mysql start

第七步:设置密码与环境变量

# cd /usr/local/mysql
# bin/mysqladmin -u root password '123'

生产环境下,密码一定要越复杂越好

第八步:把/usr/local/mysql/bin目录添加到环境变量

# echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
# source /etc/profile

# mysql -uroot -p
Enter password:123
mysql> exit;

四、编译安装Apache软件

1、源码安装依赖软件apr

安装apr软件:
# tar xf apr-1.5.2.tar.bz2
# cd apr-1.5.2
# ./configure && make && make install

安装apr-util软件:
# tar xf apr-util-1.5.4.tar.bz2
# cd apr-util-1.5.4/
# ./configure --with-apr=/usr/local/apr/bin/apr-1-config    指定软件apr的路径
# make && make install

2、编译安装Apache软件(重点)

第一步:解压软件

# yum remove httpd -y

# tar xf httpd-2.4.37.tar.bz2
# cd httpd-2.4.37

第二步:编写apache.sh脚本进行软件安装

# vim apache.sh
./configure \
--enable-modules=all \
--enable-mods-shared=all \
--enable-so \
--enable-rewrite \
--with-pcre \
--enable-ssl \
--with-mpm=prefork \
--with-apr=/usr/local/apr/bin/apr-1-config \
--with-apr-util=/usr/local/apr/bin/apu-1-config

第三步:给予x权限,然后make && make install

# chmod +x apache.sh
# ./apache.sh

# make && make install

第四步:运行Apache软件

# cd /usr/local/apache2/
# bin/apachectl

【linux】运维之LAMP_第9张图片

五、源码安装PHP软件

1、安装说明

第一步:对软件进行解压缩

# tar xf php-7.2.17.tar.xz
# cd php-7.2.17

第二步:对php源码进行一个配置

# vim php.sh
./configure \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysqli \
--with-pdo-mysql \
--with-zlib \
--with-curl \
--enable-zip \
--with-gd \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--enable-opcache \
--enable-mbstring \
--enable-mbregex \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-calendar \
--enable-bcmath

# chmod +x php.sh
# ./php.sh

第三步:解决PHP依赖关系

configure: error: libxml2 not found. Please check your libxml2 installation.

出现以上提示,代表php与其他软件存在依赖关系:

# yum install libxml2-devel -y

除了以上这个依赖以外,还存在其他依赖:

# yum install libjpeg-devel libpng-devel freetype-devel -y

第四步:编译+安装

# make && make install

第五步:检查php有没有安装成功

# ls /usr/local/apache2/modules/libphp7.so

2、配置Apache与PHP

第一步:打开Apache的配置文件

# vim /usr/local/apache2/conf/httpd.conf
209行 ServerName localhost:80

第二步:配置Apache语言支持(支持中文)

159行 LoadModule negotiation_module modules/mod_negotiation.so 此模块打开注释
483行 Include conf/extra/httpd-languages.conf  打开此选项,扩展配置文件就生效了
...

第三步:开启对PHP的支持

166行 LoadModule php7_module modules/libphp7.so
AddHandler php7-script .php		
AddType text/html .php

第四步:添加index.php默认首页

//默认主页加上index.php,并放在index.html前,支持php的首页文件

270行    DirectoryIndex index.php index.html

第五步:让Apache优先支持中文

# vim /usr/local/apache2/conf/extra/httpd-languages.conf
19行 DefaultLanguage zh-CN	  打开注释,默认语言集改为中文
78行 LanguagePriority zh-CN en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv tr zh-TW		语言集优先集,把zh-CN 写到前面

设置完成后,重启Apache软件

# cd /usr/local/apache2
# bin/apachectl -k restart
# bin/apachectl -k restart

备注:如果还不行,直接pkill httpd,然后bin/apachectl启动

3、编写php测试脚本

# cd /usr/local/apache2/htdocs				   htdocs就是apache的默认项目目录
# rm -f index.html
# vim index.php

到此,LAMP源码编译安装就结束了!

六、使用LAMP部署Web项目

1、下载wordpress博客系统

wordpress-4.7.3-zh_CN.tar.gz

2、解压

# tar xf wordpress-4.7.3-zh_CN.tar.gz

3、创建一个项目目录

# mkdir /www
# mv wordpress /www/blog

# chown -R daemon.daemon /www/blog/

4、配置虚拟主机(一台服务器多个项目)

正常情况下:/usr/local/apache2/htdocs目录下(相当于/var/www/html)

一台服务器多个项目:使用虚拟主机

第一步:在httpd.conf配置文件中开启虚拟主机的配置文件

# vim /usr/local/apache2/conf/httpd.conf
# Virtual hosts
494行 Include conf/extra/httpd-vhosts.conf		//打开加载虚拟主机配置文件

第二步:在/usr/local/apache2/conf/extra/httpd-vhosts.conf定义项目

# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iD1xkuBv-1670469925243)(media/image-20200416202109513.png)]

第三步:重启Apache

# cd /usr/local/apache2
# bin/apachectl -k stop
# bin/apachectl

5、在数据库中创建一个blog数据库

# mysql -uroot -p
Enter password:123
mysql> create database blog default charset utf8;

6、在Windows中配置本地DNS

运行(Windows + R) => drivers + 回车:C:\Windows\System32\drivers\etc\hosts

Windows的DNS文件 => 可以劫持域名,自定义域名指向:

10.1.1.13 www.blog.com

7、使用Google浏览器或Firefox浏览器安装博客

第一次访问:报403 Forbidden

原因:默认情况下,httpd不允许其他主机访问项目目录

解决方案:

# vim /usr/local/apache2/conf/httpd.conf

在这里插入图片描述

配置数据库:
【linux】运维之LAMP_第10张图片

运行结果:
【linux】运维之LAMP_第11张图片

你可能感兴趣的:(linux运维基础,linux,运维,php)