Read the content of a word document with PHP.

Today we will try to read a word document with PHP, and when I say read I mean take the text in the document and extract it.

First we create this function:

<?php
    function read_file_docx($filename){

        $striped_content = '';
        $content = '';

        if(!$filename || !file_exists($filename)) return false;

        $zip = zip_open($filename);

        if (!$zip || is_numeric($zip)) return false;

        while ($zip_entry = zip_read($zip)) {

            if (zip_entry_open($zip, $zip_entry) == FALSE) continue;

            if (zip_entry_name($zip_entry) != "word/document.xml") continue;

            $content .= zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));

            zip_entry_close($zip_entry);
        }// end while

        zip_close($zip);

        //echo $content;
        //echo "<hr>";
        //file_put_contents('1.xml', $content);        

        $content = str_replace('</w:r></w:p></w:tc><w:tc>', " ", $content);
        $content = str_replace('</w:r></w:p>', "\r\n", $content);
        $striped_content = strip_tags($content);

        return $striped_content;
    }

?>

Second we use the function:

<?php
$filename = "file.docx";
// or /var/www/html/file.docx
 $content = read_file_docx($filename);
 if($content !== false) {        print_r(nl2br($content));    }    
else {        echo 'Couldn\'t the file. Please check that file.';    }
?>

This is able to read a MS word for instance this document:

Screenshot from 2013-08-12 15:58:27

Is read as:

Screenshot from 2013-08-12 16:04:00

As you may see PHP is able to read the content, of course there are some characters that PHP interprets differently from MS word, but maybe working with this as an input you can get what you want as the final result.

Regards

Child Theme WordPress

Well today I’m going to explain how to create a child theme in WordPress is kind of simple work, but some of us had to struggle to get it done when we started to do our first WordPress sites (by we you my understand ME), because the true is that is very easy now that I know.

Responsive child theme

Responsive child theme

Basically what you have to do is to go to /wp-content/themes/ create a folder with the name of the child theme (different from other themes you have) for instance “sosolar”. Inside this folder you can create any structure on a theme, but the only file required is “style.css”, then you only have to create a special content for this file.
The file is supposed to have inside the following:

/*
Theme Name: My Child Theme(in this case sosolar)
Theme URI: http: //mysite.com/ (in this case

http://www.abelworld.com/wordpress-child-theme)
Description: This is a custom child theme I have created.
(or put a reference to the description like http://www.abelworld.com/about/ this theme)
Author: My Name (for instance: Abel Guzman Sanchez)
Author URI: http: //mysite.com/ (in this case: https://www.abelworld.com/about/)
Template: parenttheme
(in this case twentytwelve is a nice theme I like it as base to start doing serious things)
Version: Version number (in this case 0.1)
*/

So basically your child theme would be something like:

/*
 Theme Name:     sosolar
 Theme URI:      http://www.abelworld.com/child-theme-wordpress/
 Description:    Child theme for the Twenty eleven theme
 Author:         Abel Guzman
 Author URI:     https://plus.google.com/u/0/116095396075951868976/posts
 Template:       twentyeleven                             Version:        0.1.0
 */
End of the story, of couse this child theme does not do any thing, the rest depends on what do you want to modify. for instance you can check this other example. Otherwise if you want to modify styles you just have to change may by this file you created, and remember that what you do in here overrides what is in the father theme. You might expect  some more posts on this subject on the near future. Enjoy.

Path links menu; WordPress browsing

I have used the theme Twenty Eleven a couple of times as the father theme for my web creations, and it works for me very well, but sometimes when the website grows to much with a lot of contents and several child pages; while users are browsing, they might get confused; due to the default absence of path links in most WordPress themes, sometimes happens after the user goes inside the menu and clicks on a few links they don’t know where are they, so a functionality that shoes the path to the page where you are is very useful sometimes.

Path links menu

Path links menu

 

Pic. 1 Browsing path links.

To create a path functionality you can do 2 main things:

  1. Install a plugin, there are a few in http://wordpress.org/plugins/, you can do it easily you can find a useful plugin, but installing plugins brings some other problems;
  2. Why should I install a heavier plugin if I can program it my self with a few lines of code. Well this is what we will do today we program the website path our serves.

