设为首页 收藏本站
查看: 1194|回复: 0

[经验分享] Centos7 Nginx+LAMP

[复制链接]

尚未签到

发表于 2019-2-15 12:08:40 | 显示全部楼层 |阅读模式
LAMP平台概述
  LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。LAMP是一个缩写词,具体包括Linux操作系统、Apache网站服务器、MySQL数据库服务器、PHP(或Perl、Python)网页编程语言

LAMP平台的构成组件
  Linux操作系统:作为LAMP架构的基础,提供用于支撑Web站点的d操作系统,能够与其他三个组件提供更好的稳定性、兼容性(AMP组件也支持Windows、UNIX等操作系统)
  1、Apache网站服务器:作为LAMP架构的前端,是一款功能强大、稳定性好的Web服务器程序,该服务器直接面向用户提供网站访问,发送网
页、图片等文件内容。
  2、MySQL数据库服务器:作为LAMP架构的后端,是一款流行的开源关系数据库系统。在企业网站、业务系统等应用中,各种账户信息、产品信息、客户资料、业务数据等可以存储到MySQL数据库,其它程序可以通过MySQL语句来查询、更改这些信息。
  3、PHP、Perl、Python网页编程语言:作为三种开发动态网页的编程语言,负责解释动态网页文件,并提供Web应用程序的开发和运行环境。其中PHP是一种被广泛应用的开放源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合于Web应用开发。

LAMP平台的应用优势
  1、成本低廉:构成组件都是开放源代码的软件,可以自由获得和免费使用,在技术上和许可证方面没有太严格的限制,大大降低企业成本。
  2、可定制:拥有大量的额外组件和可扩展功能的模块,能够满足大部分企业应用的定制需求,甚至可以自行开发、添加新的功能。
  3、方便易用:PHP、Perl等属于解释性语言,开发的各种Web程序不需要编译,方便进行移植使用。整套的网站项目程序,通常只要复制到网站目录下,就可以直接访问。
  4、易于开发:基于LAMP平台的动态网站中,页面代码简洁,与HTML标记语言的结合度非常好,即使是非专业的程序员也能够轻松读懂乃至修改网页代码。
  5、安全和稳定:得益于开源的优势,大量的程序员在关注并持续改进LAMP平台的各个组件,发现的问题能够很快得到解决。LAMP架构已经经历了数十年的长期验证,在安全性和稳定性方面表现得非常优秀。构建LAMP时,各组件的安装顺序依次为Linux、Apache、MySQL、PHP,其中Apache和MySQL的安装并没有严格的顺序,而PHP环境的安装一般放到最后,负责沟通Web服务器和数据库系统以协同工作。

实验环境
  系统版本:CentOS Linux release 7.3.1611 (Core)x64
  MySQL版本:MySQL5.7.24
  Apache版本:Apache/2.4.6 (yum安装)
  Nginx版本:Nginx1.14.0
  PHP版本:PHP 7.0.32
  关闭防火墙并禁止开机自启
  systemctl stop firewalld.service
systemctl disable firewalld
  关闭selinux
  sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
  重启 reboot

实验架构

注:如果服务器资源紧张nginx和apache可以在同一台服务器部署,但是为了安全个人建议分开部署!


安装反向代理nginx

1、修改主机名
  vi /etc/hostname
  nginx.wfy.com

2、域名绑定IP
  vi /etc/hosts

注:如果不确定是否修改成功,可以reboot重启验证!

3、安装nginx依赖环境包
  yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel


4、安装nginx
  1)官网下载nginx1.14.0压缩包
  wget https://nginx.org/download/nginx-1.14.0.tar.gz
  2)解压nginx
  tar xf nginx-1.14.0.tar.gz
  3)进入解压目录
  cd nginx-1.14.0
  4)编译nginx

//默认编译

  . /configure


//自定义编译选项

  . /configure \
--user=nginx \
--group=nginx \
--prefix=/usr/local/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--pid-path=/usr/local/nginx/conf/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi
--with-http_ssl_module
  注:以上为默认编译方式和具体指定的编译方式,任选以上这两种之一即可。--with-http_ssl_module这个选项是https的重要模块必须安装。


//本文编译方式

  ./configure
--prefix=/usr/local/nginx
--with-http_stub_status_module
--with-http_ssl_module


注:以上--with-http_ssl_module这个模块是https的关键可以根据业务需求使用https协议或者http协议。我这里使用默认http协议!

  5)安装nginx
  make && make install


5、启动nginx
  1)编辑nginx启动脚本
  vi /etc/init.d/nginx

  #! /bin/bash
#chkconfig: - 85 15
PATH=/usr/local/nginx
NAME=nginx
DAEMON=$PATH/sbin/$NAME
CONFIGFILE=$PATH/conf/$NAME.conf
PIDFILE=$PATH/logs/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
set -e
[ -x "$DAEMON" ] || exit 0
do_start() {
$DAEMON -c $CONFIGFILE || echo -e "\033[32m nginx already running \033[0m"
}
do_stop() {
$DAEMON -s stop || echo -e "\033[31m nginx not running \033[0m"
}
do_reload() {
$DAEMON -s reload || echo -e "\033[31m nginx can't reload \033[0m"
}
case "$1" in
start)
echo -e "\033[32m $NAME running \033[0m"
do_start
;;
stop)
echo -e "\033[31m $NAME stoping \033[0m"
do_stop
;;
reload|graceful)
echo -e "\033[32m $NAME configuration...\033[0m"
do_reload
;;
restart)
echo -e "\033[32m Restarting : $NAME \033[0m"
do_stop
do_start
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|reload|restart}" >&2
exit 3
;;
esac
exit 0

  注:切记编辑完启动脚本以后一定要给予执行权限,不然启动无效!
  2)设置启动文件执行权限
  chmod +x /etc/init.d/nginx
  3)启动nginx
  //设置开机自启
  chkconfig nginx on
  //启动nginx
  /etc/init.d/nginx start
  //重启nginx
  /etc/init.d/nginx restart
  //查看nginx服务启动状态
  chkconfig --list
  //查看nginx服务是否开启
  netstat -antupl | grep nginx

