ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

Smartyがうごかない

PHPのSmartyがうごきません。

Smarty-2.6.16/libsを全部/usr/local/lib/Smartyに移動して、
include_pathも通ってる。はずなのに。

<?php
 require_once("DB.php"); ///usr/share/pearは通ってる
 require_once("Smarty.class.php");
?>

↓↓↓↓↓↓↓↓↓↓

Warning: require_once(Smarty.class.php) [function.require-once]: failed to open stream: No such file or directory in /var/www/html/test.php on line 3

Fatal error: require_once() [function.require]: Failed opening required 'Smarty.class.php' (include_path='.:/usr/local/lib/Smarty:/usr/share/pear') in /var/www/html/test.php on line 3

パスが通ってるのにファイルがありませんって言われる。


# ll /usr/local/lib/Smarty/Smarty.class.php
-rw-r--r-- 1 root root 63248 12月 2 00:23 /usr/local/lib/Smarty/Smarty.class.php

あるじゃん(ーー;)

# ll /usr/share/pear/DB.php
-rw-r--r-- 1 root root 42791 2月 5 17:16 /usr/share/pear/DB.php

こっちと何が違うんじゃ。


一応フルパスでも書いてみたら

<?php
 require_once("DB.php"); ///usr/share/pearは通ってる
 require_once("/usr/local/lib/Smarty/Smarty.class.php");
?>

↓↓↓↓↓↓↓↓↓↓

Warning: require_once(/usr/local/lib/Smarty/Smarty.class.php) [function.require-once]: failed to open stream: Permission denied in /var/www/html/test.php on line 3

Fatal error: require_once() [function.require]: Failed opening required '/usr/local/lib/Smarty/Smarty.class.php' (include_path='.:/usr/local/lib/Smarty:/usr/share/pear') in /var/www/html/test.php on line 3


権限がありません。なんでー・・?

[Smartyがうごかない]の続きを読む
  1. 2007/02/27(火) 18:45:53|
  2. PHP
  3. | トラックバック:1
  4. | コメント:1

PHPの配列の結合

いつも忘れるのでメモ用
既存の配列の後ろに配列をくっつけたいときは
「+」演算子か「array_merge」関数

$ php -r "var_dump(array('a'=>1,2,'b'=>3) + array('a'=>4,'c'=>5,6));"
array(4) {
 ["a"]=>
 int(1)
 [0]=>
 int(2)
 ["b"]=>
 int(3)
 ["c"]=>
 int(5)
}

$ php -r "var_dump(array_merge(array('a'=>1,2,'b'=>3), array('a'=>4,'c'=>5,6)));"
array(5) {
 ["a"]=>
 int(4)
 [0]=>
 int(2)
 ["b"]=>
 int(3)
 ["c"]=>
 int(5)
 [1]=>
 int(6)
}
  1. 2007/02/13(火) 15:58:22|
  2. その他
  3. | トラックバック:0
  4. | コメント:0

windowsでapacheのNAME virtualhostをやってみた

NAMEベースの バーチャルホスト を設定してみる。
(windows XP Home SP2 / apache2.2.3)

NAMEベースのバーチャルホスト:
 IP一つで二つの名前を持つようにすること(だと思う)
 ブラウザが送ってくるホスト名から応答ホストを決定する方式。(ということは、ブラウザがホスト名を送ってこないと動かないのか? ←あとで調べる)

apacheは、インストーラ形式のを普通にインストールしただけの状態。

まずhttpd.confの
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf

のコメントをはずす。
# Virtual hosts
Include conf/extra/httpd-vhosts.conf

これでextra/httpd-vhosts.confが読み込まれるようになる。

次にextra/httpd-vhosts.confを見る。
VirtualHostディレクティブがすでに二つ書かれてるので、
中身を適当に書き換える。

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "C:/hogehoge/apache/htdocs"
ServerName vh1.localhost
ServerAlias www.dummy-host.
ErrorLog logs/vh1-error.log
CustomLog logs/vh1-access.log common
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot "C:/hogehoge/apache/htdocs_2"
ServerName vh2.localhost
ServerAlias www.dummy-host.
ErrorLog logs/vh2-error.log
CustomLog logs/vh2-access.log common
</VirtualHost>


