再一次折腾 VPS,已经没有想象中那么难了。能看着教程搞定基本的操作了,比如搭建一个 WordPress 博客,配置上 Let's Encrypt……当然,离能熟练使用还有很长一段路。目前也只是搭建了一个测试站练手,不知道以后会不会把这个博客也迁移到 VPS 上去。
前情回顾:
以后的事情谁知道呢?先简单记录一下这次还算成功的折腾。
建立一个 VPS 实例
第一步肯定是建立一个 VPS 实例,得先有个能折腾的环境。建立 VPS 的时候得设置一个 Default Hostname (默认主机名),就是默认的域名,比如我搭建这个测试站输入的是 v.cyhour.com。
OS 这次选择了 CentOS 6 i386,以前试过 CentOS 7 x64,最后因为防火墙没搞定,放弃了。而事实上 CentOS 6 i386 也得配置一下防火墙才能正常使用。
域名解析
VPS 建立好,安装完操作系统,把域名 DNS 解析到 VPS IP,接着就可以用 SSH 登陆 VPS 开玩了。登陆 SSH 我用了以前经工作串口调试常用的 Xshell,这个选一个自己习惯的就好了。
SSH 连接、搭建网站环境
SSH 连接上 VPS 开始搭建网站环境,想偷懒的小白,必须选一键安装包,省时省力。这次选了 LAMP 一键安装包,因为这个默认就能使用 SFTP 方式使用 FTP,而 LNMP 还得配置 pureftpd 才可以使用 FTP,以前试过权限问题,折腾半天没成功,都有心理阴影了。
LAMP 安装步骤挺简单的,官网步骤借过来了:
事前准备(安装 wget、screen、unzip,创建 screen 会话)
注意:双斜杠//后的内容不要复制输入
yum -y install wget screen unzip // for CentOS/Redhat System apt-get -y install wget screen unzip // for Debian/Ubuntu System
下载、解压、赋予执行权限
wget -O lamp.zip https://github.com/teddysun/lamp/archive/master.zip unzip lamp.zip cd lamp-master/ chmod +x *.sh
安装 LAMP 一键安装包
screen -S lamp ./lamp.sh
等上十来分钟,浏览器输入 VPS IP 能访问的话,环境基本上就搭建好了。若不能访问,就得配置一下防火墙了。
防火墙规则修改
SSH 命令行窗口敲入代码并回车:vi /etc/sysconfig/iptables
按一下 i,敲入以下内容:
# Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
按一下 ESC,输入 :wq
然后回车保存文件并退出。
然后 reboot,如无意外,输入 ip 或者域名,已经能访问默认首页了。好像不用允许 3306 端口也可以?
phpMyAdmin 安全设置
这个 LAMP 一键安装包的 phpMyAdmin 安装目录: /data/www/default/phpmyadmin,据说默认路径不安全,最好修改一下?比如改为 /data/www/default/admin_8989
。
敲入命令回车即可:mv /data/www/default/phpmyadmin /data/www/default/admin_8989
建立数据库、安装 WordPress
新建立数据库(排序规则:utf8mb4_general_ci),这个与普通的虚拟主机操作方法是一样的。后台地址是:http://ip 或者域名/admin_8989,用户名和密码默认为 root。
WordPress 安装包下载、解压、移动至根目录、修改权限
cd /data/www/default wget -O w.zip https://wordpress.org/latest.zip unzip w.zip cd wordpress/ mv * ../ chown -R apache:apache /data/www/default/
然后就是熟悉的 WordPress 安装了,省略……
Let's Encrypt 安装使用
原文:免费SSL证书Let's Encrypt(certbot)安装使用教程
依次敲入命令安装:
yum install epel-release cd /root/ wget https://dl.eff.org/certbot-auto --no-check-certificate chmod +x ./certbot-auto ./certbot-auto -n
单域名生成证书:
./certbot-auto certonly --email 123@qq.com --agree-tos --webroot -w /data/www/default -d v.cyhour.com
出现类似如下提示就是生成成功了:
IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/v.cyhour.com/fullchain.pem. Your cert will expire on 2016-11-04. To obtain a new or tweaked version of this certificate in the future, simply run certbot-auto again. To non-interactively renew *all* of your certificates, run "certbot-auto renew" - If you lose your account credentials, you can recover through e-mails sent to 123@qq.com. - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
生成的证书会存在:/etc/letsencrypt/live/v.cyhour.com/ 目录下。
证书只有 90 天期限,建议使用 crontab 进行自动续期。CentOS 下面安装Crontab:
yum install vixie-cron crontabs //安装Crontab chkconfig crond on //设为开机自启动 service crond start //启动
查看 crontab 定时执行任务列表:crontab -l
添加 crontab 定时执行任务:crontab -e
比如,我想每 88 天自动续期证书,将下面的语句添加到 crontab 保存退出即可。
0 3 */88 * * /root/certbot-auto renew
至此 Let's Encrypt 配置完成。
Apache 虚拟主机上设置 SSL
修改一下 Apache 的配置文件 /usr/local/apache/conf/httpd.conf ,查找 httpd-ssl 将前面的#去掉。
然后再执行(请根据实际修改目录):
cat >/usr/local/apache/conf/extra/httpd-ssl.conf<<EOF
Listen 443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProxyCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLHonorCipherOrder on
SSLProtocol all -SSLv2 -SSLv3
SSLProxyProtocol all -SSLv2 -SSLv3
SSLPassPhraseDialog builtin
SSLSessionCache "shmcb:/usr/local/apache/logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300
Mutex default
SSLStrictSNIVHostCheck on
NameVirtualHost *:443
EOF
然后,在对应 Apache 虚拟主机配置文件(默认主机 /usr/local/apache/conf/extra/httpd-vhosts.conf )最后的 下面添加上 SSL 部分的配置文件(需要根据实际修改相关目录):
<VirtualHost *:443>
DocumentRoot /data/www/default
ServerName v.cyhour.com:443
ServerAdmin nieccyyy@qq.com
ErrorLog "/usr/local/apache/logs/v.cyhour.com-error_log"
CustomLog "/usr/local/apache/logs/v.cyhour.com-access_log" common
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/v.cyhour.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/v.cyhour.com/privkey.pem
<Directory "/data/www/default">
SetOutputFilter DEFLATE
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
DirectoryIndex index.html index.php
</Directory>
</VirtualHost>
如无意外,重启一下 Apache,SSL 就能使用了。
命令:/etc/init.d/httpd restart
这次尚算愉快的折腾基于注册就送 $20 的 Vultr VPS,京东机房。
Comments:44
不是很会配置linux 只会那种一键的。
@夏天烤洋芋 我目前也就只能玩玩一键的练练手。
啊,这种理解不了得的东西,真是不会,只会用AMH面板…
@nyun 会安装面板,再稍稍深入一点就会了,原理差不多,都是一键安装包。
@老杨 嗯,只是懒得去深入了,用习惯面板后,真的就不想动了~
@nyun 嗯,能懒就懒呗。
棒棒的 我都不懂~
@无声有处 其实我也是挺头大的,还是虚拟主机省心啊。
就算很详细了,我还是很排斥用命令…
@灰常记忆 呵呵,没人强迫你不去排斥命令行啊。
@老杨 哎,万恶的折腾,我睡了……
@灰常记忆 还早呢……
打开比较慢,用命令没问题,关键是延迟问题感觉很不舒服。
@fooleap 测试站打开比较慢?其实京东机房的 SSH 也会有一点延迟。
@老杨 恩有点慢,不应该是 东京 机房吗?
@fooleap 哈哈,是东京,打错了。
生命不息折腾不止,哈哈
@泽辉 对啊。你那博客手机进去文章页面就无法滑动了…
@老杨 发现了,好像就iphone 的会,神秘的bug 我找了 好久的原因。
@泽辉 应该是 js 引起的问题。
这折腾劲表明我们还年轻啊。
@土木坛子 可是岁月并不因此而变慢……
清晰许多,但是这个页面评论和文章好像分得不够明显。
@郑永 分得清吧?有个标题隔开了啊。
@老杨 下面字体有点大,没有就空隙。。感觉一坨。。。汗。。 对了,vps不折腾了,还是虚拟主机,折腾以后一段时间不折腾,还是会忘的。
@郑永 具体操作是会忘记,但是原理是忘不掉的,懂得门路,加上搜索引擎,再折腾就不难了。
@老杨
这个门路难走,因为太黑。
@郑永 黑到不黑,就是有点绕,路太多了,不好走。
@老杨 你的博客有问题,字体,评论区字体超大。
@郑永 我电脑,几个手机上看都正常啊…况且没改过字体大小,只是字体稍稍改了一下而已。
@老杨
那就是缓存问题吧。。。
@郑永 不应该啊,我没有缓存插件,只是主机自带的 CDN,但是每次修改完 CSS 都会强制刷新的。
@老杨
原来是QQ浏览器下显示问题。
@郑永 不会吧?有空我也下载个测试测试。
@郑永 iOS 8 下,QQ 浏览器没有问题…
@老杨 上班地方的电脑win10显示的效果。
@郑永 win10 qq浏览器还真无法显示正常字体。
@郑永 特意安装了一个试试,确实会有字体很大的情况出现。可是有时候刷新一下就正常了,有时候又不正常……所以,无解……找麻花腾吧,无能为力。
@郑永 试了一下同样 Chromium 内核的遨游浏览器,也会有这样的情况,不过刷新一下就好了。
@老杨 改一下吧
@郑永 放过我吧,搜索 Chromium 出来的都是 Chrome 的内容,而 Chrome 下是没有问题的,加上连 IE 下都能正常显示,实在没动力去折腾。
@老杨 你的折腾出了名的,加油。
@郑永 这个不折腾,显示不正常的页面,我打开一下调试页面就正常了,或者刷新一下就正常了;然后再刷新一下又不正常了,很明显,这是随机的问题,我是无能为力了。
@老杨 可以改啊,换种方式啊。