php-在Docker上重新启动Apache
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-在Docker上重新启动Apache,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1628字,纯文字阅读大概需要3分钟。
内容图文
我正在尝试在Docker容器上更新.htaccess文件.更新文件后,我需要重新启动Apache.每当我尝试重新启动Apache:使用命令service apache2 restart时,都会出现以下错误:
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
Action ‘start’ failed.
The Apache error log may have more information.
…fail!
当我到达错误日志时,它没有任何新错误.
这是我的Dockerfile的样子:
FROM ubuntu:12.04
# Install dependencies
RUN apt-get update -y
RUN apt-get install -y git curl apache2 php5 libapache2-mod-php5 php5-mcrypt php5-mysql php5-curl vim
# Install app
RUN rm -rf /var/www/ *
ADD src /var/www
# Configure apache
RUN a2enmod rewrite
RUN chown -R www-data:www-data /var/www
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2
EXPOSE 80
CMD ["/usr/sbin/apache2", "-D", "FOREGROUND"]
解决方法:
这是因为当您运行Docker时,您(正确)没有将apache作为服务启动.该行:
CMD ["/usr/sbin/apache2", "-D", "FOREGROUND"]
在前台启动apache.
我猜您正在使用docker exec在容器中执行外壳程序来编辑文件并重新启动apache?如果是这样,这可以解释为什么第二次开始使用Apache时会抱怨现有过程.
我认为,如果您以这种方式使用容器,那么您确实会错过容器的好处,当您将它们视为不可变的并将数据保留在容器之外(在主机上或在卷中)时,便可以轻松获得它的好处.更换容器.
在您的情况下,如果您需要修改.htaccess文件,我认为使用以下命令将该文件安装到容器中会更正常:
docker run -d --name apache -v $(pwd)/.htaccess:/path/to/.htaccess -p 80:80 image:tag
然后,如果您必须更改文件并需要重新启动apache,则可以使用:
docker restart apache
尽管可能值得调查Charlotte Dunois的建议,您甚至可能不需要重新启动apache.
内容总结
以上是互联网集市为您收集整理的php-在Docker上重新启动Apache全部内容,希望文章能够帮你解决php-在Docker上重新启动Apache所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。