Amazon linux介绍
Amazon linux是亚马逊公司针对自己的EC2虚拟机推出的一个Linux版本,可以免费使用。它和Red Hat Enterprise版本是高度兼容的,这意味着和CentOS的大部分命令以及运行逻辑都是匹配的,由于它是新推出的Linux版本,所以主要命令和结构需要CentOS 7以上的经验,6以下的版本需要重新学习一下。
安装LNMP
首先Amazon Linux的镜像是开箱即用的,不需要太多配置,唯一的需要处理就是在安全组里面打开一个22端口,用于远程控制。这里有一个小tips,如果安全要求不是企业级的,linux中就不要再配置防火墙了,直接在aws控制台的安全组添加一条数据即可,方便直观,上图:
对于80和443可以开放全部ip,但是ssh还是只开放小范围为好,取得自己的外部ip地址后,使用24或者20掩码均可。接下来就可以远程登录操作了。
首先我们用的是Nginx web服务器,所以使用下面的命令安装:
yum install nginx
装好后启动,发现不行,看日志是80端口被占用了,原来amazon linux已经预装了apache,使用netstat命令可以轻易查出当前所有服务占用的端口是哪些,这里推荐一个参数组合:
netstat -lntp
所以需要删除掉:
yum erase httpd
再次启动nginx和加入服务列表,成功:
systemctl start nginx
systemctl enable nginx
在生产环境中如果要重启nginx, 建议先用nginx –t命令来检查配置后再执行。
下面我们开始装mysql,需要注意的是,众所周知,mysql是Oracle的产品,为了免费使用,现在使用的是它的另外一个分支MariaDB:
yum install mariadb-server mariadb
systemctl start mariadb
安装完mysql后,需要进行安全配置:
mysql_secure_installation
最好不要用root账户直接运行wordpress,于是,建立一个普通用户吧,原则上,root用户不要用于远程连接:
CREATE DATABASE wordpress;
CREATE USER wordpressuser IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser;
FLUSH PRIVILEGES;
前方坑来了,如果你现在搭建好wordpress开始运行,页面会提示当前版本是php5.4,需要升级到5.6,切记莫要升级,因为amazon linux默认提供的版本是5.4,而它的仓库里并没有5.6,如果使用其他仓库,就会有一个后缀php56,路径也要重新配置,关键是依赖不兼容,很多依然指向5.4版本,会导致后续操作非常麻烦。所以,使用amazon linux的原则就是能用它自带的仓库,就用它自有的,后面会顺畅很多。解决方案就是升级到自有仓库的7.2版本以上:
yum install amazon-linux-extras
amazon-linux-extras enable php7.2
yum erase php*
yum clean metadata
yum install php-cli php-pdo php-fpm php-json php-mysqlnd
好了,一切完美,php命令的路径也是对的,php –v命令显示7.2版本。
接下来需要做一些权限的配置,否则php-fpm启动后无法访问站点的php文件,比较推荐的方式是wordpress所在目录owner,nginx和php-fpm服务都使用“nginx”作为用户,这样整个生态的权限是统一的,最后别忘了重启大法,每次修改配置一定reload一下服务:
vim /etc/php-fpm.d/www.conf
chown -R nginx:nginx /you/install/location/*
service nginx reload
service php-fpm restart
安装wordpress
最艰难的权限部分通过后,接下来的旅途会轻松很多,下载和安装wordpress:
wget http://wordpress.org/latest.tar.gz
tar xzvf latest.tar.gz
mkdir wp-content/uploads
cp wp-config-sample.php wp-config.php
修改wp-config.php里的配置,把你的mysql数据库连接信息替换上去。
设置wordpress
接下来我们将wordpress正确的配置到nginx中,参考下面的配置:
server {
listen 443 ssl;
server_name www.yourdomain.com yourdomain.com;
ssl_certificate /ssl/www.yourdomain.com.crt;
ssl_certificate_key /ssl/www.yourdomain.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!DH:!EXPORT:!RC4:+HIGH:+MEDIUM:!LOW:!aNULL:!eNULL;
}
上面配置好ssl,https在目前已经是标配了,ios中如果不是https,会出现警告,甚至打不开,所以要建立网站最好申请一个ssl证书,详细申请方式,我这里就不说了。
接下来是php-fpm的关键配置,每条都很重要,缺一不可:
location ~ \.php$ {
root /your/install/location/wordpress;
include /etc/nginx/fastcgi_params;
fastcgi_pass php-fpm;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
注意第三条fastcgi_pass,有多种写法,上面是php7.2默认写法。
最后一步,你需要把80端口的流量转到https上面去:
server {
listen 80;
server_name www.yourdomain.com yourdomain.com;
rewrite ^(.*)$ https://www.yourdomain.com$1 permanent;
}
此处要补充两点,一是域名指向不仅www,而且默认yourdomain.com也指向同一个ip,第二是后面在wordpress设置中,把主页和管理页设置为https链接:
现在应该可以通过域名打开你的wordpress了:
设置好标题和管理员,就可以启动了,根据个人喜好,设置自己的主题。
跟踪wordpress的流量和站点管理
我们的博客需要搜索引擎优化,以及流量监控,使用google全家桶中的search console和analytics,两个工具的配置较简单。
Search console需要验证你的站点拥有权,可以放一个它指定的文件到网站根目录,完成验证,过几天它的爬虫就会分析出站点与搜索引擎的数据,提供优化建议等。
而analytics则是把脚本拷进站点的源代码中,推荐做法是安装wordpress的插件Insert Headers and Footers,将GA(google analytics)提供的脚本放到页脚,这样不会影响页面加载:
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-YOURGAID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-YOURGAID');
</script>
小贴士,安装过程中难免会有调试,这时日志文件极为重要,把nginx和php的日志文件都指向到同一个文件夹,避免到处找。
彩蛋:发现没有?你的网站头像上传不了,原因是图像处理模块没有安装,做如下处理:
yum install php-gd
Wordpress的安装大致就这样一个过程,文章并不是严格按照安装顺来写的,如果大家在安装中遇到障碍,欢迎在下方留言讨论。
原创版权,如引用需要注明来源和链接。
评论留言