From 4bb17b8c05c6e430293217797eef694671ec1e1b Mon Sep 17 00:00:00 2001
From: startxfr <clarue@startx.fr>
Date: Sat, 28 Nov 2015 15:15:52 +0100
Subject: final change in script lib for OS. Change in apache and php services

---
 Services/php/Dockerfile         | 17 +++++-----
 Services/php/app/index.php      | 70 -----------------------------------------
 Services/php/docker-compose.yml | 15 +++++++++
 Services/php/httpd.conf         | 15 +++++++--
 Services/php/index.php          | 70 +++++++++++++++++++++++++++++++++++++++++
 Services/php/run.sh             | 58 ++++++++++++++++++++++++++++++++++
 6 files changed, 166 insertions(+), 79 deletions(-)
 delete mode 100644 Services/php/app/index.php
 create mode 100644 Services/php/docker-compose.yml
 create mode 100644 Services/php/index.php
 create mode 100644 Services/php/run.sh

(limited to 'Services/php')

diff --git a/Services/php/Dockerfile b/Services/php/Dockerfile
index 60985df..b46f098 100644
--- a/Services/php/Dockerfile
+++ b/Services/php/Dockerfile
@@ -8,14 +8,17 @@ RUN dnf -y install php php-pecl-mongo php-cli php-pear \
         php-bcmath php-pecl-zip php-php-gettext php-tcpdf \
         php-tcpdf-dejavu-sans-fonts php-tidy \
     && dnf clean all  
