企业架构LA|NMP+Redis主从实战
1、 LA|NMP+Redis架构概念
1) LA|NMP WEB架构,Linux+Apache|Nginx+MYSQL|Mariadb+PHP主流的架构;
2) Linux,是开源一套操作系统,主要作为应用软件底层;
注意:Apache就是httpd
3) Apache,WEB服务器,用于发布静态页面,html、txt、js、css、png、gif、jpeg等,跟数据库没有交互的,是世界上使用的最多的WEB服务器,最新版本httpd-2.4版本;
4) MYSQL,被oracle公司收购了,开放版本、商业版本,独立出来之后,开发了一套开源数据库,Mariadb,完全兼容MYSQL所有的指令和参数,关系型数据库系统,CentOS7开始,内置Mariadb;
5) PHP,PHP是一门动态语言,底层核心代码是通过C写,可以编写PHP代码(PHP网页);
6) Redis,内存数据库,内存缓存,其数据放在内存中的,服务重启、系统重启,Redis内存中数据丢失,如何做到持久化,Redis有一个机制,往硬盘sync数据,加载硬盘Redis数据到内存,提供服务。
2、 LAMP工作原理
1) 用户浏览器发起www.jfedu.net HTTP请求,Apache WEB服务器收到请求之后,判断用户访问文件,默认访问/index.php;
2) Apache WEB服务器从硬盘、内存中读取index.php文件,判断该文件类型,该类型.php结尾;
3) Apache将index.php页面转发给PHP解释器(PHP模块),PHP解释器读取index.php,解析成html页面,然后将html返给Apache;
4) Apache将html页面返回给浏览器,浏览器通过类型调用不同程序解析、渲染该文件成页面,最终浏览器展示。
5) 如果用户请求的静态页面,Apache判断用户请求页面后缀为静态页面,Apache直接处理。
3、 LAMP部署实战
1) Linux软件根据内容分类,二进制软件、源代码软件;
2) 二进制软件,内容包含bin文件、二进制可运行文件,可以直接,简单安装即可使用,以.rpm、.zip、.tar.gz、.rar、.war包;
3) 源代码软件,内容包含.cpp、.c、.h、.o结尾的文件,不能直接使用,需要经过编译方可使用,后缀一般是.zip、.tar.gz、.tar、.tar.bz2;
4) 二进制软件安装方法,解压即可使用,或者通过rpm -ivh命令或者yum install命令安装;
5) 源代码软件安装方法,解压,需要./configure预编译、make编译、make install安装;
6) 基于二进制方式来安装LAMP软件,yum install httpd httpd-devel mysql-server mysql mysql-devel php php-devel php-libs –y
注意:光盘里面的包是RPM包( 二进制包)。src、rpm包需要编译,安装命令:rpm -ivh xxx.rpm。
libphp5作用:解析PHP动态页面
三台机器:LANP+Discuz、Redis主库、Redis从库
在LANP+Discuz上操作,先下载好软件,下面是部署LANP。
[root@localhost ~]# cd /var/www/html
[root@localhost html]# rm -rf *
[root@localhost html]# pwd
/var/www/html
[root@localhost html]# vim test.php
<?php
phinfo();
?>
[root@localhost html]# cat test.php #php测试页面用来php环境是否初始化成功
[root@localhost html]# /etc/init.d/httpd restart #重启apache服务
Stopping httpd: [ ok ]
Staring httpd: httpd :Could not reliably determine the server's fully qualified domain name #找不到serverName ,原因没有定义
using localhost.localdomain for serverName [ ok ]
root@localhost html]# vim /etc/httpd/ /conf/httpd.conf #定义serverName
/ServerName #搜索ServerName
ServerName www.example.com:80 #把ServerName后面改成localhsot
[root@localhost html]# /etc/init.d/httpd restart #重新启东apache服务
............................ [ ok ]
............................ [ ok ]
[root@localhost html]# !ps #查看启动的apache服务
在百度上输入:192.168.11.131/test.php ,即可打开php页面,这个是页面是PHP解析过后的。192.168.11.131这个IP地址要在Windows上面,能够ping通。
如果在页面上面,得到三行代码。说明PHP环境没有解析成功,php.test文件在做完测试,就要删除掉。
LAMP发布PHP网站,如何发布呢
查看发布的目录
[root@localhost html]# pwd /var/www/html # 发布的目录
[root@localhost html]# vim /etc/httpd/conf/httpd.conf #查看apache主配置文件
/DocumentRoot #搜索DocumentRoot 目录
下载一个程序,在百度上面,搜索discuz,并从官网上面下载,下一个最新的
回到服务器LANP+Discuz,复制简体utf8下载地址。
[root@localhost html]# http://download/comsenz.com/Discuzx/3.4/Discuz_x3.4_sc_UTF8.zip #如果不行就用wget [root@localhost html]# wget http://download/comsenz.com/Discuzx/3.4/Discuz_x3.4_sc_UTF8.zip #在线下载
[root@localhost html]# ll #查看下载的包
[root@localhost html]# unzip Discuz_x3.4_sc_UTF8.zip #解压缩
[root@localhost html]#ll #查看解压缩的 Discuz_x3.4_sc_UTF8.zip readme test.php upload utility
[root@localhost html]# cd upload/ #查看下载的代码 [root@localhost upload]#ls admin.php config ..... .... index.php plugin.php ... connect.php .... ... ... ... ... .... .... ... ... .. .... .. [root@localhost upload]#pwd /var/www/html/upload #/var/www/html/ 是网站根目录的子目录 [root@localhost upload]# mv * /var/www/html/ #移到上级目录,/var/www/html/ 是网站根目录 [root@localhost upload]#cd .. [root@localhost html] #ls
在百度上面搜索install目录
原因apache没有写权限
[root@localhosthtml]# pwd /var/www/html [root@localhost html]# ps-ef | grep http [root@localhost html]# ll 增加写的权限 [root@localhost html]# chmod o+w data/ config uc_* -R #写的权限
然后刷新百度页面
如果mysql连不上,说明缺少一个MySQL驱动,直接点下一步,下一步
在服务器上面查看有没有创建用户名。
[root@localhosthtml]# cd [root@localhost ~]#mysql ERROR 2002 (HY000) : Can't connect to local mysql server through socker 'varlib/mysql.sock' (111) [root@localhost ~]# /etc/init.d/mysql restart #启动数据库服务 [root@localhost ~]# mysql #进入mysql .... mysql> show batabases; #查看启动成功吗 ... mysql> drop batabases ultrax; #删掉这个库 mysql> exit或者ctrl+c #退出 [root@localhost ~]#mysql #再进去MySQL一次 mysql> show batabases; [root@localhost ~]# mysql #开始创建数据库 mysql> create batabases disscuz charset=utf8; mysql> show batabases; #查看启动成功吗 [root@localhost html]# /etc/init.d/mysql restart #启动数据库服务
授予MySQL权限
[root@localhost ~]# mysql #进入mysql .... mysql> grant select,create,insert,update,drop,delete #设置权限或者grant all on discuz.* to jfedu@'%' identified by "lqaz@WSX" mysql> flush privileges mysql> drop batabases ultrax; #删掉这个库
写IP地址就行了
如果想使用localhsot地址,就把%去掉
换成localhost,登陆MySQL就需要密码了
安装Redis
(1)、安装命令:yum install -y redis,然后重启:/etc/init.d/redis restart
编辑vim /etc/redis.conf,搜索dir,命令:/dir
[root@localhost ~]# /etc/init.d/redis restart #再重启一下
[root@localhost ~]# ps -ef |grep redis
[root@localhost ~]# redis-cli #进入redis服务中
(2)、二进制安装:wget http://download.redis.io/releases/redis-2.8.13.tar.gz
tar -zxvf redis-2.8.13.tar.gz
cd redis-2.8.13
make PREFIX=/usr/local/redis/
cp redis.conf /usr/local/redis/
将/usr/local/redis/bin/目录加入至环境变量配置文件/etc/profile末