さくら VPS -> httpd.conf

Posted by muchag | Apache,CentOS,さくらインターネット | 2018-01-18 (木) 21:36:04

【環境】
Apache: 2.4.6
CentOS: 7.4.1708
さくらインターネット:VPS 2G プラン
バックアップ

cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
設定

vim /etc/httpd/conf/httpd.conf
User, Group

User と Group が apache になっていることを確認。


User apache
Group apache
管理者

管理者メールアドレスを設定。
今回はスキップ。


ServerAdmin root@localhost
ServerName, DocumentRoot, Directory

今回はドキュメントルートを変更するために VirtualHost を利用するので変更なし。


#ServerName www.example.com:80
DocumentRoot "/var/www/html"
<Directory "/var/www/html">
VirtualHost

ドキュメントルートを変更するために、VirtualHost を設定。
CakePHP3 用。


<VirtualHost xxx.xxx.xxx.xxx>
    ServerName www.hoge.com
    ServerAlias hoge.com
    DirectoryIndex index.html index.php
    AddDefaultCharset UTF-8
    DocumentRoot /var/www/my_app/webroot
    <Directory "/var/www/my_app/webroot">
      AllowOverride All
      Options FollowSymLinks
    </Directory>
</VirtualHost>
確認

httpd.conf 保存後、文法チェック。


apachectl configtest
Syntax OK
再起動

systemctl restart httpd
CakePHP 確認

上記設定後、hoge.com へブラウザで接続して、CakePHP のデフォルト画面が表示されれば OK。

試行錯誤
NameVirtualHost

Apache 2.4.x では、NameVirtualHost の設定は不要。
設定すると、いらないよ~と言われる。

AH00548: NameVirtualHost has no effect and will be removed in the next release /etc/httpd/conf/httpd.conf:355
FollowSymLinks

参考にさせていただいたサイトの中には、


- Options Indexes FollowSymLinks
+ Options FollowSymLinks -Indexes

このような記述が見受けられたけど

AH00526: Syntax error on line 364 of /etc/httpd/conf/httpd.conf:
Either all Options must start with + or -, or no Option may.

と怒られたので、-Indexes は削除。

Apache,CentOS,さくらインターネット | 2018-01-18 (木) 21:36:04 |

さくら VPS -> CakePHP3

Posted by muchag | CakePHP 3.x,CentOS,さくらインターネット | 2018-01-18 (木) 19:37:55

【環境】
CakePHP: 3.5.8
php: 7.1.13
CentOS: 7.4.1708
さくらインターネット:VPS 2G プラン
ディレクトリ作成

後述するけど、Composer は root では使わない方がよいそうなので
一般ユーザで操作。

そのため、先にroot でディレクトリを作成して
パーミッションを設定しておく必要がある。


mkdir /var/www/my_app
cd /var/www
chown apache:[username] my_app
chmod 775 my_app
  1. ディレクトリ作成
  2. ディレクトリへ移動
  3. 所有者変更
  4. パーミッションを設定
注意

次の Git Clone のために、リポジトリ名と同一のディレクトリを作成すること。

Git Clone

一般ユーザへ降格して、Git Clone。
さくら VPS -> Git Clone

クローン先ディレクトリ内に何かあるとエラーになるので
空っぽにしておくこと。

ディレクトリ名変更

ディレクトリ名を任意にしたい場合は
クローン後に、もっかい root へ昇格してから
ディレクトリ名を変更する。

インストール

ローカルで設定された composer.json に基づいて
インストールされる。


composer install

で、インストール。
ちょいと時間がかかる。

設定
環境ファイル

cp .env.local .env
インストール

一般ユーザへ変更してから。


composer create-project --prefer-dist cakephp/app /var/www/my_app

アプリ名を指定せず、下記のように実行すると


composer create-project --prefer-dist cakephp/app

app ディレクトリが自動生成されて、その中にインストールされる。

試行錯誤
インストール警告

root でインストールをしようとすると、下記警告が出る。


