超强LNMP一键安装

事先要知道的:
无需更新版本类软件如git,依赖库一般用yum安装即可。像nginx,mysql等需指定一个用户运行的软件
我们都可以用root身份来安装,即下面用wxj用户凭sudo来操作,因为他们最终是在指定的普通用户下运
行的,只是用root来启动而已,很安全!像NodeJS这样的即用哪个用户安装,就会用哪个用户运行,所
以他就不要用root用户来安装了!结合nginx来代理80端口(非root用户是用不了1-1024范围的端口的)

安装好CentOS7.4
#基础工作
yum install tree nmap sysstat lrzsz dos2unix  zip unzip wget -y 
yum upgrade openssl  bash -y

#安装LNMP依赖包
yum install gcc libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg.x86_64 libpng.x86_64 freetype.x86_64 libjpeg-devel.x86_64 libpng-devel.x86_64 freetype-devel.x86_64 bzip2-devel.x86_64  libXpm-devel gmp-devel icu libicu libicu-devel php-mcrypt  libmcrypt  libmcrypt-devel postgresql-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel -y

#用户规划
#一个WinSCP编辑器用的用户rootscp,免密码可切换root
#一个德高权重的用户wxj,可以用sudo进行root权限操作
#一个数据库mysql用户无密码无家目录并禁止登录
#一个Nginx的www用户无密码无家目录并禁止登录
useradd rootscp
passwd rootscp
#查看sftp应用程序的路径为
cat /etc/ssh/sshd_config  | grep sftp
Subsystem       sftp    /usr/libexec/openssh/sftp-server
#在这行下面添加一行
root  ALL=(ALL:ALL) ALL
rootscp  ALL=NOPASSWD:/usr/libexec/openssh/sftp-server

useradd wxj
passwd wxj
#加入到sudo组
gpasswd -a wxj wheel
#在这行下面添加一行
root  ALL=(ALL:ALL) ALL
wxj  ALL=(ALL:ALL) ALL

groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
groupadd www
useradd -g www -M -d /alidata/www -s /sbin/nologin www &> /dev/null

#LNMP目录规划
mkdir -p /web
mkdir -p /web/server
mkdir -p /web/www
mkdir -p /web/log
mkdir -p /web/log/php
mkdir -p /web/log/mysql
mkdir -p /web/log/nginx
mkdir -p /web/log/nginx/access

#禁用selinux
vi /etc/selinux/config
#修改为
SELINUX=disabled
SELINUXTYPE=targeted
#开放tcp/80 443端口
firewall-cmd --permanent --zone=public --add-port=80/tcp
firewall-cmd --permanent --zone=public --add-port=443/tcp
#马上要修改的SSH端口20010
firewall-cmd --permanent --zone=public --add-port=20010/tcp
#防火墙策略更新
firewall-cmd --reload

#安全加强操作
#修改ssh连接端口,禁止root远程登录
#备份 sshd配置文件 /etc/ssh/sshd_config
cp /etc/ssh/sshd_config /etc/ssh/sshd_config_original
vi /etc/ssh/sshd_config  
#在文件最后添加如下几行,然后退出保存
Port 20010
UseDNS no
AddressFamily inet
PermitRootLogin no
SyslogFacility AUTHPRIV
PasswordAuthentication yes
ChallengeResponseAuthentication yes

#重启系统,让selinux修改生效
init 6

#以后就用wxj用户来登录操作了
===============================================================
#安装PHP7.2.3
#下载解压软件
cd ~
# http://php.net/downloads.php
wget http://cn2.php.net/get/php-7.2.3.tar.bz2/from/this/mirror
mv mirror php-7.2.3.tar.bz2
tar -jxf php-7.2.3.tar.bz2
cd php-7.2.3
#Configure
sudo ./configure --prefix=/web/server/php-7.2.3 --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring  --enable-soap --enable-calendar --with-curl --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-pdo-mysql --with-mysqli --with-openssl --with-fpm-user=www --with-fpm-group=www --enable-ftp --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm --with-iconv
#编译
sudo make clean && sudo make && sudo make install
#复制配置文件 
sudo cp php.ini-development /web/server/php-7.2.3/lib/php.ini
#建软链接
sudo ln -s /web/server/php-7.2.3 /web/server/php
#配置PHP-fpm
sudo cp /web/server/php/etc/php-fpm.conf.default /web/server/php/etc/php-fpm.conf
sudo cp /web/server/php/etc/php-fpm.d/www.conf.default /web/server/php/etc/php-fpm.d/www.conf
sudo cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
sudo chmod +x /etc/init.d/php-fpm
#添加开机启动
sudo chkconfig php-fpm on 
#常用的命令
sudo service php-fpm start
sudo service php-fpm stop
============================================================================
安装mysql-5.7.21  -----二进制安装
cd ~
#下载 https://dev.mysql.com/downloads/file/?id=474759
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar
tar -xvf mysql-5.7.21-linux-glibc2.12-x86_64.tar
#解压后有两个包,用这个 mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
tar -xzvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
#转移到自己的安装目录
sudo mv mysql-5.7.21-linux-glibc2.12-x86_64 /web/server/mysql-5.7.21
#新建软链接
sudo ln -s /web/server/mysql-5.7.21/ /web/server/mysql

