Running ASP.NET vNext on CentOS 7

Original post/ Curtsy: http://trydis.github.io/2015/01/06/running-aspvnext-centos7/

Running ASP.NET vNext on CentOS 7

For reference, here are the versions I used:

Mono: 3.10.0
KVM: Build 10017
KRE: 1.0.0-beta1
libuv: commit 3fd823ac60b04eb9cc90e9a5832d27e13f417f78

I created a new VM in Azure and used the image provided by OpenLogic. It contains an installation of the Basic Server packages.

Install Mono

Add the Mono Project GPG signing key:

$ sudo rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"

Install yum utilities:

$ sudo yum install yum-utils

Add the Mono package repository:

$ sudo yum-config-manager --add-repo http://download.mono-project.com/repo/centos/

Install the mono-complete package:

$ sudo yum install mono-complete

Mono on Linux by default doesn’t trust any SSL certificates so you’ll get errors when accessing HTTPS resources. To import Mozilla’s list of trusted certificates and fix those errors, you need to run:

$ mozroots --import --sync

Install KVM

$ curl -sSL https://raw.githubusercontent.com/aspnet/Home/master/kvminstall.sh | sh && source ~/.kre/kvm/kvm.sh

Install the K Runtime Environment (KRE)

$ kvm upgrade

Running the samples

Install Git:

$ sudo yum install git

Clone the Home repository:

$ git clone https://github.com/aspnet/Home.git
$ cd Home/samples

Change directory to the folder of the sample you want to run.

ConsoleApp

Restore packages:

$ kpm restore

Run it:

$ k run
Hello World

That was easy!

HelloMvc

Restore packages:

$ kpm restore

Run it:

$ k kestrel
System.DllNotFoundException: libdl
(Removed big stack trace)

Ouch, so I went hunting for libdl:

$ sudo find / -name libdl*
/usr/lib64/libdl.so.2
/usr/lib64/libdl-2.17.so

Create symbolic link:

$ sudo ln -s /usr/lib64/libdl.so.2 /usr/lib64/libdl

Run it again:

$ k kestrel
System.NullReferenceException: Object reference not set to an instance of an object
  at Microsoft.AspNet.Server.Kestrel.Networking.Libuv.loop_size () [0x00000] in <filename unknown>:0
  at Microsoft.AspNet.Server.Kestrel.Networking.UvLoopHandle.Init (Microsoft.AspNet.Server.Kestrel.Networking.Libuv uv) [0x00000] in <filename unknown>:0
  at Microsoft.AspNet.Server.Kestrel.KestrelThread.ThreadStart (System.Object parameter) [0x00000] in <filename unknown>:0

Progress, but now we need to get libuv working.

Install libuv

$ sudo yum install gcc
$ sudo yum install automake
$ sudo yum install libtool
$ git clone https://github.com/libuv/libuv.git
$ cd libuv
$ sh autogen.sh
$ ./configure
$ make
$ make check
$ sudo make install

Run it again:

$ k kestrel
System.NullReferenceException: Object reference not set to an instance of an object
  at Microsoft.AspNet.Server.Kestrel.Networking.Libuv.loop_size () [0x00000] in <filename unknown>:0
  at Microsoft.AspNet.Server.Kestrel.Networking.UvLoopHandle.Init (Microsoft.AspNet.Server.Kestrel.Networking.Libuv uv) [0x00000] in <filename unknown>:0
  at Microsoft.AspNet.Server.Kestrel.KestrelThread.ThreadStart (System.Object parameter) [0x00000] in <filename unknown>:0

I knew it had to be a path issue or something, so I went hunting for libuv:

$ sudo find / -name libuv.so
/home/trydis/libuv/.libs/libuv.so
/usr/local/lib/libuv.so

I then checked the library name Kestrel was looking for on Linux here and based on that i created a symbolic link:

$ sudo ln -s /usr/local/lib/libuv.so /usr/lib64/libuv.so.1

Run it again:

$ k kestrel
Started

Navigate to http://your-web-server-address:5004/ and pat yourself on the back!

HelloWeb

Restore packages:

$ kpm restore

Run it:

$ k kestrel
Started

Navigate to http://your-web-server-address:5004/.

 

Mono Project

http://www.mono-project.com/docs/web/aspnet/

ASP.NET

Mono has an implementation of ASP.NET 2.0, ASP.NET MVC and ASP.NET AJAX.

Quick Resources:

