环境:
[chen@centos-linux /]$ uname -a
Linux centos-linux.shared 3.10.0-327.el7.x86_64
准备工作
转自https://www.mtyun.com/library/21/initial-setup-with-centos/
更改ROOT密码
如果机器上没有绑定密钥,建议您修改服务器的默认登录密码,在登录后执行:
按照提示输入您的新密码。新密码一定要符合强密码的要求:至少8位以上并且包含数字、字符以及标点。复杂的密码不容易记忆,推荐您使用1Password 或者lastpass等密码管理工具管理您的密码。
创建普通用户
在日常的服务器管理过程中,您并不需要使用root来登录。最佳实践是创建一个拥有一定权限的普通用户进行日常的操作与维护。
例如创建一个名为chris的普通用户,在终端下输入:
# 创建一个名为chris的用户
adduser chris
# 给chris创建登录密码
passwd chris
同样,普通用户的密码也应当遵循强密码的原则。
设置完密码后就可以使用chris用户名和密码来登录主机了。但是此时chris并没有ROOT的权限,我们通过编辑sudoers文件给chris赋权,在终端执行:
这个命令使用vi打开了sudoers文件,我们可以通过vi来对这个文件进行编辑。在sudoers的最后一行加入:
如果对vi不熟悉,可以按下面的步骤进行操作:
- 按G键,跳转到文件末尾;
- 按o键,新插入一行并进入编辑模式;
- 输入
chris ALL=(ALL) ALL
;
- 依次按下
Esc,:,x,Enter
键保存。
安全加固
如果您的云主机只有内网IP,则不需要执行此步骤。对于有外网IP的云主机,建议您执行此步骤,以加强您的云主机的安全,减少密码被爆破的风险。
拥有外网IP的服务器默认使用了22端口作为ssh服务的端口,这个端口成为入侵者重点关注的突破口。
我们可以对ssh服务进行配置,通过修改ssh服务的默认监端口址、禁止root登录等手段,加强云主机的安全性。我们使用刚刚创建的chris账号登录云主机,登录后执行:
在打开的配置文件末尾输入以下内容,其中Port您可以自行设置:
Port 10022
Protocol 2
PermitRootLogin no
保存后退出,然后reload ssh服务,使配置生效:
当再次登录云主机时,您需要在配置文件中指定的Port参数:
ssh -p 10022 chris@211.155.92.230
LNMP
安装Nginx
yum install epel-release
yum update
sudo yum install nginx
安装完毕后,Nginx的配置文件在/etc/nginx目录下。使用以下命令启动Nginx:
sudo systemctl start nginx
检查系统中firewalld防火墙服务是否开启,如果已开启,我们需要修改防火墙配置,开启Nginx外网端口访问。
sudo systemctl status firewalld
额外的,关闭防火墙/禁止firewall开机启动(根据需求是否开启)
systemctl stop firewalld.service
systemctl disable firewalld.service
如果显示active (running),则需要调整防火墙规则的配置。
修改/etc/firewalld/zones/public.xml
文件(sudo vi /etc/firewalld/zones/public.xml
),在zone一节中增加:
<zone>
...
<service name="nginx"/>
<zone>
保存后重新加载firewalld服务:
sudo systemctl reload firewalld
您可以通过浏览器访问 http://<IP地址> 来确定Nginx是否已经启动。
最后将Nginx设置为开机启动:
sudo systemctl enable nginx.service
安装MySQL(MariaDB)
MariaDB是MySQL的一个分支,主要由开源社区进行维护和升级,而MySQL被Oracle收购以后,发展较慢。在CentOS 7的软件仓库中,将MySQL更替为了MariaDB。
我们可以使用yum直接安装MariaDB:
sudo yum install mariadb-server
安装完成之后,执行以下命令重启MariaDB服务:
sudo systemctl start mariadb
MariaDB默认root密码为空,我们需要设置一下,执行脚本:
sudo /usr/bin/mysql_secure_installation
这个脚本会经过一些列的交互问答来进行MariaDB的安全设置。
首先提示输入当前的root密码:
Enter current password for root (enter for none):
初始root密码为空,我们直接敲回车进行下一步。
设置root密码,默认选项为Yes,我们直接回车,提示输入密码,在这里设置您的MariaDB的root账户密码。
Remove anonymous users? [Y/n]
是否移除匿名用户,默认选项为Yes,建议按默认设置,回车继续。
Disallow root login remotely? [Y/n]
是否禁止root用户远程登录?如果您只在本机内访问MariaDB,建议按默认设置,回车继续。 如果您还有其他云主机需要使用root账号访问该数据库,则需要选择n。
Remove test database and access to it? [Y/n]
是否删除测试用的数据库和权限? 建议按照默认设置,回车继续。
Reload privilege tables now? [Y/n]
是否重新加载权限表?因为我们上面更新了root的密码,这里需要重新加载,回车。
完成后你会看到Success!的提示,MariaDB的安全设置已经完成。我们可以使用以下命令登录MariaDB:
按提示输入root密码,就会进入MariaDB的交互界面,说明已经安装成功。
最后我们将MariaDB设置为开机启动。
sudo systemctl enable mariadb
安装PHP
运行或停止:
systemctl start php-fpm
systemctl enable php-fpm
查看是否启动:
将php-fpm设置为开机启动:
sudo systemctl enable php-fpm
php安装完成之后,需要设置一下php session的目录:
sudo mkdir /var/lib/php/session/
sudo chown -R apache:apache /var/lib/php/session/
这时php-fpm已经安装完毕,但是现在需要配置一下Nginx,在/etc/nginx/conf.d目录中新建一个名为php.conf的文件,其内容为:
server {
listen 8000;
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /usr/share/php;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
然后执行以下命令使我们的配置生效:
sudo service nginx reload
以上我们配置了Nginx的8000端口用来测试,如果您在美团云控制台创建机器时选择了绑定防火墙,需要检查该防火墙是否允许8000端口,如果不允许的话,您可以在防火墙设置中新增防火墙,并关联到该主机。
我们在/usr/share/php目录下新建一个名为phpinfo.php的文件用来展示phpinfo信息,文件内容为:
我们从浏览器打开 http://<IP地址>:8000/phpinfo.php,您就能看到phpinfo信息了,说明我们php环境已经部署成功.
///更正:
可以通过修改/etc/nginx/nginx.conf
配置文件来修改默认的web目录。
其他选择
oneinstack一键安装包