#添加环境变量
sudo vi /etc/profile
#在最后一行添加下行内容
export PATH=$PATH:/web/server/mysql/bin
source /etc/profile
#排除maraidb配置
sudo mv /etc/my.cnf /etc/my.cnf--
sudo mv /etc/my.cnf.d /etc/my.cnf.d--
#生成错误日志文件
sudo touch /web/log/mysql/error.log
#如何没有提前创建数据库data目录
sudo mkdir /web/server/mysql-5.7.21/data
#权限修改
sudo chown -R mysql.mysql /web/server/mysql/
sudo chown -R mysql.mysql /web/log/mysql
#初始化数据库
sudo /web/server/mysql/bin/mysqld --initialize --user=mysql --basedir=/web/server/mysql --datadir=/web/server/mysql/data
#得到初始数据库密码 
A temporary password is generated for root@localhost: CAbsaT/rV7J#
#忘记初始密码就要重新初始化数据库,删除data目录里的文件,才可以初始化数据库成功!
#命令:sudo rm -rf /web/server/mysql/data/*

sudo chown -R mysql.mysql /web/server/mysql/data/
#先修改启动文件
sudo vi /web/server/mysql-5.7.21/support-files/mysql.server
basedir=/web/server/mysql
#将support-file文件复制到/etc/init.d目录下
sudo cp /web/server/mysql-5.7.21/support-files/mysql.server /etc/init.d/mysqld
sudo chmod +x /etc/init.d/mysqld
#将其添加到服务列表中
sudo chkconfig --add mysqld  
#启动mysql
sudo systemctl start mysql   #不会输出信息
#修改密码命令,把密码修改为123456
/web/server/mysql/bin/mysqladmin -u root -p password 123456

#配置文件生成
sudo cat > /etc/my.cnf <<END
[client]
port            = 3306
socket          = /tmp/mysql.sock
[mysqld]
port            = 3306
socket          = /tmp/mysql.sock
skip-external-locking
log-error=/web/log/mysql/error.log
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

log-bin=mysql-bin
binlog_format=mixed
server-id       = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout
expire_logs_days = 5
max_binlog_size = 1000M 
END

#添加开加启动
sudo chkconfig mysqld on
#常用命令
sudo service mysqld start
sudo service mysqld stop
=================================================
安装nginx-1.12.2   ----root用户下运行的
cd ~
#下载 http://nginx.org/en/download.html
wget http://nginx.org/download/nginx-1.12.2.tar.gz

tar zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2

sudo ./configure --user=www --group=www --prefix=/web/server/nginx-1.12.2 --with-http_stub_status_module --without-http-cache --with-http_ssl_module --with-http_gzip_static_module

#nginx参数详解http://blog.sina.com.cn/s/blog_68c25adf01014037.html
sudo make && sudo make install

sudo ln -s /web/server/nginx-1.12.2 /web/server/nginx
/web/server/nginx/sbin/nginx -v
#开机启动脚本编写
sudo vi /lib/systemd/system/nginx.service
#内容如下:
[Unit]
Description=nginx
After=network.target

[Service]
Type=forking
ExecStart=/web/server/nginx/sbin/nginx
ExecReload=/web/server/nginx/sbin/nginx -s reload
ExecStop=/web/server/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target

#执行权限
sudo chmod 754 /lib/systemd/system/nginx.service

#手动停止测试 
/web/server/nginx/sbin/nginx -s quit
#立即启动
systemctl start nginx.service
systemctl status nginx.service
systemctl stop nginx.service
#开机启动
systemctl enable nginx.service

#检查配置文件有没有错
/web/server/nginx/sbin/nginx -t
========================================================
NVM安装NodeJS
cd ~
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
nvm install v8.10.0
nvm use v8.10.0
nvm alias default v8.10.0
node -v
npm --registry=https://registry.npm.taobao.org install -g npm
npm --registry=https://registry.npm.taobao.org install -g cnpm

npm i pm2 webpack gulp grunt-cli -g
===============================================
git安装
sudo yum git

从本地到第三方仓库
git config --global user.name 'wxj'
git config --global user.email '407787759@qq.com'
cd /home/repertory //进入到git
git init
git add .
git push -u
git commit -m 'First commit'
git remote add origin git@xxxxx  //关联本地到平台上
git fetch
git merge origin/master
wq!
git push -u origin master
//本地保住一份历史
git remote add origin  git@xxx
git push origin master

//服务器端
sudo yum install git
git clone git@xxxxx 


=========Nginx代理=========
upstream nodeServer{
   server 127.0.0.1:8081;
}

server {
    listen  80;
    server_name  192.168.28.106;
    
    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Nginx-Proxy true;
        proxy_pass http://nodeServer;
        proxy_redirect off;
    }
}

转载于:https://my.oschina.net/wgc2010/blog/1634434

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值