docker配備LAMP(linux apache mysql php)

5456 ワード

dockerデータベースファイルの永続化
  • データベースファイルを保存するディレクトリ
  • をホストに作成する.
    mkdir ~/web_data
  • 起動mysql容器
  • docker run -p 33060:3306 -e mysqld -e MYSQL_ROOT_PASSWORD=admin -v ~/web_data/:/var/lib/mysql --name mysql_server -it mysql /bin/bash

    The -v/my/own/datadir:/var/lib/mysql part of the command mounts the/my/own/datadir directory from the underlying host system as/var/lib/mysql inside the container, where MySQL by default will write its data files. パラメータの説明:-p 33060:3306:コンテナの33060ポートをホストの3306ポートにマッピングする.-v ~/web_data/:/var/lib/mysql:ホストの現在のディレクトリをコンテナディレクトリにマウントします.-e MYSQL_ROOT_PASSWORD=admin:rootユーザーのパスワードを初期化します.--name mysql_serverはコンテナに名前を付けます.
  • は、ctrl + pctrl + qを介して容器を離れる、容器バックグラウンド動作
  • を維持する.
  • は、docker attach container_IDを介して運転中の容器
  • に入る.
    公式ドキュメント:/mysql/」>https://hub.docker.com//mysql/
  • mysqlサービス
  • を開始
    service mysql start
  • リモートログインmysqlサーバ
  • を試行
    mysql -h host_ip -u root -p
  • ローカルmysqlデータベースに登録
  • mysql -uroot -p
  • アクセスユーザを追加し、サーバログイン権限
  • を変更する.
    use mysql;
    GRANT ALL PRIVILEGES ON *.* TO 'web_user'@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
  • キャッシュをリフレッシュ
  • flush privileges;
  • データベース・ユーザーがより成功したかどうかを確認します.host項目は%
  • です.
    use mysql;
    select host, user from user;
  • データベースを終了し、リモート・ユーザーによるデータベースの作成またはインポート:
  • create database thinkcmf.sql;
    use thinkcmf;
    source /var/lib/mysql/thinkcmf.sql;

    dockerのwebクライアント構成
  • apache+mysql+phpコンテナ
  • を起動
    docker run -p 800:80  -v ~/epcc:/var/www/example.com/public_html --link=mysql_server:mysql_server --name=web_client -t -i linode/lamp /bin/bash
  • 環境変数envでlinkが成功したかどうかを確認する
  • env
    MYSQL_SERVER_を接頭辞として出力する変数があれば成功する
  • インストールに必要なphp拡張、参考出典https://blog.csdn.net/MasonQAQ/article/details/78048112
  • apt-get update
    apt-get install php5-mysql
    apt-get install php5-gd
  • apacheサービス
  • を開始
    service apache2  start

    url転送を開く
  • /etc/apache2/apache2.confファイルのすべてのAllowOverride NoneAllowOverride Allに変更し、
  • を保存する.
  • プロジェクトルートディレクトリに追加する.htaccessファイル、rewriteルール、つまりthinkphpの下を修正します.htaccess
  •   
        RewriteEngine on  
        #   index.php  
        RewriteCond %{REQUEST_FILENAME} !-d  
        RewriteCond %{REQUEST_FILENAME} !-f  
        RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]  
      

    -linuxシステムにはさらに一歩
    sudo a2enmod rewrite  
  • apacheサービスを再起動すると
  • が有効になります.
    service apache2 restart