CentOS


さくらvpsのwebサイトにstripeを導入

前提
php で composer が使える状態である
composer の導入はこちら

1.ComposerでStripeライブラリをインストールする

2.ファイルの設置

メインで参考にしたページ

https://qiita.com/p_s_m_t/items/a69dfbc75804fe86ad9c

ファイル内でライブラリをロードするときの注意点

ComposerでStripeライブラリをインストールした場合
-------------------------------------------------
require_once('/stripe_test/vendor/autoload.php');
-------------------------------------------------

Composerを使わず、手動でStripeライブラリをダウンロードしてサーバーに置いた場合
-------------------------------------------------
require_once('/stripe_test/stripe-php/init.php');
-------------------------------------------------
デフォルトのファイル名が違うので間違えないように

【さくらのVPS】mb_send_mail でメールが送れない

php の mb_send_mail 関数で一部のメールが送れない。
yahoo メール宛てには送れるのに、独自メールが送れない。

--------------------------------------------------
環境
送信元:さくらのVPS WEBサーバーより mb_send_mail を利用
--------------------------------------------------

mb_send_mail 関数自体はエラーを吐かず、正常に終了する。

ターミナルでメールエラーを確認
--------------------------------------------------
cd /var/log/maillog
--------------------------------------------------

エラーっぽい箇所の抜粋
--------------------------------------------------
May 29 12:14:51 localhost postfix/smtp[32237]: 70ED82C028C: to=, relay=○○.sakura.ne.jp[49.212.235.97]:25, delay=0.08, delays=0.02/0/0.04/0.02, dsn=5.1.8, status=bounced (host ○○.sakura.ne.jp[49.212.235.97] said: 553 5.1.8 ... Domain of sender address apache@localhost.localdomain does not exist (in reply to MAIL FROM command))
--------------------------------------------------

検索して見つけた対処法
設定してなかった mb_send_mail 第五引数に "-fプロバイダメールアドレス" を指定。
第五引数はエラーがあった場合にメールを送信するメールアドレス。
これで送信できるようになった。

ちなみに別で契約しているもう一つのさくらVPSでは 第五引数がなくても送信できている。サーバーの設定を変えることでも問題解決できそうだ。

参考

https://okwave.jp/qa/q4822148.html

https://b-risk.jp/blog/2013/01/php_mb_send_mail/

追記
ezweb を使っている方から仮登録メールが届かないという連絡が問い合わせフォームからあった。

SPF の設定が何のが原因か?

----------------------------------------
"v=spf1 +ip4:web公開サーバーのipアドレス +mx ~all"
----------------------------------------

参考

https://qiita.com/ryounagaoka/items/931081c74b5c7a9b2bff

spfの確認

http://mxtoolbox.com/spf.aspx

追記2
gmail 宛てに送ったら迷惑メールに振り分けられたら

gmail から メールヘッダーを確認。

Received-SPF の部分が softfail になっていたらそれが原因。
ip6 対応のサーバーから送信した場合、SPF の設定に ip6 を追加する必要がある。

参考

https://www.nalabo.net/blog/2013/06/18/148

さくらのvpsにおいてphpでメールが送れない

php の mb_send_mail 関数でメールが送れない。他のサーバーでは送れるのでスクリプトのエラーではない。

ターミナルから送ろうとするとエラーが出た。

こう打つ
--------------------------------------------------------------------
[root@localhost ~]# echo "test" | /usr/sbin/sendmail -t -i ○○@yahoo.co.jp
--------------------------------------------------------------------

//↓出たエラー
--------------------------------------------------------------------
sendmail: fatal: parameter inet_interfaces: no local interface found for ::1
--------------------------------------------------------------------

↓このページのようにしたらできた。

https://qiita.com/cs_sonar/items/706a9204cba1a8e99cb1

postfix はメールを送るためのソフト。

自宅サーバーのインターネットがつながらなかった

自宅サーバーのインターネットがつながらなかった。

デフォルトゲートウェイに ping を打つと Destination Host Unreachable と返ってくる。

ルーターの電源を入れた直したらつながった。

さくらVPS で pear をインストールしたときの覚書

さくらVPS で pear をインストールしたときの覚書

現在インストールされているパッケージの確認
------------------------------
pear list
------------------------------

インストールできるパッケージの一覧
------------------------------
pear list-all
------------------------------

インストールされた pear のバージョンを確認
------------------------------
pear version
------------------------------
PEAR-1.9.4 がインストールされた。

DB パッケージをインストールする
------------------------------
pear install DB
------------------------------
DBパッケージをインストールするには pear のバージョンが 1.10.4 以上でないといけないエラーが出る。

こことかいろいろ見ながら最後に強制アップデートできた。

------------------------------
pear upgrade --force PEAR
------------------------------

【さくらVPS】PHPセッションファイルの保存場所

さくらVPS に PHP をインストールしたときにPHPセッションファイルの保存先と保存先の指定方法について調べたときの覚書

セッションファイルの保存場所は、 php.ini の session.save_path ディレクティブで指定できる。しかしデフォルトではコメントアウトになっていた。