Mono’s ASP.NET implementations supports two kinds of applications:

  • Web Forms (Web Applications infrastructure).
  • Web Services (the SOAP-based RPC system).

Status and tests for ASP.NET 2.0 are available in our ASPTests page.

Running ASP.NET applications

To run your ASP.NET applications with Mono, you have three classes of options:

  • Apache hosting: use mod_mono, a module that allows Apache to serve ASP.NET applications.
  • FastCGI hosting: use the FastCGI hosting if you have a web server that supports the FastCGI protocol (for example Nginx) for extending the server. You also may use a web server that only has support for CGI using cgi-fcgi.
  • XSP: this is a simple way to get started, a lightweight and simple webserver written in C#.

For deploying applications, we recommend the use of the mod_mono or FastCGI approaches, as that will give you all the configuration options and flexibility that come with using Apache or a FastCGI server.

For quickly getting started, get familiar with Mono and ASP.NET, XSP is the ideal solution. Keep in mind that XSP is a very limited server and is only useful to get acquainted with ASP.NET and Mono, it only support HTTP 1.0 and does not provide much extensibility or configuration.

More advaned users can use the HttpListener and the ASP.NET hosting to create their own hosts for ASP.NET applications.

ASP.NET hosting with Apache

The mod_mono Apache module is used to run ASP.NET applications within the Apache web server.

The mod_mono module runs within an Apache process and passes all the requests to ASP.NET applications to an external Mono process that actually hosts your ASP.NET applications. The external ASP.NET host is called “mod-mono-server” and is part of the XSP module.

To use this, you must download and install the mod_mono and xsp components of Mono. mod_mono contains the actual Apache module, and xsp contains the actual ASP.NET hosting engine, both are available from our download page.

See the mod_mono page for details on installation and configuration.

ASP.NET hosting with Nginx

Nginx is a high-performance HTTP server which support running ASP.NET and ASP.NET MVC web applications through FastCGI protocol. See the FastCGI Nginx page for details on installation and configuration.

ASP.NET hosting with XSP

XSP is a standalone web server written in C# that can be used to run your ASP.NET applications with minimal effort. XSP works under both the Mono and Microsoft runtimes. The code is available from our download page (look for XSP web server) or from the git repository (module name: xsp).

The easiest way to start XSP is to run it from within the root directory of your application. It will serve requests on port 8080. Place additional assemblies in the bin directory. Other XSP options can be set on the command line, such as the application directory and the port to listen on.

XSP comes with a set of pages, controls and web services that you can use to test the server and see what ASP.NET looks like.

For example, once you install XSP, you can try some samples like this:

 $ cd /usr/lib/xsp/test
 $ xsp
 Listening on port: 8080
 Listening on address: 0.0.0.0
 Root directory: /home/cvs/mcs/class/corlib/Microsoft.Win32
 Hit Return to stop the server.

You can now browse to http://localhost:8080 and see various sample programs

SSL support in XSP

XSP supports SSL and TLS Client Certificates. For further details about setting it up, see the UsingClientCertificatesWithXSP document.

Configuration

Applications can be configured through the web.config file, the full documentation is available from MSDN, and also a Mono-specific version is available on this site here.

Additionally, you can configure Mono-specific ASP.NET settings (to have applications that behave differently depending on the operating system they are deployed in) using the ASP.NET Settings Mapping engine.

Other extensions

Check out ASP.NET Modules for details on how to support deflate/gzip encodings and authentication.

Debugging

By default xsp and xsp2 run in Release mode, which means that debugging line-number information will not be available in stack traces when errors occur.

To obtain line numbers in stack traces you need to do two things:

  1. Enable Debug code generation in your page. 2. Run Mono with the –debug command line option.

You must enable debug code generation in your page using the Debug=”true” in the top of your page, or setting the compilation flag in Web.config (compilation option).

Use the –debug command line option to Mono, this is done by setting the MONO_OPTIONS environment variable, like this:

$ MONO_OPTIONS=--debug xsp2
Listening on port: 8080 (non-secure)
Listening on address: 0.0.0.0
Root directory: /tmp/us
Hit Return to stop the server.

To do the same with the Apache mod_mono module, use the MonoDebug true directive in your apache configuration file.

Supported Versions

Mono supports ASP.NET 2.0, ASP.NET AJAX and a handful of 3.5 controls.

Limitations

Mono’s ASP.NET does not implement the following features:

  • Precompiled updatable web sites.
  • WebParts APIs.

