一、lnmp 架构
LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Mysql是一个小型关系型数据库管理系统。 PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
工作原理
二、lnmp架构的搭建
1.mysql 源码安装
yum install cmake-2.8.12.2-4.el6.x86_64.rpm -y .安装源码编译工具cmake(支持编译C++语言)用yum安装可以解决软件依赖性
yum install gcc gcc-c++ ncurses-devel -y
yum install bison -y
解压源码包
tar zxf mysql-boot-5.7.17.tar.gz
cd mysql-5.7.17/
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
-DEXTRA_CHARSETS=all
-DWITH_BOOST=boost/boost_1_59_0
如果没有报错,直接执行make & make install
配置 mysql
cd /usr/local/lnmp/mysql/support-files/
cp my-default.cnf /etc/my.cnf
vim /etc/my.cnf ##编辑mysql配置文件
basedir = /usr/local/lnmp/mysql ##安装目录
datadir = /usr/local/lnmp/mysql/data ##mysql数据存放目录
port = 3306 ##端口
socket = /usr/local/lnmp/mysql/data/mysql.sock
cp mysql.server /etc/init.d/mysqld
####将编译完成的mysql启动脚本复制到系统启动服务的默认目录中
groupadd -g 27 mysql 创建mysql 组
useradd -u 27 -g 27 -M -d /usr/local/lnmp/mysql/data -s /sbin/nologin mysql 指定目录,建立mysql 用户
cd /usr/local/lnmp/mysql/
chown mysql.mysql . -R
cd
将编译生成的mysql二进制命令放进系统的环境变量文件中,保证可以直接调用该二进制命令
vim .bash_profile
source .bash_profile ###加载文件
cd /usr/local/lnmp/mysql/
mysql --initialize --user=mysql ###初始化
执行完这条命林后,会弹出很多行数据,复制最后一条冒号后生成的密码
此时,mysqld服务已经可以开启关闭了
cd /usr/local/lnmp/mysql/
chown root.root . -R
chown mysql data/ -R ###将此目录的所有文件用户和家目录都改成超户 ,除了data改成mysql因为mysql服务将要往这个目录中写数据,保证其有执行权限
打开mysqld
/etc/init.d/mysqld start
mysql_secure_installation
(1)在第一次交互请求后面输入刚刚初始化时复制的密码
(2)然后输入两次新密码
(3)接下来的交互式请求可以直接回车,这条交互式请求是询问你是否要检查密码强度, 如果输入y,就要重新修改密码,密码长度必须超过8位,必须有大小写字母, 所以我们直接回车
(4)接下来会询问是否要修改root密码,直接回车,因为上面已经设置过了
(5)接下来全部输入y回车就行 现在就可以直接进入mysql了
进入数据库
mysql -p
输入设置的密码进入就行
mysql完成 搭建
二、php 源码安装
tar jxf php-5.6.35.tar.bz2
cd php-5.6.35
解决依赖性
yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel gcc gcc-c++ libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2 libxml2-devel
yum install curl curl-devel
yum install -y re2c-0.13.5-1.el6.x86_64.rpm gd-devel-2.0.35-11.el6.x86_64.rpm
cd php-5.6.35
yum install -y gmp-devel
yum provides */mcrypt.h
yum install -y libmcrypt*
yum install -y net-snmp-devel
查看是否有报错,若没有直接执行make & make install
php 安装完成
cd /usr/local/
cd lnmp/php/etc/
cp php-fpm.conf.default php-fpm.conf
创建nginx 用户
useradd nginx
cd php-5.6.35
cp php.ini-production /usr/local/lnmp/php/etc/php.in
vim php.ini 修改时区
cd /root/php-5.6.35/sapi/fpm/
cp init.d.php-fpm /etc/init.d/
cd /etc/init.d/
mv init.d.php-fpm php-fpm
chmod +x php-fpm
/etc/init.d/php-fpm start
php 搭建完成
三、nginx 源码安装
tar zxf nginx-1.14.0.tar.gz
yum install -y unzip
unzip nginx-goodies-nginx-sticky-module-ng-08a395c66e42.zip
cd nginx-1.14.0
vim src/core/nginx.h
去掉版本号
vim auto/cc/gcc
yum install -y pcre-devel
编译
./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --add-module=/root/nginx-goodies-nginx-sticky-module-ng-08a395c66e42
查看是否有报错,若没有直接执行make & make install
配置nginx服务
cd /usr/local/lnmp/
cd nginx/conf/
vim nginx.conf
vim /etc/security/limits.conf
cd ~
ln -s /usr/local/lnmp/nginx/sbin/nginx /sbin/
cd /usr/local/lnmp/nginx/html/
vim index.php
nginx
cd
在网页查看浏览页是否设置成功
/etc/init.d/mysqld start
/etc/init.d/mysqld status
cd /usr/local/lnmp/php/etc/
vim php.ini
/etc/init.d/php-fpm reload
cd
unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/lnmp/nginx/html/
cd /usr/local/lnmp/nginx/html/
cd upload/
mv index.php ..
mv * ..
chmod 777 config/ data uc_client/ uc_server/ -R
chmod 755 /usr/local/lnmp/mysql/data/
搭建论坛
/usr/local/lnmp/nginx/html/
cd upload/
cd install/
rm -f index.php
论坛搭建成功