Home > PHP Archive

PHP Archive

PHPをAPC(Alternative PHP Cache)で高速化

準備
[root@centos ~]# yum install php-pear
[root@centos ~]# yum install httpd-devel

APCインストール
[root@centos ~]# pecl install APC

APC設定ファイル作成
[root@centos ~]# vi /etc/php.d/apc.ini
extension = apc.so
apc.ttl = 7200
apc.user_ttl = 7200

Apache設定ファイル再読込
[root@centos ~]# /etc/rc.d/init.d/httpd reload

APCの設定オプション

phpMyAdminのインストール

あった方が便利かなぁということで、インストールしてみたので記録です。
PHP,php-mysqlはインストール済みを前提とします。
phpMyAdminのインストール

[root@centos ~]# svn checkout https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/tags/STABLE/phpMyAdmin phpmyadmin
[root@centos ~]# mv ./phpmyadmin /var/www/

phpMyAdminの設定

[root@centos ~]# cp /var/www/phpmyadmin/config.sample.inc.php /var/www/phpmyadmin/config.inc.php
[root@centos ~]# yum -y install expect ← mkpasswdが入っている
[root@centos ~]# mkpasswd -l 12 ← 12桁のランダムな文字列生成
mpqc3Dm(H0ca

[root@centos ~]# vi /var/www/phpmyadmin/config.inc.php
$cfg['blowfish_secret'] = 'mpqc3Dm(H0ca'; ← 編集
$cfg['Lang'] = 'ja-utf-8'; ← 追加

[root@centos ~]# chmod 660 /var/www/phpmyadmin/config.inc.php
[root@centos ~]# chown -R root.apache /var/www/phpmyadmin/

Apacheの設定

[root@centos ~]# vi /etc/httpd/conf.d/phpmyadmin.conf
Alias /phpmyadmin /var/www/phpmyadmin

[root@centos ~]# /etc/rc.d/init.d/httpd restart

完了!ということで、http://192.168.1.xx/phpmyadmin/
あれ???

php 5.2+ is required

だけしか表示されません。そういえばPHPが5.1.6だった気が・・・
PHP5.2.6のインストール

RPM-GPG-KEY取得
[root@centos ~]# rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
リポジトリ参照設定ファイル作成
[root@centos ~]# vi /etc/yum.repos.d/utterramblings.repo
[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
priority=0
PHPをアップデート
[root@centos ~]# yum update php
追加したリポジトリを参照しないように設定
[root@centos ~]# vi /etc/yum.repos.d/utterramblings.repo
enabled=0

[root@centos ~]# /etc/rc.d/init.d/httpd restart

これでおk!ということで再度、http://192.168.1.xx/phpmyadmin/
あれ???

mcrypt 拡張をロードできません。PHP の設定を確認してください

php-mcryptも必要らしいのでインストールしますが、先ほどのリポジトリを使用します。
php-mcryptのインストール

[root@centos ~]# vi /etc/yum.repos.d/utterramblings.repo
enabled=1 ← 0から1に変更

[root@centos ~]# yum install php-mcrypt

[root@centos ~]# vi /etc/yum.repos.d/utterramblings.repo
enabled=0 ← また0に戻す

[root@centos ~]# /etc/rc.d/init.d/httpd restart

今度こそ! http://192.168.1.xx/phpmyadmin/
無事使えるようになりました :grin:

【ClipBucket】長文を「…」する時の文字化けを直す

[root@centos ~]# vi /home/www/html/clipbucket/includes/templatelib/plugins/modifier.truncate.php

 if (strlen($string) > $length) {
+    $len = $length;
    $length -= min($length, strlen($etc));
    if (!$break_words && !$middle) {
       $string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length+1));
+       for($i = 0; $i < $len; $i++){
+          $c = substr($string, $i, 1);
+          if (preg_match("/[\x80-\xff]/", $c)){$c = substr($string, $i++, 2);}
+          $str .= $c;
+       }
    }
    if(!$middle) {
-       return substr($string, 0, $length) . $etc;
+       return $str . $etc;
    } else {
       return substr($string, 0, $length/2) . $etc . substr($string, -$length/2);
    }
 } else {

かなり適当だけど直ってるからおk

【ClipBucket】トップページの上下486x60広告を分ける

トップページの上下に表示される486x60の広告は、同じものが表示されるので分ける。

1)admin_areaのAdd Placementで広告の種類を追加する。
Placement Name:Banner Top 468 x 60
Placement Code:ad_468×60_top

Placement Name:Banner Bottom 468 x 60
Placement Code:ad_468×60_bottom

2)広告一覧の時、追加した広告の種類(Placementの部分)が空欄になるのを修正する。

[root@centos ~]# vi /home/www/html/clipbucket/admin_area/ads_manager.php
//Advertisment Array
$placements = array(
         "ad_160x600"	=> "Wide Skyscrapper 160 x 600",
         "ad_468x60"	=> "Banner 468 x 60",
         "ad_468x60_top"	=> "Banner Top 468 x 60",  ←追加
         "ad_468x60_bottom"	=> "Banner Bottom 468 x 60",  ←追加
         "ad_300x250"	=> "Medium Rectangle 300 x 250",
         "ad_728x90"	=> "Leader Board 728 x 90",
         "ad_200x200"	=> "Small Square 200 x 200",
         "ad_250x250"	=> "Square 250 x 250",
         "ad_120x600"	=> "Skyscrapper 120 x 600",
         "ad_336x280"	=> "Large Rectangle 336x280"
		 );

3)トップページを修正する。

[root@centos ~]# vi /home/www/html/clipbucket/styles/clipbucketblue/layout/index.html
9行目
  {$ads.ad_468x60}<br /> → {$ads.ad_468x60_top}<br />
87行目
  {$ads.ad_468x60}<br /> → {$ads.ad_468x60_bottom}<br />

4)admin_areaで広告を追加する。
Advertisement PlacementでBanner Top 486 x 60かBanner bottom 486 x 60を選択して追加。
(Banner 486 x 60を選択しても表示されない。気になるならDBから削除)

【ClipBucket】広告が表示されない時があるのを直す

[root@centos ~]# vi /home/www/html/clipbucket/includes/classes/my_queries.class.php
- $query = mysql_query("SELECT * FROM ads_data WHERE ad_id >= FLOOR( RAND( ) * ( SELECT MAX( ad_id ) FROM ads_data ) ) AND ad_status='1' ORDER BY ad_id ASC");
+ $query = mysql_query("SELECT * FROM ads_data WHERE ad_status='1' ORDER BY RAND()");

登録してあるにも関わらず広告が表示されなかったり、追加登録した広告のみしか表示されなかった問題が、ちゃんとランダムで広告が表示されるようになる。

Home > PHP Archive

Ads
Tag Cloud
Feeds
Counter

Return to page top