Linux Centos7 编译安装LNMP+扩展+vsftp ftp

11 篇文章 0 订阅

一、准备工作:

linux环境:centos 7.6 64位
nginx:nginx-1.16.1tar.gz
php: php-7.3.13.tar.gz
mysql: mysql-5.6.21.tar.gz
libxml2:libxml2-2.9.1.tar.gz
openssl:openssl-1.0.1e.tar.gz
zlib:zlib-1.2.3.tar.gz
pcre:pcre-8.36.tar.gz

1、Nginx官网下载

稳定版本:链接: http://nginx.org/en/download.html.

在这里插入图片描述

2、PHP 7.3官网下载

链接: https://www.php.net/downloads.php.
在这里插入图片描述

3、下载mysql5.6.46

链接: https://dev.mysql.com/downloads/mysql/5.6.html.
下载地址

4、创建安装目录

这里创建 /www/web 用于存入程序代码; /www/source 环境的安装目录; /www/lnmp 用于存放安装软件

创建安装目录命令:mkdir -p /www/{lnmpsourceweb}
在这里插入图片描述

5、上传软件

将上面下载好的软件用ftp(或其它工具)上传到 /www/lnmp,并进行解压:

  1. [root@localhost lnmp]# cd /www/lnmp/

  2. [root@localhost lnmp]# find ./*.tar.gz -exec tar zxvf {} ;

在这里插入图片描述

6、安装软件

yum install -y gcc gcc-c++ make sudo autoconf libtool-ltdl-devel gd-devel freetype-devel libxml2-devel libjpeg-devel libpng-devel openssl-devel curl-devel patch libmcrypt-devel libmhash-devel ncurses-devel bzip2 libcap-devel ntp sysklogd diffutils sendmail iptables unzip cmake

7、创建用户

我们需要创建2个用户,一个用来启动mysql,一个用来启动nginx

  1. [root@localhost ~]# groupadd mysql

  2. [root@localhost ~]# useradd -r mysql -g mysql

  3. [root@localhost ~]# groupadd www

  4. [root@localhost ~]# useradd -r www -g www

这里我们成功创建了两个用户组 mysql 和 www ,也创建了两个用户 mysql 和 www

二、安装nginx

说明

安装nginx前,需要安装3个依赖包:

pcre:在使用 nginx 的 rewrite 模块的时候,需要有pcre库的支持

openssl:在使用ssl功能时,需要有 openssl库的支持

zlib:在使用gzip模块时,需要有zlib库的支持。

而这三个模块都是我们常用的,所以这3个依赖包还是要安装的。

1、安装 pcre

 [root@localhost lnmp]# cd /www/lnmp/pcre-8.36
 [root@localhost pcre-8.36]# ./configure
 [root@localhost pcre-8.36]# make
 [root@localhost pcre-8.36]# make install

2、安装 openssl

[root@localhost pcre-8.36]# cd /www/lnmp/openssl-1.0.1e
[root@localhost openssl-1.0.1e]# ./config
[root@localhost openssl-1.0.1e]# make
[root@localhost openssl-1.0.1e]# make install

3、安装 zlib

[root@localhost openssl-1.0.1e]# cd /www/lnmp/zlib-1.2.3
[root@localhost zlib-1.2.3]# CFLAGS="-O3 -fPIC" ./configure
[root@localhost zlib-1.2.3]# make && make install

4、安装 nginx

第一步

安 装nginx的时候,参数可能会多一些。建议最简化安装。nginx有很多模块,如果哪个模块用不到,尽量不要安装,进入 nginx 源码目录可以使用 ./configure --help 查看有哪些编译参数,常用的有以下几个:

–prefix=PATH 要安装到的目录

–sbin-path=PATH 指定nginx二进制文件的路径,没指定的话这个路径依赖 --prefix 选项

–conf-path=PATH 如果在命令行未指定配置文件,那么将会通过 --prefix 指定的路径去查找配置文件

–error-log-path=PATH 错误文件路径,nginx写入错误日志文件地址

–pid-path= nginx master进程pid写入的文件位置,通常在var/run下

–user= worker进程运行的用户

–group= worker进程运行的组

–with-http_ssl_module 开启 ssl 模块

–with-zlib=DIR 设置 zlib 的源码目录

–with-openssl=DIR 设置 openssl 的源码目录

–with-pcre=DIR设置 pcre 的源码目录

