这篇文章假设你已经购买了云服务器。我这边用的是阿里云。
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
网友评论