linux(centos) + xampp phpでmailコマンドを利用したいのですが
mail送信を利用するにはどのような設定(もしくは環境)を行わないといけないのでしょうか?
windows xp + xampp php で利用したときには、php.iniの中の
[mail function]
SMTP = xxxx.xxxx.co.jp
smtp_port = 25
を設定することによって利用できました。

お忙しいところ申し訳ございませんがよろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

こんにちは


見当違いの回答でしたらご容赦ください。

原則、XAMPPもLAMPPも構成は同じですので
/opt/xampp/etc/php.ini(デフォルトインストール時)

[mail function]
SMTP = xxxx.xxxx.co.jp
smtp_port = 25
で動作するはずなのですが・・・。
Linuxで利用する場合、FWの設定やSELinux等の設定が必要です。
もう少し現状の環境を教えていただけると
解答がつきやすいのではないかと思います。

参考案で申し訳ありません。

この回答への補足

わざわざご返答ありがとうございます。
当方の環境構築に問題がありlinuxの再構築中です。

構築後、LesserSE様の回答内容でトライしてみます。

また質問するかとは思いますがよろしくお願いします。

補足日時:2009/05/28 14:04
    • good
    • 0
この回答へのお礼

いろいろ試した結果下記の通り?でした。ご参考まで。

Linux + xamppでphpのmailコマンドでメール送信する場合php.iniの[mail function]の指定は無効のようです。
下記の2通りの方法があるようです。
1.linux 上にmailサーバーを構築。
(他のサーバーへ"relayhost"を利用してメールを転送し利用)
2.phpのpearであるMail及びMail_MIMEを導入しsmtpサーバーに送信する。

お礼日時:2009/06/05 11:45

このQ&Aに関連する人気のQ&A

php Windows」に関するQ&A: phpMyAdminが使えない

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QXAMPP設定後PHPのソースファイルはどこに?

はじめて、PHPを学習しています。XAMPPをインストールしてXAMPPのApacheとMySqlは正常に起動できているようですが、PHPのソースファイルをどこのフォルダに入れてどうやって動かすかわかりません。どなたかわかりますか。

Aベストアンサー

XAMPP は Windows 用で、XAMPP をインストールしたパソコン上で
Webブラウザを起動し、動作確認を行うものと想定します。

XAMPP を C:\xampp にインストールしていれば、
C:\xampp\htdocs の下が公開されます。

C:\xampp\htdocs\test.php にPHPのソースファイルを置けば、
http://localhost/test.php でアクセスできます。

C:\xampp\htdocs の下に hoge フォルダを作成し、
C:\xampp\htdocs\hoge\test.php に置けば、
http://localhost/hoge/test.php でアクセスできます。


XAMPPをインストールしたのとは別のパソコンからアクセスする場合は、
localhost のところを、「XAMPPをインストールしたパソコンのIPアドレス」に
変えてください。

QRedHat9.0でphp.iniファイルの変更を反映させるには

宜しくお願いします。
RedHat9.0でphp.iniファイルの設定を変更した後、何を再起動させるとその変更内容が反映されるのか教えて下さい。お願い致します。

Aベストアンサー

 RPMで入れているPHPなら、大抵Apache(httpd)の再起動でうまくいくはずだ。
 PHPがCGIモードで動作しているなら、何も再起動する必要はない。

rootになって、
# /etc/init.d/httpd restart
でGO!

Qwindows環境でxamppのphpでunixパス設定

phpソース内で include(/www/aaa/test.php); がそもそもありまして、そのソースを改造することなく
Windowsのローカル環境で(xamppの最新版を使用)インストールしたいです。
WindowsではUnixのパス(/は最も上位のフォルダからのパス)は理解出来ないと知りまして、windows用に include(\www\aaa\test.php); に改めても、引き続き同じエラーが発生し、⇒Warning: include( est est.php)その上、testの文字"t"が消えて、個人的に混乱しています。phpソースに変更を加えない方法で、Windowsローカル環境下で、apacheの設定やphpの設定などを行う方法はあるのでしょうか?
有識者の方ご指導よろしくお願いいたします。

Aベストアンサー

>include(\www\aaa\test.php);
予測ですが、
include("\www\aaa\test.php");
こう書いてたりしませんでしょうか。

PHPに限らずですが、ダブルクウォートに括られた文字列は「\」でエスケープされます。
上記場合ですと\w,\a,\tがそれで一文字と判別されます。
Warning: include( est est.php)
となるのは\tがタブ文字と判別されてるからでしょう。

