LNMP是Linux+Nginx+MySQL+PHP的简称php
• 和LAMP不一样的是,提供web服务的是Nginx,而且php是做为一个独立服务存在的,叫作php-fpm。css
• Nginx直接处理静态请求,动态请求会转发给php-fpm,Nginx处理静态请求的能力要高于Apache。html
MySQL的几个经常使用安装包:rpm、源码、二进制免编译mysql
二进制包是区分平台的,centos7以前的版本都是区分32位和64位,centos7直接选择64位安装。linux
[root@linux-10 src]# uname –i //查看linux是多少位 x86_64
[root@linux-10 ~]# cd /usr/local/src //建议将全部软件包都放在这个目录下
下载地址到r.aminglinux.com找最新的下载nginx
[root@linux-10 src]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
注:本人因为网络问题,没法直接将安装包下载至Linux操做系统中,故采用先下载至本地Windows系统上(版本5.6.35),后经过rz命令上传至Linux操做系统上web
[root@linux-10 src]# tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
[root@linux-10 src]# mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql [root@linux-10 ~]# cd /usr/local/mysql [root@linux-10 mysql]# ls bin data include man README share support-files COPYING docs lib mysql-test scripts sql-bench
[root@linux-10 mysql]# useradd -s /sbin/nologin mysql
[root@linux-10 mysql]# mkdir /data
[root@linux-10 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql //--user=mysql 以用户mysql身份运行,--datadir=/data/mysql存放数据库的目录 ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db: Data::Dumper //这里出现了错误,缘由是缺乏包 perl-Module-Install 可使用yum list 来查看缺乏包 [root@linux-10 mysql]# yum list |grep perl |grep -i dumper Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast perl-Data-Dumper.x86_64 2.145-3.el7 base perl-Data-Dumper-Concise.noarch 2.020-6.el7 epel perl-Data-Dumper-Names.noarch 0.03-17.el7 epel perl-XML-Dumper.noarch 0.81-17.el7 base 安装perl-Data-Dumper包 [root@linux-10 mysql]# yum install -y perl-Data-Dumper
[root@linux-10 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql 若是看到两个OK说明执行正确,或者echo $? 结果为0 也表示执行正确。 [root@linux-10 mysql]# echo $? 0
Mysql的配置文件在/usr/local/mysql/support-files/目录下my-default.cnf,它是msyql的模板配置文件sql
[root@linux-10 mysql]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf cp:是否覆盖"/etc/my.cnf"? y //这里已经存在文件my.cnf,这是以前系统rpm安装留下的,咱们能够查看它是哪一个包安装的 [root@linux-10 mysql]# rpm -qf /etc/my.cnf mariadb-libs-5.5.52-1.el7.x86_64
咱们这里直接按“y”覆盖便可数据库
[root@linux-10 ~]# vim /etc/my.cnf # For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the # *** default location during install, and will be replaced if you # *** upgrade to a newer version of MySQL. [mysqld] # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # These are commonly set, remove the # and set as required. basedir = /usr/local/mysql //mysql的安装目录 datadir = /data/mysql //存放数据库的目录 port = 3306 //端口 # server_id = ..... //mysql的ID号,作主从的时候要用到 socket = /tmp/mysql.sock //mysql服务监听的套件字地址,也是用来通讯的。 # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M
[root@linux-10 mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@linux-10 mysql]# vim /etc/init.d/mysqld basedir=/usr/local/mysql datadir=/data/mysql
[root@linux-10 mysql]# chmod 755 /etc/init.d/mysqld
[root@linux-10 mysql]# chkconfig --add mysqld
[root@linux-10 mysql]# chkconfig mysqld on
[root@linux-10 ~]# service mysqld start Starting MySQL.Logging to '/data/mysql/linux-5.err'. . SUCCESS!
注:若是启动不了,请到/data/mysql/目录下查看错误日志,这个日志一般是主机名.errapache
[root@linux-10 ~]# ps aux |grep mysqld root 3233 0.0 0.0 11772 1596 pts/1 S 19:58 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/linux-5.pid mysql 3395 0.8 24.0 973052 449444 pts/1 Sl 19:58 0:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/linux-5.err --pid-file=/data/mysql/linux-5.pid --socket=/tmp/mysql.sock --port=3306 root 3443 0.0 0.0 112676 984 pts/1 S+ 20:01 0:00 grep --color=auto mysqld
[root@linux-10 ~]# netstat -lnp |grep mysqld tcp6 0 0 :::3306 :::* LISTEN 3395/mysqld unix 2 [ ACC ] STREAM LISTENING 55465 3395/mysqld /tmp/mysql.sock
若是咱们不知道mysql的启动文件,咱们还可使用命令行的方法来启动mysql 先关闭以前打开的mysql
[root@linux-10 mysql]# service mysqld stop Shutting down MySQL.. SUCCESS!
执行命令行
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql & //--defaults-file=/etc/my.cnf指定配置文件的路径
和LAMP安装PHP方法有差异,须要开启php-fpm服务
cd /usr/local/src/ wget http://cn2.php.net/distributions/php-5.6.32.tar.bz2
tar jxvf php-5.6.32.tar.bz2
useradd -s /sbin/nologin php-fpm
cd /usr/local/src/php-5.6.32/ ./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 //--prefix=/usr/local/php-fpm 指定安装目录 //--with-config-file-path=/usr/local/php-fpm/etc 指定PHP配置文件所在路径(PHP配置文件后缀为.ini) //--enable-fpm 启动fpm服务 // --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with- mysqli=/usr/local/mysql/bin/mysql_config 三种链接MySQL的驱动
初始化报错,须要curl包
yum -y install libcurl-devel
make && make install
/usr/local/php-fpm/sbin/php-fpm -m /usr/local/php-fpm/sbin/php-fpm -i
/usr/local/php-fpm/sbin/php-fpm -t //检测自身配置语法错误
cp php.ini-production /usr/local/php-fpm/etc/php.ini //生产环境 cp php.ini-development /usr/local/php-fpm/etc/php.ini //研发环境
[root@linux-10 php-5.6.32]# cd /usr/local/php-fpm/etc [root@linux-10 etc]# vim php-fpm.conf [global] pid = /usr/local/php-fpm/var/run/php-fpm.pid //pid存放路径 error_log = /usr/local/php-fpm/var/log/php-fpm.log //错误日志存放路径 [www] listen = /tmp/php-fcgi.sock //监听地址,用于服务间通讯 listen.mode = 666 //sock文件的权限 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
注:监听地址(listen)也能够写成listen = 127.0.0.1:9000的格式,由于php-fpm是内部服务,因此采用回环地址通讯便可,默认端口为9000。可是两种配置格式的不一样,会致使后续相关配置的格式也有所不一样。
cd /usr/local/src/php-5.6.32 cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on
[root@linux-10 php-5.6.32]# service php-fpm start Starting php-fpm done
[root@linux-10 php-5.6.32]# ps aux |grep php-fpm root 4790 0.0 0.2 123652 4944 ? Ss 10:40 0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf) php-fpm 4791 0.0 0.2 123652 4708 ? S 10:40 0:00 php-fpm: pool www php-fpm 4792 0.0 0.2 123652 4708 ? S 10:40 0:00 php-fpm: pool www php-fpm 4793 0.0 0.2 123652 4708 ? S 10:40 0:00 php-fpm: pool www php-fpm 4794 0.0 0.2 123652 4708 ? S 10:40 0:00 php-fpm: pool www php-fpm 4795 0.0 0.2 123652 4712 ? S 10:40 0:00 php-fpm: pool www php-fpm 4796 0.0 0.2 123652 4712 ? S 10:40 0:00 php-fpm: pool www php-fpm 4797 0.0 0.2 123652 4712 ? S 10:40 0:00 php-fpm: pool www php-fpm 4798 0.0 0.2 123652 4712 ? S 10:40 0:00 php-fpm: pool www php-fpm 4799 0.0 0.2 123652 4712 ? S 10:40 0:00 php-fpm: pool www php-fpm 4800 0.0 0.2 123652 4716 ? S 10:40 0:00 php-fpm: pool www php-fpm 4801 0.0 0.2 123652 4716 ? S 10:40 0:00 php-fpm: pool www php-fpm 4802 0.0 0.2 123652 4716 ? S 10:40 0:00 php-fpm: pool www php-fpm 4803 0.0 0.2 123652 4716 ? S 10:40 0:00 php-fpm: pool www php-fpm 4804 0.0 0.2 123652 4716 ? S 10:40 0:00 php-fpm: pool www php-fpm 4805 0.0 0.2 123652 4716 ? S 10:40 0:00 php-fpm: pool www php-fpm 4806 0.0 0.2 123652 4716 ? S 10:40 0:00 php-fpm: pool www php-fpm 4807 0.0 0.2 123652 4716 ? S 10:40 0:00 php-fpm: pool www php-fpm 4808 0.0 0.2 123652 4716 ? S 10:40 0:00 php-fpm: pool www php-fpm 4809 0.0 0.2 123652 4716 ? S 10:40 0:00 php-fpm: pool www php-fpm 4810 0.0 0.2 123652 4716 ? S 10:40 0:00 php-fpm: pool www root 4812 0.0 0.0 112720 968 pts/0 R+ 10:40 0:00 grep --color=auto php-fpm
• Nginx官网 nginx.org,最新版1.15,最新稳定版1.14
• Nginx应用场景:web服务、反向代理、负载均衡
• Nginx著名分支,淘宝基于Nginx开发的Tengine,使用上和Nginx一致,服务名,配置文件名都同样,和Nginx的最大区别是Tenging增长了一些定制化模块,在安全限速方面表现突出,另外它支持对js,css合并
• Nginx核心+lua相关的组件和模块组成了一个支持lua的高性能web容器openresty