2016-04-15 51 views
1

我不使用WP,也不使用PHP。但有時我會被要求看看一個WordPress的網站(我們都已經通過這個...視線)Docker:wordpress開發沙盒環境

而不是安裝LAMP或其他任何東西,我寧願沙箱中的狗屎碼頭,所以一旦完成,我可以輕鬆卸載所有內容。

我發現official wordpress docker那種複雜的方法建議的docker-compose方法。

相反,因爲它是發展的目的只有,我寧願有一個碼頭工人將包含整個PHP + MySQL的配置,根本不必:

  1. 更換DB_NAMEDB_USERDB_PASSWORDDB_HOST in wp-config.php

  2. 導入現有數據庫的SQL。例如。 docker run mydocker /bin/mysql-import ~/Desktop/export.sql

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

請問這種做法是否合理?我能找到什麼來實現這個目標嗎(如果它還沒有完成)?

回答

0

這將肯定得到改善,但這裏是我採取的步驟:

  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

在這一步,你已經轉發多克的80端口到主機80(這意味着你可以試試http://localhost並且應該得到一個結果),輸入到Docker的bash中,其中包含你的源代碼/var/www/<sitename>

不幸的是,仍然有一些小的配置,這應該是自動恕我直言。

  • 運行apt-get update(沒有更多的sudo的,你根本沒有)
  • 運行apt-get install php5-mysql(對於一些不幸的原因,包不見了)
  • 確保路徑/var/www/<sitename>/log存在通過運行mkdir -p /var/www/<sitename>/log
  • 運行nano /etc/apache2/sites-available/<sitename>.conf,內容如下(所有的詳細there):

    的ServerAdmin網站管理員@#大概不會必填 ServerAlias#可能不是強制

    #索引文件和文檔根(公用文件所在的位置) DirectoryIndex index.html索引。PHP 的DocumentRoot在/ var/WWW/ #日誌文件的位置 的LogLevel警告 錯誤日誌/var/www//log/error.log 的CustomLog /var/www//log/access.log結合

  • 運行a2ensite <sitename>

  • 數據庫需要被導入反正前創建(也許有辦法避免這種情況):mysql -u root -p密碼:Admin2015的解釋here
  • 運行,有create database <dbname>;然後exit
  • 導入當前數據(如果存在):mysql -u root -p <dbname> < <dbbackupfile>.sql(請注意,<dbbackupfile>.sql需要在泊塢窗中可用,因此請將<local_path_to_site_sources>放入<local_path_to_site_sources>中。

  • 更新(從您的主機,而不是搬運工,文件共享)wp-config.php有:

    /**喃德拉基地去最近搜索德的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

  • 去檢查http://localhost:annnnnndd DONE!