LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP,也可以指Perl或Python。
特点:
Nginx是一个小巧而高效的Linux下的Web服务器软件,是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler 站点开发的,已经在一些俄罗斯的大型网站上运行多年,相当的稳定。
Nginx性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供IMAP/POP3/SMTP服务
开启一台虚拟机作为lnmp服务器主机
准备好lnmp相关的源码包
tar zxf nginx-1.15.9.tar.gz
cd nginx-1.15.9/
ls
cd nginx-1.15.9/src/core
vim nginx.h
删除第14行 nginx后面的内容
cd nginx-1.15.9/auto/cc/
vim gcc
将第172行注释掉
解决编译过程中一些软件的依赖性
在实际操作过程中,要根据具体的报错情况来安装软件或插件解决依赖性
yum install gcc pcre-devel openssl-devel -y
编译并安装
./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module
make && make install
cd /usr/local/lnmp/nginx
ls
id nginx
useradd nginx
cd /usr/local/lnmp/nginx/conf
vim nginx.conf
user nginx nginx;
ln -s /usr/local/lnmp/nginx/sbin/nginx /usr/local/sbin/
nginx
nginx
netstat -antlp
vim /usr/local/lnmp/nginx/html/index.html
cd /usr/local/lnmp/nginx/conf
vim nginx.conf
在末尾加入如下
server {
listen 80;
server_name www.cc.com;
location / {
root html/www;
index index.html;
}
}
server {
listen 80;
server_name bbs.cc.com;
location / {
root html/bbs;
index index.html;
}
}
server {
listen 80;
server_name blog.cc.com;
location / {
root html/blog;
index index.html;
}
}
}
cd /usr/local/lnmp/nginx/html
mkdir www
cd www
vim index.html
检测配置文件语法并重启服务
nginx -t
nginx -s reload
curl www.cc.com
curl bbs.cc.com
curl blog.cc.com
设置均衡负载
在开启两台虚拟机,安装httpd,写入网页并开启服务
在lnmp服务器虚拟机修改配置文件
cd /usr/local/lnmp/nginx/conf
vim nginx.conf
更改如下:
http {
include mime.types;
default_type application/octet-stream;
upstream cc {
server 172.25.11.1:80;
server 172.25.11.2:80;
}
将之前设定的网页虚拟主机注释
server {
listen 80;
server_name www.cc.com;
location / {
proxy_pass http://cc;
}
}
}
nginx -t
nginx -s reload
curl www.cc.com
在编译安装mysql之前关闭nginx,防止电脑卡顿
nginx -s stop
tar zxf mysql-boost-5.7.17.tar.gz
cd mysql-5.7.17/
ls
安装编译过程中有依赖性的软件(实际操作中,请根据自身情况来安装)
yum install -y cmake-2.8.12.2-4.el7.x86_64.rpm
yum install -y gcc gcc-c++ ncurses-devel
yum install -y bison
安装依赖性软件后进行mysql的编译安装
编译安装时间较长
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BOOST=boost/boost_1_59_0/
make && make install
cd /usr/local/lnmp/mysql
ls
cd /lnmp安装包/mysql-5.7.17/support-files
cp mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
cd /etc
cp my.cnf my.cnf.bak
cd /lnmp安装包/mysql-5.7.17/support-files/
cp my-default.cnf /etc/my.cnf
vim /etc/my.cnf
basedir = /usr/local/lnmp/mysql
datadir = /usr/local/lnmp/mysql/data
socket = /usr/local/lnmp/mysql/data/mysql.sock
groupadd -g 27 mysql
useradd -u 27 -g 27 mysql (id=27是因为rpm默认安装时mysql用户的id为27,并非强制)
chown mysql.mysql /usr/local/lnmp/mysql -R (修改mysql目录的权限,使其对mysql用户可写)
将mysql命令添加到环境变量
b
vim ~/.bash_profile
添加:PATH=$PATH:$HOME/bin:/usr/local/lnmp/mysql/bin
source ~/.bash_profile
mysqld --user=mysql --initialize(以mysql用户身份初始化)
初始化会生成一个临时密码,用于登录mysql(要记住此密码)
#如:'2019-01-03T09:06:09.448851Z 1 [Note] A temporary password is generated for root@localhost: r#9VqAoA/au:'
chown root /usr/local/lnmp/mysql -R
chown mysql /usr/local/lnmp/mysql/data -R ##数据目录所有者必须是mysql,不然mysql用户不能写
/etc/init.d/mysqld start
mysql_secure_installation 然后会提示是否启用密码检测插件,直接回车不启用,否则会要求密码有大小写和特殊字符等要求
mysql -uroot -pWestos+001
show databases;
netstat -antlp
准备好源码包并解压
yum -y install bzip2
tar jxf php-5.6.35.tar.bz2
解决编译过程中软件的依赖性(实际操作中,请根据自身情况来安装)
yum install -y libxml2-devel libcurl-devel
yum install -y libjpeg-turbo-devel-1.2.1-1.el6.x86_64 libjpeg-turbo-devel-1.2.90-5.el7.x86_64
yum install -y libpng-devel-1.2.49-1.el6_2.x86_64 libpng-devel-1.5.13-7.el7_2.x86_64
yum install -y freetype freetype-devel
yum install -y net-snmp net-snmp-devel
cd /lnmp安装包
yum install -y re2c-0.13.5-1.el6.x86_64.rpm libmcrypt-2.5.8-9.el6.x86_64.rpm libmcrypt-devel-2.5.8-9.el6.x86_64.rpm
./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-gmp --with-gettext --with-pear --enable-mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash
make && make install
cd /usr/local/lnmp/php/etc
cp php-fpm.conf.default php-fpm.conf
vim php-fpm.conf
查看配置文件中以下几项是否开启:
user = nginx
group = nginx
pid = run/php-fpm.pid
cd /lnmp安装包/php-5.6.35
cp php.ini-production /usr/local/lnmp/php/etc/php.ini
cd /usr/local/lnmp/php/etc
vim php.ini
修改时区:
date.timezone = Asia/Shanghai
cd /lnmp/php-5.6.35/sapi/fpm
cp init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
/etc/init.d/php-fpm start
netstat -antlp
确保nginx、mysql、php都是开启状态
nginx
/etc/init.d/mysqld start
/etc/init.d/php-fpm start
netstat -antlp
cd /usr/local/lnmp/nginx/conf
vim nginx.conf
x修改如下图
注释掉之前设定的负载均衡集群
并且开启php界面设定、增加index.php文件
nginx -t
nginx -s reload
cd /usr/local/lnmp/nginxhtml
vim index.php
编写如下:
phpinfo()
>
打开浏览器测试:
自行准备好论坛的压缩包
安装解压命令并解压文件到指定目录
yum install -y unzip
unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/lnmp/nginx/html/
切换到解压目录并查看文件
重命名 uoload 为bbs
并给目录增加权限
cd /usr/local/lnmp/nginx/html
ls
mv upload bbs
chmod 777 config/ -R
chmod 777 data/ -R
chmod 777 uc_server/ uc_client/ -R
vim /usr/local/lnmp/php/etc/php.ini
修改以下配置:
pdo_mysql.default_socket= /usr/local/lnmp/mysql/data/mysql.sock
mysql.default_socket = /usr/local/lnmp/mysql/data/mysql.sock
mysqli.default_socket = /usr/local/lnmp/mysql/data/mysql.sock
以上路径为mysql安装的目录,根据自己的路径填写
/etc/init.d/php-fpm reload
由于 nginx用户 对于 /usr/local/lnmp/mysql/data 目录没有权限
cd /usr/local/lnmp/mysql
chmod 755 data/
172.25.11.4/bbs
这里输入mysql密码并设定论坛管理者密码
点击右上角管理中心进入管理
发现没有界面
解决:
cd /usr/local/lnmp/nginx/html/bbs/install
rm -fr index.php