三十而立

lnmp下的文章

1、阿里云生成备份快照
2、旧的服务器扩容下数据盘(压缩资料超出存储不够,重要资料顺便本地备份下):https://help.aliyun.com/document_detail/25452.html?spm=a2c4g.11186623.4.3.360b14c5FLMEZt (注意执行第5步)
打包压缩: tar -zcvf wwwroot-bak.tgz /home/wwwroot

解压: `tar -zcvf wwwroot-bak.tgz`

3、新的服务器挂载数据盘

https://help.aliyun.com/document_detail/25426.html?spm=a2c4g.11186623.2.21.62667d56PCiG4i#concept-jl1-qzd-wdb

这次放弃了军哥的lnmp(使用近10年了),改用了宝塔(BT),更原因纯粹是懒,赞扬军哥的lnmp非常稳定,几年来从未出过问题。

4、先安装宝塔

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh

中间跳出选择 y,安装完后记复制管理面板账号和密码

5、登录管理面板安装(nginx1.14,php7.2,mysql5.7),可以选择 编绎安装 30分钟到1小时左右

6、导出旧的mysql数据:

mysqldump -uroot -p --all-databases > sqlfile.sql //导出全部数据库,注意:这不是在mysql下
mysqldump -uroot -p dp_db > dumpout.sql   //导出某1个数据库,dp_db是需要导出的数据库名称,dumpout.sql存储导出

的数据

7、导入新的数据库:

mysql> create database abc;      # 创建数据库,abc是数据库名
mysql> use abc;                  # 使用已创建的数据库 
mysql> set names utf8;           # 设置编码
mysql> source /home/abc.sql      # 导入备份数据库

先去安装一个适合在 CentOS 7 上面使用的 ius 仓库,这样我们就可以使用 yum 去安装比较新的软件包了。

sudo yum install https://centos7.iuscommunity.org/ius-release.rpm -y

NGINX
再去安装一下 NGINX:

sudo yum install nginx -y

启动一下它,再让他开机启动:

sudo systemctl start nginx
sudo systemctl enable nginx

MariaDB
下面再安装一下 MariaDB,我想安装 ius 仓库上的新版的 mariadb ,先删除掉系统自带的 mariadb:

sudo yum remove mariadb-libs -y

再安装一下新的 MariaDB:

sudo yum install mariadb101u-server -y

启动一下它,再让它开机自启动:

sudo systemctl start mariadb
sudo systemctl enable mariadb

执行一安全配置:

mysql_secure_installation

回答一些问题,设置一下数据库管理系统的 root 用户的密码,首次密码为空

PHP 7
下面再去安装一下 PHP 还有一些比较常用的扩展:

sudo yum install php71u-fpm php71u-cli php71u-xml php71u-gd php71u-mysqlnd php71u-pdo php71u-mcrypt php71u-mbstring php71u-json php71u-opcache -y

启动一下 php-fpm,再让它开机自启动:

sudo systemctl start php-fpm
sudo systemctl enable php-fpm

配置
下面去创建一个虚拟主机,让它可以执行 PHP,我们需要创建一个可以执行 PHP 的 NGINX 配置文件。先去创建一个 PHP 文件:

mkdir -p /vagrant/www/default
vi /vagrant/www/default/phpinfo.php

在里面添加一个 phpinfo 函数,保存一下文件。
再去创建一个 NGINX 配置文件:

sudo vi /etc/nginx/conf.d/php.basic.conf

添加下面内容:

server {
  listen        80;
  server_name   192.168.0.111;
  root          /vagrant/www/default;
  index         index.php index.html;

 location / {
    try_files $uri $uri/ /index.php?$query_string;
  }

  location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi.conf;
  }
}

保存一下,重新加载一下 NGINX:

sudo systemctl reload nginx

测试
打开浏览器,输入服务器的 IP 地址,后面加上一个 phpinfo.php,在页面上会显示一些跟 php 相关的信息 , 说明我们成功的配置了一个 LEMP 环境。

权限
Vagrant 会给我们在虚拟机与本地电脑之间设置一个共享的目录,默认这个目录在本地电脑就是项目的根目录,在虚拟机上这个共享的目录是 /vagrant ,这个目录的拥有者与用户组都会是 vagrant。注意我们不能在虚拟机上修改这个目录的权限,所以,如果你的网站应用放在这个目录的下面或者它下面的某个子目录里面,你需要把运行 PHP-FPM 这个服务的用户修改成 vagrant。
编辑一下 php-fpm 的配置文件:

sudo  vi /etc/php-fpm.d/www.conf

搜索一下 user,等号右边的值就是运行 PHP-FPM 这个服务的用户,默认应该是 php-fpm,我们需要把它改成 vagrant :

user = vagrant

保存配置文件,重新启动一下 PHP-FPM:

sudo systemctl restart php-fpm

为了安全起见,lnmp 的大部分版本都是禁止远程连接mysql的

开启的话可以按如下步骤:
1、首先需要自己在phpmyadmin里添加一个用户 主机为 % 的任意主机(也可以编辑已有的用户)
2、并且iptables 里删除DROP 3306端口的规则

//查看防火墙的序号
iptables -L -n --line-numbers

比如要删除INPUT里序号为8的规则,执行:

//删除第8条
iptables -D INPUT 8

iptables教程:https://www.vpser.net/security/linux-iptables.html

如果以上设置都不行,如果你用的是(阿里云或者类似云)的服务器,那么要设置:安全组规则

入方向  自定义TCP  端口范围:3306/3306    授权对象:0.0.0.0/0

在linux中,rm-rf 删除文件的时候,提示错误:

cannot remove `.user.ini': Operation not permitted

无法删除“.user.ini”文件解决方法,运行后删除即可
cd到该文件目录下,,命令如下:

chattr -i .user.ini   //让文件**可以**修改

这样再rm -rf 即可

为了安全起见,如果想再加上权限:

chattr +i .user.ini  //让文件**不能**修改

chattr主要提高文件的安全性