解決策としては
include('\www\aaa\test.php');
とするか、
include("\\www\\aaa\\test.php");
と\自体をエスケープすればよいです。

QDebian/GNU Linux V.3.1r1 + PHP4で PHPが突然動作しない

お世話になります。

Debian/GNU Linux V3.1r1で突然PHP4が動作しなくなってしまいました。
(ダウンロードしますか?となってしまう)

日経Linux2006-1の特集2に記事を参考に、
aptitude install apache2 libapache2-mod-php4 php4-mysql mysql-server
としてLAMP環境を用意しました。

数日は正常に動作していたのですが、
(<?php phpinfo(); ?>も正常に表示していました。)
突然上記の状況となりました。

実は、この現象は一度経験があり、その際は
aptitude remove apache2 libapache2-mod-php4 php4-mysql mysql-server
をして
aptitude install apache2 libapache2-mod-php4 php4-mysql mysql-server
をしたところ回復しました。

今回は、MySQL内に若干データを入れたのでアンインストール&再インストールの手順は避けたいと思います。

aptitude remove apache2 libapache2-mod-php4
aptitude install apache2 libapache2-mod-php4
では解決しませんでした。

Apache2のデフォルトページは見れるので、Apache2は動作しているようです。

PHP4のモジュールがロードされる記述が見つけられないのですが、どういう仕組みでPHP4のモジュールはロードされるのでしょうか。


また、そのほかにはどのような確認をしたらいいでしょうか。

お世話になります。

Debian/GNU Linux V3.1r1で突然PHP4が動作しなくなってしまいました。
(ダウンロードしますか?となってしまう)

日経Linux2006-1の特集2に記事を参考に、
aptitude install apache2 libapache2-mod-php4 php4-mysql mysql-server
としてLAMP環境を用意しました。

数日は正常に動作していたのですが、
(<?php phpinfo(); ?>も正常に表示していました。)
突然上記の状況となりました。

実は、この現象は一度経験があり、その際は
aptitude remove apache2 libapache2-mod...続きを読む

Aベストアンサー

>にコピーしたところ(シンボリックリンクがわからなかったのでとりあえず)
>PHPが動作するようになりました。

ファイルを直接コピーされたようですが、ここはやはりDebian流にのっとって
シンボリックリンク(Windowsでいうところのショートカット)を張りましょう。

# ln -s /etc/apache2/mods-available/php4.conf /etc/apache2/mods-enabled/php4.conf
# ln -s /etc/apache2/mods-available/php4.load /etc/apache2/mods-enabled/php4.load


但し、同じような作業を繰り返すのは面倒なので、モジュールの一覧から、シンボリックリンク
を張ったり、削除してくれる便利なコマンドがDebianには用意されています。

●シンボリックリンクを削除(モジュールを無効)してくれる、a2dismod コマンド

# a2dismod

Which module would you like to disable?
Your choices are: cgi php4 userdir ← モジュールの一覧が表示される
Module name? php4 ← 無効にしたいモジュールを指定する
Module php4 disabled; run /etc/init.d/apache2 force-reload to fully disable.


●シンボリックリンクを張ってくれる(モジュールを有効)、a2enmod コマンド

# a2enmod

Which module would you like to enable?
Your choices are: actions asis auth_anon auth_dbm auth_digest auth_ldap cache cern_meta
cgi cgid dav dav_fs deflate disk_cache expires ext_filter file_cache headers imap include
info ldap mem_cache mime_magic php4 proxy proxy_connect proxy_ftp proxy_http rewrite
speling ssl suexec unique_id userdir usertrack vhost_alias ← モジュールの一覧が表示される
Module name? php4 ← 有効にしたいモジュールを指定する
Module php4 installed; run /etc/init.d/apache2 force-reload to enable.

>にコピーしたところ(シンボリックリンクがわからなかったのでとりあえず)
>PHPが動作するようになりました。

ファイルを直接コピーされたようですが、ここはやはりDebian流にのっとって
シンボリックリンク(Windowsでいうところのショートカット)を張りましょう。

# ln -s /etc/apache2/mods-available/php4.conf /etc/apache2/mods-enabled/php4.conf
# ln -s /etc/apache2/mods-available/php4.load /etc/apache2/mods-enabled/php4.load


但し、同じような作業を繰り返すのは面倒なの...続きを読む

QxamppでPHPを実行

PHP初心者です。

Xampp(バージョンは1.6.8)をインストールして、
PHPファイルを実行しようとすると、
「Fatal error: Undefined class name 'loggermanager'」
というエラーが出てしまいます。

