flatpress وبلاگی با دیتابیس فایلی

flatpress وبلاگی اپن سورس هست که روی php4 به بعد بدون احتیاج به mysql بدرستی کار میکند.بله بدون احتیاج به mysql!!

این سیستم تمام اطلاعات وبلاگ در فایل های txt ذخیره می کند،مسیر ذخیره اطلاعات طبق محتویات فایل  flatpress\docs\spb_db.txt به صورت زیر هست:

    - SimplePHPBlog flat "db" structure

    [$content]
        |
        |-- [$year] // two-digit year ID (05 stands for 2005)
        |       |
        |       |-- [$month]  //two-digit month ID (01 stands for January)
	|               |
	|               |-- entryYYMMDD-HHMMSS.txt
	|               |-- [entryYYMMDD-HHMMSS]
	|	                    |
	|			    |-- rating.txt
	|			    |-- view_counter.txt
	|			    |-- [comments]
	|			             |
	|				     |-- commentYYMMDD-HHMMSS.txt
	|
	|-- [static]
	        |
		|-- $filename.txt

فلت پرس پلاگین ها را پشتیبانی و برای تم از smarty استفاده می کند و سیستم ابزارک (Widget) نیز دارد .

نصبphpmyadmin php mySQL apache روی ubuntu 9.10

منبع:Installing Apache2 With PHP5 And MySQL Support On Ubuntu 9.10

آپاچی ۲٫۲٫۱۲ – php 5.2 – mySQL 5.1 – phpMyAdmin 3.2.2

۱.توجه ابتدایی:

تمامی دستورات این مقاله با دسترسی root اجرا میکنم و شما هم مطمئن بشین این دسترسی دارید:

sudo su

۲٫نصب mysql5

اول از همه mysql5 با دستور زیر نصب میکنیم:

aptitude install mysql-server mysql-client

بعد  از شما پسوردی برای کاربر root@localhost پرسیده میشه ُدقت داشته باشید که ما بعدا این پسورد را تغییر نمی دهیم:

New password for the MySQL "root" user: <-- yourrootsqlpassword
Repeat password for the MySQL "root" user: <-- yourrootsqlpassword

۳٫نصب آپاچی۲

آپاچی۲ در بسته اوبونتو وجود داره و با این دستور نصب میشه:

aptitude install apache2

حالابه آدرس http://127.0.0.1 برید و صفحه یپش فرض سرور (It works!) باید ببینید.

ubuntu_it_works_apache2

مسیر پیش فرض ریشه وب سرور

/var/www

فایل پیکربندی

/etc/apache2/apache2.conf

ماژول های آپاچی

/etc/apache2/mods-enabled

هاست های مجازی

/etc/apache2/sites-enabled

۴.نصب php5

ما به اینصورت میتونیم php5 و ماژول php5 آپاچی نصب کنیم:

aptitude install php5 libapache2-mod-php5

ما باید آپاچی ری استارت کنیم:

/etc/init.d/apache2 restart

۵.تست php5 و جزئیات بیشتر

در مسیر پیشفرض وب سایتها /var/www ما فایلی با نام info.php ایجاد میکنیم تا جزئیات بیشتری در مورد php ببینیم:

vi /var/www/info.php
<?php
phpinfo();
?>

حالا اگه به آدرس http://127.0.0.1/info.php بریم:

ubuntu_php52_info

همونطور که میبینیم php5 کار میکنه.اگه پایینتر بریم ماژولهایی که در دسترسن میبینیم و لی mysql تو این لیست نیست یعنی تا الان نمیتونیم از mysql استفاده کنیم.

۶.پشتیانی mysql در php5

برای پشتیبانی mysql در php ما باید بسته php5-mysql نصب کنیم.این ایده خوبیه برای نصب ماژولهایی که تو برنامه هاتون ازش استفاده می کنید.

لیست ماژولهای نصب شده میتونید با دستور زیر ببینید:

aptitude search php5

هر کدوم که می خواین انتخاب و نصبشون کنید:

aptitude install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-json

آپاچی دوباره ری استارت می کنیم:

/etc/init.d/apache2 restart

دوباره به آدرس http://127.0.0.1/info.php برید و تو پائین صفحه میتونید ماژولهای جدیدی که نصب شدن ببینید.ماژول mysql هم اونجاست:

ubuntu_php_info_mysql

phpmyadmin یک رابط گرافیکی تحت وب هست برای مدیریت بانک اطلاعاتی mysql:

