さくらインターネット


さくら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のphpにcomposerを導入

composer が導入されているか

 

composer が利用できないことを確認
----------------------------------------
composer --version
-bash: composer: コマンドが見つかりません
----------------------------------------

 

composer をどこのディレクトリにダウンロードしてどこにインストールするべきか確認した結果、特に決まりはなく任意のディレクトリでよさそうだ。ただ、プロジェクトだけで必要か、システム全体で使えるようにしたいのかでインストールの実行ディレクトリを決めればいいという意見も多くあった。

自分はさくらVPS の環境でグローバルで使えたほうが便利と考えたのでファイルのダウンロード先を ルートディレクトリ(/root)と決めた

 

root になってホームディレクトリ(/root)でコマンドを実行
-----------------------------------------------------------------------
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
-----------------------------------------------------------------------

すると /root に composer-setup.php がダウンロードされる

 

次のコマンドでファイルに問題がないか確認
-----------------------------------------------------------------------
php -r "if (hash_file('sha384', 'composer-setup.php') === '48e3236262b34d30969dca3c37281b3b4bbe3221bda826ac6a9a62d6444cdb0dcd0615698a5cbe587c3f0fe57a54d8f5') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
-----------------------------------------------------------------------
Installer verified と出たらOK

セットアップを実行
-----------------------------------------------------------------------
php composer-setup.php
-----------------------------------------------------------------------

この状態でカレントディレクトリであるルートディレクトリ(/root)を確認すると composer 関連の二つのファイルが確認できる
-----------------------------------------------------------------------
composer-setup.php composer.phar
-----------------------------------------------------------------------

composer-setup.php はもういらないので削除
-----------------------------------------------------------------------
php -r "unlink('composer-setup.php');"
-----------------------------------------------------------------------

パスを通すために composer.phar を /usr/local/bin/composer に移動
-----------------------------------------------------------------------
mv composer.phar /usr/local/bin/composer
-----------------------------------------------------------------------

composer は root で実行しないように推奨されているのでユーザーを変更。
-----------------------------------------------------------------------
su - ユーザー名
-----------------------------------------------------------------------
参考:rootユーザでcomposerコマンドを実行してはダメな理由

https://akamist.com/blog/archives/261

 

composer が利用できることを確認
--------------------------------------------------------------------------------
composer
--------------------------------------------------------------------------------

 

実際に利用するには composer.json ファイルが必要

適当なディレクトに移動、もしくは作る。自分は /var 直下に作った。

カレントディレクトリに composer.json をつくる。
-q で対話形式の入力を行わない
--------------------------------------------------
composer init -q
--------------------------------------------------

インストール参考

https://technoledge.net/composer-install-and-use/

https://laboradian.com/php-composer/

https://qiita.com/inakadegaebal/items/d370bcb1627fce2b5cd1

https://weblabo.oscasierra.net/php-composer-centos-install/

composerディレクトリ構成

http://tadasy.hateblo.jp/entry/2013/10/09/193415

【さくらの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

サイトのssl化の手順

サイトのssl化の手順 覚書

let's encrypt の更新はこちら

さくらのレンタルサーバー かつ wordpress 利用の場合

-----------------------------------------------------------------------------------------

1.さくらのサーバーコントロールから無料SSL証明書を発行

2.Really Simple SSL をインストールして実行

さくらインターネット提供のプラグインも存在するが php のバージョンが違ったので Really Simple SSL をインストールした

参考サイト

https://zenlogic.jp/aossl/operation/wp-plugin/

3.google の Search Console と analytics の設定を変更する

https://candy.fun-net.biz/https-google-search-console-analytics/

-----------------------------------------------------------------------------------------

さくらのレンタルサーバー かつ wordpress でないの場合

-----------------------------------------------------------------------------------------
1さくらのレンタルサーバー wordpress でない場合

1.さくらのサーバーコントロールから無料SSL証明書を発行

2.CSS や 画像ファイル の URL を http → https に変更

SSL証明書を発行後に https のアドレスでページにアクセスすると表示はされるもののレイアウトが崩れる。このとき chrome のアドレスバーには鍵マークでなく「!」になっていた。原因は http CSS や画像ファイルを http で読み込んでいるのが原因なので https に書き換える。

3.htaccess で http → https の301リダイレクトを設定

htaccess に記述
---------------------------------------------------
RewriteEngine on
RewriteCond %{HTTPS} off //RewriteRuleが実行される条件。直後の RewriteRule のみが対象
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
---------------------------------------------------

4.google の Search Console と analytics の設定を変更する

https://candy.fun-net.biz/https-google-search-console-analytics/