libフォルダに「LoggerManager.php」は入っているのですが…

実行しようとしているファイルは

C:\xampp\htdocs\ディレクトリ1\ディレクトリ2\ディレクトリ3\ディレクトリ4\ディレクトリ5

の配下にあり、「LoggerManager.php」は

C:\xampp\htdocs\test\support_tool_pon\lib\log4php

の配下にあります。

原因に心当たりがある方、教えてください。

Aベストアンサー

1.パスが通ってない?

実行スクリプトでオブジェクト生成するクラスの記述のあるファイルへのパスは通ってますか?
実行スクリプト内のloggermanagerが出現する直前で
echo get_include_path();
exit;

などして
C:\xampp\htdocs\test\support_tool_pon\lib\log4php
へ通じているパスが記述されているか確認してみてください。

パスを設定するにはスクリプト上でset_include_pathを使うか,
php.iniのinclude_pathの設定を見直してください。
また,この際に設定するiniファイルについてはhttpd.confで指定されているものかどうか確認してください。
windowsの場合だと,c:\xampp\php\php.ini などではなく c:\windows\php.ini などを読んでいたりします(パスは架空です)ので
phpinfo();などで,実際に読み込まれているphp.iniがどこにあるものなのかも確認して,その内容(include_path)をあらためてください。

インクルードパス
include path
get_include_path
set_include_path
などで検索してみてください。


2.クラスの参照の問題?
確か1.6.8はPHP4と5切り替え可能なバージョンですよね?
どちらで実行されてますでしょうか。
お使いのlog4phpの動作に必須環境など確認してみてください。
この切り替えで上手く行きませんか?

1.パスが通ってない?

実行スクリプトでオブジェクト生成するクラスの記述のあるファイルへのパスは通ってますか?
実行スクリプト内のloggermanagerが出現する直前で
echo get_include_path();
exit;

などして
C:\xampp\htdocs\test\support_tool_pon\lib\log4php
へ通じているパスが記述されているか確認してみてください。

パスを設定するにはスクリプト上でset_include_pathを使うか,
php.iniのinclude_pathの設定を見直してください。
また,この際に設定するiniファイルについてはhttpd.confで指定さ...続きを読む

QPostgrsql8.1.9+PHP5.1.6+apacge2

すみませんLINUXの初心者です

Postgrsql8.1.9+PHP5.1.6+apacge2をインストールしています

OSはSentOS5です

とりあえずPHPで書いたものをWEBでデーターベースに接続してみて
問題あればエラーが出ると思っていたのですが
WEBの画面には何も表示されない状態になってしまいます。

<?php
// データベースに接続
$con = pg_connect("dbname=template1 user=postgres password=000");
// クエリの実行
$rs = pg_query($con, "select * from tester");
// 結果セットの行数を取得
$maxrows = pg_num_rows($rs);
for ($i = 0; $i < $maxrows; $i++) {
$row = pg_fetch_row($rs, $i);
echo("$row[0] | $row[1]<br>\n");
}
// データベースの接続終了
pg_close($con);
?>


HTMLで書いた物はWEB画面には出てくるのですが・・・

とりあえずインストールされてるものを
書いてみました。

postgresql-libs-8.1.4-1.1
postgresql-server-8.1.9-1.el5
postgresql-8.1.9-1.el5

httpd-2.2.3-7.el5.centos

php-common-5.1.6-15.el5
php-mbstring-5.1.6-15.el5
php-cli-5.1.6-15.el5

何かが足りないのかconfigの編集が悪いのかまったく
わからない状態です

PHP・apacheは

vi /var/www/html/test.php

<?php
phpinfo();
?>
を書き込んでWEBを開くとphpinfoのページは開きます。

Postgresqlは単独でテーブルの登録はできます。

解決に必要な情報が要る場合は言っていただければ・・・

ただ初心者なのでコマンドを教えてもらえると助かります

すみませんがよろしくお願いします。

すみませんLINUXの初心者です

Postgrsql8.1.9+PHP5.1.6+apacge2をインストールしています

OSはSentOS5です

とりあえずPHPで書いたものをWEBでデーターベースに接続してみて
問題あればエラーが出ると思っていたのですが
WEBの画面には何も表示されない状態になってしまいます。

