一文搞定 | AWS LightSail 通过 CentOS 7 安装 MariaDB 10、PHP-FPM 7、Nginx 以及部署 Wordpress 并配置相应的 SELinux 安全上下文

本文主要是介绍一文搞定 | AWS LightSail 通过 CentOS 7 安装 MariaDB 10、PHP-FPM 7、Nginx 以及部署 Wordpress 并配置相应的 SELinux 安全上下文,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

开篇词

作为一个技术人员,有时候希望能拥有一个完全属于自己的博客网站(虽然我的是基于 Hugo 而不是 Wordpress),我们不得不自己倒腾倒腾,DIY 一个出来。

这篇文章将教你如何在亚马逊的 AWS LightSail 上从安装 Wordpress 所需的所有程序和服务器到其自身的部署及安装。
 

先准备好 Bash 自动执行脚本

注意自动执行脚本里需要修改的地方:

  • 你的域名 替换成真实的域名
# 打开 80 和 443 端口,如果需要的话
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload# 安装 MariaDB 10.3
printf '%s\n' '[mariadb]' 'name = MariaDB' 'baseurl = http://yum.mariadb.org/10.3/centos7-amd64' 'gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB' 'gpgcheck=1' > /etc/yum.repos.d/MariaDB.repo
yum -y install MariaDB-server MariaDB-client
# Start+Enable MariaDB
systemctl start mariadb
systemctl enable mariadb# 安装 PHP-FPM 7.3
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum -y install yum-utils
yum-config-manager --disable remi-php54
yum-config-manager --enable remi-php73
yum -y install php php-fpm php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json php-pdo php-pecl-apcu php-pecl-apcu-devel
php -v
# Start+Enable PHP-FPM
systemctl start php-fpm
systemctl enable php-fpm# 为 CentOS 7 配置 Nginx 的 Repo
printf '%s\n' '[nginx]' 'name=nginx repo' 'baseurl=http://nginx.org/packages/mainline/centos/7/$basearch/' 'gpgcheck=0' 'enabled=1' > /etc/yum.repos.d/nginx.repo
# 安装 Nginx
yum -y install nginx
# Start+Enable Nginx
systemctl start nginx
systemctl enable nginx
# 为 Wordpress 配置虚拟主机
mkdir /etc/nginx/sites-available
printf '%s\n' 'server {' '    listen       80;' '    server_name  你的域名;' '    # note that these lines are originally from the "location /" block' '    root   /var/www/你的域名;' '    index index.php index.html index.htm;' '    location / {' '        try_files $uri $uri/ =404;' '    }' '    error_page 404 /404.html;' '    location = /50x.html {' '        root /var/www/你的域名;' '    }' '    location ~ \.php$ {' '        try_files $uri =404;' '        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;' '        fastcgi_index index.php;' '        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' '        include fastcgi_params;' '    }' '}' > /etc/nginx/sites-available/你的域名
mkdir /etc/nginx/sites-enabled
ln -s /etc/nginx/sites-available/你的域名 /etc/nginx/sites-enabled/你的域名
# 删除 Nginx 默认页
rm -f /etc/nginx/conf.d/default.conf
nginx -s reload# 准备最新版的 Wordpress
mkdir -p /var/www/你的域名
yum -y install wget
wget wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
mv wordpress/* /var/www/你的域名
chown -R nginx:nginx /var/www/你的域名
cp /var/www/你的域名/wp-config-sample.php /var/www/你的域名/wp-config.php# 为 Nginx 配置 SELinux 上下文
semanage fcontext -a -t httpd_config_t "/etc/nginx/sites-enabled(/.*)?"
restorecon -Rv /etc/nginx/sites-enabled
# 为 Wordpress 配置 SELinux 上下文
semanage fcontext -a -t httpd_sys_content_t "/var/www/你的域名(/.*)?"
semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/你的域名/wp-content(/.*)?"
semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/你的域名/wp-config\.php"
restorecon -Rv /var/www/你的域名

 

开始安装

登陆进 AWS 控制台之后选择 LightSail:
AWS 控制面板里的 LightSail 服务

创建实例

  1. 点击 Create instance 按钮
  2. 在 Instance location 里可以选择一个区域和可用空间(可以使用默认选项)
  3. 在 Pick your instance imgae 里的 Select a bluprint 里选择 OS Only,然后再选择 CentOS
  4. 在距离下方不久的地方有 Add launch script,展开后将上面准备好的自动运行脚本复制进去即可
  5. 点击 Change SSH key pair,点击 Create New,点击 Create,输入密钥文件的名称(英文字母),点击 Download Key(要及时下载,只能下载一次,错过的话就不能下载了)
  6. 在 Choose your instance plan 里可以选择一个你喜欢的套餐(可以使用默认选项)
  7. 在 Identify your instance 里可以指定定该实例的唯一名称(可以使用默认名称)
  8. 在完成以上步骤之后,点击 Create instance 按钮创建实例
     

外部域名指向 LightSail

创建 DNS 空间

在 LightSail 主页,定位到 Networking 选项卡:

  1. 点击 Create DNS Zone 按钮
  2. 在 Enter the domain you have registered 输入框内输入你在域名商注册好的域名
  3. 创建好之后进入域名详情页,在域名的 Details 选项卡下方有 Name servers 信息,在你的域名供应商里给你的域名配置四个 DNS 地址,分别对应了这里 Name servers 的四个地址

创建并绑定静态 IP

在 LightSail 主页,定位到 Networking 选项卡:

  1. 点击 Create static IP 按钮
  2. 在 Attach to an instance 里选择刚刚创建的实例
  3. 在 Identity your static IP 输入框里填写一个唯一的静态 IP 名称(可以使用默认名称)
  4. 点击 Create 按钮
    在 LightSail 主页,定位到 Networking 选项卡:
  5. 点击域名进入域名详情页
  6. 点击 Add record
  7. 在 Subdomain 输入框里填入 @,点击 Resolves to 的输入框,选择刚刚创建的静态 IP
  8. 点击右边的打钩来创建 record
     

需要进行手工操作的地方

手工配置部分将会用到 vi 文本编辑器,不会用的童鞋可以参考我专栏《Linux 管理员手册:既简单又深刻》里的这篇《09. 文本编辑器 - 一个超好用的文本编辑器,了解一下?

变更 SSH 端口

借助创建实例时下载的密钥证书通过 SSH 登录到服务器绑定的静态 IP 地址后:
注意命令里需要修改的地方:

  • 新的SSH端口 替换成你想要的 SSH 登陆端口
sudo su
vi /etc/ssh/sshd_config
semanage port -a -t ssh_port_t -p tcp #新的SSH端口
systemctl restart sshd

配置 MariaDB

mysql_secure_installation

(是否设置 root 密码)Set root password? [Y/n] Y
输入 root 的新密码
(是否删除匿名用户)Remove anonymous users? [Y/n] Y
(是否禁止 root 远程登录)Disallow root login remotely? [Y/n] Y
(是否删除测试数据库)Remove test database and access to it? [Y/n] Y
(是否现在就重新加载权限表)Reload privilege tables now? [Y/n] Y

创建数据库用户

注意 SQL 里需要修改的地方:

  • 用户名 替换成你喜欢的英文名字母
  • 密码 替换成你喜欢的密码
  • 数据库 替换成你喜欢的英文字母
mysql -u root -p
create database 数据库;
create user 用户名@localhost identified by '密码';
grant all privileges on 数据库.* to 用户名@localhost;
flush privileges;

配置 PHP-FPM

配置 www.conf
vi /etc/php-fpm.d/www.conf

找到以下内容并修改成对应的值:
user = nginx
group = nginx
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx

更改固定路径信息
vi /etc/php.ini

cgi.fix_pathinfo=0

重启并检查 PHP-FPM 是否运行正常
systemctl restart php-fpm
netstat -pl | grep php-fpm
更改所有者以及 SELinux 安全上下文
chown -R nginx:nginx /var/run/php-fpm
semanage fcontext -a -t httpd_var_run_t "/var/run/php-fpm(/.*)?"
restorecon -Rv /var/run/php-fpm

配置 Nginx

vi /etc/nginx/nginx.conf

在 http 区块中添加 /etc/nginx/sites-enabled/*;

测试语法并重新加载 Nginx
nginx -t
nginx -s reload

配置 Wordpress

配置数据库

注意命令里以及配置里需要修改的地方:

  • 你的域名 替换成真实的域名
  • 数据库名 替换成你在数据库里创建的数据库
  • 数据库用户名 替换成你在数据库里创建的用户名
  • 数据库用户密码 替换成你在创建用户时指定的密码
vi /var/www/你的域名/wp-config.php
define( 'DB_NAME', '数据库名' );
define( 'DB_USER', '数据库用户名' );
define( 'DB_PASSWORD', '数据库用户密码' );
配置钥和盐

访问 https://api.wordpress.org/secret-key/1.1/salt/ 以重新生成以下对应的数据并替换之:

define('AUTH_KEY',         '-$[|c@QAw)nEh0njZ,e>me4q4NYFGnSetx^F-NS(R_Q~wCsH+In}:m4>L kA,4e<');
define('SECURE_AUTH_KEY',  'IUx~>A+0jgY_;N3N|(i!| nv4BIG4QkgOGWd/$~4<y[(4AVo-MQ1dD*u11%MD?}6');
define('LOGGED_IN_KEY',    'Wa=~154<I+y+R(_8nz|F<)QvtLT;u):S.rP{l8fCZAL?h>Pv3$S+qMG.rJAx%pzz');
define('NONCE_KEY',        '6|m>?--b8Us-Z_<bewkdK^1!cHukOA-#|RJGR(U`X[<5<0Ov|toxBSZm+,B8,9@K');
define('AUTH_SALT',        '}hO/6gM3ySFjG?xU.FH8<x5rN|;x%Sf2tBF0 M9S[OZjp!t&vDjJ~`F&|waZE7f~');
define('SECURE_AUTH_SALT', '?{+z2orv|wm_vidI!byy5IyF2H+53axITa%8[s.rjY<1Z,j9EV)P>?{FGaJm,Qto');
define('LOGGED_IN_SALT',   '1!9~R,eU:{O*1KH~MH5M <$!@^-w|_1n{CA5VuH%A5+{Syxf2};Y{~?WA)V;SmB!');
define('NONCE_SALT',       '[=2vpM1cBlowmYo,]} 9$U>ImHA+-Xdi8.9<XF|jl5LbSI<+:VFa(CuIvl$tSV#1');
查看文件的 SELinux 上下文

主要是 Wordpress 路径以及 Nginx 路径下的 SELinux 上下文:
注意命令里需要修改的地方:

  • 你的域名
ls -lZ /var/www/你的域名
ls -lZ /etc/nginx/sites-enabled/你的域名

 

安装 Wordpress

现在可以访问你的域名来进行 wordpress 的安装了。

这篇关于一文搞定 | AWS LightSail 通过 CentOS 7 安装 MariaDB 10、PHP-FPM 7、Nginx 以及部署 Wordpress 并配置相应的 SELinux 安全上下文的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/262816

相关文章

闲置电脑也能活出第二春?鲁大师AiNAS让你动动手指就能轻松部署

对于大多数人而言,在这个“数据爆炸”的时代或多或少都遇到过存储告急的情况,这使得“存储焦虑”不再是个别现象,而将会是随着软件的不断臃肿而越来越普遍的情况。从不少手机厂商都开始将存储上限提升至1TB可以见得,我们似乎正处在互联网信息飞速增长的阶段,对于存储的需求也将会不断扩大。对于苹果用户而言,这一问题愈发严峻,毕竟512GB和1TB版本的iPhone可不是人人都消费得起的,因此成熟的外置存储方案开

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我