Tag Archives: LAMP

Create XML pingomatic for your PHP project

Ping-O-Matic is a service to update different search engines that your blog has updated.

Here is simple way to do that:

 <?php
/**
 * XML Pingomatic
 *
 * @category  Model
 * @author    Md. Sirajus Salayhin <salayhin@gmail.com>
 *
 */
 
class xmlPingoMatic
{
    public function pingoMatic($debug = false)
    {
 
        $sql = "SELECT DISTINCT * ,DATE_FORMAT(date, '%Y-%m-%dT%H:%i:%s+00:00') AS new_date FROM articles
                    WHERE articles.status =  0
                    AND DATE_FORMAT(date, '%Y-%m-%d') = CURDATE() ORDER BY articles.id DESC";
        $res = mysql_query($sql);
 
 
        while ($row = mysql_fetch_assoc($res)) {
 
            $data[] = $row;
        }
 
        $content = '';
        $content .= '<?xml version="1.0"?>';
        $content .= '<methodCall>';
        $content .= '<methodName>weblogUpdates.ping</methodName>';
        $content .= '<params>';
 
        for ($i = 0; $i < count($data); $i++) {
            $content .= '<param>';
            $content .= '<value>' . $data[$i]['title'] . '</value>';
            $content .= '</param>';
            $content .= '<param>';
            $content .= '<value>' . 'http://www.yourdomain.com/article.php?id=' . $data[$i]['id'] . '</value>';
            $content .= '</param>';
        }
 
        $content .= ' </params>';
        $content .= '</methodCall>';
 
        $headers = "POST / HTTP/1.0\r\n" .
            "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1) Gecko/20090624 Firefox/3.5 (.NET CLR 3.5.30729)\r\n" .
            "Host: rpc.pingomatic.com\r\n" .
            "Content-Type: text/xml\r\n" .
            "Content-length: " . strlen($content);
 
        if ($debug) nl2br($headers);
 
        $request = $headers . "\r\n\r\n" . $content;
        $response = "";
        $fs = fsockopen('rpc.pingomatic.com', 80, $errno, $errstr);
        if ($fs) {
            fwrite($fs, $request);
            while (!feof($fs)) $response .= fgets($fs);
            if ($debug) echo "<xmp>" . $response . "</xmp>";
            fclose($fs);
            preg_match_all("/<(name|value|boolean|string)>(.*)<\/(name|value|boolean|string)>/U", $response, $ar, PREG_PATTERN_ORDER);
            for ($i = 0; $i < count($ar[2]); $i++) $ar[2][$i] = strip_tags($ar[2][$i]);
            return array('status' => ($ar[2][1] == 1 ? 'ko' : 'ok'), 'msg' => $ar[2][3]);
        } else {
            if ($debug) echo "<xmp>" . $errstr . " (" . $errno . ")</xmp>";
            return array('status' => 'ko', 'msg' => $errstr . " (" . $errno . ")");
        }
 
    }
}

Create sitemap for PHP project

For Search Engin Optimization you need to create site map for your website. Here is a simple class example to do that.

 <?php
 
/**
 * Create Site map
 *
 * @category  Model
 * @author    Md. Sirajus Salayhin <salayhin@gmail.com>
 *
 */
 
class xmlSitemap
{
 
    public function generateXML()
    {
 
        $xmlFile = "../sitemap.xml";
        $fh = fopen($xmlFile, 'w') or die("can't open file");
 
        $sql = "SELECT DISTINCT * ,DATE_FORMAT(date, '%Y-%m-%dT%H:%i:%s+00:00') AS new_date FROM articles
 
             WHERE articles.status =  0 ORDER BY articles.id DESC";
        
        $res = mysql_query($sql);
 
 
        while ($row = mysql_fetch_assoc($res)) {
 
            $content[] = $row;
        }
 
 
        $str = '';
        $str .= '<?xml version="1.0" encoding="UTF-8"?>';
        $str .= '<?xml-stylesheet type="text/xsl" href="sitemap.xsl"?>
<!-- sitemap-generator-url="http://www.yourdomain.com" sitemap-generator-version="3.2.6" -->
<!-- generated-on="October 13, 2011 05:29" -->';
        $str .= '<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
 
        for ($i = 0; $i < count($content); $i++) {
 
            $str .= '<url>';
            $str .= '<loc>http://www.yourdomain.com/article.php?id=' . $content[$i]['id'] . '</loc>';
            $str .= '<lastmod>' . $content[$i]['new_date'] . '</lastmod>';
            $str .= '<changefreq>daily</changefreq>';
            $str .= '<priority>1.0</priority>';
            $str .= '</url>';
        }
 
        $str .= '</urlset>';
 
        fwrite($fh, $str);
        fclose($fh);
    }
}

Add custom style for your sitemap:

 <?xml version = "1.0" encoding = "UTF-8"?>