composer create-project --prefer-dist cakephp/app /var/www/my_app
Do not run Composer as root/super user! See https://getcomposer.org/root for details
インストール例外

上記コマンドにてインストールをしようとしたところ
下記例外が投げられた。

[Composer\Downloader\TransportException]
The “https://packagist.org/p/provider-latest%240cbfb40ab72a881d21b70f78286d39cd72e3b0eb8704c13e79dc49624e549973.json” file could not be downloaded (HTTP/1.1 404 Not Found)
対応1

Google 先生に質問し、1つ目の対応。
下記参考サイトによると、composer の健康診断コマンドらしい。

参考サイトの内容とは異なるけど、まずは診断。


composer diag
Checking platform settings: OK
Checking git settings: OK
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: OK
Checking github.com rate limit: OK
Checking disk free space: OK
Checking pubkeys:
Tags Public Key Fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0  87719BA6 8F3BB723 4E5D42D0 84A14642
Dev Public Key Fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B  0C708369 153E328C AD90147D AFE50952
OK
Checking composer version: OK
Composer version: 1.6.2
PHP version: 7.1.13
PHP binary path: /usr/bin/php

問題ないみたい。

参考サイト

ふたりはララベル:Composerのエラーの原因を調査する(2014-08-23)

対応2

下記参考サイトを見つけて、わけもわからないまま対応。


wget http://curl.haxx.se/ca/cacert.pem
cp -v -f cacert.pem /etc/pki/tls/certs/ca-bundle-curl.crt
  1. OpenSSL(正確にはcurl)で使用するCAをダウンロード
  2. 当該ファイルを、本家(?)ca-bundle.crt の存在するディレクトリへコピー

注意事項

このcrtファイルはcurlのエラーを回避するためのものですので、本来のca-bundle.crtを上書きしないように注意して下さい。

Qiita:ComposerからLaravelを導入しようとしてOpenSSL周りのエラーで困った件(2015-06-23)

php.ini へ上記ファイルを設定


vim /etc/php.ini

curl.cainfo=/etc/pki/tls/certs/ca-bundle-curl.crt
openssl.cafile=/etc/pki/tls/certs/ca-bundle-curl.crt
ファイルパス

最初コピペで作業をして、下記のように怒られた。