第二步:进行编译安装

  1. [root@localhost zlib-1.2.3]# cd /www/lnmp/nginx-1.8.0

  2. [root@localhost nginx-1.8.0]# ./configure --help // 这是查看帮助的命令

  3. [root@localhost nginx-1.8.0]# ./configure --user=www --group=www --prefix=/www/source/nginx --with-pcre=/www/lnmp/pcre-8.36 --with-zlib=/www/lnmp/zlib-1.2.3 --with-openssl=/www/lnmp/openssl-1.0.1e

  4. [root@localhost nginx-1.8.0]# make && make install

第三步

安装好之后,我们可以用 ls 查看 /www/source,发现有一个 nginx,说明已经安装成功了。

  1. [root@localhost nginx-1.8.0]# ls /www/source/nginx

  2. [root@localhost nginx-1.8.0]#

三、安装Mysql

1、安装过程

mysql 5.5 以后要用 cmake 来编译

[root@localhost nginx-1.8.0]# cd /www/lnmp/mysql-5.6.21

[root@localhost mysql-5.6.21]# cmake - DCMAKE_INSTALL_PREFIX=/www/source/mysql

[root@localhost mysql-5.6.21]# make

[root@localhost mysql-5.6.21]# make install

2、配置 mysql进入安装好的目录

  1. [root@localhost mysql-5.6.21]# cd /www/source/mysql/

  2. [root@localhost mysql]# rm -f /etc/my.cnf // 删除系统自带的mysql配置文件

  3. [root@localhost mysql]# chown -R mysql:mysql ./

  4. [root@localhost mysql]# ./scripts/mysql_install_db --user=mysql // 安装数据库

  5. [root@localhost mysql]# chown -R root:root ./*

  6. [root@localhost mysql]# chown -R mysql:mysql ./data/