aptitude install phpmyadmin

شما سوالای زیرو به این صورت جواب بدید:

Web server to reconfigure automatically: &lt;-- apache2
Configure database for phpmyadmin with dbconfig-common? &lt;-- No

حالا در آدرس http://127.0.0.1/phpmyadmin شما به phpmyadmin دسترسی دارید.

ubuntu_phpmyadmin

نصب php و nginx روی CentOS

منبع:Red Hat / CentOS Install nginx PHP5 FastCGI Webserver

قدم اول:فعال کردن EPEL

در ngnix به صورت پیش فرض موجود نیست و برای نصب نسخه stable باید EPEL را فعال کرد:

# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/$(uname -m)/epel-release-5-3.noarch.rpm

قدم دوم:نصب ngnix

# yum install nginx

فایلهای پیکربندی nginx

مسیر پیش فرض فایل کانفیگ:

/etc/nginx/nginx.conf

مسیر پیش فرض تنظیمات SSL :

/etc/nginx/conf.d/ssl.conf

مسیر پیش فرض کانفیگ میزبانان مجازی:

/etc/nginx/conf.d/virtual.conf

مسیر پیش فرض ریشه وب سایت:

/usr/share/nginx/html

نصب و پیکربندی PHP به صورت FastCGI

# yum install php-pear-Net-Socket php-pear php-common php-gd php-devel php php-mbstring php-pear-Mail php-cli php-imap php-snmp php-pdo php-xml php-pear-Auth-SASL php-ldap php-pear-Net-SMTP php-mysql

Install spawn-fcgi simple program for spawning FastCGI processe

# yum install spawn-fcgi

و دانلود spawn-fcgi init.d shell:

# wget http://bash.cyberciti.biz/dl/419.sh.zip
# unzip 419.sh.zip
# mv 419.sh /etc/init.d/php_cgi
# chmod +x /etc/init.d/php_cgi

شروع به کار سرور PHP:

# /etc/init.d/php_cgi start
# netstat -tulpn | grep :9000

به صورت پیش فرض php روی پورت ۹۰۰۰ سرویس میده و با ویرایش فایل /etc/nginx/nginx.conf باید به nginx بفهمونیم:

# vi /etc/nginx/nginx.conf

با uncomment کردن کد زیر : (تو منبع اصلی این آموزش فکر میکنم این تکه کد ایراد داشته باشه)

location ~ \.php$ {

root           html;

fastcgi_pass   127.0.0.1:9000;

fastcgi_index  index.php;

fastcgi_param  SCRIPT_FILENAME  /usr/share/nginx/html/$fastcgi_script_name;

include        /etc/nginx/fastcgi_params;

}

nginx ری استارت می کنیم:

# service nginx restart

در مسیر /usr/share/nginx/html/test.php فایل جدید می سازیم و در بروزر باز میکنیم:

<?php
     phpinfo();
?>

نصب نسخه بالاتر VirtualBox

VirtualBox یک نرم افزار برای مجازی سازی که به خوبی سیستم عامل های مختلف رو کنار هم (همزمان) قابل اجرا می کنه،من تا چند وقت پیش از نسخه ۱٫۵٫۶ استفاده می کردم که بعد از دانلود نسخه ۳ و اجرا این ارور میداد:

“An old innotek VirtualBox installation has been found on this machine. Please uninstall this package first and then install Sun xVM VirtualBox!”

و چون این نسخه uninstaller نداشت مجبور به حذف دستی فایل ها شدم که باز هم تاثیر نداشت ، با یه جستجو کوچیک به این تاپیک برخورد کردم که راه حل این مشکل حذف این آدرس از رجیستری [HKEY_LOCAL_MACHINE\SOFTWARE\Innotek\VirtualBox] و reset کردن عنوان کرده بود ، که به نصب موفقیت آمیز نسخه جدید منجر شد.

حذف عکس های لود نشده با دوجو

چند روز پیش دیوید والش تو مطلبی با عنوان Remove Broken Images Using MooTools or jQuery نحوه حذف عکس های لود نشده با جی کوئری و موتولز نوشته که منم راغب شدم با دوجو اون تکه کد بازنویسی کنم.

البته طبق معمول IE از این event پشتیبانی نمیکنه.

dojo.ready(function(){
   dojo.query("img").connect("onerror", function(evt){
       dojo.destroy(evt.target);
   });
});