- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
作为家族中的常驻技术人员,我正在帮助启动新的家族企业网站。在编码和 Web 开发方面,我的经验非常有限(我在高中时制作了一个基本的 html/css 网站)。请多多包涵
到目前为止,我的域、托管和 DNS 都可以正常工作。主机是 AWS Lightsail,Wordpress 在 Ubuntu 16.04 和 Bitnami 上运行。现在我正在尝试设置 SSL,因为我们想在网站上使用信用卡付款。经过几天的研究,我走上了 Let's Encrypt 的道路,我正试图在服务器上获取证书。如果我已经犯了某种严重错误,请阻止我。
无论如何,我使用的指令来自:https://certbot.eff.org/#ubuntuxenial-apache
我已经取得了一些进展,直到。请参阅腻子的完整粘贴: https://pastebin.com/dhLs7c3A
root@ip-172-26-2-150:/home/bitnami# sudo certbot --apache -d profq.com.au -d www.profq.com.au
总而言之,我运行了这条线:“root@ip-172-26-2-150:/home/bitnami# sudo certbot --apache -d profq.com.au -d www.profq.com.au”
问题从以下行开始:
“优雅地运行 apache2ctl 时出错。httpd 未运行,正在尝试启动 Action ‘优雅’失败。”
非常感谢任何帮助或建议。谢谢
最佳答案
我昨天遇到了同样的问题,由于没有建议的解决方案,我会写下我是如何解决它的。
显然,此问题与 Lightsail 实例或正在运行的 Apache 服务器没有直接关系,而是与它之上的 Bitnami 堆栈有关。以下是安装 letsencrypt 证书的步骤,taken from here .
先决条件您需要做的第一件事是确保您的服务器上的所有软件包都已更新。您可以使用以下命令执行此操作。
sudo apt update
sudo apt upgrade
<强>1。安装 CERTBOT
首先,创建一个要安装 Certbot 客户端的目录并移至该目录。
sudo mkdir /opt/bitnami/letsencrypt
cd /opt/bitnami/letsencrypt
现在继续安装来自官方 certbot 发行版的 Certbot 客户端。您还需要确保脚本具有执行权限。
sudo wget https://dl.eff.org/certbot-auto
sudo chmod a+x ./certbot-auto
现在运行 certbot-auto 脚本以完成安装。该脚本可能会显示一些错误,但您可以忽略它。它将运行并下载它所需的所有依赖项。
sudo ./certbot-auto
<强>2。生成证书
安装 Certbot 客户端后,您可以继续为您的域生成证书。
sudo ./certbot-auto certonly --webroot -w /opt/bitnami/apache2/htdocs/{example} -d www.example.com -d example.com
^{example} 以上是可选的,仅当您不将文件存储在 htdocs 文件夹本身时。 www.example.com 和 example.com 应该是您的域名。
运行此命令后我遇到了问题,因为我没有为 www.我网站的版本。错误是:DNS 问题:NXDOMAIN 为 www.example.com 查找 A要修复它,请转到您的 lightsail 页面,打开 Netowkring 选项卡并为您的站点选择 DNS 区域。单击 DNS 记录下的添加记录
,选择 CNAME,在子域中只输入 www,在映射到字段中输入不带 www 的域。字首。执行此操作后,运行上述命令应该可以顺利通过。
如果您需要获取多个域的证书,请关注 this guide .它基本上是向每个域的主目录添加新路径,从而产生以下命令:
certbot certonly --webroot -w /opt/bitnami/apache2/htdocs/example -d www.example.com -d example.com -w /opt/bitnami/apache2/htdocs/other -d www.other.net -d example.net
<强>3。将 Let's Encrypt SSL 证书链接到 Apache
您只需在这些位置复制您的 SSL 证书并重新启动 Apache 以启用新文件。但是使用这种方法,您在更新证书时将不得不再次复制文件。
因此更好的方法是创建指向您的证书文件的符号链接(symbolic link)。每当您更新许可证时,它都可以在没有这个额外步骤的情况下生效。
您可以使用以下命令创建符号链接(symbolic link)。
sudo ln -s /etc/letsencrypt/live/[DOMAIN]/fullchain.pem /opt/bitnami/apache2/conf/server.crt
sudo ln -s /etc/letsencrypt/live/[DOMAIN]/privkey.pem /opt/bitnami/apache2/conf/server.key
确保证书文件名和路径正确。如果您收到文件已存在的错误消息,请使用以下命令重命名文件。然后重新运行以上两个命令。
mv /opt/bitnami/apache2/conf/server.key /opt/bitnami/apache2/conf/serverkey.old
mv /opt/bitnami/apache2/conf/server.crt /opt/bitnami/apache2/conf/servercrt.old
一旦您的符号链接(symbolic link)就位,您就可以重新启动 Apache 服务器以使其生效。使用以下命令重新启动 Apache 服务器。您也可以从 Lightsail 页面重新启动它。
sudo /opt/bitnami/ctlscript.sh restart apache
就是这样。在此之后,转到https://example.com应该工作,你应该看到你的证书。
注意。该证书的有效期仅为 3 个月,因此您需要每 3 个月手动刷新一次证书或为此创建一个 cron 作业。要在需要时刷新它,请按照以下命令操作:
sudo apt update
sudo apt upgrade
cd /opt/bitnami/letsencrypt
sudo ./certbot-auto renew
sudo /opt/bitnami/ctlscript.sh restart apache
关于amazon-web-services - "Error while running apache2ctl graceful"让我们在 AWS Lightsail Bitnami 上加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48945960/
在设置我的 default.vcl 文件 (Varnish 3) 时,我看到了对 vcl_fetch 使用 beresp.grace 或 obj.grace 的不同建议。有什么区别? https://
假设我有以下代码: public void run(){ while (true){ function1(); ... functionN();
我正在开发一个在 Linux 环境中作为守护进程运行的 Python 脚本。如果以及当我需要对设备发出关机/重启操作时,我想做一些清理并将数据记录到文件中以在关机期间保留它。 我四处查看有关 Linu
现在我正在使用 Process.Kill() 来终止进程。有没有办法,而不是立即杀死它,我可以向进程发送一条消息,指示它关闭,以便它可以优雅地清理和关闭。基本上,我正在寻找与单击右上角的红色 X 等效
收到消息Your password will be expired with in 7 days后,我将default配置文件的密码过期天数更改为UNLIMITED。但是某些用户的帐户状态仍保留在EX
我正在尝试 Docker 并遇到docker container stop # Gracefully stop the specified container 我不是在问docker stop和do
我有一个后台 worker 实现了 BackgroundService(由 MS 提供)。 看看这个简单的实现: public class MyService : BackgroundService
我全新安装了 Slackware 64 14 位,并查看了 Varnish installation documentation我安装了所有依赖项并编译了 varnish,没有错误(make chec
使用 D7 + Indy 10 最新版本。 我的代码使用 TIdSMTP 发送电子邮件。我不断收到一些最终用户的“连接正常关闭”的消息,但电子邮件从未发送。 代码如下: try ~~~~ ~~~~ _
如果我们在后台启动 KafkaStream 应用程序(比如 Linux),是否有办法从外部向应用程序发送信号,以启动正常关闭? 最佳答案 如文档 ( https://kafka.apache.org/
如果我们在后台启动 KafkaStream 应用程序(比如 Linux),是否有办法从外部向应用程序发送信号,以启动正常关闭? 最佳答案 如文档 ( https://kafka.apache.org/
我正在开发我的第一个多线程项目,因此有一些我不确定的事情。有关我的设置的详细信息位于 previous question简而言之:我有一个由 Executors.newFixedThreadPool(
目标:拥有带有嵌入式 Jetty 的 Spring Web 应用程序,我想正常关闭/重新启动该应用程序。 这是 EmbeddedServletContainerFactory bean(如果需要,我将
我已经配置了 grunt,当我运行“grunt serve”时,我得到这个错误: Error: Cannot find module 'graceful-fs' at Function.Mod
在等待 boost::process::child 时,您如何知道它是否“优雅地”退出? 假设我创建了一个流程: boost::process::child child( "myprg.exe", "
是 import multiprocessing import schedule def worker(): #do some stuff def sched(argv): sche
为冗长的介绍道歉 - 只是试图适本地设置场景以避免歧义和困惑。 Web 应用程序已经从用于服务器端逻辑的基于浏览器的笨接口(interface)发展为完全基于浏览器的应用程序,对服务器端逻辑的需求最少
我正在编写一个应用程序,希望客户能够直接从浏览器上传到 Amazon S3。我可以把这个工作做得很好。但是当错误发生时,我希望能够更优雅地处理它们,而不是将 XML 文档散布在客户的屏幕上。 我有一个
我正在观看有关 Datastax 的 DS201 类(class),讲师突然开始使用术语“GC GRACE”。 “GC Grace”和“gc_grace_seconds”究竟是什么? 最佳答案 'gc
我正在尝试找到一种方法来模拟set -e在函数中的行为,但仅在该函数的范围内。 基本上,我想要一个函数,如果有任何简单的命令将触发set -e,它将返回1的上一级。目的是将有风险的工作集隔离为功能,以
我是一名优秀的程序员,十分优秀!