如何搭建LNMP环境

这篇文章假设你已经购买了云服务器。我这边用的是阿里云。

LNMP = Linux - NGINX - MySQL / MariaDB - PHP 。

使用ssh登录云服务器

ssh root@120.24.3.40

添加用户

拿到一台服务器,第一件事是去添加一个平时操作用的用户,最好不要直接使用 root 用户,因为会有安全问题。下面添加一个用户叫 yekai :

adduser yekai

设置密码

有了 yekai 这个用户以后,可以再设置一下他的密码:

passwd yekai

root 权限

给 yekai 用户分配可以使用 root 用户的权限,这样需要 root 权限的时候,可以在命令前面添加 sudo:

gpasswd -a yekai wheel

配置 SSH

平时要 SSH 到服务器,然后去控制服务器,连接的时候有个默认的端口,为了安全,我们可以修改一下这个端口号,比如改成 3333:

vi /etc/ssh/sshd_config

# 修改为
# ssh登录端口改为3333
Port 3333
# 不允许用root登录
PermitRootLogin no

# 重载服务
systemctl reload sshd.service

SWAP

内存用完了就会用虚拟内存,SWAP 就是虚拟内存,不得已的时候才会用到。一般虚拟内存的大小是物理内存的两倍,下面的命令会添加一个 2G 的 SWAP:

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo sh -c 'echo "/swapfile none swap sw 0 0" >> /etc/fstab'

防火墙

防火墙可以控制进入到服务器或者从服务器出去的数据,CentOS 7 上自带一个 firewalld。

# 开启 firewalld 服务:
sudo systemctl start firewalld

# 开放 SSH 自定义的端口
sudo firewall-cmd --permanent --add-port=3333/tcp

# 开放 HTTP
sudo firewall-cmd --permanent --add-service=http

# 开放 HTTPS
sudo firewall-cmd --permanent --add-service=https

# 开放 SMTP
sudo firewall-cmd --permanent --add-service=smtp
 
# 查看
sudo firewall-cmd --get-services
sudo firewall-cmd --permanent --list-all
 
# 重载服务
sudo firewall-cmd --reload
 
# 开机启动
sudo systemctl enable firewalld

挂载

sudo fdisk -l

# 发现
/dev/xvdb: 32.2 GB

sudo fdisk /dev/xvdb

# 按键
n, p, 1, enter, enter, n, enter, enter, wq

sudo fdisk -l

# 发现
/dev/xvdb1

sudo mkfs.ext3 /dev/xvdb1

# 把
/dev/xvdb1 /mnt ext3 defaults 0 0

# 添加到
etc/fstab

sudo mount -a

NGINX

web服务器

# 安装
sudo yum install nginx -y
# 安装好以后测试一下 nginx 服务
service nginx status

# 启动
sudo systemctl start nginx

# 设置为开机自动启动
sudo systemctl enable nginx

# 配置
client_max_body_size 256m;
fastcgi_read_timeout 600;

在浏览器用公网地址打开看到如下信息nginx安装成功:


nginx页面

配置 nginx 虚拟主机

cd /etc/nginx/conf.d

cp ../nginx.conf.default nginx.wk.net.conf

再去编辑一下这个复制以后的配置文件,可以使用 vim 命令:

vim nginx.wk.net.conf

你会看到像这样的代码:

server {
 listen 80;
 server_name localhost;
 #charset koi8-r;
 #access_log   /var/log/nginx/log/host.access.log main;
 location / {
 root /usr/share/nginx/html;
 index index.html index.htm;
}
...
}

server_name 就是主机名,也就是跟这个虚拟主机绑定在一块儿的域名.
紧接着 server_name 下面可以是一个 root,就是这个虚拟主机的根目录,也就是网站所在的目录。
然后去掉 location / 里面的 root 这行代码。再在 index 后面加上一种索引文件名,也就是默认打开的文件,这里要加上一个 index.php ,这样访问 nginx.ninghao.net 就可以直接打开 root 目录下面的 index.php 了。
修改后的conf如下:

  server {
        listen       80;
        server_name  nginx.wk.net;
        root /home/www/nginx.wk.net;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            index  index.php index.html index.htm;
        }

重启 nginx 或者重新加载 nginx 可以让配置文件生效。

service nginx reload

安装mysql

CentOS7的yum源中默认好像是没有mysql的.我们要先下载mysql的repo源。

# **下载mysql的repo源**
$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
# ** 安装mysql-community-release-el7-5.noarch.rpm包**
$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm

直接使用 yum 命令去安装 mysql

# 安装mariadb服务
yum install mariadb mariadb-server
# 安装完成后
# 启动
sudo systemctl start mariadb

# 设置为开机自动启动
sudo systemctl enable mariadb

# 上面两个命令在我的阿里云服务器都不行我是用systemctl start mysql

然后我们需要简单配置一下 mysql ,默认安装以后 mysql 的 root 用户是没有密码的,对于生产环境来说,这肯定是不行的,另外还有一些安全相关的设置,可以使用下面这行命令去配置一下,它是一个向导,问你一些问题,你要给出答案,比如是否要设置 root 用户的密码, 密码是什么等等。

mysql_secure_installation

***
*Enter current password for root (enter for none):
*解释:输入当前 root 用户密码,默认为空,直接回车。
*Set root password? [Y/n]  y
*解释:要设置 root 密码吗?输入 y 表示愿意。
*Remove anonymous users? [Y/n]  y
*解释:要移除掉匿名用户吗?输入 y 表示愿意。
*Disallow root login remotely? [Y/n]  y
*解释:不想让 root 远程登陆吗?输入 y 表示愿意。
*Remove test database and access to it? [Y/n]  y
*解释:要去掉 test 数据库吗?输入 y 表示愿意。
*Reload privilege tables now? [Y/n]  y
*解释:想要重新加载权限吗?输入 y 表示愿意。
***

配置 php-fpm

要让 nginx 能够执行 php 文件,需要去安装一下 php-fpm,它直接包含在了 CentOS 资源库里,所以直接使用 yum 命令可以安装它:

sudo yum install php-fpm -y
#安装php扩展
sudo yum install php-gd php-mysqlnd php-pdo php-mcrypt php-mbstring php-xmlrpc php-pecl-jsonc php-pecl-memcached -y
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容