サーバー関連

ImageMagickをPHPで使う方法【さくらインターネット】

メモ

さくらインターネットには「ImageMagick」が入っているのですが、PHPのモジュールとしては入っておらず、通常はsystem関数などを用いて利用するしかありません。

なんとかPHPのモジュールとして使えないかなぁと思いググッてみると、超簡単に設定できることが判明!

さくらインターネットでは、PHP で extension=imagick.so するだけで ImageMagick が使えます :WEB 職人

こちらのサイトを参考に、php.iniに「extension=imagick.so」を追加すると、あっさり使えるようになりました。

ありがたい!

※ちなみにさくらインターネットでは、サーバコントロールパネルからphp.iniを編集できます。

windowsでppmを使用する際の注意事項

かなりはまったのでメモ。

windowsにて

  • xampp
  • Active Perl
  • DBD::mysql
  • ImageMagick

をインストールしようとしたんですが、Active Perl のインストールまではうまくいったけど、そのあとのDBD::mysqlとImageMagickのインストールがどうしてもうまくいかない。

DBD::mysqlについてはこちらのサイト

WinXPローカルでXAMPPを使ってMovable Typeを動かす―2010年3月版 その2  

を参考にさせてもらったんですが、そもそもppmが立ち上がらない。

そしてImage Magickについても

今日のMovable Type 4:ImageMagickをXAMPP for Windowsに簡単に組込む方法: 世界中の1%の人々へ

のサイトを参考にさせてもらったんですが、インストール中エラーが出てしまう。

で、ググってみたらどうやら、windowsにログインしているユーザ名に日本語が含まれているとだめらしい・・・

ppmをタイプするとエラーになる - Perl - 教えて!goo

早速、アルファベットのみのユーザを作成し、ログインしなおし、ppmを実行したところ正常にインストールされました!

やっぱり日本語を含んだログインユーザを作るもんじゃないですね・・・

なお、Image Magickについては、バージョンの相性などもあるので、公式にほしいバージョンがない場合は、以下のミラーサイトからダウンロードしてみてください。

http://mhonarc.veidrodis.com/image_magick/binaries/

fopenをURLで設定可能にするためのhtaccess記述方法

サーバによって、fopenはURLで開けなくなっています。

そのような場合は、htaccessに

php_flag allow_url_fopen on

と記述してみましょう。

すべてのサーバでうまくいくとは限りませんが、少なくともファーストサーバではうまくいきました。

PHPでLDAPに接続する

LDAPサーバがようやくできたので、PHPで接続してみました。

以下プログラム例です。

※「設定」の部分はLDAPサーバの設定に合わせる必要があります。

<?php

//設定
$ldap_host = "localhost"; //LDAPサーバのホスト
$ldap_port = 389; //ポート
$ldap_dc = "dc=ldap-server,dc=com";
$ldap_cn = "Dari"; //cn
$ldap_ou = "Unit"; //ou
$ldap_pass = "password"; // パスワード

//接続開始
$ldap_DN = "cn=".$ldap_cn.",ou=".$ldap_ou.",".$ldap_dc;
$ldap_conn = ldap_connect($ldap_host, $ldap_port);

if($ldap_conn){
    echo "<p>接続成功</p>";

    $ldap_bind  = @ldap_bind($ldap_conn, $ldap_DN,$ldap_pass);
   
    if($ldap_bind){
        echo "<p>バインド成功</p>";
       
        $ldap_search = ldap_search($ldap_conn, $ldap_DN,"cn=*");
        $get_entries = ldap_get_entries($ldap_conn,$ldap_search);
       
        //エントリ情報出力
        print_r($get_entries);   
    }else{
        echo "<p>バインド失敗</p>";
    }
    ldap_close($ldap_conn);
}else{
    echo "<p>接続失敗</p>";
}

?>

※上記のプログラムを実行するには、PHPを実行させるサーバに「php-ldap」モジュールが入っていること、そしてLDAPサーバがあることが前提です。

うまくバインドできればエントリ情報が出力されるかと思います。

バインドできたかどうかの判断をさせれば、ユーザ認証にも使用できますね。

Fedora11でLDAPサーバ構築