-----------------------------------------------------------------------------------------

さくらのvpsの場合

基本的にここ↓を参考にする

https://knowledge.sakura.ad.jp/10534/

しかしリンク先の解説は CentOS7 を対象としているが、自分が利用しているのは CentOS6.9なのでちょいちょい違うので注意。

ファイアウォールのコマンドは CentOS6.9を利用しているので firewall-cmd ではなく iptables を使う。

iptables の起動状態を確認
-------------------------------------
/etc/init.d/iptables status
-------------------------------------

ssl で利用する 443 ポートが開いていることを確認
-------------------------------------
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443
-------------------------------------

Let's Encrypt を利用するには Certbot を利用する必要があるのでインストール

コマンド
-------------------------------------
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
./certbot-auto
-------------------------------------

その後指示に従う。

途中で、http でのアクセスを https にリダイレクトするか聞かれるが、手動(htaccess)でリダイレクトしたいので「1」を選択

-------------------------------------

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
-------------------------------------

インストールが完了したら httpd を再起動

-------------------------------------
service httpd start
-------------------------------------

https でアクセスできるか確認する

二つ契約しているさくらのVPSの片一方がうまく SSL化できなかった。

適用するドメインを選択するこの場面で現在利用してないドメインも選択したのが原因だと思われる。

Which names would you like to activate HTTPS for?
-------------------------------------------------------------------------------
1: one,example.com
1: two,example.com
1: three,example.com
1: four,example.com
1: five,example.com
1: six,example.com
1: seven,example.com
1: eight,example.com
-------------------------------------------------------------------------------

エラーが出てきちんと完了しない場合は、関連ファイルを全部消して再度実行するといい。
削除したファイル1
----------------------------------------------------
rm -rf /opt/eff.org/certbot
rm -rf /etc/letsencrypt
----------------------------------------------------

削除したファイル2
certbot-auto というファイルがいくつかのディレクトリ内にできているのですべて削除
探す場所
----------------------------------------------------
cd /opt/eff.org/
cd /etc/
cd /etc/httpd/conf.d/
----------------------------------------------------

不要ファイルをすべて削除したら再度実行。

コマンド
-------------------------------------
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto
./certbot-auto
-------------------------------------

さくらVPSでwwwサブドメインのURLを統一(正規化)する

www.○○○.com でアクセスしたときに、○○○.com にリダイレクトする方法

1.www.○○○.com を叩いたら、○○○.com のデータがあるサーバーにアクセスするように、DNS のゾーンの設定をする。

2.○○○.com のサーバー内の vhost.conf などの設定ファイルに以下の記述を追記する。

--------------------------------------------------
# www normalization
ServerAlias www.○○○.com
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.○○○\.com$
RewriteRule ^/(.*) http://○○○.com/$1 [R=301,L]
--------------------------------------------------

なお、△△△.○○○.com のように既にサブドメインがついている URL は対して、www.△△△.○○○.com というサブドメインのサブドメインをつける URL の記述は通常しない。www 自体がサブドメインのため。上記のやり方でも正規化できない。

うまくいかない場合は、ブラウザの情報を削除してからやってみる。はまった。

さくら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で外部ホストからmysqlに接続する

さくらVPSで外部ホストからmysqlに接続するには、接続を許可するユーザーを作ればいい。

参考サイト
MySQLに外部ホストから接続できるように設定する

接続を許可するユーザーを作るSQL
-------------------------------------------------
grant all privileges on 接続を許可するDB名.* to new_user_name@"接続元のホスト" identified by 'password' with grant option;
-------------------------------------------------

grant → 付与。許諾する。mysqlで権限を付与する命令。

all privileges → 全ての権限を与える。

privileges → プリビレッジ。権限の意。

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

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

環境

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

やること

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

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

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

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

さくらvpsでphpmyadminをインストールする

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

phpmyadmin は 下記ページの後半を参考にすればいい。

さくらのナレッジ Webサーバーを構築しよう(2)

しかし説明のとおりインストールすると、標準でインストールされる php5.3 向けの phpmyadmin がインストールしようとしてエラーが出て完了しない。

php5.6 だとこれではインストールできない
-------------------------------------------------
yum install phpmyadmin
-------------------------------------------------

yum install phpmyadmin で依然入れたバージョンを削除するなら簡単にアンインストールできる
-------------------------------------------------
yum remove phpmyadmin
-------------------------------------------------

なので、php のバージョンに合った phpmyadmin をインストールする

php5.6 で yum を使って phpmyadmin をインストール
-------------------------------------------------
yum install -y --enablerepo=remi,remi-php56 phpMyAdmin
-------------------------------------------------

1 / 512345