12.1-12.5 LNMP架构介绍 , MySQL安装 , PHP安装, Nginx介绍

LNMP架构介绍

  • lamp架构,linux,mysql,apache,php; p- hp是做为apache的一个模块存在,libphp5或者libphp7用来解析php,apache的提供服务的叫httpd,当一个用户登陆网站的时候,apache会将请求给php模块,让它去和数据库交互。php

  • lnmg架构,linx,mysql,nginx,phpcss

  • php是做为一个独立的服务存在的,这个服务叫作php-fpm,nginx提供的服务叫nginx,当一个用户登陆网站的时候,nginx会将请求交给php服务,让它去和数据库交互java

  • 在静态页面的处理上,nginx会比apache更快一下,主要是底层的一些架构不一样,在动态页面的处理上上,nginx并不比apache有优点mysql

  • nginx的用户并发支持会很大,能够达到好几万,这是apache作不到的。 linux


安装mysql

[root@linux-129 ~]# cd /usr/local/src
  1. 下载:这个是一个二进制免编译包
[root@linux-129 src]# http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
  1. 解压:
[root@linux-129 src]# tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
  1. 移动并重命名:
[root@linux-129 src]#  mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql
[root@linux-129 src]# cd /usr/local/mysql
  1. 建立mysql用户
[root@linux-129 mysql]# useradd -M mysql -s /sbin/nologin
  1. 建立数据库目录
[root@linux-129 msyql]# mkdir /data/
  1. 编译:
首先安装依赖包:perl-Data-Dumper   libaio
[root@linux-129 msyql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
  1. 拷贝启动脚本
[root@linux-129 mysql]# cp support-files/mysql.server  /etc/init.d/mysqld
  1. 编辑启动脚本
[root@linux-129 mysql]# vim /etc/init.d/mysqld
  1. 修改下面内容
basedir=/usr/local/mysql
datadir=/data/mysql
注意:若是遇到服务器上装了别的mysql,这里在启动脚本里面定义一个默认配置文件路径,由于linux系统默认的mysql配置文件路径是在/etc/my.cnf,因此这里须要指定一下

  1. 拷贝配置文件
[root@linux-129 mysql]# cp support-files/my-default.cnf /usr/local/mysql/my.cnf
  1. 编辑配置文件
basedir = /usr/local/mysql
datadir = /data/mysql
  1. 启动msql
[root@linux-129 mysql]# /etc/init.d/mysqld start
  1. 添加服务
[root@linux-129 mysql]# chkconfig --add mysqld
  1. 开机启动
[root@linux-129 mysql]# chkconfig mysqld on

[root@linux-129 mysql]# chkconfig --list

注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。    
      若是您想列出 systemd 服务,请执行 'systemctl list-unit-files'。    
      欲查看对特定 target 启用的服务请执行    
      'systemctl list-dependencies [target]'。

mysqld         	0:关	1:关	2:开	3:开	4:开	5:开	6:关
netconsole     	0:关	1:关	2:关	3:关	4:关	5:关	6:关
network        	0:关	1:关	2:开	3:开	4:开	5:开	6:关

PHP安装

cd /usr/local/src/
  1. 下载
wget http://cn2.php.net/distributions/php-5.6.30.tar.gz
  1. 解压
tar zxf php-5.6.30.tar.gz
  1. 建立用户php-fpm
useradd -s /sbin/nologin php-fpm
[root@linux-129 php-5.6.30]# tail -3 /etc/passwd
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
mysql:x:1000:1000::/home/mysql:/sbin/nologin
php-fpm:x:1001:1001::/home/php-fpm:/sbin/nologin

cd php-5.6.30
4. 安装一个扩展源:nginx

yum install -y  epel-release.noarch

若是没有包,安装如下依赖包
yum install -y  epel-release.noarch bzip2-devel  libjpeg-turbo-devel  libpng-devel freetype-devel libtomcrypt-devel  openssl-devel  php-mcrypt  libmcrypt  libmcrypt-devel  gcc  libtool-ltdl-devel expat-devel pcre-devel  libxml2-devel  libcurl-devel
  1. 由于以前编译过php,因此这里须要清除以前编译内容
[root@linux-129 php-5.6.30]# make clean    
find . -name \*.gcno -o -name \*.gcda | xargs rm -f
find . -name \*.lo -o -name \*.o | xargs rm -f
find . -name \*.la -o -name \*.a | xargs rm -f
find . -name \*.so | xargs rm -f
find . -name .libs -a -type d|xargs rm -rf
rm -f libphp5.la sapi/cli/php sapi/cgi/php-cgi    libphp5.la modules/* libs/*
  1. 编译:
[root@linux-129 php-5.6.30]# ./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl  --with-openssl

若是php和mysql不在同一台服务器上
编译web

./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysqli --with-pdo-mysql --with-mysql-sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl --with-openssl --enable-pdo --enable-mysqlnd

错误信息: sql

编译php后发生warning:configure:WARNING:unrecognizedoptions:--with-mysql 只是php不支持mysql模块
./configure --help 查看configure的正确语法,从新编译php支持mysql,改用--with-pdo-mysql
[root@linux-129 php-5.6.30]# yum list |grep libcurl

[root@linux-129 php-5.6.30]# yum install -y libcurl-devel

从新编译后
数据库

[root@linux-129 php-fpm]# make 
[root@linux-129 php-fpm]# make install
[root@linux-129 php-fpm]# cd /usr/local/php-fpm/
[root@linux-129 php-fpm]# ls
bin  etc  include  lib  php  sbin  va

[root@linux-129 php-fpm]# ls  /usr/local/php-fpm/sbin/php-fpm  //这个文件是启动文件
/usr/local/php-fpm/sbin/php-fpm 它也能够使用 -m 查看模块,-i 查看phpinfo,-t检查配置文件正确仍是错误

这里报错:没有配置文件apache

[root@linux-129 php-fpm]#  /usr/local/php-fpm/sbin/php-fpm -t
[10-Apr-2018 16:07:44] ERROR: failed to open configuration file '/usr/local/php-fpm/etc/php-fpm.conf': No such file or directory (2)
[10-Apr-2018 16:07:44] ERROR: failed to load configuration file '/usr/local/php-fpm/etc/php-fpm.conf'
[10-Apr-2018 16:07:44] ERROR: FPM initialization failed
  1. 拷贝php的配置文件 : php.ini-production生成环境下用的,php.ini-development开发环境中用
    区别:错误日志就不同
[root@linux-129 php-fpm]# cp /usr/local/src/php-5.6.30/php.ini-production /usr/local/php-fpm/etc/php.ini
  1. 拷贝php-fpm.conf的配置文件
[root@linux-129 php-fpm]# cd /usr/local/php-fpm/etc
[root@linux-129 etc]# ls
pear.conf  php-fpm.conf.default  php.ini     \\php-fpm.conf.default这个就是模板,这里咱们直接编辑
[root@linux-129 etc]# vim php-fpm.conf

加入如下内容:

[global]   \\定义一些全局的参数
pid = /usr/local/php-fpm/var/run/php-fpm.pid
error_log = /usr/local/php-fpm/var/log/php-fpm.log
[www]   \\模块的名字
listen = /tmp/php-fcgi.sock             \\监听的地址 也能够写成ip:端口的形式
#listen = 127.0.0.1:9000     \\由于php和nginx是在同一台机器上,是在本地通讯,因此这里能够是127.0.0.1,能够使用别的IP,默认端口是9000  ;这里只能使用一种监听模式,咱们注释掉一个。
listen.mode = 666   \\当定义的监听是sock的时候,这个语句才会生效,定义sock的文件权限是666
user = php-fpm    \\用户
group = php-fpm   \\组
pm = dynamic   
pm.max_children = 50
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
rlimit_files = 1024
  1. 拷贝php-fpm的启动脚本
[root@linux-129 etc]# cd /usr/local/src/php-5.6.30
[root@linux-129 php-5.6.30]# cp  sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@linux-129 php-5.6.30]# ls /etc/init.d/php-fpm
/etc/init.d/php-fpm
  1. 修改权限
[root@linux-129 php-5.6.30]# chmod 755 /etc/init.d/php-fpm

11 . 添加服务列表

[root@linux-129 php-5.6.30]# chkconfig --add php-fpm
  1. 开机启动
[root@linux-129 php-5.6.30]#chkconfig php-fpm on
[root@linux-129 php-5.6.30]# 

注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。
      若是您想列出 systemd 服务,请执行 'systemctl list-unit-files'。
      欲查看对特定 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

mysqld         	0:关	1:关	2:开	3:开	4:开	5:开	6:关
netconsole     	0:关	1:关	2:关	3:关	4:关	5:关	6:关
network        	0:关	1:关	2:开	3:开	4:开	5:开	6:关
php-fpm        	0:关	1:关	2:开	3:开	4:开	5:开	6:关
  • 检查配置文件是否正确
[root@linux-129 php-5.6.30]# /usr/local/php-fpm/sbin/php-fpm -t
[10-Apr-2018 16:39:37] NOTICE: configuration file /usr/local/php-fpm/etc/php-fpm.conf test is successful
  1. 启动服务
[root@linux-129 php-5.6.30]# service php-fpm start
Starting php-fpm  done
  1. 查看进程
[root@linux-129 php-5.6.30]# ps aux |grep php-fpm

Nginx介绍

• Nginx官网 nginx.org,最新版1.13,最新稳定版1.12 • Nginx应用场景:web服务、反向代理、负载均衡 反向代理一台机器叫反向代理,代理2台机器就叫作负载均衡 • Nginx著名分支,淘宝基于Nginx开发的Tengine,使用上和Nginx一致,服务名,配置文件名都同样,和Nginx的最大区别在于Tenging增长了一些定制化模块,在安全限速方面表现突出,另外它支持对js,css合并 • Nginx核心+lua相关的组件和模块组成了一个支持lua的高性能web容器openresty,参考http://jinnianshilongnian.iteye.com/blog/2280928

  • lua是一种开发语言;
  • java作的网站一半都是用过的nginx,由于java中tomcat在处理静态文件的时候比较差,nginx在处理静态文件效率比较高;
  • nginx自己的功能比较少,可是它能够扩展一些第三方模块进来;好比:支持https等
相关文章
相关标签/搜索