如何搭建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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容