# sample php app ### Getting started with a sample php app on Eenos This guide will help you to create a sample php app for the Eenos hosting control panel. The PHP apps are generic php apps. #### Download an Example PHP App You can download an example Eenos PHP App from [here: samplephpapp.tar.gz](https://download.eenos.com/apps/sample-php-app/samplephpapp.tar.gz) #### app.conf The first step is to create the app.conf . An example of **samplephpapp** is given below : ```ini [settings] # All the settings fields are mandatory # The Name of the parent folder of the app. # The name may contain letters, digits, hyphen and underscore # The name always starts with a letter and a length of 20 characters. name = samplephpapp # The menu name that will be showing inside the control panel pages # Maximum menu name length is 24 characters. menu = A Sample PHP App # A description about the app. What is the use of this app ? # Maximum length of description is 6o characters. description = This is a sample PHP app for testing purpose # The programming language , currently support python or php only # If this is a Python Django app use python # if this is a PHP app chose , php # Accepted values [ python , php] language = php # This app version number version = 1.0.0 # The version_check_url is a remote url shows the available current version of the app # This url must give the version number as plain text output # This version should ensure if the app is up-to-date version_check_url = https://download.eenos.com/apps/sample-php-app/version.txt # The auto update script path used to update the scripts # You can place this in ,/scripts/ folder so that will be installed auto_update = /usr/local/eenos/scripts/samplephpapp_update [wap] # The general settings for WAP admin app # To enable or disable this app in admin panel # Supported values ,[ on , off ] status = on # If you wish to open the app in new browser window during a click action # from the control panel # Supported values [ off, on] , default off open_new_window = on [rapp] # The general settings for RAPP - Reseller control panel app # To enable or disable this app in reseller panel # Supported values ,[ on , off ] status = on # If you wish to open the app in new browser window during a click action # from the control panel # Supported values, [ off, on] , default off open_new_window = on [uapp] # The general settings for UAPP - User control panel app # To enable or disable this app in user panel # Supported values, [ on , off ] status = on # If you wish to open the app in new browser window during a click action # from the control panel # Supported values [ off, on] , default off open_new_window = on ``` You should set the **language** with value **php** for a PHP app. #### Files and destination of php app - samplephpapp The following table will let you know where the files will be placed during app installation time.
**Sample App Item****Location to place****Description**
./hooks/\*/var/eenos/hooks/ All hook scripts of the app
./scripts/\*/usr/local/eenos/scripts/All scripts of the app
./wap/samplephpapp/usr/local/eenos/3rdparty/apps/wap/samplephpappThe admin panel plugin files
./rapp/samplephpapp/usr/local/eenos/3rdparty/apps/rapp/samplephpappThe reseller panel plugin file
./uapp/samplephpapp/usr/local/eenos/3rdparty/apps/uapp/samplephpappThe user panel app files
./static/samplephpapp/usr/local/eenos/wap/public/static/default/samplephpappAdmin panel static files
./static/samplephpapp/usr/local/eenos/rapp/public/static/default/samplephpappReseller panel static files
./static/samplephpapp/usr/local/eenos/uapp/public/static/default/samplephpappUser panel static file
./vhosts/wap.samplephpapp.conf/usr/local/eenos/etc/eenosd/wap.samplephpapp.confThe admin panel nginx vhost
./vhosts/rapp.samplephpapp.conf/usr/local/eenos/etc/eenosd/rapp.samplephpapp.confReseller panel nginx vhost
./vhosts/uapp.samplephpapp.conf/usr/local/eenos/etc/eenosd/uapp.samplephpapp.confUser panel nginx vhost
The static files are common files that will be copied into the three control panel interface static folders. #### App folder structure An example folder structure of php app, samplephpapp is as follows, ```bash # tree samplephpapp samplephpapp ├── app.conf ├── hooks ├── LICENSE ├── post │   └── 02-post.sh ├── pre │   └── 01-ps.sh ├── rapp │   └── samplephpapp │   ├── index.php │   └── starter-template.css ├── README ├── requirements.txt ├── scripts │   └── samplephpapp-scripts.sh ├── static │   └── samplephpapp │   ├── css │   │   ├── bootstrap.min.css │   │   ├── bootstrap.min.css.map │   │   ├── bootstrap.rtl.min.css │   │   └── bootstrap.rtl.min.css.map │   └── js │   ├── bootstrap.bundle.min.js │   └── bootstrap.bundle.min.js.map ├── uapp │   └── samplephpapp │   ├── index.php │   └── starter-template.css ├── vhosts │   ├── rapp.samplephpapp.conf │   ├── uapp.samplephpapp.conf │   └── wap.samplephpapp.conf └── wap └── samplephpapp ├── index.php └── starter-template.css ``` #### Python requirements You can place all your pip requirements for your python app inside the file **requirements.txt** #### Pre-installation scripts Put all your pre-installation scripts of the plugin inside the folder **pre/** #### Post-installation scripts Place all your post plugin installation scripts inside the folder **post/** #### scripts Place all scripts related to your plugin in the folder **scripts/** #### hooks Place all your hooks for Eenos inside the folder **hooks/** #### Vhosts Place all your nginx vhost files inside the folder **vhost/** #### Manage Authentication in PHP Apps You can authenticate the php apps using the **php pam** module or a custom preg function. The sample code is as follows, ##### PAM Authentication ```php **[Manage Apps](https://docs.eenos.com/books/eenos-apps-plugins/chapter/manage-apps "Manage Apps")** page.