赞
踩
什么是LNMP架构
LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。
Mysql是一个小型关系型数据库管理系统。
PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
[root@localhost ~]# yum -y install make gcc gcc-c++ flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel gd freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel gettext gettext-devel ncurses-devel gmp-devel unzip libcap lsof
2.下载源码包
我这里是下载好的,需要的可以下载
链接: https://pan.baidu.com/s/16JYwpYW_gGEqtCt0qDuqiA 提取码: b1e6
这里把下载好的源码包直接上传到/usr/local/src目录下
[root@localhost src]# ls
boost_1_59_0.tar.gz libmcrypt-2.5.8.tar.gz mhash-0.9.9.9.tar.gz nginx-1.14.1.tar.gz php-7.1.24.tar.gz
libiconv-1.14.tar.gz mcrypt-2.6.8.tar.gz mysql-5.7.19.tar.gz pcre-8.41.tar.gz
3.安装epel扩展yum源
nginx提供gzip模块,需要zlib支持
openssl为nginx提供SSL功能
[root@localhost ~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
4.创建nginx用户
查看系统有无nginx用户,没有就创建
[root@localhost ~]# id nginx
id: nginx: no such user
[root@localhost ~]# useradd -M -s /sbin/nologin nginx
[root@localhost ~]# id nginx
uid=1001(nginx) gid=1001(nginx) groups=1001(nginx)
[root@localhost ~]#
5.安装编译环境所需要的依赖包
[root@localhost ~]# yum -y install gcc gcc-c++ autoconf automake zlib zlib-devel openssl openssl-devel pcre*
6.部署nginx
6-1、首先切换到/usr/local/src目录下,解压nginx压缩包,并进入nginx目录下
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# tar -xzvf nginx-1.14.1.tar.gz
[root@localhost src]# tar -xzvf pcre-8.41.tar.gz
[root@localhost src]# cd nginx-1.14.1
6-2、编译前准备
指定nginx安装目录、默认参数指定
[root@localhost nginx-1.14.1]# ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module --with-pcre=/usr/local/src/pcre-8.41 --user=nginx --group=nginx
对应参数的解释
--prefix 指定安装目录
--with-http_dav_module 启用支持,增加PUT\DELETE\MKCOL,编译开启
--with-http_stub_status_module 获取nginx上次启动以来的工作状态
--with-http_addition_module 作用一个输出过滤器,支持不完全缓冲,分部分相应请求
--with-http_sub_module 允许一些其他文本替换nginx中的一些文本
--with-http_flv_module 支持flv视频格式
--with-http_mp4_module 支持mp4视频格式
--with-pcre pcre源码所在目录
--user nginx用户
--group nginx用户组
6-3、编译 make make install
[root@localhost nginx-1.14.1]# make #生成二进制安装程序
[root@localhost nginx-1.14.1]# make install #安装生成的二进制程序
如果有一下报错查看/usr/local/nginx文件是否存在,存在则不用理会
make[1]: Leaving directory `/usr/local/src/nginx-1.14.1'
7.配置nginx支持php
7-1、备份nginx主配置文件
[root@localhost ~]# cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak
7-2、修改主配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf [root@localhost nginx]# vim /usr/local/nginx/conf/nginx.conf 1 2 user nginx; #去掉第二行注释,将用户改为nginx 3 worker_processes 1; 4 5 #error_log logs/error.log; # 去掉65行开始的注释 65 location ~ \.php$ { 66 root html; 67 fastcgi_pass 127.0.0.1:8080; 68 fastcgi_index index.php; 69 fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html/$fastcgi_script_name; 70 include fastcgi_params; 71 }
7-3、编写nginx开机自启脚本
启动服务(启动脚本启动)
sbin目录下存放着启动nginx脚本
[root@localhost ~]# /usr/local/nginx/sbin/nginx
配置环境变量文件
[root@localhost ~]# vim /etc/profile.d/nginx.sh
export PATH=/usr/local/nginx/sbin:$PATH
[root@localhost ~]# chmod +x /etc/profile.d/nginx.sh #添加执行脚本权限
[root@localhost ~]# /etc/profile.d/nginx.sh
编写nginx启动脚本
#!/bin/bash # chkconfig: - 99 2 # description: Nginx Service Control Script PROG="/usr/local/nginx/sbin/nginx" PIDF="/usr/local/nginx/logs/nginx.pid" case "$1" in start) $PROG ;; stop) kill -3 $(cat $PIDF) ;; restart) $0 stop &> /dev/null if [ $? -ne 0 ] ; then continue ; fi $0 start ;; reload) kill -1 $(cat $PIDF) ;; *) echo "Userage: $0 { start | stop | restart | reload }" exit 1 esac exit 0
配置服务启动和开机自启动
[root@localhost ~]# chmod +x /etc/init.d/nginx #添加脚本执行权限
[root@localhost ~]# chkconfig --add nginx
[root@localhost ~]# chkconfig nginx on
nginx服务检验结果
清空iptables防火墙,查看nginx进程信息,
[root@localhost ~]# iptables -F
[root@localhost ~]# ps -ef | grep nginx
root 30785 1 0 19:40 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx 30786 30785 0 19:40 ? 00:00:00 nginx: worker process
root 30849 8112 0 19:56 pts/1 00:00:00 grep --color=auto nginx
在浏览器中输入IP地址访问nginx默认主页
8.MySQL部署
8-1、解决mysql依赖
删除系统自带的boost-*
[root@localhost ~]# yum -y remove boost-*
安装mysql依赖包
[root@localhost ~]# yum install -y cmake make gcc gcc-c++ bison ncurses ncurses-devel
创建mysql组和mysql用户
[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -M -s /sbin/nologin -g mysql mysql
切换到/usr/local/src目录下 下载mysql、boost源码包
[root@localhost src]# wget http://liquidtelecom.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
解压mysql、boost到当前目录
[root@localhost src]# tar -xzvf mysql-5.7.19.tar.gz
[root@localhost src]# tar -xzvf boost_1_59_0.tar.gz
规划安装目录
数据目录最好是一个单独的分区或者RAID或者LVM,便于日后的磁盘维护和扩容
安装目录: /var/lib/mysql
数据目录: /var/lib/mysql/data
[root@localhost src]# mkdir -p /var/lib/mysql/data #创建存储目录
[root@localhost src]# chown -R mysql:mysql /var/lib/mysql/ #更改所有人和所有组
[root@localhost src]# ll -d /var/lib/mysql/
drwxr-xr-x. 3 mysql mysql 18 Jul 3 20:11 /var/lib/mysql/
编译器准备
[root@localhost src]# cd mysql-5.7.19/
[root@localhost mysql-5.7.19]# cmake -DCMAKE_INSTALL_PREFIX=/var/lib/mysql -DMYSQL_DATADIR=/var/lib/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/src/boost_1_59_0
上面的参数对应解释
#-DCMAKE_INSTALL_PREFIX=/var/lib/mysql 指定MySQL程序的安装目录,默认/usr/local/mysql # -DMYSQL_DATADIR=/var/lib/mysql/data 数据文件目录 # -DSYSCONFDIR=/etc 初始化参数文件目录 # -DWITH_MYISAM_STORAGE_ENGINE=1 指定静态编译到 mysql 的存储引擎,MyISAM,MERGE # -DWITH_INNOBASE_STORAGE_ENGINE=1 # -DWITH_MEMORY_STORAGE_ENGINE=1 # -DWITH_READLINE=1 # -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock socket文件路径,默认/tmp/mysql.sock # -DMYSQL_TCP_PORT=3306 服务端口号,默认 3306 # -DENABLED_LOCAL_INFILE=1 指定是否允许本地执行 # -DWITH_PARTITION_STORAGE_ENGINE=1 # -DEXTRA_CHARSETS=all # -DDEFAULT_CHARSET=utf8 指定服务器默认字符集,默认 latin1 # -DDEFAULT_COLLATION=utf8_general_ci 指定服务器默认的校对规则,默认 latin1_general_ci # -DDOWNLOAD_BOOST=1 #-DWITH_BOOST=/usr/local/src/boost_1_59_0
编译make make install
[root@localhost mysql-5.7.19]# make #生成二进制安装程序
[root@localhost mysql-5.7.19]# make install #安装生成的二进制程序
更改mysql配置文件
[root@master ~]# vim /etc/my.cnf
[mysqld]
basedir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
datadir=/var/lib/mysql/data //添加以下7行指定各个设置配置
port=3306
character-set-server=utf8
log-error=/var/log/mysqld.log
pid-file=/tmp/mysqld.pid
[mysql]
socket=/var/lib/mysql/mysql.sock
[client]
socket=/var/lib/mysql/mysql.sock
mysql初始化工作
添加环境变量是其生效
[root@localhost ~]# vim /etc/profile.d/mysql.sh
export PATH=/var/lib/mysql/bin:$PATH
[root@localhost ~]# chmod +x /etc/profile.d/mysql.sh
[root@localhost ~]# /etc/profile.d/mysql.sh
生成服务启动脚本,是其生效
[root@localhost ~]# cp /var/lib/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@localhost ~]# /var/lib/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/var/lib/mysql --datadir=/var/lib/mysql/data
[root@localhost ~]# /etc/init.d/mysqld start
Starting MySQL... SUCCESS!
登陆mysql并设置root用户密码
[root@localhost ~]# mysql Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.19 Source distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [(none)]> MySQL [(none)]> set password for root@localhost = password('123456'); Query OK, 0 rows affected, 1 warning (0.00 sec) MySQL [(none)]> flush privileges; Query OK, 0 rows affected (0.01 sec) MySQL [(none)]> exit Bye
php部署
解决php依赖
[root@localhost src]# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
[root@localhost src]# wget http://iweb.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
[root@localhost src]# wget http://iweb.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz
安装php依赖包
[root@localhost ~]# yum -y install php-mcrypt libmcrypt libmcrypt-devel php-pear libxml2 libxml2-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype-devel
解压php安装包
[root@localhost ~]# tar xzvf php-7.1.24.tar.gz
编译前准备
[root@localhost src]# cd php-7.1.24/
[root@localhost php-7.1.24]# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/ --enable-fpm --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts
编译并安装
生成二进制安装程序并安装
[root@localhost php-7.1.24]# make
[root@localhost php-7.1.24]# make install
生成php配置文件
拷贝修改PHP、PHP-fpm配置文件
[root@localhost ~]# cp /usr/local/src/php-7.1.24/php.ini-production /usr/local/php/php.ini
[root@localhost ~]# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.conf
[root@localhost ~]# vim /usr/local/php/etc/php-fpm.conf
23 user = nginx //注意23、24行参数
24 group = nginx
生成 php-fpm 启动脚本
[root@localhost ~]# cp /usr/local/src/php-7.1.24/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
设置php-fpm启动和自启动
[root@localhost ~]# chmod +x /etc/init.d/php-fpm
[root@localhost ~]# chkconfig php-fpm on
[root@localhost ~]# /etc/init.d/php-fpm start
Starting php-fpm done
检验php-fpm是否启动
[root@localhost ~]# netstat -antup | grep php-fpm
测试LNMP的PHP支持
[root@localhost ~]# echo "<?php phpinfo(); ?>" > /usr/local/nginx/html/index.php
[root@localhost ~]# iptables -F
重启服务访问下面网址:http://10.0.0.100/index.php
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。