在docker下面安裝Nginx PHP mysql let's encrypt

最近本身在弄了個Nginx PHP Mysql Let's encrypt的docker,下面記錄一下php

1)先裝 Let's encrypthtml

docker run --rm -p 80:80 -p 443:443 \
-v /etc/letsencrypt:/etc/letsencrypt \
quay.io/letsencrypt/letsencrypt auth \
--standalone -m myemail@domain.com --agree-tos \
-d domain.commysql

-m 和 -d 分別填上本身的電郵和域名nginx

2)裝上MySQLsql

docker run --name=mysql1 -p 3306:3306 -p 33060:33060 -d mysql/mysql-server:5.7docker

而後整理一下,先查出原始root的密碼apache


這是root的原始密碼

而後登入進去改密碼

docker logs mysql1 2>&1 | grep GENERATED GENERATED ROOT PASSWORD: Axegh3kAJyDLaRuBemecis

docker exec -it mysql1 bashtomcat

mysql -u root -p'Axegh3kAJyDLaRuBemecis'bash

進去後改密碼app

mysql>use mysql;

mysql>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mypass');

#建立一個新用戶

mysql>GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

mysql>FLUSH PRIVILEGES;

 

再退出,此時,外面能夠訪問MYSQL了

 

3)裝上nginx php

試過過官方的nginx的docker 鏡像,裝PHP時特麻煩,用apt-get install php後都不能啓動php-fpm 因而放棄

試過用官方PHP的docker 鏡像,若是純PHP的docker容器啓動不了,試過php-fpm的容器就裝nginx後 nginx啓動不了或者很麻煩

以上我用了另一個

docker run --name my-apache-php-app -v /etc/letsencrypt:/etc/letsencrypt -d -p 12345:443 -p 9000:9000 richarvey/nginx-php-fpm:latest

這個鏡像很方便,安裝後去 /etc/nginx/sites-available 改一下default-ssl.conf,見到配置文件已經把let's encrypt寫好,只要把裏面的域名改一下就能夠,改好後把它複製到sites-enabled

而後 /usr/local/etc/php,見到兩份文件的,而後把php.ini-development  php.ini-production 其中一份複製成php.in 

最後把本身網站複製到 /var/www/html下面

4)最後把更新let's encrypt設爲定時

$crontab -e

00 14 * * * docker run -it --rm -p 80:80 -p 443:443 -v /etc/letsencrypt:/etc/letsencrypt quay.io/letsencrypt/letsencrypt:latest renew --dry-run
05 14 * * * docker restart my-apache-php-app
05 14 * * * docker restart tomcat8

 

完成

相關文章
相關標籤/搜索