Work in Progress

git access

Users interested in the latest version of mod_mono and xsp can retrieve these from our public git repository. The module names are mod_mono and xsp respectively. You will also need to check out the mcs module as the System.Web classes are in mcs/class/System.Web.

Designer

There is work in progress on an ASP.NET Designer the designer will eventually be integrated into the MonoDevelop IDE.

ASP.NET Apache setup on CentOS

Original Post/ Curtsy: http://jharitesh.blogspot.com/2012/06/aspnet-apache-setup-on-centos.html

To run ASP.NET application on Apache mod_mono module should be installed and configured on Apache.
All .NET pages are actually processed by mono which runs in background along with Apache. Apache identify .Net request page with help of mod_mono module. I used centOS as OS and performed following steps to run ASP.NET application on Apache.

  • Mono installation
  • XSP installation
  • Apache installation
  • mod_mono installation
  • Configuration

Mono installation
1. yum install gcc bison pkgconfig glib2-devel gettext make

2. Please check latest mono version on site before installation and edit command with latest version.   wget http://ftp.novell.com/pub/mono/sources/mono/mono-2.10.2.tar.bz2

3. tar jxvf mono-2.10.2.tar.bz2

4. cd mono-2.10.2

5. ./configure -prefix=/opt/mono; make; make install

6. echo export PKG_CONFIG_PATH=/opt/mono/lib/pkgconfig:$PKG_CONFIG_PATH>>~/.bash_profile

7. echo export PATH=/opt/mono/bin:$PATH>>~/.bash_profile

8. source ~/.bash_profile

9. mono -V

to check mono is installed or not

10. cd ..
XSP installation

1. wget http://ftp.novell.com/pub/mono/sources/xsp/xsp-2.10.2.tar.bz2 2. tar jxvf xsp-2.10.2.tar.bz2 3. cd xsp-2.10.2 4. ./configure -prefix=/opt/mono; make; make install 5. cd ..

Apache installation

  1. yum -y install httpd-devel

mod_mono installation  

1. wget http://ftp.novell.com/pub/mono/sources/mod_mono/mod_mono-2.10.tar.bz2 2. tar jxvf mod_mono-2.10.tar.bz2 3.  cd  mod_mono-2.10 4. ./configure –prefix=/opt/mono; make; make install 5. cd ..

 Configuration

  1. mono_setup configuration: create mono_setup.conf under directory /etc/httpd/conf.d with below content.

Include /etc/httpd/conf/mod_mono.conf

MonoApplications “/:/var/www/html/”

MonoServerPath “/opt/mono/bin/mod-mono-server2”

 

Options FollowSymLinks

AllowOverride None

AddHandler mono .aspx .ascx .asax .ashx .config .cs .asmx .axd

 

  1. Apache configuration: 

1) Open /etc/httpd/conf/httpd.conf and uncomment below line(remove ‘#’).

NameVirtualHost *:80

Extra setting:

I like Ubuntu way to enable disable site so I added this in here too.

2) Add below line

Include /etc/httpd/sites-enabled/

3) Create two directory inside /etc/httpd using below command

mkdir /etc/httpd/sites-enabled
mkdir /etc/httpd/sites-available

4) Type following to create new file a2ensite
    1) cat > a2ensite
2) Type this line
ln -s /etc/httpd/sites-available/$1.conf   /etc/httpd/sites-enabled/$1.conf

3) Press enter to move cursor to a new line and press CTRL+D.
4) Type this  command to make a2ensite executable
chmod   +x   a2ensite
5) Copy into /usr/bin
cp a2ensite /usr/bin

Type following to create new file a2dissite
    1) cat > a2dissite
2) Type this line
rm       -f          /etc/httpd/sites-enabled/$1.conf

3) Press enter to move cursor to a new line and press CTRL+D.
4) Type this  command to make a2ensite executable
chmod   +x   a2dissite
5) Copy into /usr/bin
cp          a2dissite         /usr/bin

3.Config application

Each application will have own separate config in directory  /etc/httpd/sites-available
sample application config file: file path is /etc/httpd/sites-available/name.xyz.com

    ServerAdmin xxxx.yyy@name.xyz.com

DocumentRoot /var/www/name.xyz.com

DirectoryIndex Default.aspx

ServerName name.xyz.com

ServerPath /

MonoAutoApplication disabled

MonoApplications “/:/var/www/name.xyz.com”

