一、准备环境
环境
[root@localhost ~]# cat /etc/centos-release //发行版本 centos linux release 7.6.1810 (core) [root@localhost ~]# uname -r //内核 3.10.0-957.el7.x86_64
源码包
[root@localhost opt]# ls discuz_x3.4_sc_utf8.zip mysql-boost-5.7.20.tar.gz nginx-1.15.9.tar.gz php-7.1.10.tar.bz2 rh [root@localhost opt]#
二、搭建lnmp
1.编译安装nginx
1.1 下载安装nginx所需依赖包
[root@localhost sbin]# yum -y install gcc gcc-c++ pcre-devel zlib-devel make
1.2 添加用户
nginx服务程序默认以nobody身份运行,建议为其创建专门的用户账号,以便更准确地控制其访问权限,增加灵活性、降低安全风险
[root@localhost ~]# useradd -m -s /sbin/nologin nginx
1.3 编译安装
[root@localhost ~]# cd /opt/nginx-1.15.9/ [root@localhost ~]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module [root@localhost ~]# make && make install
1.4 路径优化
为了使nginx服务器的运行更加方便,可以为主程序nginx创建链接文件,以便管理员直接执行“nginx"命令就可以调用nginx的主程序
[root@localhost ~]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ //加入环境变量
1.5 检查配置文件
[root@localhost ~]# nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful [root@localhost ~]#
1.6 开启服务
2.编译安装mysql
2.1 下载安装mysql所需依赖包
[root@localhost ~]# yum -y install ncurses ncurses-devel bison cmake
2.2 添加用户
[root@localhost ~]# useradd -s /sbin/nogin mysql
2.3 编译安装
[root@localhost ~]# cd /opt/mysql-5.7.20/ [root@localhost mysql-5.7.20]# cmake -dcmake_install_prefix=/usr/local/mysql -dmysql_unix_addr=/usr/local/mysql/mysql.sock -dsysconfdir=/etc -dsystemd_pid_dir=/usr/local/mysql -ddefault_charset=utf8 -ddefault_collation=utf8_general_ci -dwith_innobase_storage_engine=1 -dwith_archive_storage_engine=1 -dwith_blackhole_storage_engine=1 -dwith_perfschema_storage_engine=1 -dmysql_datadir=/usr/local/mysql/data -dwith_boost=boost -dwith_systemd=1 [root@localhost mysql-5.7.20]# make && make install
2.4 递归修改文件属主和属组
[root@localhost mysql-5.7.20]# chown -r mysql:mysql /usr/local/mysql
2.5 修改配置文件
[root@localhost mysql-5.7.20]# vim /etc/my.cnf [client] #client用户程序 port = 3306 default-character-set=utf8 socket = /usr/local/mysql/mysql.sock ##连接数据库的数据端 [mysql] #mysql软件内容 port = 3306 #端口 default-character-set=utf8 socket = /usr/local/mysql/mysql.sock [mysqld] #以后对msq1配置时更多的会针对于mysqld进行配置 user = mysql #程序用户 basedir = /usr/local/mysql ## 工作目录 datadir = /usr/local/mysql/data ##数据文件目录 port = 3306 ##端口 character_set_server=utf8 ##服务的字符集 pid-file = /usr/local/mysql/mysqld.pid ##pid文件目录 socket = /usr/local/mysql/mysql.sock ##通讯文件 server-id = 1 ##服务id,在之后的mysql集群中用于标识mysq1服务器 sql_mode=no_engine_substitution,strict_trans_tables,no_auto_create_user,no_auto_value_on_zero,no_zero_in_date,no_zero_date,error_for_division_by_zero,pipes_as_concat,ansi_quotes ##模块,默认加载 [root@localhost mysql-5.7.20]# chown mysql:mysql /etc/my.cnf
2.6 配置环境变量
[root@localhost bin]# echo 'path=/usr/local/mysql/bin:/usr/local/mysql/lib:$path' >> /etc/profile [root@localhost bin]# echo 'export path' >> /etc/profile [root@localhost bin]# source /etc/profile
2.7 初始化数据库
[root@localhost bin]# /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
2.8 开启服务
[root@localhost mysql]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system //mysql自带控制脚本,直接复制到系统服务文件夹中 [root@localhost mysql]# systemctl start mysqld //开启服务 [root@localhost mysql]# netstat -antp | grep 3306 //查看状态 tcp6 0 0 :::3306 :::* listen 95872/mysqld
2.9 修改mysql数据库密码
[root@localhost mysql]# mysqladmin -uroot -p password enter password: //初始无密码,直接回车 new password: confirm new password: warning: since password will be sent to server in plain text, use ssl connection to ensure password safety. [root@localhost mysql]#
3.编译安装php
3.1 下载安装php所需依赖包
[root@localhost mysql]# yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel
3.2 编译安装
[root@localhost php-7.1.10]# cd /opt/php-7.1.10/ [root@localhost php-7.1.10]# ./configure --prefix=/usr/local/php --with-mysql-sock=/usr/local/mysql/mysql.sock --with-mysqli --with-zlib --with-curl --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-openssl --enable-fpm --enable-mbstring --enable-xml --enable-session --enable-ftp --enable-pdo --enable-tokenizer --enable-zip [root@localhost php-7.1.10]# make && make install
3.3 修改配置文件
[root@localhost ~]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf [root@localhost ~]# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
取消注释,让其可运行
3.4 修改核心配置文件
[root@localhost ~]# cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini [root@localhost ~]# vim /usr/local/php/lib/php.ini
3.5 启动php
[root@localhost ~]# /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini [root@localhost ~]# netstat -antp | grep 9000 tcp 0 0 127.0.0.1:9000 0.0.0.0:* listen 104224/php-fpm: mas [root@localhost ~]#
3.6 让nginx支持php
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
3.7 重启nginx,查看服务
总结
lnmp与lamp相比,由nginx代替了apache,php在lamp中只是作为后台程序运行,在lnmp中开启了pid功能,以9000端口的方式运行起来
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论