【问题标题】:Docker: wordpress dev sandboxed environmentDocker:wordpress 开发沙盒环境
【发布时间】:2023-03-16 11:40:01
【问题描述】:

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

与其安装 LAMP 或其他任何东西,我宁愿在 docker 中沙箱,这样我就可以在完成后轻松卸载所有内容。

我发现official wordpress docker 中建议的docker-compose 方法有点复杂。

相反,由于它仅用于开发目的,我宁愿拥有一个包含整个 PHP + MySQL 配置的 Docker,并且只需:

  1. wp-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

这种方法有意义吗?有没有我能找到的资源来实现这一点(如果还没有完成的话)?

【问题讨论】:

    标签: php mysql wordpress docker


    【解决方案1】:

    这肯定会改进,但这是我采取的步骤:

    1. Install Docker 如果还没有完成
    2. 安装Lamp 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 并且应该得到结果),使用包含你的源代码的/var/www/<sitename> 进入 docker 的 bash。

    不幸的是,还有一些小配置要做,恕我直言,这应该是自动化的。

    1. 运行 apt-get update(不再需要 sudo,你是 root)
    2. 运行apt-get install php5-mysql(由于某些不幸的原因,包丢失了)
    3. 通过运行mkdir -p /var/www/<sitename>/log 确保路径/var/www/<sitename>/log 存在
    4. 运行nano /etc/apache2/sites-available/<sitename>.conf,内容如下(一切都详细there):

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

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

    5. 运行a2ensite <sitename>

    6. 无论如何都需要在导入之前创建数据库(也许有办法避免这种情况):mysql -u root -p 密码:Admin2015 解释为here
    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 de données de WordPress。 */ 定义('DB_NAME', '');

      /** Utilisateur de la base de données MySQL。 */ 定义('DB_USER', 'root');

      /** Mot de passe de la base de données MySQL。 */ 定义('DB_PASSWORD', 'Admin2015');

      /** 地址 de l'hébergement MySQL。 */ 定义('DB_HOST','127.0.0.1');

    10. 运行service apache2 restart; service mysql restart

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-13
      • 1970-01-01
      • 1970-01-01
      • 2012-10-07
      • 1970-01-01
      • 1970-01-01
      • 2013-05-03
      相关资源
      最近更新 更多