その状態で phpinfo() を実行すると、 session.save_path の右カラムは no value になっている。

savepath

ターミナルから phpinfo を見る場合
-------------------------------------------------
cat /etc/php.ini | grep session.save_path
-------------------------------------------------

実際のセッションファイルは左カラムに記載されているパスにある。

セッションファイルのあるパス
-------------------------------------------------
/var/lib/php/session
-------------------------------------------------

で、このパス(/var/lib/php/session)はどこで設定しているのかというと、php.conf ファイルになる。

-------------------------------------------------
cat /etc/httpd/conf.d/php.conf
-------------------------------------------------

php.conf 内の記述
-------------------------------------------------
php_value session.save_path "/var/lib/php/session"
-------------------------------------------------

セッションファイルの保存先を変更したいなら、php.ini の session.save_path のコメントアウトを外して有効にすればいい。

変更前
-------------------------------------------------
;session.save_path = "/tmp"
-------------------------------------------------

変更後
-------------------------------------------------
session.save_path = "希望の保存先パス"
-------------------------------------------------

さくらVPSにphp-mecabを入れたときの覚書

さくらVPSにphp-mecabを入れたときの覚書手順
1.mecab を入れる
2.php-mecab を入れる

参考にしたサイト
phpでmecab

手順は参考サイトどおり。自分なりの捕捉を入れた。

ソースコードをインストールする場所に移動
-------------------------------------------------
cd /usr/local/src/
-------------------------------------------------

ダウンロードと解凍
-------------------------------------------------
wget http://mecab.googlecode.com/files/mecab-0.996.tar.gz
tar xvf mecab-0.996.tar.gz
-------------------------------------------------

解凍したディレクトリに移動
-------------------------------------------------
cd mecab-0.996
-------------------------------------------------

configure で Makefile をつくる
-------------------------------------------------
sudo ./configure --enable-utf8-only
-------------------------------------------------
※「configure」というシェルスクリプトを実行することで、ソースファイルをコンパイルする前に、インストール対象となるシステム特有の機能/情報をチェックし、チェック状況を記述したMakefileが作成される。

コンパイルとインストール
-------------------------------------------------
sudo make
sudo make install
-------------------------------------------------

この時点で mecab を実行すると 辞書がないエラーが出る
-------------------------------------------------
# mecab
param.cpp(69) [ifs] no such file or directory: /usr/local/lib/mecab/dic/ipadic/dicrc
-------------------------------------------------

バージョン確認だけならエラーは出ない
-------------------------------------------------
# mecab -v
mecab of 0.996
-------------------------------------------------

ipa辞書のインストール

ipa辞書のダウンロード先をつくる
-------------------------------------------------
cd /usr/local/src/mecab-0.996/
mkdir library
-------------------------------------------------

ダウンロードして ipa辞書を解凍
--------------------------------------------------
tar xvf mecab-ipadic-2.7.0-20070801.tar.gz
--------------------------------------------------

configure で Makefile をつくる
--------------------------------------------------
./configure --with-charset=utf8
--------------------------------------------------

コンパイルとインストール
-------------------------------------------------
sudo make
sudo make install
-------------------------------------------------

動作確認する
-------------------------------------------------
mecab
すもももももももものうち
-------------------------------------------------

任意。
辞書「mecab-ipadic-neologd」のインストール
(ipa 辞書を先にインストールしておかないと効果は薄い?要確認)
-------------------------------------------------
cd /usr/local/src/mecab-0.996/
mkdir library
cd /usr/local/src/mecab-0.996/library
git clone --depth 1 https://github.com/neologd/mecab-ipadic-neologd.git
cd /usr/local/src/mecab-0.996/library/mecab-ipadic-neologd/
./bin/install-mecab-ipadic-neologd -n
-------------------------------------------------

動作確認が終了したら続いて、php-mecab のインストール

-------------------------------------------------
cd /usr/local/src/
wget https://github.com/rsky/php-mecab/archive/master.zip
unzip master.zip
cd php-mecab-master/mecab
phpize
(sudo ./configure
↑だとエラーが出た、configure: error: mecab-config not found)
sudo ./configure --with-php-config=/usr/bin/php-config --with-mecab=/usr/local/bin/mecab-config
sudo make
sudo make install
-------------------------------------------------

./configure の途中で re2c が無いみたいなエラーが出たのでインストールする

re2c をインストール
-------------------------------------------------
wget http://jaist.dl.sourceforge.net/project/re2c/re2c/0.13.7.5/re2c-0.13.7.5.tar.gz
tar zxvf re2c-0.13.6.tar.gz
cd re2c-0.13.6
./configure
make
make install
-------------------------------------------------

再び./configure からやり直し
-------------------------------------------------
sudo ./configure
sudo ./configure --with-php-config=/usr/bin/php-config --with-mecab=/usr/local/bin/mecab-config
sudo make
sudo make install
-------------------------------------------------

シンボリックリンクの作成
-------------------------------------------------
sudo ln -s /usr/lib64/php/modules/mecab.so /etc/php.d
-------------------------------------------------

php.iniの編集
-------------------------------------------------
vim /etc/php.ini
-------------------------------------------------