<xsl:stylesheet version="2.0"
                xmlns:html="http://www.w3.org/TR/REC-html40"
                xmlns:sitemap="http://www.sitemaps.org/schemas/sitemap/0.9"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:template match="/">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <title>XML Sitemap</title>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
            <style type="text/css">
                body {
                    font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana;
                    font-size: 13px;
                }
 
                #intro {
                    background-color: #CFEBF7;
                    border: 1px #2580B2 solid;
                    padding: 5px 13px 5px 13px;
                    margin: 10px;
                }
 
                #intro p {
                    line-height: 16.8667px;
                }
 
                td {
                    font-size: 11px;
                }
 
                th {
                    text-align: left;
                    padding-right: 30px;
                    font-size: 11px;
                }
 
                tr.high {
                    background-color: whitesmoke;
                }
 
                #footer {
                    padding: 2px;
                    margin: 10px;
                    font-size: 8pt;
                    color: gray;
                }
 
                #footer a {
                    color: gray;
                }
 
                a {
                    color: black;
                }
            </style>
        </head>
        <body>
        <h1>XML Sitemap</h1>
 
        <div id="intro">
            <p>
                articleofweek.com
            </p>
        </div>
        <div id="content">
            <table cellpadding="5">
                <tr style="border-bottom:1px black solid;">
                    <th>URL</th>
                    <th>Priority</th>
                    <th>Change Frequency</th>
                    <th>LastChange (GMT)</th>
                </tr>
                <xsl:variable name="lower" select="'abcdefghijklmnopqrstuvwxyz'"/>
                <xsl:variable name="upper" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
                <xsl:for-each select="sitemap:urlset/sitemap:url">
                    <tr>
                        <xsl:if test="position() mod 2 != 1">
                            <xsl:attribute name="class">high</xsl:attribute>
                        </xsl:if>
                        <td>
                            <xsl:variable name="itemURL">
                                <xsl:value-of select="sitemap:loc"/>
                            </xsl:variable>
                            <a href="{$itemURL}">
                                <xsl:value-of select="sitemap:loc"/>
                            </a>
                        </td>
                        <td>
                            <xsl:value-of select="concat(sitemap:priority*100,'%')"/>
                        </td>
                        <td>
                            <xsl:value-of
                                select="concat(translate(substring(sitemap:changefreq, 1, 1),concat($lower, $upper),concat($upper, $lower)),substring(sitemap:changefreq, 2))"/>
                        </td>
                        <td>
                            <xsl:value-of
                                select="concat(substring(sitemap:lastmod,0,11),concat(' ', substring(sitemap:lastmod,12,5)))"/>
                        </td>
                    </tr>
                </xsl:for-each>
            </table>
        </div>
        <div id="footer">
 
        </div>
        </body>
        </html>
    </xsl:template>
</xsl:stylesheet>

Happy coding 🙂

How to install LAMP server in Fedora 17

I have recently move on Fedora from Ubunutu . Here I share how to install LAMP (Linux, Apache, MySQL and PHP) server in fedora 17.

– Install Mysql Server

yum install mysql mysql-server

Now start and Enable Mysql service. Run this command

systemctl start mysqld.service
systemctl enable mysqld.service

Now create MySQL pasword –

mysqladmin -u root password [your_password_here]

Now check mySQL . Run

mysql -h localhost -u root -p

Continue reading How to install LAMP server in Fedora 17

Error on MongoDB: couldn’t connect to server 127.0.0.1 shell/mongo.js

I have faced some problem after installing MongoDB on my Ubunutu 12.04.  Here is the error .

Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84
exception: connect failed

I found some solution on google. Here it is.

sudo rm /var/lib/mongodb/mongod.lock
sudo -u mongodb mongod -f /etc/mongodb.conf --repair
sudo service mongodb start

Please read this  for more detail. Continue reading Error on MongoDB: couldn’t connect to server 127.0.0.1 shell/mongo.js

Error while installing mysql2 gem on Ubuntu 12.04

This week I have install ubuntu 12.04 .When install on gem install mysql2 -v ‘0.3.11’ I got this error.

“ERROR:  Error installing mysql2:
ERROR: Failed to build gem native extension.

/home/salayhin/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb
checking for rb_thread_blocking_region()… yes
checking for rb_wait_for_single_fd()… yes
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lm… yes
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lz… yes
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lsocket… no
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lnsl… yes
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lmygcc… no
checking for mysql_query() in -lmysqlclient… no
*** extconf.rb failed *** Continue reading Error while installing mysql2 gem on Ubuntu 12.04

Install Oracle Java 7 JDK 7 in Ubuntu 12.04

I faced some problem to install Oracle Java JDK installing on ubuntu 12.04 . here is a solution I found and it’s worked for me.

Here is step by step instruction  of install Java Runtime .

Open Terminal. Then,  run the commands below to remove all other installations of OpenJDK from your system.

sudo apt-get purge openjdk*

Then, go and download Java JDK package from here.

Run the below commands to extract the java packages you downloaded.

tar -xvf ~/Downloads/jdk-7u3-linux-i586.tar.gz

Now create your java  folder by running the commands below.

sudo mkdir -p /usr/lib/jvm/jdk1.7.0

Now run this command for move all the extracted files and folders into the java  folder.

sudo mv jdk1.7.0_03/* /usr/lib/jvm/jdk1.7.0/

Next, run those commands as shown below one-at-a-time to enable Java JDK. Remember to press Enter after each line.

sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.7.0/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.7.0/bin/javaws" 1

That’s it.