将 ./support-files/mysql.server 复制到 /etc/init.d/ 下

  1. [root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld

3、修改 linux 的环境变量

在/etc/profile文件的最后加入一句

export PATH="/www/source/mysql/bin:$PATH"

  1. [root@localhost mysql]# vim /etc/profile

  2. [root@localhost mysql]# source /etc/profile // 这一句是让配置立即生效

  3. [root@localhost mysql]# service mysqld start // 启动 mysql

  4. Starting MySQL…

root密码默认空

在这里插入图片描述

登陆和创建用户

[root@bogon mysql]# mysql -u root –p
show database 查看表

新增用户并授权

mysql> grant all privileges on . to chenz @’%’ identified by ‘123456’ with grant option;

语法:grant all privileges on . to 用户名@’%’ identified by ‘密码’ with grant option;

四、安装php

安装php之前,也要安装一个依赖包 libxml2

1、安装 libxm

  1. [root@localhost mysql]# cd /www/lnmp/libxml2-2.9.1

  2. [root@localhost libxml2-2.9.1]# ./configure --with-python=no

  3. [root@localhost libxml2-2.9.1]# make && make install

2、安装 php7.1

php的编译参数也是很多的,这里了不能一一介绍,可以使用 ./configure --help 查看,这里使用的参数如下:

–prefix 安装到的目录

–enable-fpm 开始 fpm 模式,nginx 下必需开启

–enable-fpm-user fpm 的启动账户

–enable-fpm-group fpm 的启动账户组

–with-openssl开启 openssl

–with-libxml-dir 开启 libxml

–with-zlib 开启 zlib

–enable-mbstring开启 mbstring

–with-mysqli=mysqlnd 开启 mysqli

–with-pdo-mysql 开启 pdo mysql

–with-gd 开启gd库

–enable-sockets 开启 sockets

–with-curl 开启 curl

–enable-maintainer-zts 开启 maintainer zts,以后安装多线程的话,这个必须开启

[root@localhost libxml2-2.9.1]# cd /www/lnmp/php-7.1.1

[root@localhost php-7.1.1]# ./configure --prefix=/www/source/php --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-openssl --with-libxml-dir --with-zlib --enable-mbstring --with-mysqli=mysqlnd --enable-mysqlnd --with-pdo-mysql=/www/source/mysql/ --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-freetype-dir --enable-sockets --with-curl --enable-maintainer-zts
[root@localhost php-7.1.1]# make
[root@localhost php-7.1.1]# make test // 测试完之后,输入 n
[root@localhost php-7.1.1]# make install

3、修改 linux PHP 的环境变量

在/etc/profile文件的最后加入一句

export PATH=$PATH:/www/source/php/bin

[root@localhost mysql]# vim /etc/profile

[root@localhost mysql]# source /etc/profile  // 这一句是让配置立即生效
php –v   php –m 等命令

或者:

vim ~/.bash_profile
export PATH
alias php=/usr/local/php/bin/php
source ~/.bash_profile #刷新

五、环境配置

1、php 配置

[root@localhost php-7.1.1]# cd /www/source/php/

[root@localhost php]# cp etc/php-fpm.conf.default etc/php-fpm.conf

[root@localhost php]# cp etc/php-fpm.d/www.conf.default etc/php-fpm.d/www.conf

[root@localhost php]# cp /www/lnmp/php-7.1.1/php.ini-production lib/php.ini

2、启动 php-fpm

[root@localhost php]# /www/source/php/sbin/php-fpm
#设置启动命令:
[root@localhost php]cp /www/lnmp/php-7.3.13/sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm
[root@localhost php]chkconfig --add php-fpm

3、nginx 配置

[root@localhost php]# cd /www/source/nginx/conf/

[root@localhost conf]# vim nginx.conf

将 nginx.conf 中的 server 保存成如下

 server {

2.        listen       80;

3.        server_name  localhost;

4.     

5.        #charset koi8-r;

6.        #access_log  logs/host.access.log  main;

7.     

8.        root    /www/web;

9.        index   index.html index.php;

10.   

11.      error_page   500 502 503 504  /50x.html;

12.      location = /50x.html {

13.          root   html;
14.      }

15.   

16.      location ~ \.php$ {

17.          fastcgi_pass   127.0.0.1:9000;

18.          fastcgi_index  index.php;

19.   

20.          fastcgi_split_path_info ^(.+\.php)(/.+)$;

21.          fastcgi_param PATH_INFO $fastcgi_path_info;

22.          fastcgi_param  SCRIPT_FILENAME  /www/web$fastcgi_script_name;

23.          fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;

24.   

25.          include        fastcgi_params;

26.      }

27.  }

4、启动 nginx

[root@localhost conf]# /www/source/nginx/sbin/nginx

六、测试环境

在 /www/web/ 目录下创建一个 index.php,内容如下:

 <?php

   phpinfo();

修改 index.php 所属组

[root@localhost php]# chown -R www:www /www/web/

七、启动命令:

【启动Nginx】

$ /www/source/nginx/sbin/nginx                  #启动Nginx

$ /www/source /nginx/sbin/nginx -s stop          #断开Nginx

$ /www/source /nginx/sbin/nginx -s reload        #重启Nginx

$ ps -ef | grep nginx  或者 ps -A | grep -i nginx  #查看是否成功启动nginx

【启动PHP】

$ service php-fpm start          #启动 php-fpm

$ service php-fpm stop       #关闭php-fpm

$ service php-fpm restart        #重启php-fpm

$ service php-fpm status        #查看 php-fpm 状态

$ ps -ef | grep php-fpm 或者 ps -A | grep -i php-fpm  #查看是否成功启动php-fpmx

【启动Mysql】

$ service mysqld  start          #启动 mysqld

$ service mysqld  stop       #关闭mysqld 

$ service mysqld  restart        #重启mysqld 

$ service mysqld  status        #查看 mysqld  状态

 

$ ps -ef | grep mysqld  或者 ps -A | grep -i mysqld   #查看是否成功启动mysqld 

八、php安装扩展

安装swoole为例 Swoole:

1、安装swoole

方法一

git clone https://gitee.com/swoole/swoole
whereis	phpize
/www/source/php/bin/phpize
./configure –with-php-config=/www/source/php/bin/php-config
make && make install

方法二

cd /www/lnmp/nginx/ext/

wget http://pecl.php.net/get/swoole-4.4.8.tgz

tar –zxvf swoole-4.4.8.tgz

cd swoole-4.4.8

/www/source/php/bin/phpize

./configure –with-php-config=/www/source/php/bin/php-config

make && make install

2、配置php支持swoole

vi /www/source/php/lib/php.ini

extension=swoole.so

php-m #查看扩展

测试是否开启

#swoole的安装目录  echo.php
cd /home/swoole/examples/server/
php echo.php #开启进程

#查看9501进程
netstat -anp | grep 9501
tcp        0      0 0.0.0.0:9501            0.0.0.0:*               LISTEN      30144/php           
#正确启动

3、重启php-fpm

service php-fpm restart        

九、站点创建

1、修改nginx的站点配置文件

vim /www/source/nginx/conf/nginx.conf

添加如下内容

include /www/source/nginx/conf/vhosts/*.conf

2、创建站点配置文件目录

mkdir /www/source/nginx/conf/vhosts

3、创建站点目录

#创建www.a.com 站点目录
mkdir /www/web/www.a.com
#创建测试首页
vim /www/web/www.a.com/index.php # 输入本站域名:www.a.com

4、创建站点配置文件

touch  /var/local/nginx/conf/vhosts/www.a.com.conf

其内容如下:

server {
    listen       80;
    server_name  www.a.com; # 设置域名
    index       index.php index.html; #默认主页
    root         /www/web/www.a.com; # 站点目录
 
    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf; #加载扩展配置
 
    location / {
    }
 error_page 404 /404.html;
        location = /40x.html {
    }
 
    error_page 500 502 503 504 /50x.html;
        location = /50x.html {
    }
    #以下是PHP的支持,可以使用公共文件进行引入
    location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
}

5、重启nginx

十、vsftp ftp

1、安装yum -y install vsftpd ftp

yum -y install vsftpd ftp

2、修改配置文件

vi /etc/vsftpd/vsftpd.conf  

vsftpd.conf具体配置如下:

anonymous_enable=NO #允许匿名用户访问为了安全选择关闭 local_enable=YES # 允许本地用户登录 write_enable=YES # 是否允许写入 local_umask=022 # 本地用户上传文件的umask dirmessage_enable=YES #为YES则进入目录时显示此目录下由message_file选项指定的文本文件(默认为.message)的内容 xferlog_enable=YES #开启日志

xferlog_std_format=YES #标准格式 connect_from_port_20=YES xferlog_file=/var/log/xferlog #ftp日志目录

idle_session_timeout=6000 #设置客户端连接时间

data_connection_timeout=1200 #设置数据连接时间 针对上传,下载 chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list #设置为YES则下面的控制有效 chroot_list_enable=YES #若为NO则记录在chroot_list_file所指定的文件(默认是/etc/vsftpd.chroot_list)中的用户将被chroot在登录后所在目录中无法离开.如果为YES则所记录的用户将不被chroot.这里YES. chroot_local_user=YES userlist_deny=NO #若设置为YES则记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户将无法login并且将检察下面的userlist_deny选项 userlist_enable=YES #若为NO则仅接受记录在userlist_file选项指定文件(默认是/etc/vsftpd.user_list)中的用户的login请求.若为YES则不接受这些用户的请求. userlist_file=/etc/vsftpd/user_list #白名单 chroot_list_enable=YES local_root=/var/ftp/pub #根目录 listen=YES pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES

vsftpd的配置,配置文件中限定了vsftpd用户连接控制配置。

vsftpd.ftpusers:位于/etc/vsftpd目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。

vsftpd.user_list:位于/etc/vsftpd目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。

vsftpd.conf:位于/etc/vsftpd目录下。来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。

3、创建白名单

 useradd  xxx passwd xxx 并添加到user_list和chroot_list中去

4、启动ftp服务器

#cetoos 7操作
/bin/systemctl restart  vsftpd.service

5.赋权

将ftp指定的根目录赋权为777权限

6.检查SElinux状态并关闭

 getsebool -a|grep ftp

7、 防火墙放通FTP服务

8、配置本地用户登录

1、指定家目录给用户/www/web/demo demo 123456

 [root@localhost /]# adduser -d /www/web/demo -g ftp -s /sbin/nologin demo 
 [root@localhost /]# passwd demo

2、限定FTP用户只能访问自己的家目录,而不能返回上一层目录进入其他目录

#chroot_local_user #是否将所有用户限制在主目录
[root@localhost /]# vim /etc/vsftpd/vsftpd.conf chroot_list_enable=YES 

#chroot_list_enable #是否启动限制用户的名单 chroot_list_file=/etc/vsftpd/chroot_list 

#chroot_list_file=/etc/vsftpd/chroot_list #是否限制在主目录下的用户名单

3.在/etc/vsftpd下创建chroot_list文件

[root@localhost /]# cd /etc/vsftpd 
[root@localhost vsftpd]# touch chroot_list 
[root@localhost vsftpd]# vim chroot_list

然后加入需要限制的用户名(一行一个)

4、重启vsftp

systemctl restart vsftpd

5、userdel + 用户 即可删除ftp用户

[root@localhost /]# userdel cmcc1

6.如果需要允许用户修改密码,但是又没有telnet登录系统的权限:

 usermod -s /usr/bin/passwd cmcc //用户telnet后将直接进入改密界面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值