-# Copy application content
-COPY app/* /var/www/html/
-COPY httpd.conf /etc/httpd/conf.d/sx.conf
+COPY httpd.conf /etc/httpd/conf.d/app.conf
 COPY php.ini /etc/php.d/sx.ini
-RUN chmod ug+r /var/www/html/* \
-    && chown -R apache:apache /var/www/html /var/log/httpd 
+COPY run.sh /bin/
+RUN chmod 775 /bin/run.sh && \
+    chmod ug+r /etc/httpd/conf.d/app.conf
+COPY ./ /data/www
+RUN rm -f /data/www/Dockerfile /data/www/httpd.conf /data/www/run.sh && \
+    chown -R apache:apache /data/www /data/logs && \
+    chmod ug+r -R /data/www
 
 EXPOSE 80
 EXPOSE 443
-VOLUME ["/var/www/html", "/var/log/httpd"]
-CMD ["/sx/httpd_run.sh"]
\ No newline at end of file
+VOLUME ["/data/www","/data/logs"]
+CMD ["/bin/run.sh"]
\ No newline at end of file
diff --git a/Services/php/app/index.php b/Services/php/app/index.php
deleted file mode 100644
index 411b39b..0000000
--- a/Services/php/app/index.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<!DOCTYPE html>
-<html>
-    <head>
-        <title>STARTX Webserver container</title>
-        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-        <style>
-            body {font-family: Helvetica, Arial, sans-serif;font-size: 14px;color: #333;padding: 0;margin: 0;}
-            body > header { width: 900px; padding: 1em; margin: 0 auto 1em auto  }
-            body > article {box-shadow: 5px 5px 10px  rgba(0,0,0,0.8); padding: 0 0 .5em 0; border-radius: 5px; width: 900px; margin: 2em auto 0 auto }
-            body > footer { width: 900px; padding: 0em 0 1em 1em; margin: 1.1em auto 1em auto; color: white; font-size: .75em  }
-            h1 { margin: 0; font-size: 3em; line-height: .8em }
-            h2 { text-shadow: 1px 1px 1px rgba(0,0,0,0.25); font-size: 2.2em;margin: .2em;  }
-            h3 { text-shadow: 1px 1px 0px rgba(255,255,255,1); font-size: 1.5em;margin: .2em;  }
-            h4 {  font-size: 1.2em; margin: .2em; }
-            p { font-size: 1em; margin: .5em .2em; }
-            ul {
-                padding-bottom: 1em;
-                padding-left: 2em;
-            }
-            a {
-                color: white;
-                text-decoration: none;
-                background: transparent !important;
-            }
-            body > header h1 { color: #000e44; text-shadow: 0 0 3px  rgb(255,255,255),  0 0 10px  rgba(255,255,255,1),  0 0 20px  rgba(255,255,255,0.6); float: left }
-            body > header h1 span { color: #0c6f5e }
-            body > header h2 { color: white; font-size: .7em; font-weight: normal; margin: 2.2em 0 0 1em; float: left }
-            body > header h3 { color: #0c6f5e; margin: 0; font-size: 2em; float: right }
-            article header { margin: 0;padding: .3em; box-shadow: 0 0 5px  rgba(0,0,0,0.9); border-radius: 5px 5px 0 0; width: 892px; }
-            article h3 { display: inline; }
-            article > details { margin: 1em; }
-
-
-            body#error  { background-color : #533;}
-            #error article { color : darkred; background-color : rgba(255,255,255,0.9); clear: both }
-            #error article h2 { color : white; text-shadow: 0 0 2px white, 0 0 15px #600, 3px 3px 8px rgba(50,0,0,0.9); }
-            #error article header { background-color : rgba(85,51,51,0.6); }
-            #error h3, #error article a { color : #744; }
-            #error article a:hover { color : #533; }
-            #error pre.xdebug-var-dump {font-size:0.8em}
-
-            body#answer  { background-color : #353 }
-            #answer article { color : #575;background-color : rgba(255,255,255,0.9); clear: both }
-            #answer article h2 { color : white; text-shadow: 0 0 2px rgba(11,45,11,0.9), 0 0 10px rgba(11,45,11,0.8); }
-            #answer article header { background-color : rgba(51,85,51,0.6); }
-            #answer h3, #answer article a { color : #686; }
-            #answer article a:hover { color : #353; }
-        </style>
-    </head>
-    <body id="answer">
-        <header>
-            <h1><span>STARTX</span> PHP Webserver</h1>
-            <h3>Online</h3>
-        </header>
-        <article>
-            <header>
-                <h2>Congratulation !!!</h2>
-            </header>
-            <p>
-                You are actually running an apache webserver + php running under the latest fedora release. For more information about this container and how to add your content instead of this message, please read the following links.
-            <ul>
-                <li><a href="https://github.com/startxfr/docker-images/tree/master/Services/php" target="_blank">See this container Dockerfile</a></li>
-                <li><a href="https://github.com/startxfr/docker-images" target="_blank">STARTX github docker images repository</a></li>
-                <li><a href="https://registry.hub.docker.com/u/startx/" target="_blank">STARTX Dockerhub profile</a></li>
-            </ul>
-            <?php phpinfo(); ?>
-        </p>
-    </article>
-    <footer><p>&copy; 2015 - <a href="https://github.com/startxfr" target="_blank">STARTX</a> - <a href="https://www.startx.fr" target="_blank">STARTX Dev Team</a></p></footer>
-</body></html>
\ No newline at end of file
diff --git a/Services/php/docker-compose.yml b/Services/php/docker-compose.yml
new file mode 100644
index 0000000..b8130ef
--- /dev/null
+++ b/Services/php/docker-compose.yml
@@ -0,0 +1,15 @@
+apache:
+  build: ./
+#  image: sx-apache
+  container_name: "sx-apache"
+  mem_limit: 1g
+  memswap_limit: 2g
+  cpu_shares: 2
+  restart: "on-failure:2"
+  environment:
+    CONTAINER_TYPE: "service"
+    CONTAINER_SERVICE: "apache"
+    CONTAINER_INSTANCE: "sx-apache"
+  volumes:
+    - "/tmp/container/logs:/data/logs"
+    - "/tmp/container/www:/data/www"
\ No newline at end of file
diff --git a/Services/php/httpd.conf b/Services/php/httpd.conf
index 2cb8301..3a51a63 100644
--- a/Services/php/httpd.conf
+++ b/Services/php/httpd.conf
@@ -1,8 +1,19 @@
 #
-# This file will be copied into /etc/httpd/conf.d/sx.conf and loaded when httpd start
+# This file will be copied into /etc/httpd/conf.d/app.conf and loaded when httpd start
 #
 ServerAdmin cl@startx.fr
-<Directory "/var/www/html">
+ErrorLog "/data/logs/httpd_error.log"
+
+<IfModule log_config_module>
+    CustomLog "/data/logs/httpd_access.log" combined
+</IfModule>
+
+Alias / /data/www
+<Directory "/data/www">
+    AddDefaultCharset UTF-8
     AllowOverride All
+    Order Allow,Deny
+    Allow from All
+    Require all granted
     DirectoryIndex index.php index.html
 </Directory>
diff --git a/Services/php/index.php b/Services/php/index.php
new file mode 100644
index 0000000..411b39b
--- /dev/null
+++ b/Services/php/index.php
@@ -0,0 +1,70 @@
+<!DOCTYPE html>
+<html>
+    <head>
+        <title>STARTX Webserver container</title>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+        <style>
+            body {font-family: Helvetica, Arial, sans-serif;font-size: 14px;color: #333;padding: 0;margin: 0;}
+            body > header { width: 900px; padding: 1em; margin: 0 auto 1em auto  }
+            body > article {box-shadow: 5px 5px 10px  rgba(0,0,0,0.8); padding: 0 0 .5em 0; border-radius: 5px; width: 900px; margin: 2em auto 0 auto }
+            body > footer { width: 900px; padding: 0em 0 1em 1em; margin: 1.1em auto 1em auto; color: white; font-size: .75em  }
+            h1 { margin: 0; font-size: 3em; line-height: .8em }
+            h2 { text-shadow: 1px 1px 1px rgba(0,0,0,0.25); font-size: 2.2em;margin: .2em;  }
+            h3 { text-shadow: 1px 1px 0px rgba(255,255,255,1); font-size: 1.5em;margin: .2em;  }
+            h4 {  font-size: 1.2em; margin: .2em; }
+            p { font-size: 1em; margin: .5em .2em; }
+            ul {
+                padding-bottom: 1em;
+                padding-left: 2em;
+            }
+            a {
+                color: white;
+                text-decoration: none;
+                background: transparent !important;
+            }
+            body > header h1 { color: #000e44; text-shadow: 0 0 3px  rgb(255,255,255),  0 0 10px  rgba(255,255,255,1),  0 0 20px  rgba(255,255,255,0.6); float: left }
+            body > header h1 span { color: #0c6f5e }
+            body > header h2 { color: white; font-size: .7em; font-weight: normal; margin: 2.2em 0 0 1em; float: left }
+            body > header h3 { color: #0c6f5e; margin: 0; font-size: 2em; float: right }
+            article header { margin: 0;padding: .3em; box-shadow: 0 0 5px  rgba(0,0,0,0.9); border-radius: 5px 5px 0 0; width: 892px; }
+            article h3 { display: inline; }
+            article > details { margin: 1em; }
+
+
+            body#error  { background-color : #533;}
+            #error article { color : darkred; background-color : rgba(255,255,255,0.9); clear: both }
+            #error article h2 { color : white; text-shadow: 0 0 2px white, 0 0 15px #600, 3px 3px 8px rgba(50,0,0,0.9); }
+            #error article header { background-color : rgba(85,51,51,0.6); }
+            #error h3, #error article a { color : #744; }
+            #error article a:hover { color : #533; }
+            #error pre.xdebug-var-dump {font-size:0.8em}
+
+            body#answer  { background-color : #353 }
+            #answer article { color : #575;background-color : rgba(255,255,255,0.9); clear: both }
+            #answer article h2 { color : white; text-shadow: 0 0 2px rgba(11,45,11,0.9), 0 0 10px rgba(11,45,11,0.8); }
+            #answer article header { background-color : rgba(51,85,51,0.6); }
+            #answer h3, #answer article a { color : #686; }
+            #answer article a:hover { color : #353; }
+        </style>
+    </head>
+    <body id="answer">
+        <header>
+            <h1><span>STARTX</span> PHP Webserver</h1>
+            <h3>Online</h3>
+        </header>
+        <article>
+            <header>
+                <h2>Congratulation !!!</h2>
+            </header>
+            <p>
+                You are actually running an apache webserver + php running under the latest fedora release. For more information about this container and how to add your content instead of this message, please read the following links.
+            <ul>
+                <li><a href="https://github.com/startxfr/docker-images/tree/master/Services/php" target="_blank">See this container Dockerfile</a></li>
+                <li><a href="https://github.com/startxfr/docker-images" target="_blank">STARTX github docker images repository</a></li>
+                <li><a href="https://registry.hub.docker.com/u/startx/" target="_blank">STARTX Dockerhub profile</a></li>
+            </ul>
+            <?php phpinfo(); ?>
+        </p>
+    </article>
+    <footer><p>&copy; 2015 - <a href="https://github.com/startxfr" target="_blank">STARTX</a> - <a href="https://www.startx.fr" target="_blank">STARTX Dev Team</a></p></footer>
+</body></html>
\ No newline at end of file
diff --git a/Services/php/run.sh b/Services/php/run.sh
new file mode 100644
index 0000000..bcddd35
--- /dev/null
+++ b/Services/php/run.sh
@@ -0,0 +1,58 @@
+#!/bin/bash
+source /bin/sx-lib.sh
+export HTTPDCONF=/etc/httpd/conf.d/app.conf
+
+# Begin configuration before starting daemonized process
+# and start generating host keys
+function begin_config {
+    echo "=> BEGIN APACHE-PHP CONFIGURATION"
+    mkdir -p /var/run/httpd
+    if [ -v DOCROOT ]; then
+        echo "=> Changing document root to $DOCROOT"
+        ${DOCROOT=/data/www}
+        echo "DocumentRoot \"$DOCROOT\"" >> $HTTPDCONF
+    fi
+}
+
+# End configuration process just before starting daemon
+function end_config {
+    stop_server
+    echo "=> END APACHE-PHP CONFIGURATION"
+}
+
+# Start the httpd server in background. Used to perform config
+# against the database structure such as user creation
+function start_server {
+    echo "=> Starting httpd + php server"
+    /usr/sbin/apachectl &
+    sleep 2
+}
+
+# Stop the httpd server running in background. 
+function stop_server {
+    echo "=> Stopping httpd + php server ..."
+    killall httpd
+    rm -rf /run/httpd/*
+    sleep 2
+}
+
+# Start the httpd server as a deamon and execute it inside 
+# the running shell
+function start_daemon {
+    echo "=> Starting httpd + php daemon ..."
+    exec /usr/sbin/apachectl -D FOREGROUND
+}
+
+
+
+if [[ "$0" == *"run.sh" && ! $1 = "" ]];then
+    eval "$@"; 
+fi
+
+check_environment
+check_httpd_environment
+display_container_header
+begin_config
+end_config
+start_daemon
+display_container_started
-- 
cgit v1.2.3