First we have to create the function under funcions.php or add the following function in your child theme (if you have a child theme) existing file functions.php:

/* Declare Function, it will receive the ID of a page */
function show_path_to_page ($id_page)
 {
//Take the URL and Page title and create the link to the page.
 $aux_link = post_permalink($id_page, 'page');
 $aux_page_title = get_the_title($id_page);
 $aux_html_links = "<strong><a href='".$aux_link."'>".$aux_page_title."</a><strong>";
// Determine if it has ancestors and if it has link them.
 $aux_ancestors_array = get_post_ancestors($id_page);
 if ($aux_ancestors_array[0] != "")
 {
//Count ancestors
 $ancestors_nodes = count($aux_ancestors_array);
//check every ancestor and make it part of the array.
 for ($i = 0; $i < $ancestors_nodes;$i++)
 {
//Create the rest of the path links
$aux_link = post_permalink($aux_ancestors_array[$i], 'page');
 $aux_page_title = get_the_title($aux_ancestors_array[$i]);
 $aux_html_links = "<a href='".$aux_link."'>".$aux_page_title."</a> |> ".$aux_html_links;
 }
 }
// Return the links on a string.
 return $aux_html_links;
 }

The functionality is done, we just need to call it on the header.php or where ever we want to use the wordpress path links and that’s it.

<div>&nbsp;&nbsp;Path: <?php echo show_path_to_page(get_the_ID()); ?></div>

Path links work fine, but they require some extra work, like styling and allocate it in the right place.

 

Linux Servers; Cost Reduction

updated on 2013-10-01

Introduction:

This document explains the main steps of the configuration of a Linux network system. With two servers for medium of small size business (in this case a Clinic). But the same project template can be applied to any other business. The main objective of this project is to create a stable solution with the best cost effectiveness balance.
These servers will provide several services like Domain Controller (PDC), Centralized Users database, Control internet access and flow, backups server, a Firewall to stop intrusions, among other software and configurations, also seeking for cost reduction Linux software RAID 1 (hard Drive mirroring) had been used. This is the technical document that might serve as guide to configure as many servers as you may need.

Linux Solution Cost and other issues:

This project done by a Linux Specialist could cost between 20000 BWP (2500 USD) and 40000 BWP (5000 USD) depending on particularities of every business and the specialist’s hourly rates. Compared a Windows similar solution should a at least 10000 BWP (1250 USD) and 30000 (3500 USD) more expensive. Taking as a reference only the License costing. Linux Cost is free and windows cost is always important. Other issue is that Linux specialists are always more scarce than the windows specialists, but normally Linux specialist can manage to fix windows issues as well as Linux but not normally the other way around.
From now on, this document serves to explain the implementation of the network project in a clinic in Botswana that is currently using Linux for the servers and windows for the workstations. With no change on they way of doing the work for the end user. Here you will find an overview of the technical solution, each of the topics of attention in this project as well as links to more detailed manuals, explanations and configuration files. Every thing is very technical, but half understandable for humans.

Table of Contents

Introduction
  1. Configuration of a Network Client.
  2. Servers Hardware description
  3. Servers OS Installation
  4. Configuration of the Domain controller
  5. DHCP server
  6. DNS server
  7. Proxy server
  8. Webmin
  9. Firewall
  10. Bacula client
  11. Configuration of the back-up server Operating System
  12. Virtual box installation
  13. The Bacula service
 Conclusion
Recommendations
 Appendixes
Initial Project Request:
The clinic has 20 PC, with no antivirus solutions and the operating systems are windows, and it includes a pie of windows XP, Vista, 7 and 8.
Initial project request
Normally the customer does not know very well what he wants/needs, so the Final Project Solution Included a few mote “things”Final linux project.
To achieve a more effective solution that can be easily adjusted to diverse future uses the following was added to the initial project proposal:
  •  Software RAID
  •  DNS Server
  •  Proxy server
  •  DHCP Server
  •  Virtualisation Server
  • Windows Virtual Server

