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

举报
当她睡着时 发表于 2021/05/16 00:50:34 2021/05/16
【摘要】 服务器部署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 -...

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

作者:当她睡着时

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

  • 部署nginx
  1. 首先安装nginx所需的依赖库:yum -y install pcre-devel zlib-devel openssl-devel
  2. 同时配置编译环境需要依赖gcc、gcc-c++、make软件包:yum -y install gcc gcc-c++
  3. 创建nginx用户:useradd -M -s /sbin/nologin nginx
  4. 查看nginx用户是否创建成功:tail -1 /etc/passwd;tail -1 /etc/group
  5. nginx的包解包到/usr/src下: tar xf tool/nginx-1.16.0.tar.gz -C /usr/src/
  6. 进入解好的包:cd /usr/src/nginx-1.16
  7. 配置安装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
  8. 键入echo $?查看返回值是否为0,验证是否安装成功。
  9. 16目录创建软连接,这样可以更好的管理它的版本ln -s /usr/local/nginx1.16/ /usr/local/nginx
  10. nginx启动文件创建软连接,链接到usr/local/sbin下,这样直接执行nginx命令就可以实现nginx的启动、停止、重启:

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

  1. 键入nginx命令启动nginx服务:nginx,检测语法:nginx -t
  2. 测试响应头和响应码:curl -I http://192.168.1.40

 

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

 

  • 部署MySQL数据库
  1. 首先安装ncurses-devel,其是字符终端下屏幕控制的基本库:yum -y install ncurses-devel
  2. cmake(MySQL5.5版本以后需要借助cmake编译安装)的包解压到/usr/src目录下:

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

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

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

  1. 键入echo $?查看返回值是否为0,判断是否安装成功。
  2. 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

  1. 键入echo $?查看返回值是否为0,判断是否安装成功。
  2. 定义MySQL中命令的环境变量,即可直接调用MySQL里的命令

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

  1. 复制MySQL的配置文件my.cnf到etc下:cp -p /usr/src/mysql-5.5.22/support-files/my-medium.cnf /etc/my.cnf
  2. 将设置开机的文件放到d下:

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

  1. 为其增加一个执行权限: chmod +x /etc/init.d/mysqld
  2. mysqld这个服务添加到chkconfig(centos6中的命令,7里也能用)中管理(相当于systemctl):chkconfig --add mysqld,并设置开机自启动:chkconfig mysqld on。
  3. 创建mysql用户:useradd -M -s /sbin/nologin mysql
  4. 更改属组: chown -R mysql:mysql /usr/local/mysql/
  5. 源码安装与二进制安装需要初始化,yum安装则不需要:/usr/local/mysql/scripts/mysql_install_db  --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql
  6. 启动MySQL: /etc/init.d/mysqld start(此处注意,之前yum安装过mysql或mariadb的话,要用yum -y remove卸载干净,否则源码编译安装的mysql则无法启动)
  7. 查看一下mysqld服务的端口号:netstat -anptu | grep mysqld
  8. 给数据库创建一个用户名密码:mysqladmin -uroot  password "123123"
  9. 运用此命令登录mysql数据库:mysql -uroot -p123123

 

  • 部署php
  1. 首先安装一些依赖包: yum -y install gd libxml2-devel libjpeg-devel libpng-devel
  2. php软件包解包到/usr/src下:tar xf tool/php-5.3.28.tar.gz -C /usr/src/
  3. 进入解包好的文件中: cd /usr/src/php-5.3.28/
  4. 配置安装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

  1. 键入echo $?查看返回值是否为0,验证是否安装成功。
  2. 复制php的模板文件:

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

  1. 创建php命令的软连接:ln -s /usr/local/php5/bin/* /usr/local/bin/ ;ln -s /usr/local/php5/sbin/* /usr/local/sbin/
  2. 进入php5目录下的etc文件:cd /usr/local/php5/etc
  3. 复制php-fpm.conf.default文件为php-fpm.conf
  4. vim编辑php-fpm.conf文件:vim php-fpm.conf,配置如下:

 

  1. 启动php服务:php-fpm
  2. 查看进程号:netstat -anptu|grep php
  3. 查看产生进程:ps -aux | grep php-fpm

 

  • 整合LNMP
  1. 配置nginx配置文件:vim /usr/local/nginx/conf/nginx.conf

 

  1. 配置内容如上图
  2. 检测nginx语法:nginx -t
  3. 重启nginx服务:nginx -s reload
  4. 访问网页:168.1.40/index.php
  5. 创建php文件,测试能否链接数据库:vim /usr/local/nginx/html/test.php
  6. 将以下内容写入文件

<?php

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

if($link) echo "<h1>successful</h1>";

mysql_close();

?>

  1. 重启nginx服务:nginx -s reload
  2. 访问168.1.40/test.php,返回successful则链接后端数据库成功。

 

  • lnmp优化
  1. 简化配置,配置版本号的隐藏,网页压缩,nginx服务的最大连接数
  2. 编辑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;

        }

    }

}

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

 

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

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。