cp -v -f cacert.pem /full/path/to/certs/ca-bundle-curl.crt
`cacert.pem' -> `/full/path/to/certs/ca-bundle-curl.crt'
cp: 通常ファイル `/full/path/to/certs/ca-bundle-curl.crt' を作成できません: そのようなファイルやディレクトリはありません

そりゃ、/full/path/to は見つからなくて怒られるよねw

でも、コピー先のディレクトリがわからなかったので、
注意書きに書かれていた ca-bundle.crt ファイルを検索。


find / -name 'ca-bundle.crt'
/etc/pki/tls/certs/ca-bundle.crt
参考サイト

Qiita:ComposerからLaravelを導入しようとしてOpenSSL周りのエラーで困った件(2015-06-23)

解決

上記「対応2」で解決!
ありがたや~。

CakePHP 3.x,CentOS,さくらインターネット | 2018-01-18 (木) 19:37:55 |

さくら VPS -> Composer

Posted by muchag | CentOS,Library & PlugIn & AddIn,PHP,さくらインターネット | 2018-01-16 (火) 22:41:44

【環境】
Composer: 1.6.2
php: 7.1.13
CentOS: 7.4.1708
さくらインターネット:VPS 2G プラン
インストール

curl -sS https://getcomposer.org/installer | php
All settings correct for using Composer
Downloading...

Composer (version 1.6.2) successfully installed to: /root/composer.phar
Use it: php composer.phar
起動

php composer.phar
Do not run Composer as root/super user! See https://getcomposer.org/root for details
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 1.6.2 2018-01-05 15:28:41

Usage:
  command [options] [arguments]

Options:
  -h, --help                     Display this help message
  -q, --quiet                    Do not output any message
  -V, --version                  Display this application version
      --ansi                     Force ANSI output
      --no-ansi                  Disable ANSI output
  -n, --no-interaction           Do not ask any interactive question
      --profile                  Display timing and memory usage information
      --no-plugins               Whether to disable plugins.
  -d, --working-dir=WORKING-DIR  If specified, use the given directory as working directory.
  -v|vv|vvv, --verbose           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Available commands:
  about                Shows the short information about Composer.
  archive              Creates an archive of this composer package.
  browse               Opens the package's repository URL or homepage in your browser.
  check-platform-reqs  Check that platform requirements are satisfied.
  clear-cache          Clears composer's internal package cache.
  clearcache           Clears composer's internal package cache.
  config               Sets config options.
  create-project       Creates new project from a package into given directory.
  depends              Shows which packages cause the given package to be installed.
  diagnose             Diagnoses the system to identify common errors.
  dump-autoload        Dumps the autoloader.
  dumpautoload         Dumps the autoloader.
  exec                 Executes a vendored binary/script.
  global               Allows running commands in the global composer dir ($COMPOSER_HOME).
  help                 Displays help for a command
  home                 Opens the package's repository URL or homepage in your browser.
  info                 Shows information about packages.
  init                 Creates a basic composer.json file in current directory.
  install              Installs the project dependencies from the composer.lock file if present, or falls back on the composer.json.
  licenses             Shows information about licenses of dependencies.
  list                 Lists commands
  outdated             Shows a list of installed packages that have updates available, including their latest version.
  prohibits            Shows which packages prevent the given package from being installed.
  remove               Removes a package from the require or require-dev.
  require              Adds required packages to your composer.json and installs them.
  run-script           Runs the scripts defined in composer.json.
  search               Searches for packages.
  self-update          Updates composer.phar to the latest version.
  selfupdate           Updates composer.phar to the latest version.
  show                 Shows information about packages.
  status               Shows a list of locally modified packages.
  suggests             Shows package suggestions.
  update               Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file.
  upgrade              Upgrades your dependencies to the latest version according to composer.json, and updates the composer.lock file.
  validate             Validates a composer.json and composer.lock.
  why                  Shows which packages cause the given package to be installed.
  why-not              Shows which packages prevent the given package from being installed.
実行ファイルの移動

mv composer.phar /usr/local/bin/composer

これで、直接 composer で利用できる。

おまけ
インストール時警告

実は上記インストール時に、下記2行目の警告が出ていた。


curl -sS https://getcomposer.org/installer | php
PHP Warning:  Module 'intl' already loaded in Unknown on line 0
All settings correct for using Composer
Downloading...

Composer (version 1.6.2) successfully installed to: /root/composer.phar
Use it: php composer.phar

これは、php.ini で extension=intl.so をコメントアウトすることで消えたけど
CakePHP3 をインストールする際に intl は必要なはずなので、後ほど試す。

起動時警告

実は上記起動時に、下記2行目の警告が出ていた。


php composer.phar
Do not run Composer as root/super user! See https://getcomposer.org/root for details

あら、Composer って、root で利用してはいけないのね~。

実行ファイルを移動させて、一般ユーザに戻って利用したら
上記警告は出なくなった。

ちなみに、インストールを root でしたせいか
実行ファイルを移動しておかないと、php composer.phar では、実行できず


php composer.phar
Could not open input file: composer.phar

このように怒られた。。。

参考サイト

WinRoad徒然草:さくらのVPSサーバーにLaravelのインストール(2015-03-23)

MySQL の操作

Posted by muchag | Shell Script,さくらインターネット | 2015-12-10 (木) 11:35:33

【環境】
さくらインターネット:プレミアム
エラー
Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’

こんなエラーが出たとき
他の場合であれば、ちゃんとした対応が必要みたいだけど
さくらインターネットの場合は、MySQL が別サーバーになっているため
ホストの設定をしていないと、このエラーが出る。

つまり、ホストの設定を追加してあげればよいだけ。

ログイン
  1. $ mysql -h mysql***.db.sakura.ne.jp -u user_name -p
mysqldump
保存場所

mysqldump コマンドを実行したときのデフォルトの保存場所は

/home/user_name

なので、mysqldump などというディレクトリを1つ追加して
そちらへ保存されるようにする。

保存ファイル名

当然、指定するファイル名にも、パスを追加。

mysqldump/hoge.dump
コマンド
  1. $ mysqldump -h(ホスト名)-u(DB ユーザー名)-p(データベース名)(テーブル名:省略可)> mysqldump/hoge.dump
  2.  
  3. $ mysqldump -h mysql***.db.sakura.ne.jp -u user_name -p database_name > mysqldump/hoge.dump
Shell Script,さくらインターネット | 2015-12-10 (木) 11:35:33 |

さくらインターネット Index

Posted by muchag | さくらインターネット | 2015-12-10 (木) 10:57:14

さくらインターネット様には、私が Web の世界に足を踏み入れたときに
大変お世話になりました。

右も左もわからない私に、様々なアドバイスをくださり
一歩一歩前進するお手伝いをしてくださいました。
この場を借りて、御礼申し上げます。

丸っきりの書きかけ項目は Not found になる。 
 
では~ スタート~!!

CLI
  1. Bitbucket とのやり取り
  2. Git インストール
  3. シンボリックリンク
MySQL
  1. 操作
VPS
  1. 導入
    1. CentOS
    2. SSH
    3. Git
      1. Git Clone
    4. Apache
    5. ドメイン
    6. MySQL
      1. アップデート 5.7.x -> 8.0.x
    7. php
    8. phpMyAdmin
    9. Composer
    10. CakePHP3
    11. httpd.conf
    12. ゾーン設定

 

がい~ん!(はまったこと)
  1. 解決済み(たぶん)
    1. Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’
  2. 未解決
参考サイト
さくらインターネット | 2015-12-10 (木) 10:57:14 |

さくらインターネットで CakePHP

Posted by muchag | .htaccess,CakePHP,さくらインターネット | 2011-06-06 (月) 1:01:52

さくらインターネットで CakePHP を利用するには
.htaccess のルールがあるとのこと。

【環境】
[CakePHP] 1.3.10
ディレクトリ構成

さくらインターネットでは

/home/(アカウント名)/www

が Web 公開ディレクトリ。

よって公開したくないファイル群は

/home/(アカウント名)

に配置する。

今回は主要3点セット cake, app, webroot を以下のように配置した。
ちなみに、webroot は directory3 とリネームしてある。

/home/(アカウント名)/directory1/app
/home/(アカウント名)/directory1/cake
/home/(アカウント名)/www/directory2/directory3

 

.htaccess

この配置で以下のように設定したら稼動した。

/home/(アカウント名)/www/directory2/directory3/.htaccess
  1. <IfModule mod_rewrite.c>
  2.     RewriteEngine On
  3.     RewriteCond %{REQUEST_FILENAME} !-d
  4.     RewriteCond %{REQUEST_FILENAME} !-f
  5.     RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
  6.     RewriteBase /directory3
  7. </IfModule>

6行目を追加。

参考元サイトでは他にも設定が必要なことが書いてあるが
現在のところこれだけで稼動している。

またおかしくなったら加筆・修正する。
 

不思議

っていうか、webroot を directory3 とリネームしてあるのに

/home/(アカウント名)/directory1/app/.htaccess


RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]

これで動いている意味がわからない・・・。

それと、参考元サイトを見て気がついたんだけど
「cake インストールフォルダ」って、CakePHP を DL して解凍したときに
app, cake ・・・が入っているフォルダでしょ?

ここに配置されている .htaccess ファイルも index.php ファイルも
こういうディレクトリ配置で置き場所がわからない・・・つまり無視している。
でも動いている・・・不思議。 🙄
 
参考元サイト:CakePHP Users in Japan フォーラム さくらインターネットで404エラー

.htaccess,CakePHP,さくらインターネット | 2011-06-06 (月) 1:01:52 |

SEO -> URLの重複

Posted by muchag | .htaccess,さくらインターネット | 2010-06-03 (木) 0:57:15

[PHPプロ!] 重複するURLを防ぐことでSEO効果を上げるTips

こんなページを見つけて
お! なるほど と思った。

私のサイトはSEOなんてあんまり考えていないけど
.htaccess の知識は相当乏しいので
練習がてらやってみた。

1.ドメインリダイレクト

しかしながら、上記サイトにある
.htaccess での
http://example.com -> http://www.example.com
のリダイレクトは、さくらの私のサイトでは正常に動作しなかった。

  1. RewriteEngine on
  2. RewriteCond %{http_host} ^example.com[NC]
  3. RewriteRule (.*) http://www.example.com/$1 [L,R=301]

次にさくらのレンタルサーバ非公式FAQ内の設定例

  1. RewriteEngine on
  2. RewriteCond %{HTTP_HOST} example\.sakura\.ne\.jp [NC]
  3. RewriteRule .* http://www.example.com%{REQUEST_URI} [L,R=301]

これを

  1. RewriteEngine on
  2. RewriteCond %{HTTP_HOST} example\.com [NC]
  3. RewriteRule .* http://www.example.com%{REQUEST_URI} [L,R=301]

としてみたが、これも

ページの自動転送設定が正しくありません
このアドレスへのリクエストに対するサーバの自動転送設定がループしています。
・Cookie を無効化したり拒否していることにより、この問題が発生している可能性もあります。

FireFox 3.5.9 では以上のメッセージによりエラー。
IE 7.0.5730.13 では読み込みが完了しなかった。

で、Web Techniques Pro の URLの書き換え Rewrite にある

  1. RewriteCond %{HTTP_HOST} ^(example\.com)(:80)? [NC]
  2. RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

としたら
http://example.com -> http://www.example.com
に成功した。

2.「/index.php」 と 「/」

  1. RewriteCond %{request_uri} ^/$
  2. RewriteCond %{request_method} GET [NC]
  3. RewriteRule ^/$ /index.php [L,R=301]

これは元々条件分岐で飛ばしてしまっているので
検証不能。
一応設定しておいた。

.htaccess,さくらインターネット | 2010-06-03 (木) 0:57:15 |

さくらインターネット -> MySQLのバックアップ or 入れ替え

Posted by muchag | phpMyAdmin,さくらインターネット | 2010-05-07 (金) 15:33:10

去年だか、さくらインターネットレンタルサーバでは
MySQL のVer 5.1 が使えるようになった。

というわけで、私も5.1へ移行しようかと。

1.エクスポート
【環境】
旧 [MySQL]
サーバ:4.0.27
クライアント:4.1.22

phpMyAdminでエクスポートする際に
文字コード別にテーブルをエクスポートすること

具体的には
phpMyAdmin(3.2.3)で
当該DBを選択して

エクスポート タブを開く。

[エクスポート]
WordPress関連のテーブルを全部選択する。

[オプション]
作成するクエリの最大長 「100」に書き換える
これをしないと、インポート時に回線切れを起こす可能性が高くなる。

画面下
ファイルに保存する にチェック
圧縮 「なし」

以下はデフォルトのままだと思うけど
一応覚書。
[エクスポート]
SQLにチェック

[オプション]
構造 にチェック
 AUTO_INCREMENT 値を追加する にチェック
 テーブル名やフィールド名を逆クォートで囲む にチェック

データ にチェック
 完全な INSERT 文を作成する にチェック
 長い INSERT 文を作成する にチェック
 BLOBに16進数表記を利用する  にチェック
エクスポート形式 「INSERT」

エンコーディングへ変換する
non にチェック

2.仕込み

現時点では、私はサイト製作文字コードを「utf8」にしている。

しかし、以前には「euc」やら「sjis」のサイトも作っていたので
そのときのデータは文字コードが異なる。

そのため、文字コード別に
テーブルをまとめてエクスポートしたのだ。

ローカル(自分のPC)には「***.sql」
というファイルができているわけだが
これをTeraPadで開き
15行目くらいのところにある
/*!40101 SET NAMES euc */;

/*!40101 SET NAMES utf8 */;
に書き換える。

[ファイル]-[文字/改行コード指定保存]で
「UTF-8N」を選択して保存。

3.インポート
【環境】
新 [MySQL]
サーバ:5.1.42
クライアント:5.1.30

先頭のサーバの画面で
[MySQL 接続の照合順序] を 「utf8_general_ci」

自分のDBを選択して [操作]タブをクリックし
画面一番下の
[照合順序] を 「utf8_general_ci」

これを忘れると「~」などが「?」に文字化けする。

また、ファイルサイズが大きくて
途中で切れてしまう場合には
bigdump
というPHPモジュールを用いて
サーバ内でインポート。

ローカルで bigdump にDBの設定を書き込み
インポートしたい .sql ファイルと共に
レンタルサーバスペースへUL。

後は bigdump.php にアクセスして
「INSERT」をクリックするだけ。

phpMyAdmin,さくらインターネット | 2010-05-07 (金) 15:33:10 |

さくらインターネットで携帯投稿を実現

Posted by muchag | OpenPNE,さくらインターネット | 2008-12-06 (土) 16:09:27

さくらインターネットでは、メールサーバがないらしく
携帯からのメール投稿ができない。

そこで、第三者を介してメール投稿できるようにするらしい。

1.携帯メール投稿用のメールアドレスを1つ用意する

さくらインターネットの鯖メニューから、メールアドレスを1つ用意する。(以下、さくらメアド)

2.メール転送設定

JPN.ch にてアカウントを取得し
転送設定を行う。

これは、OpenPNEの場合、携帯からのメール投稿では
その送信先がランダムに設定されるためである。

JPN.ch を利用することで、@example.jpn.ch へ送られるメールを
全てさくらメアドへ転送してくれるので、万事解決。

1.JPN.ch でアカウントを取得
-「登録者情報」の「E-mail」欄には、さくらメアドを入力。
-「転送先情報」の「転送先 URL」には、サイトホームなど転送されて問題のないURLを入力。

2.さくらメアドをチェックし、JPN.ch から確認メールが届いているので、指定のURLを開く。

3.JPN.ch へログインして、「メール転送設定」にて
「@example.jpn.ch 宛メールを全て転送 / メール転送利用規約を承認する」を選択して更新。

4.config.php の設定
26行目の

  1. define('MAIL_SERVER_DOMAIN', 'mail.example.com');

  1. define('MAIL_SERVER_DOMAIN', 'example.jpn.ch');

と変更。

OpenPNE,さくらインターネット | 2008-12-06 (土) 16:09:27 |

さくらレンタルサーバでの php, pear, pecl などの注意点

Posted by muchag | PHP,さくらインターネット | 2008-01-08 (火) 21:41:34

環境
さくらレンタルサーバ プレミアム
さくらレンタルサーバ ビジネス・プロ

先日、プレミアムの方のサーバコンパネで、PHP のバージョン選択ができるようになっていることに気が付いた。
PHP5 を使いたくて、散々悩んだ挙句にビジネス・プロを申し込んだ途端の出来事・・・ガーン。
ま、色々と勉強になるし、いっかw

さて、標記について、気が付いたことをメモ。
◆◆◆プレミアムでのシェルコマンドについて
TeraTerm ログインして、そのまま %pear などとコマンドを入れると、どうやら PHP4 用のコマンドになるっぽい。
たとえ、上記のサーバコンパネで PHP のバージョンを5に変更していても、だ。
なので、もし、PHP5 用のコマンドを使いたければ

  1. %/usr/local/php-5.2.5/bin/pear

とか

  1. %/usr/local/php-5.2.5/bin/pecl

とする必要があるみたい。
これって、デフォルトを PHP5 用に設定変更する方法があるのかな?

PHP,さくらインターネット | 2008-01-08 (火) 21:41:34 |
次ページへ »