Docker:wordpress dev沙盒环境
我不使用WP,也不使用PHP。 但是有时我会被要求看一下wordpress网站(我们都已经经历过这个…)
而不是安装LAMP或其他任何东西,我宁愿沙箱中的狗屎,所以我可以轻松地卸载一切完成后。
我发现docker-compose
方法正如官方的wordpress docker中那样复杂。
相反,因为它仅用于开发目的,所以我宁愿有一个包含整个PHP + MySQLconfiguration的Docker,而只需要:
-
replace
wp-config.php
DB_NAME
,DB_USER
,DB_PASSWORD
和DB_HOST
-
导入现有数据库的SQL。 例如。
docker run mydocker /bin/mysql-import ~/Desktop/export.sql
-
docker start mydocker --source ~/Workspace/myproject
这种方法有意义吗? 我能find什么来实现这个目的吗(如果还没有完成的话)?
这当然会有所改善,但这是我采取的步骤:
- 如果尚未安装,请安装Docker
- 安装灯Docker (我宁愿用nginx而不是apache,但反正):
docker pull linode/lamp
- 运行
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,应该是自动的恕我直言。
- 运行
apt-get update
(没有更多的sudo,你在那里) - 运行
apt-get install php5-mysql
(出于一些不幸的原因,该软件包丢失) - 通过运行
mkdir -p /var/www/<sitename>/log
确保path/var/www/<sitename>/log
存在 -
使用以下内容运行
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合并
-
运行
a2ensite <sitename>
- 在导入之前需要创build数据库(也许有办法避免这种情况):
mysql -u root -p
password:Admin2015
在这里解释 - 在那里运行
create database <dbname>;
然后exit
-
导入当前的数据(如果存在的话):
mysql -u root -p <dbname> < <dbbackupfile>.sql
(请注意,<dbbackupfile>.sql
需要在docker中可用,因此放入<local_path_to_site_sources>
应该有所帮助。 -
更新(从您的主机,而不是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');
-
运行
service apache2 restart; service mysql restart
service apache2 restart; service mysql restart
-
去检查http:// localhost :annnnnndd完成!