<?php
// データベースに接続
$con = pg_connect("dbname=template1 user=postgres password=000");
// クエリの実行
$rs = pg_query($con...続きを読む

Aベストアンサー

php.iniの
display_errors =
error_reporting =
の値はどのようになっていますか?
display_errors = On
になっていない場合、エラーは表示されません。
また、error_reportingで表示する区分が希望通りに設定されていないと、希望するエラーが表示されません。

/var/log/apache2/error.log
とか
/var/log/httpd/error.log
とかapacheのエラーログに問題が起きていればエラーが記録されていると思いますので、そちらを見てみても良いでしょう。

で、PHPのpostgresql用のモジュールが入っていないようなので、pg_で始まる関数が利用できないエラーが発生しているのではないかとおもいます。

<?php
phpinfo();
?>

で表示されるページにPostgreSQLの項目があるかどうか確認してください。
もしないようであれば、以下のコマンドを発行してPostgreSQL用のモジュールをインストールしてください。

#yum -y install php-pgsql
#/sbin/service httpd restart

php.iniの
display_errors =
error_reporting =
の値はどのようになっていますか?
display_errors = On
になっていない場合、エラーは表示されません。
また、error_reportingで表示する区分が希望通りに設定されていないと、希望するエラーが表示されません。

/var/log/apache2/error.log
とか
/var/log/httpd/error.log
とかapacheのエラーログに問題が起きていればエラーが記録されていると思いますので、そちらを見てみても良いでしょう。

で、PHPのpostgresql用のモジュールが入っていない...続きを読む

Qxampp sendmail 設定

PHP sendmail 設定について
すみません、うまく行かないのでご存知方いましたら
おしえてください。
sendmailの設定です。。。
環境・php5、xampp1.7、sendmail(xmappに付随)
まずはテストでyahooのフリーメールで試してみたいです。
注)まず、契約してる、プロバイダーのSMTPで試すと言う返答はなしでお願いします。

php.ini
SMTP = smtp.mail.yahoo.co.jp
smtp_port=587

; For Win32 only.
sendmail_from = tes@example.com

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"


sendmail.ini
smtp_server=smtp.mail.yahoo.co.jp
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
pop3_server=pop.mail.yahoo.co.jp

pop3_username=usernm@
pop3_password=pass
auth_username=usernm@(実際ログインできるnm)
auth_password=pass(実際ログインできるpw)

上記で設定しましたが、うまくいきません。。エラーMSGは得になしえです。

sendmail.iniなしで直接、php.iniに記載するし
Mercury起動すると、

php.ini
SMTP = smtp.mail.yahoo.co.jp
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
pop3_server=pop.mail.yahoo.co.jp
pop3_username=usernm@
pop3_password=pass
auth_username=usernm@(実際ログインできるnm)
auth_password=pass(実際ログインできるPW)

; For Win32 only.
sendmail_from = tes@example.com

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"

mb_send_mail() [function.mb-send-mail]: S
MTP server response: 530 Sorry,
please use SMTP-AUTH instead -
for help go to http://help.yahoo.co.jp/help/jp/mail/whatisymail/whatisymail-51.htmlとでます。

解決策、ご存知方いましたら、教えていただけないでしょうか?

PHP sendmail 設定について
すみません、うまく行かないのでご存知方いましたら
おしえてください。
sendmailの設定です。。。
環境・php5、xampp1.7、sendmail(xmappに付随)
まずはテストでyahooのフリーメールで試してみたいです。
注)まず、契約してる、プロバイダーのSMTPで試すと言う返答はなしでお願いします。

php.ini
SMTP = smtp.mail.yahoo.co.jp
smtp_port=587

; For Win32 only.
sendmail_from = tes@example.com