以下は超Linux初心者のメモ書き的なものです。

テスト用にLDAPサーバを構築するため、事務所のLINUXサーバを取り出してきて、Fedora13をインストールしたのが先週。

しかしOpenLDAPをインストールしようとしてもうまくいかない。というのも、どうやってもなぜか「slapd.conf」が見当たらないんです。

こちらのサイトに「openldap-servers」がないからでは?という回答を見つけたので「rpm -qa | grep openldap」を実行してみるもちゃんとインストールされてある。

困ったなぁ、なんて悩んでいると、同僚が一言。

「Fedoraのバージョン下げたら?」

うむ、確かにFedora11では正常にOpenLDAPが動作している様子(Server Worldさんサイト参考

さっそくYamagata Univのサイトからバージョン11をダウンロードします。

今回はCDにして6枚組。多いなぁ・・・

ダウンロード→CDに焼く→インストール→初期設定方法についてはFedora13の時とほぼ同じです。

続いてServer WorldさんのサイトFedoraで自宅サーバ構築さんのサイトを参考にOpenLDAPのインストールと設定を行います。

LDIFファイルの作成と登録方法についてはこちらのサイトを参考にさせてもらいました。参考サイト:UNIX Lifeさんのサイト

ウェブサーバと別にする場合は、

# /usr/bin/system-config-firewall

でファイヤーウォールを立ち上げて、ポート389を開放してください。

これでLDAPサーバの完成です。

はっきり言って、Linuxサーバ構築も初心者だしLDAPについてもそもそもLDAPって何?から始めましたがやっているうちになんとなく分かってくるものですね~。

ついでに

PHPからLDAPに接続する場合はphp-ldapモジュールが入っていないと使用できません。(phpinfoを見るか「# rpm -qa | grep openldap」を実行するとわかります。)

入っていない場合は「#yum -y install php-ldap」を実行しましょう。

 

■追記

よく使用するコマンド

SLAPD データベースからの LDIF の生成する

/usr/sbin/slapcat

ldifファイルよりエントリを登録(以下例:taro.ldifファイルから登録する場合)

ldapadd -f taro.ldif -x -D "cn=Manager,dc=localhost,dc=com" -W

エントリを削除(以下例:cn=taro,ou=Unit,dc=localhost,dc=comでバインドしているエントリを削除する場合)

ldapdelete -x -D "cn=Manager,dc=localhost,dc=com" -W "cn=taro,ou=Unit,dc=localhost,dc=com"

 

スキーマについての参考サイト

 

エラーについての参考サイト

Fatal error: Call to undefined function ldap_connect()

Fedora11にて、OpenLDAPをインストールし、設定を終えPHPからLDAPにアクセスしようとしたら、こんなエラーを吐き出しました。

Fatal error: Call to undefined function ldap_connect()

どうやら「php-ldap」が入っていないのが原因なようなので

# yum -y install php-ldap

で「php-ldap」をインストールし、Apacheを再起動。

無事解決しました。

Fedora13のインストールと初期設定

メモ

1.Fedora13をCDに焼くためにISOイメージをダウンロードする

Fedora Projectサイト

または

Yamagata Univ

からFedora13のISOイメージをダウンロードしてください。

Fedora Projectサイトで配布しているDesktopエディションはCD1枚でインストールできます。Yamagata Univで配布しているのはCD5枚組、またはDVDバージョンです。

 

2.CDに焼く

こちらのサイトを参考にB's Recorderで焼きました。

Server World

ポイントは「起動時に出る補助メニュー使わない」です。(普通に補助メニューを使って焼くと失敗します)

 

3.インストールする

インストールはこちらのサイトを参考にしました。

Linux Mania (PDFファイル)

ちなみに自分が用意したデータは5枚組の方です。Desktopエディションは流れがすこし違うかもしれません。

※上記のサイトではDVDでインストールしているため、「12.インストールパッケージの選択」から「13.インストール完了」に飛んでますが、CD5枚組の場合はその間にCD入れ替え作業が発生します。

 

以上で、インストールは完了です。

 

次にインストール直後の各種設定を行います。

※以下で行う設定は「su」コマンドを使用し、root権限で実行することを前提で記述しています。

 

1.rootでログインできるようにする

参考サイト:はじめての自宅サーバ構築

Fedora13のGUIでは、rootでログインできなくなっています。(どうやらF10くらいからできなくなっているみたいです。)

 解決方法は

# vi /etc/pam.d/gdm-password

で「gdm-password」ファイルを開き、3行目の

auth required pam_succeed_if.so user != root quiet

をコメントアウトしてください。

 

2.インターネットに接続する

参考サイト:都筑LINUXの杜

Firefoxを起動してみてください。インストール直後はインターネットに接続できなくなっています。

ネット接続するにはパネル右上にあるネットワークアイコンをクリックし「System eth0」を選択してください。これだけでネットに接続できるようになります。

 

3.Windowsネットワークにアクセスする。

参考サイト:Fedora13 Samba

すでに存在するWindowネットワークにアクセスするためには、Sambaをインストールし設定する必要があります。

参考サイトに書いている通り、yumで「samba」「samba-client」「samba-swat」の3つをインストールしてください。

# yum -y install samba
# yum -y install samba-client
# yum -y install samba-swat

インストール後、

# /usr/bin/system-config-firewall

を実行し、ファイヤーウォールの設定を立ち上げます。サービスの中の、「Samba」と「Sambaクライアント」にチェックを入れ、「適応」ボタンを押してください。これで「Windowsネットワーク」にアクセスできるようになります。

Fedoraサーバを共有設定するには、上記の参考サイトを読み進めて設定してください。

 

4.その他

FTPやLDAPのサーバ設定については以下のサイトをご参照ください。

参考サイト:Server World

※vsftpd(FTP)をインストールした場合などはファイヤーウォールの設定を忘れずに。

 

■追記

vsftpdでのトラブルシューティング

参考サイト:grgrjnjnの日記

サーバにはつなげるが、アカウント認証で「500 OOPS: cannot change directory」というエラーが出たときは以下のコマンドを入力してください。

# getenforce

# setenforce -h

# setenforce Permissive

他社で取得したドメインを「移管せずに」さくらインターネットで使用する方法

さらっとメモのみ。

以下のURLを参照
http://support.sakura.ad.jp/support/manual/rs/setdom_c.shtml

さくらインターネットで設定→DNS管理会社で設定の順番に注意

nandani | 2010年08月23日 | コメント(0) | トラックバック(0) | サーバー関連

htcが効かないサーバの場合

「IEでもCSS3」シリーズの記事で「PIE.htc」「ie-css3.htc」「css3shadow.htc」を紹介しましたが、サーバによっては効かない場合があります。

これはサーバが「htc」という拡張子のファイルを正しく認識できていないためです。
これを認識させる方法は以下の通りになります。

1.テキストエディタを開いて

AddType text/x-component .htc

と記述します。

2.ファイル名を「.htaccess」とします。この名前で保存できない場合はとりあえず「ht.access」と保存します。

3.ホームページを設置しているサーバにアップロードします。もし「ht.access」で保存した場合は、アップロードした後「.htaccess」にリネームしてください。

以上で「htc」が使えるようになります。

すでにhtaccessというファイルがある場合は、そのファイルに1.を追記してください。

 

今回参考にさせていただいたサイト

美美美コム デザイナーブログ:該当記事「htcファイルが使えないときの解消法

ベーシック認証解除

ベーシック認証をかけると、そのフォルダ以下すべてその影響を与えます。
特定のフォルダで解除するためには、そのフォルダにすべてのアクセスを許可する命令を書いたhtaccessを入れる必要があります。

なんとなく
Order allow,deny
Allow from all
と書けばいけそうな気がしますが、これでは許可してもらえません。
正確には以下のように記述します。

Satisfy Any

これだけ。
これでそのフォルダ以下はアクセス可能となります。

■追記

この記事の作成・編集中、
Require valid-user
Order allow,deny
Allow from all
Satisfy Any

とかいろいろと書きましたが、上記に書いているように
Satisfy Any

だけで大丈夫です。

nandani | 2010年07月18日 | コメント(0) | トラックバック(1) | サーバー関連

Copyright(c) 2010 - 2024 ダリの雑記