Docker:wordpress dev沙盒环境

我不使用WP,也不使用PHP。 但是有时我会被要求看一下wordpress网站(我们都已经经历过这个…)

而不是安装LAMP或其他任何东西,我宁愿沙箱中的狗屎,所以我可以轻松地卸载一切完成后。

我发现docker-compose方法正如官方的wordpress docker中那样复杂。

相反,因为它仅用于开发目的,所以我宁愿有一个包含整个PHP + MySQLconfiguration的Docker,而只需要:

  1. replacewp-config.php DB_NAMEDB_USERDB_PASSWORDDB_HOST

  2. 导入现有数据库的SQL。 例如。 docker run mydocker /bin/mysql-import ~/Desktop/export.sql

  3. docker start mydocker --source ~/Workspace/myproject

这种方法有意义吗? 我能find什么来实现这个目的吗(如果还没有完成的话)?

这当然会有所改善,但这是我采取的步骤:

  1. 如果尚未安装,请安装Docker
  2. 安装灯Docker (我宁愿用nginx而不是apache,但反正): docker pull linode/lamp
  3. 运行sudo docker run -p 80:80 -v <local_path_to_site_sources>:/var/www/<sitename> -t -i linode/lamp /bin/bash

在这一步,你已经将Docker的端口80转发到你的主机80(这意味着你可以尝试http:// localhost,并得到一个结果),input到/var/www/<sitename> docker的bash中,包含你的源码码。

不幸的是,还有一些小的configuration,应该是自动的恕我直言。

  1. 运行apt-get update (没有更多的sudo,你在那里)
  2. 运行apt-get install php5-mysql (出于一些不幸的原因,该软件包丢失)
  3. 通过运行mkdir -p /var/www/<sitename>/log确保path/var/www/<sitename>/log存在
  4. 使用以下内容运行nano /etc/apache2/sites-available/<sitename>.conf (在此处详述所有内容):

    ServerAdmin webmaster @#可能不是强制的ServerAlias#可能不是强制性的

    #索引文件和文件根目录(公共文件所在的目录)DirectoryIndex index.html index.php DocumentRoot / var / www /#日志文件位置LogLevel警告ErrorLog /var/www//log/error.log CustomLog / var / www //log/access.log合并

  5. 运行a2ensite <sitename>

  6. 在导入之前需要创build数据库(也许有办法避免这种情况): mysql -u root -p password: Admin2015在这里解释
  7. 在那里运行create database <dbname>; 然后exit
  8. 导入当前的数据(如果存在的话): mysql -u root -p <dbname> < <dbbackupfile>.sql (请注意, <dbbackupfile>.sql需要在docker中可用,因此放入<local_path_to_site_sources>应该有所帮助。

  9. 更新(从您的主机,而不是docker,文件共享) wp-config.php与:

    / ** Nom de la base dedonnéesde WordPress。 * / define('DB_NAME','');

    / ** MySQL的利用率。 * / define('DB_USER','root');

    / ** MySQL的基础代码。 * / define('DB_PASSWORD','Admin2015');

    / ** MySQL的地址。 * / define('DB_HOST','127.0.0.1');

  10. 运行service apache2 restart; service mysql restart service apache2 restart; service mysql restart

  11. 去检查http:// localhost :annnnnndd完成!