; For Unix only. You may supply arguments as well (default: "...続きを読む

Aベストアンサー

最後の一文をよく読んで見てください。
SMTP-AUTHが必要となってます。

下記サイトは、SMTP-AUTHの概要です。
http://e-words.jp/w/SMTP20Authentication.html

私自身、SMTP-AUTHを通してからメールを送信するというものは組んだことがないのですが、
下記サイトのライブラリの「Qdmail」は、それを行うことが出来ます。
http://hal456.net/qdmail/smtp

このライブラリは日本語メールの送信など、簡単に行うことが出来るライブラリなので、
利用してみてはいかがでしょうか。

勉強のために、ということであれば、Qdmailのソースを読んで、どのように実現しているか
調べてみるのも良いかもしれません。

QCentOS5 + PHP4 + Apache2の設定

CentOS 5.3に、Apache2.2.11とPHP4.4.9を下記のURLを参考にしながらインストールを行いました。

http://www.geocities.jp/tatsus490824/php_install.html

設定も記載してある通りに行ったのですが、
いざPHPの動作を確認しようと、ブラウザからhttp://"ホスト名orIPアドレス"/test.php を実行すると、HTTP404 WEBページが見つかりません。と表示されます。

何が原因なのでしょうか?
初心者でLinuxの事がまだ何も分かっていませんが、お願いします。

Aベストアンサー

DocumentRootが間違っていませんか?
Apacheのconfを確認するか、エラーログを確認してDocumentRootを探してみてください。
たぶん、エラーログを見た方が早いです。
/var/log/apache2/error.logあたりを見れば・・・。

Qxamppでメール送信の設定

すみません。
XAMPPでメール送信の設定を行いたいのですが、設定方法が分かりません。
いろいろ調べたのですが、バージョンが違っているのか?良く分かりません。
php.iniのどの場所を設定したらいいのでしょうか?
教えてください。
xamppは1.72の最新です。
よろしくお願いします。

Aベストアンサー

>いろいろ調べたのですが、バージョンが違っているのか?良く分かりません。
どこがどうわからない。
そもそもXAMPPというよりphp.iniの書き方なんてそんなに極端な仕様変更されていませんけど

Qhttpd.confの場所とphp.iniの設定

いつもお世話になっております。

ps auxww で表示したapacheが、/usr/sbin/httpd となっていた場合、
ここで動いているapacheのhttpd.confを正確に導く方法は、どのようになりますでしょうか。
これまで、apacheを調べるときには、
・rpm -qa | grep apache
もしくは、
/usr/local周りを調べていましたが、
apacheが/usr/local/で、複数稼動している場合、
または、/etc/httpd で動いているのか不明な場合、
どのconfをいじるべきかわからないためです。

また、httpd.confの場所がわかった場合、
phpがモジュールとして動いていた場合、
httpd.confに、LoadModule php5_module ・・・
となりますが、そのphp.iniの設定ファイルを導くには、
どのようにしたらよいでしょうか。
これまでは、phpが動くところで、phpinfoして、探していましたが、
それ以外に、いくつか方法を教えていただけると助かります。

最後に、php.iniを編集した後、正しくphp.iniが設定されているか(文法間違いがないか)
どうかを確認するには、どうしたらよいでしょうか。
apacheでいう configtestみたいなものはありますでしょうか。

以上、たくさんで申し訳ございませんが、
何卒よろしくお願い致します。

いつもお世話になっております。

ps auxww で表示したapacheが、/usr/sbin/httpd となっていた場合、
ここで動いているapacheのhttpd.confを正確に導く方法は、どのようになりますでしょうか。
これまで、apacheを調べるときには、
・rpm -qa | grep apache
もしくは、
/usr/local周りを調べていましたが、
apacheが/usr/local/で、複数稼動している場合、
または、/etc/httpd で動いているのか不明な場合、
どのconfをいじるべきかわからないためです。

また、httpd.confの場所がわかった場合、
phpがモジュー...続きを読む

Aベストアンサー

OSは何でしょうか?
rpmコマンドが書かれているので、Red Hat Enterprise Linuxまたはそれ系だとは思いますが…
(こういう質問の場合、どこのディストリビューション使ってるのか書かなきゃ…)

そもそも、rpmで動いているのかソースビルドで動いているのか、把握できていない時点でサーバ運用失格ではありますが、前任者が突然いなくなることもあるので、お気持ちは察します…

> どのconfをいじるべきかわからないためです。

それはもう、ソースビルドしてれば、ビルドの仕方にもよるでしょうし、rpmで入れてたってわざと/etc/httpd/confから移動して使っている人もいるでしょうから、決まりきったものはないでしょうね。

まず調査方法としては、

# chkconfig --list

で、httpdがあり、更にランレベルに応じてonになっているのを確認するべき。
onになっていれば、/etc/init.dの中にあるhttpdという起動スクリプトでOS起動時にApacheも起動するようになっているはずなので、その起動スクリプトの中身から追いかければいいんじゃないですかね。
または、

# service httpd status

でも同様です。

OSは何でしょうか?
rpmコマンドが書かれているので、Red Hat Enterprise Linuxまたはそれ系だとは思いますが…
(こういう質問の場合、どこのディストリビューション使ってるのか書かなきゃ…)

そもそも、rpmで動いているのかソースビルドで動いているのか、把握できていない時点でサーバ運用失格ではありますが、前任者が突然いなくなることもあるので、お気持ちは察します…

> どのconfをいじるべきかわからないためです。

それはもう、ソースビルドしてれば、ビルドの仕方にもよるでしょうし、rpmで入れてたって...続きを読む


人気Q&Aランキング

おすすめ情報