The solution implemented

     1. Configuration of a Network Client. The previous network has been re-used so the range of IP addresses remain the same i.e. 192.168.1.0/24Most of the IP addresses have been kept as they were before only the new modifications to the network were added.
  •  The list of the main IP addresses in the network is as follows:
             i.      Domain controller(LDAP, DHCP, DNS, Proxy, File Server): 192.168.1.51
             ii.      Backup Server and Virtualization server: 192.168.1.50
             iii.     Windows Virtual Machine server: 192.168.1.52
             iv.      Gateway (ADSL Router): 192.168.1.254
  •    Any client that is going to be manually reconfigured requires: an IP that is not in use in the range 192.168.1.xxx (where xxx = from 1 to 253 and different from all the user IP addresses). The gateway is 192.168.1.254; the DNS is 192.168.1.51 the WINs server (to access it click on advanced) is: 192.168.1.51 and the net mask is 255.255.255.0.
      2. Server’s Hardware description.
  • Processors: Core i3 x2.
  • Motherboard: Intel DH61WW x 2
  • HDD: Toshiba 500 Gb x 4.
  • RAM: 4 Gb x 2
  • Additional Network Card 10/100 Mbps.
3. Servers OS Installation:
Both servers have software RAID and each one of them has 2 x 500 GB HDD to create a RAID 1 mirror (One HDD is an exact copy of the content of the other one). The OS is Debian 6.0.6 Squeezy, it has software RAID support and is free software. As a guide for software raid partitioning the following manuals can be used:
Partition
Space
Type
/
10 Gb
Primary
/boot
100 Mb
Primary
Swap
2 Gb
Primary
/var
30 Gb
Logical
/Home
Rest
Logical
      4. Configuration of the Domain controller.
 i.      Login as a local administrator.
