服务器部署LNMP环境(源码编译安装)后附操作文档

网友投稿 705 2022-05-29

服务器部署lnmp环境(源码编译安装)

软件版本:CentOS 7,Nginx 1.16,MySQL 5.5.22,php 5.3.28,cmake 2.8.6

部署nginx

首先安装nginx所需的依赖库:yum -y install pcre-devel zlib-devel openssl-devel

同时配置编译环境需要依赖gcc、gcc-c++、make软件包:yum -y install gcc gcc-c++

创建nginx用户:useradd -M -s /sbin/nologin nginx

查看nginx用户是否创建成功:tail -1 /etc/passwd;tail -1 /etc/group

将nginx的包解包到/usr/src下: tar xf tool/nginx-1.16.0.tar.gz -C /usr/src/

进入解好的包:cd /usr/src/nginx-1.16

配置安装nginx,指定安装路径为/usr/local/nginx,安装用户为nginx,用户组为nginx,同时安装几个需要的模块:./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-file-aio  --with-http_mp4_module --with-http_ssl_module && make && make install

键入echo $?查看返回值是否为0,验证是否安装成功。

为16目录创建软连接,这样可以更好的管理它的版本ln -s /usr/local/nginx1.16/ /usr/local/nginx

为nginx启动文件创建软连接,链接到usr/local/sbin下,这样直接执行nginx命令就可以实现nginx的启动、停止、重启:

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

键入nginx命令启动nginx服务:nginx,检测语法:nginx -t

测试响应头和响应码:curl -I

http://192.168.1.40

Nginx部署成功,nginx文件的路径。

部署MySQL数据库

首先安装ncurses-devel,其是字符终端下屏幕控制的基本库:yum -y install ncurses-devel

将cmake(MySQL5.5版本以后需要借助cmake编译安装)的包解压到/usr/src目录下:

tar xf tool/cmake-2.8.6.tar.gz -C /usr/src

进入解包好的cmake,配置编译安装:cd /usr/src/cmake-2.8.6/

执行:./configure && gmake &&gmake install 开始编译安装(该软件编译安装时间较长,请耐心等待)

键入echo $?查看返回值是否为0,判断是否安装成功。

将MySQL安装包解包到/usr/src/下:tar xf mysql-5.5.22.tar.gz -C /usr/src/

进入/usr/src/mysql-5.5.22/目录

用cmake编译安装(此项编译过程较长,请耐心等待):

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc && make && make install

键入echo $?查看返回值是否为0,判断是否安装成功。

定义MySQL中命令的环境变量,即可直接调用MySQL里的命令

echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile

复制MySQL的配置文件my.cnf到etc下:cp -p /usr/src/mysql-5.5.22/support-files/my-medium.cnf /etc/my.cnf

将设置开机的文件放到d下:

cp -p /usr/src/mysql-5.5.22/support-files/mysql.server /etc/init.d/mysqld

为其增加一个执行权限: chmod +x /etc/init.d/mysqld

将mysqld这个服务添加到chkconfig(centos6中的命令,7里也能用)中管理(相当于systemctl):chkconfig --add mysqld,并设置开机自启动:chkconfig mysqld on。

创建mysql用户:useradd -M -s /sbin/nologin mysql

更改属组: chown -R mysql:mysql /usr/local/mysql/

源码安装与二进制安装需要初始化,yum安装则不需要:/usr/local/mysql/scripts/mysql_install_db  --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql

启动MySQL: /etc/init.d/mysqld start(此处注意,之前yum安装过mysql或mariadb的话,要用yum -y remove卸载干净,否则源码编译安装的mysql则无法启动)

查看一下mysqld服务的端口号:netstat -anptu | grep mysqld

给数据库创建一个用户名密码:mysqladmin -uroot  password "123123"

运用此命令登录mysql数据库:mysql -uroot -p123123

部署php

首先安装一些依赖包: yum -y install gd libxml2-devel libjpeg-devel libpng-devel

将php软件包解包到/usr/src下:tar xf tool/php-5.3.28.tar.gz -C /usr/src/

进入解包好的文件中: cd /usr/src/php-5.3.28/

配置安装php-5.3.28(指定安装路径;使用gd库,使用缩略图;使用压缩;指定链接mysql的位置;指定配置文件路径;php加密;让php以php-fpm运行;支持图片的库在哪):

./configure  --prefix=/usr/local/php5  --with-gd  --with-zlib --with-mysql=/usr/local/mysql/  --with-config-file-path=/usr/local/php5  --enable-mbstring --enable-fpm --with-jpeg-dir=/usr/lib && make && make install

键入echo $?查看返回值是否为0,验证是否安装成功。

复制php的模板文件:

cp -p /usr/src/php-5.3.28/php.ini-development /usr/local/php5/php.ini

创建php命令的软连接:ln -s /usr/local/php5/bin/* /usr/local/bin/ ;ln -s /usr/local/php5/sbin/* /usr/local/sbin/

进入php5目录下的etc文件:cd /usr/local/php5/etc

服务器部署LNMP环境(源码编译安装)后附操作文档

复制php-fpm.conf.default文件为php-fpm.conf

vim编辑php-fpm.conf文件:vim php-fpm.conf,配置如下:

启动php服务:php-fpm

查看进程号:netstat -anptu|grep php

查看产生进程:ps -aux | grep php-fpm

整合LNMP

配置nginx配置文件:vim /usr/local/nginx/conf/nginx.conf

配置内容如上图

检测nginx语法:nginx -t

重启nginx服务:nginx -s reload

访问网页:168.1.40/index.php

创建php文件,测试能否链接数据库:vim /usr/local/nginx/html/test.php

将以下内容写入文件

$link=mysql_connect('localhost','root','123123');

if($link) echo "

successful

";

mysql_close();

?>

重启nginx服务:nginx -s reload

访问168.1.40/test.php,返回successful则链接后端数据库成功。

lnmp优化

简化配置,配置版本号的隐藏,网页压缩,nginx服务的最大连接数

编辑nginx配置文件,将下面的模板复制进去:vim /usr/local/nginx/conf/nginx.conf

user  nginx nginx;

worker_processes  2;

error_log  logs/error.log;

pid        logs/nginx.pid;

events {

use epoll;

worker_connections  10240;

}

http {

include       mime.types;

default_type  application/octet-stream;

sendfile        on;

gzip            on;

gzip_min_length 1k;

gzip_buffers 4 16k;

gzip_http_version 1.1;

gzip_comp_level 2;

gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss;

keepalive_timeout  65;

server_tokens off;

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

server {

listen       80;

server_name  localhost;

location / {

root   html;

index  index.html index.htm;

}

error_page   500 502 503 504  /50x.html;

location = /50x.html {

root   html;

}

}

}

使用curl -I验证一下是否实现了nginx隐藏版本号:curl -I http://192.168.1.40

版本号实现了隐藏

Nginx的版本号隐藏还可以使用修改源码包,重新编译的方式,方法如下,看图说话,不详细说明了。

附件: 服务器部署lnmp环境.docx 147.25KB 下载次数:2次

LNMP MySQL Nginx

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Open Source - 在线Office方案
下一篇:android开发出现错误:Failed to find configured root that contains
相关文章