หมายเหตุ: ฉันโพสต์คำถามนี้ใน สแต็คโอเวอร์โฟลว์ ด้วย
ฉันกำลังพยายามตั้งค่า WordPress โดยใช้ docker-compose แต่ WordPress ต้องทำงานในคอนเทนเนอร์ที่แยกจากกันโดยมี php_fpm, คอนเทนเนอร์สำหรับ MariaDB และ Nginx ในพอร์ต 443 ที่เปลี่ยนเส้นทางไปยัง WordPress หากลิงก์นั้น HTTPS://localhost/wordpress
แต่ถ้าเป็นลิงค์ HTTPS://localhost/
จะต้องส่งคำขอไปยังหน้า index.html ในคอนเทนเนอร์เดียวกัน
ทุกอย่างทำงานได้ดี แต่ฉันมีปัญหากับ WordPress CSS และไฟล์ js
ไฟล์ส่งคืนรหัสข้อผิดพลาด 403 (ต้องห้าม) เมื่อเบราว์เซอร์พยายามรับ
นักเทียบท่าของฉันเขียน:
รุ่น: '3'
บริการ:
ฐานข้อมูล:
รูป: mysql:5.7
container_name: mariadb
ปริมาณ:
- db-data:/var/lib/mysql
พอร์ต:
- 3306:3306
สิ่งแวดล้อม:
MYSQL_ROOT_PASSWORD: ทดสอบผู้ดูแลระบบ
MYSQL_DATABASE: เวิร์ดเพรส
MYSQL_USER: ผู้ดูแลระบบ
MYSQL_PASSWORD: ผู้ดูแลระบบ
รีสตาร์ท: เสมอ
เครือข่าย:
- wpsite
เวิร์ดเพรส:
สร้าง: wordpress/
ปริมาณ:
- www-ข้อมูล:/var/www/html
container_name: เวิร์ดเพรส
ขึ้นอยู่กับ:
- ฐานข้อมูล
พอร์ต: ['9000:9000']
สิ่งแวดล้อม:
WORDPRESS_DB_HOST: ฐานข้อมูล
MYSQL_ROOT_PASSWORD: mysql_root_pass
WORDPRESS_DB_NAME: เวิร์ดเพรส
WORDPRESS_DB_USER: ผู้ดูแลระบบ
WORDPRESS_DB_PASSWORD: ผู้ดูแลระบบ
WORDPRESS_TABLE_PREFIX: wp_table
เครือข่าย:
- wpsite
รีสตาร์ท: เสมอ
จิงซ์:
สร้าง: nginx /
ภาพ: mynginx:mytest
ชื่อคอนเทนเนอร์: my_nginx
ปริมาณ:
- www-ข้อมูล:/var/www/html
พอร์ต:
- 443:443
ขึ้นอยู่กับ:
- เวิร์ดเพรส
เครือข่าย:
- wpsite
เครือข่าย:
wpsite:
ปริมาณ:
ข้อมูลฐานข้อมูล:
www-ข้อมูล:
ไฟล์นักเทียบท่า nginx:
จากเทือกเขาแอลป์:3.12.0
อัปเดต RUN apk
RUN apk เพิ่ม nginx openrc vim
RUN apk เพิ่ม php7-common php7-iconv php7-json php7-gd php7-curl php7-xml \
php7-mysqli php7-imap php7-cgi fcgi php7-pdo php7-pdo_mysql php7-สบู่ php7-xmlrpc \
php7-posix php7-mcrypt php7-gettext php7-ldap php7-ctype php7-dom php7 php7-fpm php7-opcache openssl
คัดลอก src ./tmp/
รัน mkdir -p /var/www/html/
RUN openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt -subj "/C=MA /ST=Khouribga/L=Khouribga/O=1337/CN=ft_services"
RUN mv /tmp/default.conf /etc/nginx/conf.d/
เรียกใช้ openrc
RUN สัมผัส /run/openrc/softlevel
เพิ่ม src/run.sh
RUN chmod +x /run.sh
จุดเข้าใช้งาน [ "/run.sh" ]
default.conf
เซิร์ฟเวอร์ {
ฟัง 443 ssl;
ssl_protocols TLSv1.3;
ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt;
ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key;
รูท /var/www/html;
ดัชนี index.html;
# ดัชนี index.html index.htm index.php;
ชื่อเซิร์ฟเวอร์ _;
#client_max_body_size 32m;
# error_page 500 502 503 504 /50x.html;
# ปิดดัชนีอัตโนมัติ
# ดัชนี index.php index.html index.htm index.nginx-debian.html;
# รวม /etc/nginx/mime.types;
ตำแหน่ง = /50x.html {
รูท /var/lib/nginx/html;
}
ที่ตั้ง / {
# ความพยายามครั้งแรกในการให้บริการคำขอเป็นไฟล์ จากนั้น
# เป็นไดเร็กทอรี จากนั้นถอยกลับไปแสดง 404
ดัชนี index.html;
# try_files $uri $uri/ /index.php?$args;
}
# ส่งสคริปต์ PHP ไปยังเซิร์ฟเวอร์ FastCGI ที่ฟังบน wordpress:9000
ตำแหน่ง / เวิร์ดเพรส {
# fastcgi_split_path_info ^(.+\.php)(/.+)$;
# ราก /var/www/html/;
fastcgi_pass 0.0.0.0:9000;
fastcgi_index index.php;
รวม fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
}
}
ไฟล์นักเทียบท่า wordpress:
จากเทือกเขาแอลป์:3.12.0
อัปเดต RUN apk
RUN apk เพิ่ม openrc
RUN apk เพิ่ม php7-common php7-iconv php7-json php7-gd php7-curl php7-xml \
php7-mysqli php7-imap php7-cgi fcgi php7-pdo php7-pdo_mysql php7-สบู่ php7-xmlrpc \
php7-posix php7-mcrypt php7-gettext php7-ldap php7-ctype php7-dom php7 php7-fpm php7-opcache
คัดลอก src ./tmp/
เรียกใช้ mkdir -p /var/www/html
เรียกใช้ openrc
RUN สัมผัส /run/openrc/softlevel
เรียกใช้ sh tmp/wp-setup.sh
เพิ่ม src/run.sh
RUN chmod +x /run.sh
จุดเข้าใช้งาน [ "/run.sh" ]