ii.      If it is a Windows 7 computer go to \\fileserver.clinic.com\install\DomainRegistry find the domain script named Win7_Samba3DomainMember execute it and accept to modify your registry settings, then go to step iii. If it is Windows XP or Vista go straight to iii.
iii.      Go to start, right click on the Computer (My PC in windows XP) and go to Properties.
iv.      The system window will appear, in the left side menu click on Advanced System Settings.
v.      Click on Computer Name.
vi.      Click on Change.
vii.      Select Domain, write in the text field “clinic.com” and click OK.
viii.      You will be prompted for user and password; youshoulduse the clinicadmin user and its password.
ix.      When a computer is being joined to the Domain you could receive two errors, the first one saying ‘your computer has not been found on the database and has failed to be joined to the domain’, in that case you have to retry joining it to the domain. The second time it is supposed to work, but after giving you the welcome message you can receive another error related to the DNS server. None of these errors is important and they do not change or modify the behavior of the windows computer in the future, these are just Communication ERRORS between Linux and Windows. If you receive the welcome message you are already in the domain, there is nothing to worry about.
x.      Then you are supposed to make the clinicadmin user a local administrator, to do that you have to go to Start->Control Panel->User Accounts->Manage another account then in there you can add clinicadmin from the domain clinic.com as a local administrator (this is one of the ways on doing this, but you can use the way you feel comfortable with if you know other)5. DHCP server: This service helps with the automatic configuration of the network in computers. The configuration file is also a manual that can be found in /etc/dhcp/dhcp.conf (Appendix II)
6. DNS server: This service helps with the translation of names to IP addresses and vice versa. There is a lot of documentation on internet, any way Webmin (https://192.168.1.51:10000) which will explained further on was used to configure it, but the following manual may serve to modify the server manually if is required: http://www.server-world.info/en/note?os=Debian_6.0&p=dnsthe names of the diferent hosts are: clinicserver50, clinicserver51 and fileserver should be resolvable from any computer, if the computer is not able to respond to this requests, then it needs to be reconfigured or there is a server or network problem. The configurationsusing webmin are attached as the Appendix III.
7. Proxy server: This service is used to control Internet browsing. It’s configuration file is also a manual (/etc/squid/squid.conf a copy on the backup server and you can find some Webmin picture as Appendix IV) and you can also find a lot of information to modify the server on Internet: http://www.server-world.info/en/note?os=Debian_6.0&p=squid

    8. Webmin: This is an administration platform that allows you to modify all the services on the server using a web interface. To access it on the local server you can do the following:
  • (if required) Configure your browser not to user proxy for local addresses.·         Open your browser and write in the address bar: https://192.168.1.51:10000
  • It will then prompt you for user name and password, enter the root user and password to gain access to the administration platform.
  • Webmin has a very simple interface, the main relevant aspects  for the sake of this project are:

The system is organised in a tree view with a lot more than what is being shown on this picture, but this picture shows the main modules that we should focus on; Boot and Shutdown, Change Passwords (not for Domain users, use this module only for the root user),  Samba server, Custom Commands (used mainly for managing Domain users and groups) Bind server, Bacula, DHCP server and Squid Proxy Server:

webmin linux web admin
 i.      Every time you modify a service restart the service so that the changes can take effect. Every module (server) on the main page has a button to restart it.
  •  To manage users and groups after logging-in to webmin go to ‘Others’-> Command Shell and execute the following commands.
Create a group of users:
smbldap-groupadd -a myuser
Create a user as part of a group:
smbldap-useradd -am -g domainadm lily

To modify a user and make it part of a group:
smbldap-usermod -g reception kgomotso
To create a password for a user go to Unused modules-> LDAP users and groups, click on the user name, it will open the user details for edition. On the password section select Normal password and then fill the text field with a password and click Save.
Existing groups of users:Directors, Managers, Reception, Rental, Sales, Accounts, Drawings, Consultants, Stores.
  9. Firewall: this service restricts internal unauthorized accesses to outside using a not very secure structure, but very usefull. IPTables firewall currently running on the server:
#Delete all Rules
iptables -t nat -F
iptables -F
#ebtables -F
#ebtables -t broute -F
#iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp –dport 80 -j REDIRECT –to-port 3128
#Deney External direct conection to HTTP, HTTPS, SQUID & 8080
iptables -A FORWARD -s 192.168.1.0/24 -i br0 -p tcp -m tcp –dport 80 -j DROP
iptables -A FORWARD -s 191.168.1.0/24 -i br0 -p tcp -m tcp –dport 8080 -j DROP
iptables -A FORWARD -s 191.168.1.0/24 -i br0 -p tcp -m tcp –dport 431 -j DROP
    10. Configuration of the back-up server Operating System: As explained above, the configuration of the back-up server’sOS and the domain-controller are similar. This server also hosts a virtualization service using VirtualBox to virtualize a Windows 7 Box to host Pastel payroll and Quickbooks. It also contains the backup system using bacula.
    11. Virtual box installation: from the official website www.virtualbox.org the installer for Debian 6 can be downloaded and also the official manual containing the installation instructions. It’s a straight forward process and the platform is not complex as it only needs to be used for one virtual machine.

 

  • On the file /etc/rc.local there is one command line near to the end of the file that automatically starts the Windows Virtual machine, this server also has a graphic environment that might help in case of failure.
    12. The Bacula service is installed to automatically backup the files on the client machines (find the Manualonhttp://www.lucasmanual.com/mywiki/Bacula#stop.2BAC8-delete.2BAC8-cancell_jobs  and Appendix V to see the configuration files). This service is divided in 4 parts or subsystems that are installed and work separately:

 

  • The bacula File Daemon or bacula-fd: is installed as the client part of the system on every computer (box) that needs a backup. The most important is the one installed on the domain controller that stores the homes of all the users and all the company folders. The configuration file is self-explained, and it’s located on /etc/bacula/bacula-fd.conf, in this file the client just needs to know the Director server (bacula-dir) and the security password for this server.A copy of the configuration file is attached as Appendix V-A.
  • The Bacula Storage Daemon or bacula-sd: is installed as the storage system for the backup data, this system only store and restores the things that the Director commands and it’s configured to do that on /home/bacula. It has more than 350 Gb of storage capacity and only needs to know where to store the files and the security password of the director to work. The configuration file can be found on the server on /etc/bacula/bacula-sd.conf.A copy of the configuration file is attached as Appendix V-B.
  • The Bacula Director or bacula-director: is the brain of bacula, it manages the entire backup and restoration works to be done, this service says who, when and how someone is going to do any back-up or recovery job. It checks the password configurations and executes jobs. The configuration file for this service can be found on /etc/bacula/bacula-dir.conf, inside this file you can find the passwords for the different clients, the storage daemon, the schedules, the storage devices and the clients definition, etc. A copy of the configuration file is attached as Appendix V-C.
  • The bacula console is the software that can be used to manually manage the server behaviour, the main commands are: bacula-console to login to the console, status client to see the status of any of the clients, status director to check how the director is working, status storage to check the storage daemon and run and restore to manually run commands of backup and restore.
  •  The work was done successfully and documented.
  • The servers had been working now for 6 moths with no interruptions, exept for the typical power breaks from Botswana.

glpi nginx php-fpm CentOS

10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “POST /install/install.php HTTP/1.1” 200 7740 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/jcrop/jquery.Jcrop.min.css HTTP/1.1” 200 2124 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/qtip2/jquery.qtip.min.css HTTP/1.1” 200 9203 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /css/jstree/style.css HTTP/1.1” 200 5934 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/select2/select2.min.css HTTP/1.1” 200 15531 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/rateit/rateit.min.css HTTP/1.1” 200 1130 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jquery/css/smoothness/jquery-ui-1.10.4.custom.min.css HTTP/1.1” 200 27173 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/spectrum-colorpicker/spectrum.min.css HTTP/1.1” 200 11281 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/jquery-gantt/css/style.css HTTP/1.1” 200 9181 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/fullcalendar/fullcalendar.min.css HTTP/1.1” 200 15251 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /css/jquery-glpi.css HTTP/1.1” 200 5149 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /css/styles.css HTTP/1.1” 200 71919 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jquery/js/jquery-1.10.2.min.js HTTP/1.1” 200 93107 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/backtotop/BackToTop.min.jquery.js HTTP/1.1” 200 1694 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/select2/select2.min.js HTTP/1.1” 200 66596 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/qtip2/jquery.qtip.min.js HTTP/1.1” 200 44847 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/jstree/jquery.jstree.min.js HTTP/1.1” 200 118249 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/rateit/jquery.rateit.min.js HTTP/1.1” 200 4474 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/jquery-ui-timepicker-addon/jquery-ui-timepicker-addon.min.js HTTP/1.1” 200 39853 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/jquery-file-upload/js/jquery.iframe-transport.min.js HTTP/1.1” 200 2109 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/jquery-file-upload/js/jquery.fileupload.min.js HTTP/1.1” 200 16680 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/jcrop/jquery.Jcrop.min.js HTTP/1.1” 200 15648 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/imagepaste/jquery.image_paste.min.js HTTP/1.1” 200 9578 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/spectrum-colorpicker/spectrum-min.js HTTP/1.1” 200 28156 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/jquery-gantt/js/jquery.fn.gantt.min.js HTTP/1.1” 200 30687 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/autogrow/jquery.autogrow-textarea.min.js HTTP/1.1” 200 1124 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/fullcalendar/lib/moment.min.js HTTP/1.1” 200 61317 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/fullcalendar/fullcalendar.min.js HTTP/1.1” 200 131347 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jquery/i18n/jquery.ui.datepicker-en-GB.js HTTP/1.1” 200 874 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/fullcalendar/locale/en-gb.js HTTP/1.1” 200 1896 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /script.js HTTP/1.1” 200 23298 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jquery/js/jquery-ui-1.10.4.custom.min.js HTTP/1.1” 200 228539 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /pics/warning.png HTTP/1.1” 200 528 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/tiny_mce/tinymce.min.js HTTP/1.1” 200 385081 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:01 -0400] “GET /lib/jqueryplugins/fullcalendar/fullcalendar.print.min.css HTTP/1.1” 200 1900 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”
10.0.2.2 – – [03/Sep/2017:05:44:02 -0400] “GET /css/print.css HTTP/1.1” 200 23767 “http://glpi.dev:8080/install/install.php” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36”