此LNMP的安装版本:nginx是nginx-1.12.2版本;MySQL是mysql-5.6.40版本;PHP是php-7.2.5版本。
1.nginx的安装
下载网址:http://nginx.org/en/download.html
1)解压:tar -zxvf nginx-1.12.2.tar.gz
进入目录:cd nginx-1.12.2
2)安装:./configure --prefix=/usr/local/nginx
./configure: error: the HTTP rewrite module requires the PCRE library.是缺少pcre-devel
安装pcre-devel :yum -y install pcre-devel
再次执行:./configure --prefix=/usr/local/nginx
3)编译:make && make install
4)修改配置文档:
/usr/local/nginx/conf
nginx.conf主要由6个部分组成
(1)main:用于进行nginx全局信息的配置
(2)events:用于nginx工作模式的配置
(3)http:用于http协议信息的一些配置
(4)server:用于进行服务器访问信息的配置
(5)location:用于进行访问路由的配置
(6)upstream:用于进行负载均衡的配置
(1)main模块:
#user nobody nobody; #用来指定nginx worker进程运行用户以及用户组,默认nobody账户运行
worker_processes 1; # 指定nginx要开启的子进程数量,运行过程中监控每个进程消耗内存,根据实际情况进行调整,通常数量是CPU内核数量的整数倍
#error_log logs/error.log; #定义错误日志文件的位置及输出级别(debug/info/notice/warn/error/crit)
#error_log logs/error.log notice;
#error_log logs/error.log info;
worker_rlimit_nofile 1024 #用于指定一个进程可以打开最多文件数量的描述
#pid logs/nginx.pid; #用来指定进程id的存储文件的位置
(2)event模块
events {
worker_connections 1024; #指定最大同时接受的连接数量(最大连接=连接数*进程数;最大连接数是和workwe processes共同决定的)默认1024
}
(3)http模块
http {
include mime.types; #文件扩展名与文件类型映射表
default_type application/octet-stream; #默认文件类型
#日志文件输出格式,这个位置相当与全局设置
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#请求日志保存位置
#access_log logs/access.log main;
sendfile on; #开启高效文件传输模式,sengfile指令nginx是否调用sengfile函数来传输文件,对于普通应用应用应 设为on,如果用来进行下载等应用磁盘IO负载应用,可设置为off,以平衡磁盘与网络I/O处理速度。
#tcp_nopush on; #防止网络堵塞
#连接超时时间
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on; #开启gzip压缩输出
(4)server模块
#server模块是http模块的一个子模块,用来定义一个虚拟访问主机
server {
listen 80; #监听端口,默认是80端口
server_name localhost; #监听域名(可以有多个,用空格隔开)
#charset koi8-r;
#access_log logs/host.access.log main; #用于指定虚拟主机服务器中的访问记录日志存放路径
location / {
root html; #root指定nginx的根目录为/usr/local/nginx/html
index index.html index.htm; #默认访问文件,在html目录下找index.html
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html { #local后面是“=”,说明是精确匹配
root html;
}
}
检查配置文档有没有错误:/usr/local/nginx/sbin/nginx -t
如图结果就是没有问题
5)设置开机自启动
(1)编辑启动脚本
vim /etc/init.d/nginx
将 http://wiki.nginx.org/RedHatNginxInitScript网址的/etc/init.d/nginx复制到你创建的脚本
修改该脚本中nginx="/usr/local/nginx" #nginx执行程序的路径
NGINX_CONF_FILE="/usr/local/nginx/nginx.conf" #配置文件的路径
(2)设置文件的执行权限
chmod 755 /etc/init.d/nginx
(3)chkconfig进行管理
chkconfig --add /etc/init.d/nginx
(4)设置终端模式开机启动
chkconfig nginx on
最后将nginx加入到rc.local文件中,这样开机的时候nginx就默认启动了
vim /etc/rc.local
添加
/etc/init.d/nginx start
6)配置防火墙,nginx默认的端口是80
打开/etc/sysconfig/iptables文档
添加如图所示的配置项
重启防火墙
7)首次启动nginx
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
/usr/local/nginx/sbin/nginx也可以启动nginx服务
8)访问nginx
成功访问nginx
2.安装MySQL
MySQL网址:https://dev.mysql.com/downloads/file/?id=476692
1)解压:tar -zxvf mysql-5.6.40.tar.gz
进入目录:cd mysql-5.6.40
2)安装编译时所用的包
yum install -y make* gcc* ncurses-devel* gcc-c++*
cmake安装
3)安装cmake .默认安装
make && make install
4)创建mysql用户和用户组
用户组:groupadd mysql
用户及所属组:useradd -r -g mysql mysql
5)配置文件
复制文件:cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
vim /etc/init.d/mysql
修改成自己安装的路径
6)配置环境变量
vim /etc/profile
7)添加自启动服务
chkconfig --add mysql
chkconfig mysql on
8)初始化数据库,注意配置文件路径
/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql
9)启动mysql
/etc/init.d/mysql start
3.安装PHP
1)解压:tar -zxvf php-5.6.31.tar.gz
进入目录:cd php-5.6.31
2)创建php-fpm用户
useradd -s /sbin/nologin php-fpm
3)执行configuer安装
./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
报错
处理:安装libxml2包
yum -y install libxml2-devel
再次安装php,报错
处理:安装openssl openssl-devel两个包
yum -y install openssl
yum -y install openssl-devel
再次安装php,成功
注意:PHP编译所需要的包:freetype-devel;libpng-devel;libjpeg-devel;libcurl-devel;openssl-devel;libxml2-devel
4)编译安装: make && make install
5)修改fpm配置php-fpm.conf.default文件的名字
mv /usr/local/php-fpm/etc/php-fpm.conf.default /usr/local/php-fpm/etc/php-fpm.conf
6)复制php.ini配置文件
cp php.ini-production /usr/local/php-fpm/etc/php.ini
7)设置软连接
ln -s /usr/local/php-fpm/etc/php.ini /etc/
ln -s /usr/local/php-fpm/etc/php-fpm.conf /etc/php-fpm.conf
vim /usr/local/php-fpm/etc/php-fpm.conf
8)复制php-fpm启动脚本到init.d
cp /usr/local/src/php-5.6.31/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
9)开机自启动
chkconfig php-fpm on
chkconfig --list php-rpm
vim /usr/local/php-fpm/etc/php.ini
添加执行权限
chmod +x /etc/init.d/php-fpm
vim php-fpm.conf
10)修改nginx配置文件使之支持php
vim nginx.conf
测试一下是否有错
/usr/local/nginx/sbin/nginx -t
重启
/usr/local/nginx/sbin/nginx -s reload
进入目录/usr/local/nginx/html编辑tt.php文件
内容:
vim tt.php
访问,其结果如图,测可以