あとは設定したDocumentRootに実ファイルをおく。(順番的にはファイル置いてから設定な気がするけど気にしない) 一応、それぞれのindex.htmlは、"It works! (hv1)" と "It works! (hv2)" というように区別できるように書いておいた。

これでapacheを再起動してみる。

http://vh1.localhost/にアクセス
サーバが見つかりません。

http://vh2.localhost/にアクセス
サーバが見つかりません。

だめでした。名前解決ができてない。

hostsにAliasを設定する。
XPなら "C:\WINDOWS\system32\drivers\etc\hosts" があるはず。
127.0.0.1 localhost

たぶんデフォルトだとこの状態なので、以下のように書き換える。
(このファイルに山ほどIPとホスト名があって、特に身に覚えがない場合、たぶん怪しいソフトにやられてますので、調べるなり何なりしましょう)

127.0.0.1 localhost vh1.localhost vh2.localhost



よし、見れるハズ。

http://vh1.localhost/にアクセス
It works! (hv1)

http://vh2.localhost/にアクセス
Forbidden
You don't have permission to access / on this server.

だめでした。403ということはアクセス制限っぽい何かでしょう。
さっき設定したエラーログに
[Mon Jan 15 20:37:15 2007] [error] [client 127.0.0.1] client denied by server configuration: C:/hogehoge/apache/htdocs_v/

こんなのが出てる。
extra/httpd-vhosts.conf に
<directory "C:/hogehoge/apache/htdocs_v">
order deny,allow
deny from ALL
allow from ALL
</directory>


を追記しないとダメっぽい。

さて、見れるハズ。

http://vh1.localhost/にアクセス
It works! (hv1)

http://vh2.localhost/にアクセス
It works! (hv2)


やったー動いた。

名前解決をhostsに書いてるから、hosts書いたこのマシンからしかアクセスできないけど、そこは本題じゃないから無視!
  1. 2007/01/15(月) 21:21:58|
  2. その他
  3. | トラックバック:0
  4. | コメント:0

mysqldumpでバックアップしたSQLでリストアすると外部キー制約に引っかかる

mysqldumpでバックアップしたSQLで
リストアすると外部キー制約に引っかかる。

そういう場合、

ダンプしたSQLの頭に
SET FOREIGN_KEY_CHECKS=0
外部キー制約を一時的に無視する)

一応、ケツに
SET FOREIGN_KEY_CHECKS=1

で、とりあえず通る。


SET FOREIGN_KEY_CHECKS=0 を設定して、
制約違反のテーブルを作成しておくとどうなるのか、
知らないと怖いので、そのうちやってみる。

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2007/01/12(金) 15:49:05|
  2. mySQL
  3. | トラックバック:0
  4. | コメント:0

WindowsのApache2.2が起動しない

Apacheを起動しようとすると、こんなエラーが出る。
apache_failure.png
[error] (OS 2)指定されたファイルが見つかりません。: No installed service named "Apache2".

ApacheMonitor→startでも"httpd.exe -k start" でも変わらず。

Lavie は最初っからApache入ってて動いてたから、
それ消して新しいのを入れなおした記憶があるけど…
その過程で変なことしてたかな。

Googleで調べてみると、IISやSkypeが80番ポートをつかんでると
同じエラーになるらしい。

でも、IISもSkypeも入れてない。

ということは、ほかに80使ってるサービスがあるということ?

うーん、 netstat -a しても何もない。

スタート→管理ツール→サービス を眺めて、80使ってそうなものを探してみる。

あれ?

apache_failure_2.png

こうか…?

apache_failure_3.png



起動するようになりました。。。
  1. 2007/01/10(水) 18:28:28|
  2. Apache
  3. | トラックバック:0
  4. | コメント:0
前のページ 次のページ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。