6、环境变量
  1)编辑nginx环境变量
  vi /etc/profile
  export PATH=$PATH:/usr/local/nginx/sbin
  2)环境变量生效
  source  /etc/profile

7、访问测试
  访问地址:http://192.168.152.170/


8、配置nginx反向代理
  1)备份nginx配置文件
  cp /usr/local/nginx/conf/nginx.conf  /usr/local/nginx/conf/nginx.conf.backup
  2)修改配置文件
  vi /usr/local/nginx/conf/nginx.conf

  #设置低权限用户,为了安全而设置的
user nobody;
#工作衍生进程数一般不大于cpu核数
worker_processes 2;
#设置错误文件存放路径
error_log logs/error.log;
error_log logs/error.log notice;
error_log logs/error.log info;
#设置pid存放路径(pid是控制系统中重要文件)
pid logs/nginx.pid;
#设置最大连接数
events{
worker_connections 1024;
}
http{
#主要是用于设置一组可以在proxy_pass和fastcgi_pass指令中使用额代理服务器,默认负载均衡方式为轮询
upstream tomcat {
#设置同一个cookie的两次/多次请求,请求的是同一台服务器
ip_hash;
#weight权重,默认1,权重越大访问概率越大,backup备用服务器,服务器全部崩溃后启动   
server 192.168.152.168:80 weight=5;
#server localhost:8080 weight=5 backup;
}
  #开启gzip压缩,开启后,访问网页会自动压缩     
gzip on;
  #指定服务器的名称和参数     
server {
listen 80;   
server_name  localhost;

#设置字符         
#charset koi8-r;
#location / 指用根目录做负载均衡         
location / {
proxy_pass http://tomcat;   
proxy_redirect default;
#设置代理
proxy_set_header Host $host;      
proxy_set_header X-Real-IP $remote_addr;
}
  }
}

  注:nginx反向代理本身就和nginx负载均衡是一回事,设置方式有两种,一种是直接写负载均衡,但是后端只挂一个服务器即可,如果是两个服务器那就是通过反向代理实现负载均衡;另一种注释负载均衡功能,直接写location来做代理即可!

安装apache+php

1、修改主机名
  vi /etc/hostname
  apache.wfy.com

2、域名绑定IP
  vi /etc/hosts


3、安装apache
  1)安装apache依赖包
  yum -y install mod_ssl openssl httpd
  注:默认使用http协议,防止升级https协议,提前将mod_ssl模块安装!
  2)启动apache
  systemctl start httpd
  3)设置开机启动
  systemctl enable httpd

4、安装php
  1)查看yum源列表
  yum list | grep epel-release

  2)安装elep源
  yum install epel-release.noarch

  3)安装php依赖包
  yum install gcc-c++ libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel

注:如果在安装依赖时如上图停止是因为yum源需要更新,所以在线源直接更新安装yum源即可!命令为:yum load-transaction /tmp/yum_save_tx.2019-01-07.02-39.jCiLCl.yumtx更新完成后,重新安装一遍php依赖包,如下截图

  4)安装php新版本rpm源
  rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
  rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

  5)查看php版本安装包文件
  yum search php7
  6)安装php
  yum install  php70w.x86_64  php70w-common php70w-fpm php70w-opcache php70w-gd php70w-mbstring php70w-pecl-redis php70w-pecl-memcached php70w-devel php70w-mysql
  注:防止后期扩展服务,所以将一般常用模块都安装上!
  7)查看php版本
  php –v

  8)编辑php测试文件
  vi /var/www/html/index.php

  

  9)重启httpd服务
  systemctl  restart  httpd
  10)测试
  访问地址:http://192.168.152.170/


注:以上截图pdo模块主要针对于php!

安装MySQL5.7数据库
  注:这里就不多说了,太简单了,不会的可以自行百度或者看我的上一篇文章如何在Centos7下安装MySQL5.7或者Centos7二进制安装MySQL5.7

测试PHP与MySQL数据库交互

1、MySQL数据库服务器
  1)创建test数据库
  create database test character set utf8;
  2)创建test数据库用户
  grant all privileges on test.* TO 'test'@'%' identified by 'Wangfeiyu@12' WITH GRANT OPTION;
  3)刷新数据库
  flush privileges;
  4)设置test数据库允许远程登录
  update user set host = '%' where user = 'test';
  5)创建一个use表
  create table test.use(number int(100),primary key(number),user_name char(10) not null, user_pass char(12) default '');
  6)向表中添加数据
  insert into test.use values('1','2','3');


2、apache+php交互服务器
  1)新建测试文件
  vi /var/www/html/index.php

  

  注:保存文件退出并重启httpd!
  2)重启httpd服务
  systemctl restart httpd
  3)访问测试
  访问地址:http://192.168.152.168/

注:以上截图说明apache+php交互没有问题!

3、测试反向代理
  访问地址:http://192.168.152.170/

注:以上截图说明反向代理也没有问题,也就是说完整的部署了nginx+lamp环境!




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-672401-1-1.html 上篇帖子: centos7源码安装redis 下篇帖子: Docker 验证 Centos7.2 离线安装 Docker 环境
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表