MonoServerPath “/opt/mono/bin/mod-mono-server2”

AddHandler mono .aspx .ascx .asax .ashx .config .cs .asmx .axd

ErrorLog /var/log/httpd/ name.xyz.com-error_log

CustomLog /var/log/httpd/ name.xyz.com-access_log common

 

In sample config application root directory is var/www/name.xyz.com i.e all application files will be kept in folder name.xyz.com.

4. Deployment 
    1) create directory /var/www/name.xyz.com
2) Copy application folder content into directory /var/www/name.xyz.com
3) Type below command to enable web-application in apache

#a2ensite name.xyz.com

#service apache2 restart
4)  Type below command to disable web-application in apache.
#a2dissite name.xyz.com

#service apache2 restart
Note: file name should be same as what we create in /etc/apache2/sites-available.

5) Other useful commands
To start apache  #service httpd start
To restart apache #service httpd restart
To stop apache #service httpd stop
To check mono is running in background or not  #ps -ef |grep -i “mono”

I also came across few issues during setup and got good solution from other forums. Here are collectively all issues.

  1. After deployment & restart of apache when we try to access page ….it is shown as blank page.

Apache error log contains following errors:

[crit] (2)No such file or directory: Failed to create shared memory segment for backend ‘testing’ at ‘/var/run/mod_mono/mod_mono_dashboard_testing_2’.

It is actually thrown because it is failing to create shared memory. Mono run as user apache but only root can write to /var/run. So solution is to create a folder and make apache owner.

  1. After solving 1st error when we try to access page from browser it throws error “Service Temporarily Unavailable”. In apache error log below error is shown.

” [error] Failed to connect to mod-mono-server after several attempts to spawn the process.”

solution: This is because of SELinux. By disabling SELinux using following command this issue can be resolved.

# setenforce 0

Script for above two issue is as follows.

dir=”/var/run/mod_mono/”

echo “Disable SELinux”
setenforce 0
echo -n “SELinux status is ”
/usr/sbin/getenforce
echo “Stopping Apache”
apachectl stop
echo “Waiting 5 seconds”
sleep 5s
shopt -s dotglob
if [ -d “$dir” ]; then
echo “Removing $dir”
rm -rf “$dir”*
rmdir “$dir”
fi
echo “Creating $dir”
mkdir “$dir”
echo “Changing owernerhip of $dir to Apache”
chown apache “$dir”
chgrp apache “$dir”

chown             -R apache   /opt/mono/
mkdir   -p        ~apache/.mono
chown  -R        apache:apache    ~apache/.mono
chmod             u+rw    ~apache/.mono
echo “Starting Apache”
apachectl start
echo “Done!”

Above script will run only when system start or reboot.

  1. Error message “Make sure that your mod_mono module is loaded after the User/Group directives” is thrown when we start/restart apache. [1]

