轻量级别架构LNMP架构,已经解释的详细的不能够在详细了,还不进来看看嘛
LNMP平台就是Linux,Nginx,MySQL,PHP的组合架构,需要LINUX服务器,MySQL数据库,PHP解析环境1本案例在单台服务器上部署LNMP环境MySQL安装配置为了与Nginx,PHP环境保持一致,此处选择采用源代码编译的方式安装MySQL组件MySQL 部署的方法*编译安装MySQL*优化调整*初始化数据库*启动MySQL 服务冰设置root数据库账号的密码安装mysqlyu
LNMP平台就是Linux,Nginx,MySQL,PHP的组合架构,需要LINUX服务器,MySQL数据库,PHP解析环境
1本案例在单台服务器上部署LNMP环境
安专nginx
首先进行安装可以再官网上下载软件包 网址为http://www.Nginx.org
以下是对已经下载好的软件包Nginx1.15进行编译安装
一、首先需要安装配置支持的软件包 pcre、zlib
yum -y install pcre-devel zlib-devel
pcre-devel 正则的包和开发的包
zlib-devel 支持压缩包和开发的包
二、创建一个专门的用户nginx
useradd -M -s /sbin/nologin nginx
创建一个nginx便于自己管理自己,为了安全考虑,同时不允许从控制台登录
那么-M是创建宿主目录,也就是创建普通用户在家目录/home下会有自己的一个目录
-M则不会在产生
id nginx 查看用户是否创建成功
建立nginx的用户,并设置不能远程登录,故不能-M不建议宿主目录
三、切换到opt解压已经下载好,并传到/opt的软件包
[root@localhost opt]# tar xzvf nginx-1.15.9.tar.gz
四、执行安装模块./configure的意思是执行当前目录下面的configure文件
[root@localhost opt]#cd nginx-1.15.9
[root@localhost opt]#yum -y install \
gcc \
gcc-c++ \
make \
pcre-devel \ 让nginx支持正则表达式
expat-devel \ 这俩个是让nginx支持开发的语音,也就是让nginx支持多种的语言
perl
[root@localhost nginx-1.15.9]#
./configure \ ###配置
–prefix=/usr/local/nginx \ ###配置安装的路径为/usr/local/nginx
–user=nginx \ ###用户是nginx
–group=nginx \ ###组为nginx
–with-http_stub_status_module ####获取nginx的状态统计信息
五、进行编译安装
[root@localhost nginx-1.15.9]# make && make install ###编译和安装
六、优化路径 建立软连接 以便管理员直接执行“nginx”命令就可以调用Nginx的主程序
[root@localhost nginx-1.15.9]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ //软链接创建其实就是文件对文件目录对目录,一一对应的才能进行操作的,/usr/local/nginx/sbin/nginx,nginx在这里是一个文件,所以不可能跟sbin进行对应的,因为sbin是一个目录,相当于在/usr/local/sbin/目录下创建了一个nginx文件,/usr/local/sbin里面执行的可以理解成环境变量,及时在任何的地方都可以执行的程序,不需要添加任何的路径
六、下面是Nginx的运行控制
[root@localhost nginx-1.15.9]# nginx ###开启Nginx
[root@localhost nginx-1.15.9]# netstat -anpt | grep nginx ##过滤出nginx
tcp 0 0.0.0.0:80 0.0.0.0:* LISTEN 11191/nginx: master
七、可以在软件上直接看是不是正常运行
[root@localhost nginx-1.15.9]# yum -y install lynx ##安装一个浏览器小程序
[root@localhost nginx-1.15.9]# lynx 127.0.0.1 ##进行测试一下
Welcome to nginx!
如果想让nginx的启动服务交由systemctl管理,那必须有一个nginx.service 这么一个服务,但是nginx不自带这个服务,那么我们就需要手动进行编译了
可以直接在/lib/systemd/system/目录下添加一个名叫nginx.service 的服务,进行编译
[root@localhost nginx-1.15.9]# vi /lib/systemd/system/nginx.service
注释:
[Unit] 单元信息
Description=nginx 描述
After=network.target 网络服务模式
[Service]
Type=forking forking服务类型,一般start开启这个服务,后天会有一个守护进行去支撑他,让他持续在线工作
PIDFile=/usr/local/nginx/logs/nginx.pid 进程文件,里面存放着每次开启或者关闭的进程信息
ExecStart=/usr/local/nginx/sbin/nginx 启动文件
ExecReload=/usr/bin/kill -s HUP $MAINPID 重载
ExecStop=/usr/bin/kill -s QUIT $MAINPID 停止
PrivateTmp=true 开启缓存
[Install]
WantedBy=multi-user.target 多用户登录模式
[root@localhost ~]#chmod 754 /lib/systemd/system/nginx.service
[root@localhost ~]#systemctl enable nginx.service
使用systemctl命令能否正常启用,停止,重启,重载nginx服务
[root@localhost ~]# netstat -auntp |grep nginx
[root@localhost ~]# systemctl start nginx
[root@localhost ~]# netstat -anutp |grep nginx
MySQL安装配置
为了与Nginx,PHP环境保持一致,此处选择采用源代码编译的方式安装MySQL组件
MySQL 部署的方法
*编译安装MySQL
*优化调整
*初始化数据库
*启动MySQL 服务冰设置root数据库账号的密码
安装mysql
yum -y install \
ncurses \
ncurses-devel \
bison \
cmake
注释:
ncurses \
ncurses-devel \ 这俩个包是用于字符终端和开发的软件包
bison \ 这是一个通用解析器生成器,关联底层c或者c++编程会使用
useradd -s /sbin/nologin mysql
注释:创建一个mysql程序用户,并且指定环境不能远程登录,另外创建账户之后会在普通用户的家目录/home建立一个mysql的家目录
###上传mysql-boost-5.7.20.tar.gz到opt目录下###
cd /opt
tar xf mysql-boost-5.7.20.tar.gz
cd /opt/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 \ pid进程路径
-DDEFAULT_CHARSET=utf8 \ 中文的字符集
-DDEFAULT_COLLATION=utf8_general_ci \ 扩展字符集
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ 这四个是 开启各种存储引擎,STORAGE_ENGINE存储引擎的意思
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \ 数据存放位置
-DWITH_BOOST=boost \ 兼容c++库的解析器
-DWITH_SYSTEMD=1 自己的进程id
######编译安装####
make && make install
#####数据库目录进行权限调整###
chown -R mysql:mysql /usr/local/mysql/
调整配置文件
[root@localhost mysql-5.7.20]#vi /etc/my.cnf
[client]
port = 3306 // 端口
default-character-set=utf8 // 字符集
socket = /usr/local/mysql/mysql.sock //通信文件,用于连接数据库
[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock
[mysqld]
user = mysql //使用者
basedir = /usr/local/mysql //工作目录
datadir = /usr/local/mysql/data //数据目录
port = 3306 // 端口
character_set_server=utf8 // 字符集utf8,让其识别中文
pid-file = /usr/local/mysql/mysqld.pid // 进程文件
socket = /usr/local/mysql/mysql.sock // 通信文件,用于连接数据库
server-id = 1 //身份标识
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
这是一个默认的语法
chown mysql :mysql /etc/my.cnf
#######设置环境变量####
echo ‘PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH’ >> /etc/profile
注释:命令让系统识别的几种方式:1.建立软链接,建立在/usr/local/bin或/usr/bin/目录下;
2.cp到系统环境(bin)目录下;3.环境变量的设置,在/etc/profile文件里修改
3.echo ‘export PATH’ >> /etc/profile
source /etc/profile 刷新一下配置文件
切到该目录下,进行下面的配置操作,配置的意思是初始化数据库
cd /usr/local/mysql/
bin/mysqld \
--initialize-insecure \ 初始化
--user=mysql \ 指定使用者
--basedir=/usr/local/mysql \ 工作目录
--datadir=/usr/local/mysql/data 数据目录
cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
注释:把mysqld.service拷贝到/usr/lib/systemd/system/目录下,便于使用systemctl命令管理
systemctl enable mysqld
systemctl start mysqld
systemctl status mysqld
netstat -anpt | grep 3306
mysqladmin -u root -p password //刚开始没密码是空的直接回车,然后输入密码abc123,在此确认abc123,这是在root账户下运行的
mysql -u root -p ##这个命令敲下,提示要输入密码,这个就是刚才设置的密码abc123
PHP解析环境的安装
安装PHP环境
yum -y install \
libjpeg \
libjpeg-devel \ 前面俩句专门处理png图片的 和开发包的
libpng libpng-devel \ 处理png图片
freetype freetype-devel \ 字体样式开发包
libxml2 \
libxml2-devel \ 处理文件的格式xml格式,版本2
zlib zlib-devel \ 压缩和压缩开发工具包
curl curl-devel \ curl可以不用是浏览器,直接用curl的应用打开一个网页,展示一个内容,相当于字符界面的浏览器工具
openssl openssl-devel 用证书做安全认证
上传php-7.1.10.tar.bz2包到opt目录下
cd /opt
tar xjvf php-7.1.10.tar.bz2
cd php-7.1.10
./configure \
--prefix=/usr/local/php \ 安装路劲
--with-mysql-sock=/usr/local/mysql/mysql.sock \ .sock通讯问津,用于连接数据库
--with-mysqli \ 连接mysql
--with-zlib \使用压缩
--with-curl \ 使用curl的浏览工具
--with-gd \使用之前安装gd库
--with-jpeg-dir \ 使用jpg图片处理目录
--with-png-dir \ 使用png图片处理目录
--with-freetype-dir \ 字体样式
--with-openssl \ 使用证书安全认证
--enable-fpm \ 开启动态加载模块
--enable-mbstring \ 开启mbstring库,能够支持多字节的字符串,处理中文字符串
--enable-xml \ xml格式处理
--enable-session \ 开启会话共享
--enable-ftp \ 开启ftp服务
--enable-pdo \ 连接数据库驱动
--enable-tokenizer \ 做身份认证的
--enable-zip 开启zip压缩
make && make install
简单解释一下,php有三个配置文件,PHP.ini核心配置文件,php-fpm.conf进程服务配置文件还有www.conf扩张配置文件。其实www.conf就是php-fpm.conf它的子配置文件
[root@localhost php-7.1.10]#cp php.ini-development /usr/local/php/lib/php.ini
在解压缩目录下cp一个php的默认核心配置文件模板到php工作目录下的lib叫做php.ini
vi /usr/local/php/lib/php.ini 在配置文件修改搜索以下俩条进行补全
cp php.ini-development /usr/local/php/lib/php.ini
让php的配置文件php.ini,命令能让系统识别
vi /usr/local/php/lib/php.ini ( 在配置文件修改搜索以下俩条进行补全)
mysqli.default_socket = /usr/local/mysql/mysql.sock
date.timezone = Asia/Shanghai 时间区域
/usr/local/php/bin/php -m //验证安装的模块
配置及优化FPM模块
[root@localhost php-7.1.10]# cd /usr/local/php/etc/
[root@localhost etc]# ll 查看下是否有这三个文件
total 12
-rw-r–r-- 1 root root 1233 Sep 3 11:51 pear.conf
-rw-r–r-- 1 root root 4463 Sep 3 11:51 php-fpm.conf.default 默认的配置模板
drwxr-xr-x 2 root root 30 Sep 3 11:51 php-fpm.d
[root@localhost etc]# cp php-fpm.conf.default php-fpm.conf
拷贝默认配置模板并重新命名为php-fpm.conf
[root@localhost etc]# cd /usr/local/php//etc/php-fpm.d/
[root@localhost php-fpm.d]# cp www.conf.default www.conf
[root@localhost php-fpm.d]# cd /usr/local/php/etc/
[root@localhost etc]# vi php-fpm.conf
pid = run/php-fpm.pid 启用fpm的进程模块
另外我们看配置文件里面有一个include包含的信息,php-fpm.d模块下以.conf结尾的配置文件都可以识别
从这可以看出www.conf.default就是php-fpm.confde的扩展文件
[root@localhost php-fpm.d]# vi www.conf 到该配置文件看下,可以看到fpm监听端口9000
[root@localhost etc]# /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini
[root@localhost etc]# netstat -anpt |grep 9000
ln -s /usr/local/php/bin/* /usr/local/bin/
让/php/bin/下面的所有命令文件放在/usr/local/bin,让其任何路径都可以使用php-cgi及php-config
[root@loacalhost sbin]# ps aux | grep -c “php-fpm” //统计fpm的进程
让nginx支持php功能
[root@localhost etc]# vi /usr/local/nginx/conf/nginx.conf
location ~ \.php$ {
root html; //站点目录名称
fastcgi_pass 127.0.0.1:9000; 监听端口
fastcgi_index index.php; 识别首页的类型是 index.php
fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; 添加一个站点路径
}
下面开始做测试页
[root@localhost etc]# vi /usr/local/nginx/html/index.php
<?php
phpinfo();
?>
[root@localhost etc]# systemctl restart nginx
然后做一个数据链路库的测验
把ip改成自己虚拟主机的IP地址
搭建社区论坛
| ####LNMP应用部署####
[部署Discuz!社区论坛Web应用]
########以下安装论坛##########
cd /opt
unzip Discuz X3.4_ SC_ UTF8.zip -d /tmpcd /tmp/dir SC _UTF8/
cp -r upload/ /usr/local/nginx/html/bbs/cd /usr/local/nginx/html/bbs/
chown -R root:nginx ./config/
chown -R root:nginx ./data/
chown -R root:nginx ./uc_ client/
chown -R root:nginx ./uc_ server/
chmod -R 777./config/chmod -R 777 ./data/
chmod -R 777 ./uc client/chmod -R 777 ./uc_ server/
http://lP/bbs/install/index.php
Please delete install/index.php via FTP!
注释:请通过ftp删除install/index.php
cd /usr/local/nginx/html/bbs/
mv install/ install.lock
chmod 600 install.lock/
更多推荐
所有评论(0)