ローカルホスト経由でGmailアカウントにアクセスしようとしています。しかし、私は応答を得ています:
致命的なエラー:未定義の関数imap_open()の呼び出し
誰かが問題を解決するために何をすべきかを指摘できますか?
$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = '[email protected]';
$password = 'mypassword';
/* try to connect */
$inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' .imap_last_error());
インストール手順は常に同じですが、package-managerとpackage-nameは、使用するディストリビューション、バージョン、および/またはリポジトリによって異なります。一般的に、手順は次のとおりです。
a)最初に、コマンド
su
またはSudo
で取得したユーザー特権の昇格が必要です。b)その後、パッケージマネージャーでabsent PHPモジュールをインストールします.
c)その後、モジュールをロードするには
Apache2
HTTPデーモンの再起動が必要です。d)最後に、
php -m | grep imap
を実行して、PHPモジュールが利用可能になったかどうかを確認できます。
UbuntuAPT
パッケージphp5-imap
(またはphp-imap
)は、apt-get
でインストールできます:
apt-get install php5-imap
service Apache2 restart
Debianでは、APT
パッケージphp5-imap
をインストールできますaptitude
(またはapt-get
):
aptitude install php5-imap
Apache2ctl graceful
CentOSおよびFedoraRPM
パッケージphp-imap
はyum
を使用してインストールできます(ヒント: Webtatic repoを使用する場合、パッケージの名前はphp56w-imap
またはphp71w-imap
に似ている場合があります)。
yum install php-imap
service httpd restart
systemd
システムでは、 systemd units を使用しているときに、ユニットhttpd.service
を再起動するコマンドは次のとおりです。
systemctl restart httpd.service
上記の解決策には問題があります。モジュールが既に以下で参照されている場合です。
/etc/php5/Apache2/php.ini
それは投げるかもしれません:
PHP Warning: Module 'imap' already loaded in Unknown on line 0
これは、デフォルトのphp.ini
ファイル(少なくともUbuntu 12.04で)とPHPモジュール一度だけ参照する必要がある)で参照されているために発生します。 INI
スニペットを使用してモジュールをロードすることをお勧めしますが、/etc/php5/conf.d/
(パスも異なる場合があります)でINI
ファイルをスキャンしています:
/etc/php5/conf.d/imap.ini
Ubuntuは、Webサーバーを再起動する前に実行されるPHPモジュールを管理する独自のコマンドも備えています。
php5enmod imap
php5dismod imap
IMAP
モジュールがサーバーにロードされると、 PHP IMAP Functions が利用可能になります。モジュールを利用する前に、モジュールロードされているかどうかを確認するのがベストプラクティスかもしれません。
imapをインストールするためのUbuntuで
Sudo apt-get install php-imap
buntu 14.04以降の使用
Sudo apt-get install php5-imap
およびデフォルトではimapはphpで有効になっていないため、このコマンドを使用してimapエクステンションを有効にします
須藤php5enmod imap
その後Apacheを再起動します
SudoサービスのApache2の再起動
linuxを使用している場合は、/etc/php/php.ini
(または、/ etc/php5/cli/conf.dに新しい拡張インポートファイルを作成する必要があります)ファイルを使用して、imap共有オブジェクトファイルを追加してから、Apacheサーバーを再起動します。コメント解除
;extension=imap.so
次のようになります。
extension=imap.so
次に、Apacheを再起動します
# /etc/rc.d/httpd restart
Homebrewを搭載したMac OS Xでは、明らかに、PHPは実行できない提供されたエラーのために既にインストールされています:
更新:最新バージョン
brew instal php --with-imap
はもう機能しません!!!
$ brew install php72 --with-imap
Warning: homebrew/php/php72 7.2.xxx is already installed
また、モジュールのみをインストールすると、ここでは機能しません。
$ brew install php72-imap
Error: No available formula with the name "php72-imap"
したがって、再インストール it:
$ brew reinstall php72 --with-imap
しばらく時間がかかります:-)(8分17秒で作成)
Ubuntu 12.04から14.04への移行中に私はこれにつまずき、Ubuntu 14.04 LTSの時点でIMAP拡張がデフォルトでロードされなくなったようだと共有したかった。
拡張機能がインストールされているかどうかを確認してください:
dpkg -l | grep php5-imap
次のような応答が必要です。
ii php5-imap 5.4.6-0ubuntu5 AMD64 IMAP module for php5
そうでない場合は、インストールします。
拡張機能を実際に有効にするには
cd /etc/php5/Apache2/conf.d
ln -s ../../mods-available/imap.ini 20-imap.ini
service Apache2 restart
apache用に修正する必要があります。 CLIの場合は、/ etc/php5/cli/conf.dで同じことを行います
と
echo get_cfg_var('cfg_file_path');
このphpのインスタンスでどのphp.iniが使用されているかを確認できます。
pHP 5.3がインストールされているCentOSの場合。
Sudo yum install php53-imap
apacheを再起動します
Sudo/sbin/service httpd restartまたはSudo service Apache2 restart
NginxとPHP-FPM 7を備えたUbuntuはこれを使用します。
Sudo apt-get install php-imap
サービスphp7.0-fpm restart service ngnix restart
モジュールがインストールされていることを確認してくださいphp -m | grep imap
モジュールimapの構成は、cli php.iniとfpm php.iniの両方で自動的に有効になります
nano /etc/php/7.0/cli/conf.d/20-imap.ini nano /etc/php/7.0/fpm/conf.d/20-imap.ini
ローカルインストールがWindowsでXAMPPを実行している場合、それで十分です。ファイル "\ xampp\php\php.ini"を開いて、 "; extension = php_imap.dll"の行の先頭のセミコロンを削除することにより、PHPエクステンションをアクティブにできます。そのはず:
;extension=php_imap.dll
に
extension=php_imap.dll
IMAPをPHP 7.0.32でUbuntu 16.04にインストールする場合。指定されたリンクに移動し、地域に応じてリンクを選択します。私の場合は、Asiaセクションからリンクを選択します。ファイルをクリックしてIMAPをインストールします。次にApacheを再起動します。
https://packages.ubuntu.com/xenial/all/php-imap/download 。
iMAPがインストールされているかどうかを確認するには、phpinfoファイルを確認します。インストールが成功した場合は、IMAP c-Clientバージョン2007fが表示されます。