soln : Put below statement just above “Include conf.d/*.conf” in httpd.conf

User apache
Group apache

and then restart apache httpd service.

  1. Error message ” Starting httpd: httpd: Could not reliably determine the server’s fully qualified domain name, using localhost.localdomain for ServerName”

Do following
1) Edit /etc/hosts using your favourite editor The contents should look something like this: # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost ::1 localhost6.localdomain6 localhost6
2).
At the end of the file add: 192.168.20.100 Server1.example.com That’s a [tab] between the IP address and the host name.
3) Save the file
4) Restart the network services to apply your changes service network restart
5)
Restart Apache service httpd restart

  1. Error message “Auto generated encryption keys not saved: System.Security.SecurityException: No access to the given key”

Reason :ASP.NET is creating auto generated keys for the machine and failing to safe them. The only problem, other that seen that message, is that every time the application is started it will get new keys because they are not being saved.

The directory where this is trying to write is somewhere $SYSCONFDIR/mono/registry (usually /etc/mono/registry). If it allow the user running apache read, write, and execute permissions on that folder, Mono will be able to save the auto generated keys and will reuse them subsequently. Once the keys are written, the apache user will only need read and execute permission.

Solution:
chown             -R apache /opt/mono/
mkdir   -p        ~apache/.mono
chown  -R        apache:apache  ~apache/.mono
chmod             u+rw  ~apache/.mono

The auto-generated keys are now being stored at: “/var/www/.mono/registry/”

Setting up ASP.NET on CentOS 6.x

Original post/ curtsy: https://jefferytay.wordpress.com/2015/08/23/setting-up-asp-net-on-centos-6-x/

With vNext, we are now finally able to run asp.net on Linux!

 

This is done via the MONO framework, which has been around for ages. However as it is with bleeding edge technologies, the setup can be rather cumbersome.

 

Here is the script that you can use to install the latest version of everything and set it up nicely on a minimal setup CentOS box (which is what most servers typically use).

Full source can be found at http://pastebin.com/aTxQne2n

 

##################################################################
# For minimal setup of CentOS 6.5/6.6
##################################################################

##################################################################
# Basic Server essentials
##################################################################
yum -y update
yum -y install yum-utils epel-release
yum clean all && yum makecache
yum -y groupinstall ‘Development tools’

##################################################################
# Install Mono (Latest Version)
##################################################################
yum -y install git autoconf libtool automake build-essential gettext
git clone git://github.com/mono/mono.git
cd mono
./autogen.sh –prefix=/usr/local
make get-monolite-latest
make EXTERNAL_MCS=”${PWD}/mcs/class/lib/monolite/gmcs.exe
make
make install

##################################################################
# Install LibUV (Latest Version)
##################################################################
yum -y install gcc automake libtool
git clone https://github.com/libuv/libuv.git
cd libuv
sh autogen.sh
./configure
make
make install
ldconfig

##################################################################
# Install Node (Latest Version)
##################################################################
yum remove -y nodejs npm
curl -sL https://rpm.nodesource.com/setup | bash –
yum install -y nodejs

##################################################################
# Install Yeoman and Generator Support (Latest Version)
##################################################################
yum -y install npm

#update npm to latest
npm install -g npm@latest
npm install -g yo

#install Generator support
npm install -g generator-aspnet

##################################################################
# Install DNVM (Latest Version)
##################################################################
yum -y install unzip
curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh
source ~/.dnx/dnvm/dnvm.sh

##################################################################
# Update Mozilla Root Server Certificates
##################################################################
mozroots –import –sync

## for dnu restore to work more reliably, increase concurrent threads
echo -e ‘\r\n## Enable greater Mono concurrency (helps dnu restore)\r\nexport MONO_THREADS_PER_CPU=2000’ >> ~/.bashrc

## dnx needs this to load libuv on CentOS (why not on Ubuntu?)
echo -e ‘\r\n## dnx needs this to load libuv on CentOS (why not on Ubuntu?)\r\nexport LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH’ >> ~/.bashrc

## done – print final instructions
echo -e ‘\r\nDone installing ASP.NET 5 prerequisites and DNVM.\r\nOpen new shell environment\r\nor\r\n$ source .bashrc to keep using this one.\r\n’

JasperReports with PHP Example step by step using iReport

Original Post/ Curtsy: http://chathurangat.blogspot.com/2012/03/jasperreports-with-php.html

JasperReports with PHP

Today i am going to write this article on the use of JasperReports in PHP as a reporting tool. Here i have used IReport-4.5.0 IDE for designing the JasperReport Template (known as jrxml file).In addition, you require a PHP library(third party) that generates PDF reports from the given jrxml document. this library can be downloaded from the following Git Repository
or else you can downloaded through following link

In order to design the template, please follow the steps given below.

1. load the IReport Designer tool
(executable file is available inside the bin directory)

2.after loading the IReport Tool,select new report template to start the report designing.
(File -> New)
then you will get a new window with a list of available report templates. select a template out of the available templates. in my case i have selected the Blank A4 template. please refer below.

then click the Launch Report Wizard to load the selected report template.

3. then give a Report Name and browse a Location where the report file (jrxml file) should be saved.  Please refer below.

4. then click on Next to proceed with next phase. please refer below.

As you can see in the Screen-shot, you will be displayed a list of available data source connections that can be used in your report. if you wish to create a new data source connection, you are free to do so by clicking New button.

5. if you click the New button to create new data source, you will be shown the below screen to select the the data source type. ( the data source type should be selected based on the application requirements. ) since this is PHP based web application, i have selected Database JDBC Connection as the data source type.


6. once you select the data source, click on next to proceed with next step. next will be the below screen.
here you have to provide the JDBC connection details.
 Name : just give any name for this connection for later reference  identification purpose
JDBC Driver:  select the most suitable JDBC driver from the given list based on your database. since i am using MySQL server database, i have selected  MySQL-JDBC Driver.
JDBC URL: make sure to edit the jdbc url based on your sever and database name. the default value of the jdbc url does not change, based on the value you provided for server and database. therefore please edit it manually.
 
Server Address : IP Address of the database sever. if the database is in your local machine, use localhost as IP.
Database : Database name that you are going to connect.
username: Username of the database server.
password : Password of the database server.
after filling all the configuration details, you can test the database conncetion by clicking the Test button provided. sometimes it may ask you to re-enter the database password. if the connection is successful, you will get a successful message as follows. then you can Save your new data source connection.
 7. then you can use your newly created data source for designing the query for your report. select the newly created data source and press Design Query button. then you will get the below window for designing the Query.
you will see a list of tables available in the connected database. you can Drag and Drop these tables to the provided area for designing the Query. then customize the columns displayed in the report by using the check boxes provided for each column.

8. once the Query is designed, press OK to finish it. the click Next to proceed with next phase. then next step is to select the required fields for your report out of the available all resulted columns of the Query you designed. add and remove the required database columns for your report with the provided button. please refer the below screen shot.

9. after completing the above operation, you can press Next button for continue with next phase. next phase is for applying the Group By clause for the report view. then phase is optional and you can skip this step by clicking just Next button. then the initial process of the report design is finished and you will be notified with the below screen. jut click on finish button.

10. then it will load and display the created .jrxml file. you are required to remember that this is the file that contains your report template. you can design the report as you wish by providing preferable title, footer and other required fileds.

11. the designing utilities are available in the Report Inspector window. please refer below screen shot.

as you can see that the selected database column fields are available under the Fields. you can drag and drop the database fields in into the Detail1 Section of your Report.Once you drag a database field, its column header section will be automatically visible underColumn Header section. In addition, the data field is visible under the Detail 1 Section. you can edit the column name as you wish.

12. Once the Design is done, you can preview the design using the Preview button.

13. The Report design elements are available in the palette window. you can get the palette window Window -> Palette

14. Once all the design is done, the it is time to integrate with your PHP application. make sure to download and import the PhpJasperLibrary in your PHP script. (copy both.jasper and .jrxml files into a same directory and give the reference in the PHP script)

report_view.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
//Import the PhpJasperLibrary
include_once('PhpJasperLibrary/tcpdf/tcpdf.php');
include_once("PhpJasperLibrary/PHPJasperXML.inc.php");
//database connection details
$server="192.168.0.11";
$db="lcs_ims";
$user="web";
$pass="abc123@#";
$version="0.8b";
$pgport=5432;
$pchartfolder="./class/pchart2";
//display errors should be off in the php.ini file
ini_set('display_errors', 0);
//setting the path to the created jrxml file
$xml=  simplexml_load_file("report/chathuReport.jrxml");
$PHPJasperXML= newPHPJasperXML();
//$PHPJasperXML->debugsql=true;
//$PHPJasperXML->arrayParameter=array("parameter1"=>1);
$PHPJasperXML->xml_dismantle($xml);
$PHPJasperXML->transferDBtoArray($server,$user,$pass,$db);
$PHPJasperXML->outpage("I");    //page output method I:standard output  D:Download file
?>

access the report_view.php file in your LAMP/WAMP server. yo will get the report in PDF format.

Hope this will helpful for you!

Thanks and Regards,

Md. Nazim Uddin
Original Post: http://www.webprogrammingtips.com/index.php/tag/jasper-reportsexample-step-by-step-using-ireport/

Jasper reports:Example step by step using iReport

JasperReports(iReport) run with PHP & Database Oracle

August 2015    Jasper, ORACLE, PHP, XML

You can run iReport in your Oracle based PHP Application

1.      PHP Jasper Library (No required Jasper Report Server)

2.      PHP JAVA Bridge

3.      Web Service(Required Jasper Report Server)

Now I describe how to run iReports with your Oracle Based PHP Application using PHP Jasper Library

1.      Download PHP Jasper Library

2.      Create a Report folder in your application

3.      Unzip it  into Report Folder

4.      Create a Sample iReport which fetch data from Oracle Database

5.      Create DSN to connect Oracle Using ODBC( No required DSN if DB is Mysql

Show Video for How to create DSN to connect Oracle Database using ODBC

6.      Create a report_view.php page with following Script

<?php

//Import the PhpJasperLibrary

include_once(‘PhpJasperLibrary/tcpdf/tcpdf.php’);

include_once(“PhpJasperLibrary/PHPJasperXML.inc.php”);

//database connection details

$server=”192.168.0.11″;

$db=”screen”;

$user=”screen”;

$pass=”abc123@#”;

$version=”0.8b”;// User for Mysql

$pgport=5432;

$pchartfolder=”./class/pchart2″;

//display errors should be off in the php.ini file

ini_set(‘display_errors’, 0);

//setting the path to the created jrxml file

$xml =  simplexml_load_file(“report/sampleReport.jrxml”);

$PHPJasperXML = new PHPJasperXML();

//$PHPJasperXML->debugsql=true;

//$PHPJasperXML->arrayParameter=array(“parameter1″=>1);

$PHPJasperXML->xml_dismantle($xml);

//Mysql

//$PHPJasperXML->transferDBtoArray($server,$user,$pass,$db);// Mysql Default

//Oracle

$odbc_name=’screen’;

// For using Oracle , DSN create  First

$PHPJasperXML->transferDBtoArray($server,$user,$pass,$odbc_name,’ODBC’);//

$PHPJasperXML->outpage(“I”);    //page output method I:standard output  D:Download file

?>

access the report_view.php file in your LAMP/WAMP server. yo will get the report in PDF format.

PHP Tutorial Laravel 4 Framework Install on Windows

Curtsy: http://www.bogotobogo.com/php/Laravel4/php_laravel4_framework_install_on_Windows.php
php version

The laravel requires php5.3.7+. So, we need to check, php -v:

PHP 5.4.27 (cli) (built: Apr  3 2014 00:56:21)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

It looks OK.

Download laravel from git

We need to download Laravel from: https://github.com/laravel/laravel/archive/master.zip.

Extract laravel

Extract Laravel into the C:\Apache2\htdocs\ which is a DocumentRoot:

Download composer

Download Composer from: https://getcomposer.org/Composer-Setup.exe

Enable openssl

Enable openssl from all php.ini

;extension=php_openssl.dll =>
extension=php_openssl.dll
Install composer

Install Composer into the directory where php.exe is located, C:\php
Composer_setup.png

Enabling PHP Extensions

The following PHP Extensions in C:\php\ext should be enabled: php_curl and php_socket.

Edit C:\php\php.ini file:

extension=php_curl.dll
extension=php_sockets.dll

 

Download and install the framework’s dependencies.

Now, run the composer install command in the root of our manually created project directory (where we extracted Laravel). So, on cmd prompt:

C:\Apache2\htdocs\bogotobogo\Laravel\auth>cd ..
C:\Apache2\htdocs\bogotobogo\Laravel>composer create-project laravel/laravel auth --prefer-dist
Install finished

Here are the directory and file structure under htdocs dir:
hpdocs_dir.png

bogo_dir.png

Laravel_dir.png

auth_dir.png

Let’s see how the browser will do when we type in
http://localhost/bogotobogo/Laravel/auth/public/:
public_dir_final.png

OK, that’s it!

Install phpMyAdmin

We need phpMyAdmin as well.
phpMyAdmin.png

If we want to bypass the login session and directly go into the phpMyAdmin, we need to renameconfig.sample.inc.php to <b.config.inc.php< b=””>and then edit it:

/*
 * Servers configuration
 */
