LAMP架构实验详解超详细,可跟做

1.目前市面上比较火的4个web服务

1:apache 特点:功能完善 缺点:占用的资源比较大的服务
2:nginx 特点:高并发,属于轻量级别的服务,相对apache来说功能会比较少
3:Tomcat 特点:简单来说tomcat就是个容器 相对的语言就是Java,所以tomcat
的市场占有率也是非常高的,而且tomcat是以线程的形式去启动服务,占用资源少,灵活
4:IIS 微软web服务

LAMP架构实验

1.准备一台虚拟机
2.系统为centos 7.6

####关闭防火墙与内核防护####
[root@localhost ~]#systemctl stop firewalld        ##关闭防火墙
[root@localhost ~]#systemctl disable firewalld
[root@localhost ~]# vi /etc/selinux/config           ##修改配置文件
SELINUX=disabled
[root@localhost ~]# setenforce 0                         ##关闭核心防护

####搭建YUM仓库####
[root@localhost ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ll
总用量 32
-rw-r--r--. 1 root root 1664 1123 21:16 CentOS-Base.repo
-rw-r--r--. 1 root root 1309 1123 21:16 CentOS-CR.repo
-rw-r--r--. 1 root root  649 1123 21:16 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  314 1123 21:16 CentOS-fasttrack.repo
-rw-r--r--. 1 root root  630 1123 21:16 CentOS-Media.repo
-rw-r--r--. 1 root root 1331 1123 21:16 CentOS-Sources.repo
-rw-r--r--. 1 root root 5701 1123 21:16 CentOS-Vault.repo
[root@localhost yum.repos.d]# mkdir backup
[root@localhost yum.repos.d]# mv C* backup/
[root@localhost yum.repos.d]# cp backup/CentOS-Base.repo local.repo
[root@localhost yum.repos.d]# vi local.repo
[centos]
name=centos
baseurl=file:///mnt
gpgcheck=0
enabled=1
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[root@localhost yum.repos.d]# yum clean all
已加载插件:fastestmirror, langpacks
正在清理软件源: centos

[root@localhost yum.repos.d]# yum makecache 
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
centos                                                              | 3.6 kB  00:00:00     
(1/4): centos/group_gz                                              | 166 kB  00:00:00     
(2/4): centos/filelists_db                                          | 3.2 MB  00:00:00     
(3/4): centos/primary_db                                            | 3.1 MB  00:00:00     
(4/4): centos/other_db                                              | 1.3 MB  00:00:00 

#####任何手工编译安装首先抓几个点########
1:依赖环境包安装
2:源码解压
3:configure的配置
4:make :是将你人能看懂的语言转换成机器能看懂的2进制文件
5:make install :就是按照的过程
#####一定要清除的三个文件########
1:主配置文件: .conf 这里我们编译在了/usr/local/httpd下
2:启动脚本:控制开和关 .service,有时候不见得能找到你得去(bin下面找)
3:命令文件: --prefix 指定路径下的bin目录,便于系统直接使用,常用 ln -s
重放在(/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin,环境变量中)识别
三种方式: ln -s ,cp ,vi /etc/profile 去末尾声明:export PATH=/usr/local/httpd/bin:$PATH 最好source

####编译安装HTTP服务####
#####安装Apache所需软件#####
apr-1.6.2.tar.gz              ####实现apache跨平台的依赖性环境包           
apr-util-1.6.0.tar.gz       ####实现apache跨平台的依赖性环境包
httpd-2.4.29.tar.bz2      ####apache 2.4版的源码包
####将上面3个包传到opt目录下####

[root@localhost ~]# cd /opt
[root@localhost opt]# ll
总用量 8020
-rw-r--r--  1 root root 1071074 84 17:33 apr-1.6.2.tar.gz
-rw-r--r--  1 root root  565507 84 17:33 apr-util-1.6.0.tar.gz
-rw-r--r--  1 root root 6567926 84 17:33 httpd-2.4.29.tar.bz2
drwxr-xr-x. 2 root root       6 326 2015 rh

#####解压bz2需要安装bzip2,最小安装需要######
[root@localhost opt]# yum -y install bzip2   

#####解压软件包##### 
[root@localhost opt]# tar xf apr-1.6.2.tar.gz 
[root@localhost opt]# tar xf apr-util-1.6.0.tar.gz
[root@localhost opt]# tar jxvf httpd-2.4.29.tar.bz2
[root@localhost opt]# ls
apr-1.6.2         apr-util-1.6.0         httpd-2.4.29
apr-1.6.2.tar.gz  apr-util-1.6.0.tar.gz  httpd-2.4.29.tar.bz2

##需要将解压出来的两个依赖性环境包放入apache的srclib中才能实现apache的跨平台##

[root@localhost opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr         ##移动apr-1.6.2
并改名为apr
[root@localhost opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util      ##移
动apr-util-1.6.0并改名为apr-util

##################安装环境#######
[root@localhost opt]# 
yum -y install \
gcc \                   ###编译器
gcc-c++ \          ###编译器
make \               ###可以将configure配置文件变为执行性文件也就是二进制文件
pcre-devel \     ###使底层支持正则表达式格式
expat-devel \   ###支持expat
perl                    ###支持perl语言

##简单来说安装以上环境就是使apache能支持多语言###

[root@localhost opt]# cd httpd-2.4.29
[root@localhost httpd-2.4.29]# ls
。。。。省略部分
CHANGES          libhttpd.dep    srclib
CMakeLists.txt   libhttpd.dsp    support
config.layout    libhttpd.mak    test
configure        LICENSE         VERSIONING
configure.in     Makefile.in

[root@localhost httpd-2.4.29]# ./configure \   ##这里启动就是文件中的configure,在其他位置无法启动
--prefix=/usr/local/httpd \       ###--prefix是指定工作目录
--enable-so \                                ###以so为结尾的就是开启apache核心功能模块的
--enable-rewrite \                       ###重写功能
--enable-charset-lite \                ###开启字符集功能
--enable-cgi             ###cgi叫做通用网关接口,这里有cgi就是支持多种语言编写,也是一种规范

###编译及安装### 
[root@localhost httpd-2.4.29]#make && make install                ###先make -j3   
然后make install   -j3是你核心数,最大不要超过虚拟机的核心数

[root@localhost httpd-2.4.29]#cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd      ##将apachectl脚本复制到/etc/init.d/httpd中方便自动化管理
[root@localhost httpd-2.4.29]#cd /etc/init.d
[root@localhost init.d]# vi httpd     ###进入脚本添加注释,添加在第二行就可以了
# chkconfig: 35 85 21 //35级别自动运行 第85个启动 第21个关闭
# description: Apache is a World Wide Web server

[root@localhost init.d]# chkconfig --list   ###这里可以看出HTTP的服务没有加入SERVICE管理器
netconsole     	0:off	1:off	2:off	3:off	4:off	5:off	6:off
network        	0:off	1:off	2:on	3:on	4:on	5:on	6:off

[root@localhost init.d]# chkconfig --add httpd  ###添加httpd到SERVICE管理器,这里可以看到
35级别已近开启了
[root@localhost init.d]# chkconfig --list
httpd          	0:off	1:off	2:off	3:on	4:off	5:on	6:off
netconsole     	0:off	1:off	2:off	3:off	4:off	5:off	6:off
network        	0:off	1:off	2:on	3:on	4:on	5:on	6:off

[root@localhost init.d]# cd /usr/local/httpd/conf
[root@localhost conf]# vi httpd.conf        ###修改httpd配置文件
ServerName www.yun.com:80     ##域名默认是注释掉的  要去掉#
Listen 20.0.0.30:80    ###开启ipv4的
#Listen 80                   ###这个是ipv6的注释

[root@localhost conf]# ln -s /usr/local/httpd/conf/httpd.conf /etc/  ##设置软连接到/etc/
[root@localhost conf]# ln -s /usr/local/httpd/bin/* /usr/local/bin/   

[root@localhost conf]# httpd -t     ###测试语法是否没问题
Syntax OK

[root@localhost conf]#service httpd start  ###启动httpd
[root@localhost conf]#netstat  -anpt |grep httpd   ####查看端口有没有启
tcp        0      0 20.0.0.30:80            0.0.0.0:*               LISTEN      59257/httpd

########这里可以用浏览器测试20.0.0.30#######
网页显示   It works!  就证明我们httpd已经开启成功了

#########安装mysql######
yum -y install \
ncurses \
ncurses-devel \
bison \
cmake

useradd -s /sbin/nologin  mysql

###上传mysql-boost-5.7.20.tar.gz到opt目录下###
cd /opt
tar xf mysql-boost-5.7.20.tar.gz
cd /opt/mysql-5.7.20/

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1

####配置选项含义###
1、DCMAKE_INSTALL_PREFIX:指定将 mysql 数据库程序安装到某目录下,
如目录/usr/local/ mysql。
2、DSYSCONFDIR:指定初始化参数文件目录
3、DDEFAULT_CHARSET:指定默认使用的字符集编码,如 utf8。
4、DDEFAULT_COLLATION:指定默认使用的字符集校对规则,utf8_general_ci
是适用于 UTF-8 字符集的通用规则。
5、DWITH_EXTRA_CHARSETS:指定额外支持的其他字符集编码。
##################################################################################################

------注意:如果在CMAKE的过程中有报错---
        当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧
------注意:make: *** No targets specified and no makefile found. Stop.解决方法
        1、wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.6.tar.gz
        2.、tar zxvf ncurses-5.6.tar.gz
        3./configure -prefix=/usr/local -with-shared-without-debug
        4、make
        5、make install

###############################################################################################

######编译安装####

make && make install


#####数据库目录进行权限调整###

chown -R mysql:mysql /usr/local/mysql/


#####建立调整配置文件########

vi /etc/my.cnf

[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,
NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,
ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES


chown mysql:mysql /etc/my.cnf

#######设置环境变量####

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

cd /usr/local/mysql/

bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl enable mysqld
systemctl start mysqld
systemctl status mysqld
netstat -anpt | grep 3306

mysqladmin -u root -p password "abc123"  //刚开始没密码是空的直接回车,
然后输入密码abc123,在此确认abc123,这是在root账户下运行的

mysql -u root -p     ##这个命令敲下,提示要输入密码,这个就是刚才设置的密码abc123

####################安装PHP环境#####
yum -y install \
libjpeg \
libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 \
libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

-------------以下两行可能用不到-----------
vi /usr/local/httpd/bin/apxs
#!/usr/bin/perl -w

#######上传php-7.1.10.tar.bz2包到opt目录下#####
cd /opt
tar xjvf php-7.1.10.tar.bz2
cd php-7.1.10
./configure \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip



make && make install

cp php.ini-development /usr/local/php/lib/php.ini
vi /usr/local/php/lib/php.ini

mysqli.default_socket = /usr/local/mysql/mysql.sock
date.timezone = Asia/Shanghai

/usr/local/php/bin/php -m //验证安装的模块

vi /etc/httpd.conf //在合适位置新增

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

DirectoryIndex index.php index.html

rm -f /usr/local/httpd/htdocs/index.html
vi /usr/local/httpd/htdocs/index.php

<?php
phpinfo();
?>

systemctl restart httpd


http://192.168.32.21/

mysqladmin -uroot -p password 'abc123'   
这个地方回车后,输入是初始密码,我们这边安装的初始密码是空的。回车即可
--------下面测试数据库工作是否正常-----
mysql -u root -p

CREATE DATABASE myadm;
GRANT all ON myadm.* TO 'myadm'@'%' IDENTIFIED BY 'admin123';
GRANT all ON myadm.* TO 'myadm'@'localhost' IDENTIFIED BY 'admin123';
flush privileges;

vi /usr/local/httpd/htdocs/index.php

<?php
$link=mysqli_connect('192.168.32.21','myadm','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>

########http://192.168.32.21/测试下###

#########上传phpMyAdmin-4.7.6-all-languages.zip到opt下面#####

---以下安装phpMyadmin------
cd /opt
unzip phpMyAdmin-4.7.6-all-languages.zip -d /opt/
mv phpMyAdmin-4.7.6-all-languages /usr/local/httpd/htdocs/myadm
cd /usr/local/httpd/htdocs/myadm
cp config.sample.inc.php config.inc.php

vi config.inc.php

$cfg['Servers'][$i]['host'] = '127.0.0.1'; //把localhost 改成IP 31行

http://192.168.32.21/myadm
使用root 以及前面为root配置的密码登录管理系统。可以对数据库进行管理操作了
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值