/etc/php.ini
-------------------------------------------------
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;

; If you wish to have an extension loaded automatically, use the following
; syntax:
;
; extension=modulename.extension
;
; For example, on Windows:
;
; extension=msql.dll
;
; ... or under UNIX:
;
; extension=msql.so
;
; ... or with a path:
;
; extension=/path/to/extension/msql.so
;
; If you only provide the name of the extension, PHP will look for it in its
; default extension directory.

;;;;
; Note: packaged extension modules are now loaded via the .ini files
; found in the directory /etc/php.d; these are loaded by default.
;;;;

;php-mecab を動かす記述
extension=mecab.so

;mecab-php の辞書のパス
mecab.default_dicdir="/usr/local/lib/mecab/dic/mecab-ipadic-neologd"
-------------------------------------------------

apacheの再起動
-------------------------------------------------
service httpd restart
-------------------------------------------------

動作確認
-------------------------------------------------
php -r 'phpinfo();' | grep 'mecab' -i 
-------------------------------------------------

以下のようになっていれば問題ない。
-------------------------------------------------
mecab
MeCab Support => enabled
MeCab Library => 0.996 => 0.996
mecab.default_dicdir => no value => no value
mecab.default_rcfile => no value => no value
mecab.default_userdic => no value => no value
-------------------------------------------------

test.php
辞書の読み込みをしてないとエラーになる
-------------------------------------------------
<?php

$str = 'この焼肉は焼きにくい';
$mecab = new Mecab();

$nodes = $mecab->parseToNode($str);

foreach ($nodes as $n)
{
echo $n->getSurface() . "
";
echo $n->getFeature() . "
";
}
?>
-------------------------------------------------

使用する辞書を PHP で指定する場合
-------------------------------------------------
$options = array('-d', '/usr/local/lib/mecab/dic/mecab-ipadic-neologd');

$mecab = new MeCab_Tagger($options);
-------------------------------------------------

【さくらVPS】awstatsでアクセス解析する

参考サイト
さくらVPS アクセス解析AWStatsを導入・インストール・設定
さくらのVPS -AWStatsのインストール&初期設定-
はじめての自宅サーバ構築 - Fedora/CentOS -

ベーシック認証導入の参考サイト
さくらのVPS -AWStatsのインストール&初期設定-

さくらVPSと同じドメインのメールを使う

さくらのVPSをメールサーバーにするよりさくらのメールボックスを利用したほうが簡単なのでその方法。

環境

ドメイン管理:お名前ドットコム
web サーバー:さくらインターネット(運用中)
メールサーバー:さくらインターネット(追加)

やること

1.権威サーバー(コンテンツサーバー)のゾーン設定、MXタイプの項目で、さくらのメールサーバーを指定。

2.さくらのメールサーバーコンパネで独自ドメインを追加

参考ページ
さくらのVPS-さくらのメールボックスでウェブサイトと同じドメインを使う
さくらメールボックス連結のVPSメールサーバーMX設定
さくらのナレッジ

メールの作成は、さくらのサーバーコントロールパネルから行う
メールアドレスの作成・変更・削除

pearでcould not extract the packageエラー

pearで新しいパッケージをインストールするとエラーが出る。

-------------------------------------------------
could not extract the package ~
-------------------------------------------------

tgz ファイルが展開できないという内容らしい。

以下のサイトを参考に対処
pearコマンドでcould not extractのエラーが発生

インストール時の解凍に失敗する Tarのバグ(PEAR/Archive/Tar.php)

PEAR on PHP 5.5: could not extract package.xml

原因は Archive_Tar のバグ。なので Archive_Tar 自体をアップデートを試みるが、Archive_Tar のファイル自体が解凍できないので解決できない。

-------------------------------------------------
pear upgrade Archive_Tar
downloading Archive_Tar-1.4.2.tgz ...
Starting to download Archive_Tar-1.4.2.tgz (20,624 bytes)
.....done: 20,624 bytes
could not extract the package.xml file from "/tmp/pear/download/Archive_Tar-1.4.2.tgz"
Download of "pear/Archive_Tar" succeeded, but it is not a valid package archive
Error: cannot download "pear/Archive_Tar"
Download failed
upgrade failed
-------------------------------------------------

解凍はできないけどファイルのダウンロードはできているようなので手動で解凍。

-------------------------------------------------
tar zxvf Archive_Tar-1.4.2.tgz
-------------------------------------------------

解凍したファイルと問題のあるファイルを置き換える

ファイルの場所を確認
-------------------------------------------------
find / -name Tar.php
/usr/share/pear/Archive/Tar.php
/tmp/pear/download/Archive_Tar-1.4.2/Archive/Tar.php
-------------------------------------------------

ファイルの置換
-------------------------------------------------
cp /tmp/pear/download/Archive_Tar-1.4.2/Archive/Tar.php /usr/share/pear/Archive/
-------------------------------------------------

これでOK。

古い pear がインストールされたのが原因だったので pear 自体をアップグレードしておく
-------------------------------------------------
pear upgrade PEAR
-------------------------------------------------

1 / 3123