$i = 0;

/*
 * First server
 */
$i++;
/* Authentication type */

$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'root_password'; 
$cfg['Servers'][$i]['auth_type'] = 'config';

Now, if we type in localhost/phpMyAdmin, we get this:
phpMyAdmin_direct.png

How you can run your codes online without installing any IDE/ software

[http://www.tutorialspoint.com/online_dev_tools.htm]

Here are some great websites for compiling and executing your code online

While some compilers are easy to install and use, some of them are expensive to memory and RAM. The solution is to compile the code online, run it and download the executable to your computer by using an online IDE. A list of such websites is following:

IDEOne

http://ideone.com/

Ideone is an online compiler and debugging tool which allows you to compile source code and execute it online in more than 60 programming languages. These include C, C++, C#, Objective C, Java, Pascal, Perl, PHP, Ada, COBOL, FORTRAN, Bash(Bash is a shell used in Linux) etc.’
IDE

CodePad

http://codepad.org/

codepad.org is an online compiler/interpreter, and a simple collaboration tool. It’s a pastebin that executes code for you. You paste your code, and codepad runs it and gives you a short URL you can use to share it. Paste the URL into chat or email to get help or to show someone how to do something. Or just try things out when you don’t have an interpreter handy. It works well on many phones.
The languages supported include C, C++, Perl, PHP, Python etc.
IDE

Compile-Online

It is another great online IDE with support for almost every well known programming languageIDE.

JDoodle

https://www.jdoodle.com/

“Online compiler and Editor for Java, C, C++, Perl, PHP, Python and More…”

IDE

With these sites you will just need an internet connection to run your code and you can avoid all issues which are invoked after installation of compiler or interpreter software.

If a website which deserves a place in this list and has been missed by us, let us know in the comments.

SQL Server: SELECT TOP Statement (TOP n th Position) by using WITH TIES

SELECT TOP 8000 WITH TIES  *
FROM [Hall_Info].[dbo].[ug_applicant_general_info]
ORDER BY HSC_TOTAL DESC, HSC_MATH_GP DESC, HSC_PHY_GP DESC, HSC_CHEM_GP DESC, HSC_ENG_GP DESC, SSC_GPA_MARKS_OBTAINED DESC

[Curtsy] Original Post: http://www.techonthenet.com/sql_server/select_top.php

SQL Server: SELECT TOP Statement

This SQL Server tutorial explains how to use the SELECT TOP statement in SQL Server (Transact-SQL) with syntax and examples.

Description

The SQL Server (Transact-SQL) SELECT TOP statement is used to retrieve records from one or more tables in SQL Server and limit the number of records returned based on a fixed value or percentage.

Syntax

The syntax for the SELECT TOP statement in SQL Server (Transact-SQL) is:

SELECT TOP (top_value) [ PERCENT ] [ WITH TIES ]
expressions
FROM tables
[WHERE conditions]
[ORDER BY expression [ ASC | DESC ]];

Parameters or Arguments

TOP (top_value)
Returns the top number of rows in the result set based on top_value. For example, TOP(10) would return the top 10 rows from the full result set.
PERCENT
Optional. If PERCENT is specified, then the top rows are based on a percentage of the total result set (as specfied by the top_value). For example, TOP(10) PERCENT would return the top 10% of the full result set.
WITH TIES
Optional. If the WITH TIES clause is specified, then rows tied in last place within the limited result set are returned. This may result in more rows be returned than the TOP parameter permits.
expressions
The columns or calculations that you wish to retrieve.
tables
The tables that you wish to retrieve records from. There must be at least one table listed in the FROM clause.
WHERE conditions
Optional. The conditions that must be met for the records to be selected.
ORDER BY expression
Optional. It is used in the SELECT TOP statement so that you can order the results and target those records that you wish to return. ASC is ascending order and DESC is descending order.

Example – Using TOP keyword

Let’s look at a SQL Server example, where we use the TOP keyword in the SELECT statement.

For example:

SELECT TOP(5)
employee_id, last_name, first_name
FROM employees
WHERE last_name = 'Anderson'
ORDER BY employee_id;

This SQL Server SELECT TOP example would select the first 5 records from the employees table where the last_name is ‘Anderson’. If there are other records in the employees table that have a last_name of ‘Anderson’, they will not be returned by the SELECT statement.

You could modify this example to include the WITH TIES clause as follows:

SELECT TOP(5) WITH TIES
employee_id, last_name, first_name
FROM employees
WHERE last_name = 'Anderson'
ORDER BY employee_id;

The WITH TIES clause would include rows that may be tied in last place within the limited result set. So if the 5th top record is a tie, then all records in this tie position would be returned by the SELECT TOP statement. This will result in more than 5 records being returned.

Example – Using TOP PERCENT keyword

Let’s look at a SQL Server example, where we use the TOP PERCENT keyword in the SELECT statement.

For example:

SELECT TOP(10) PERCENT
employee_id, last_name, first_name
FROM employees
WHERE last_name = 'Anderson'
ORDER BY employee_id;

This SQL Server SELECT TOP example would select the first 10% of the records from the full result set. So in this example, the SELECT statement would return the top 10% of records from the employees table where the last_name is ‘Anderson’. The other 90% of the result set would not be returned by the SELECT statement.

You could modify this example to include the WITH TIES clause as follows:

SELECT TOP(10) PERCENT WITH TIES
employee_id, last_name, first_name
FROM employees
WHERE last_name = 'Anderson'
ORDER BY employee_id;

The WITH TIES clause would include rows that may be tied in last place within the limited result set. So if the last position in the SELECT TOP(10) PERCENT record set is a tie, then these tied records would be returned by the SELECT TOP statement. This will result in more than 10% of the full record set being returned.