前言
筆者用的是mac開發,但是mac自帶的php功能安裝十分不方便,并且和線上的linux開發環境不一致。在沒有用docker之前一直用vagrant配置的centos的php開發環境,但是自從有了docker之后,就不再用vagrant了。
配置自己的php鏡像
首先在自己的任意一個目錄下創建如下三個文件
run.sh
#!/bin/bash/usr/sbin/php-fpm7.0/usr/sbin/nginxtailf /etc/apt/sources.list
sources.list
# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricteddeb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-propertiesdeb http://mirrors.aliyun.com/ubuntu/ xenial main restricteddeb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-propertiesdeb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricteddeb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-propertiesdeb http://mirrors.aliyun.com/ubuntu/ xenial universedeb http://mirrors.aliyun.com/ubuntu/ xenial-updates universedeb http://mirrors.aliyun.com/ubuntu/ xenial multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiversedeb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-propertiesdeb http://archive.canonical.com/ubuntu xenial partnerdeb-src http://archive.canonical.com/ubuntu xenial partnerdeb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricteddeb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-propertiesdeb http://mirrors.aliyun.com/ubuntu/ xenial-security universedeb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
Dockerfile
FROM ubuntu:16.04# ===========================# 配置虛擬主機# -v default:/etc/nginx/sites-enabled/default# 配置程序目錄# -v web:/var/www/html# 配置映射端口# -p 8008:80# ===========================MAINTAINER chengtao "751753158@qq.com" ADD sources.list /etc/apt/sources.listADD run.sh /root/run.shRUN chmod +x /root/run.shRUN apt-get update RUN apt-get install -y php-fpm php-mysql nginx RUN sed -i 's/;date.timezone =/date.timezone = Asia//Shanghai/' /etc/php/7.0/fpm/php.iniRUN mkdir -p /run/php/EXPOSE 80 CMD ["/bin/bash","/root/run.sh"]
執行命令
docker build -t d1studio:php-base:0.1 .
配置php mysql開發環境
mkdir -p ~/projects/php-appcd ~/projects/php-appmkdir mysqlmkdir www
www/index.php
<?phpphpinfo();
nginx.conf
server { listen 80 default_server; root /var/www/html; index index.html index.htm index.php; location / {  try_files $uri $uri/ =404; } location ~ /.php$ {  include snippets/fastcgi-php.conf;  fastcgi_pass unix:/run/php/php7.0-fpm.sock; }}docker-compose.yml
version: '2'services: mysql: image: mysql:5.6 volumes: - ./mysql/:/var/lib/mysql/ ports: - "3307:3306" environment: - MYSQL_ROOT_PASSWORD=123456 php-app: image: d1studio/php-base:0.1 ports: - "8009:80" volumes: - ./nginx.conf:/etc/nginx/sites-enabled/default - ./www/:/var/www/html/ links: - mysql
開啟php的測試項目
#開啟docker-compose up#關閉docker-compose down
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
新聞熱點
疑難解答
圖片精選