さくら VPS -> httpd.conf

Posted by muchag | Apache,CentOS,さくらインターネット |
初回投稿:2018-01-18 (木) 21:36:04 | 最終更新:2018-11-04 (日) 19:06:27

【環境】
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 は削除。

Posted by muchag | Apache,CentOS,さくらインターネット |
初回投稿:2018-01-18 (木) 21:36:04 | 最終更新:2018-11-04 (日) 19:06:27

さくら VPS -> Composer

Posted by muchag | CentOS,Library & PlugIn & AddIn,PHP,さくらインターネット |
初回投稿:2018-01-16 (火) 22:41:44 | 最終更新:2018-12-02 (日) 18:05:42

【環境】
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 で利用できる。

アップデート

念の為、アップデート。


composer self-update
おまけ
インストール時警告

実は上記インストール時に、下記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)

Posted by muchag | CentOS,Library & PlugIn & AddIn,PHP,さくらインターネット |
初回投稿:2018-01-16 (火) 22:41:44 | 最終更新:2018-12-02 (日) 18:05:42

MySQL の操作

Posted by muchag | Shell Script,さくらインターネット |
初回投稿:2015-12-10 (木) 11:35:33 | 最終更新:2015-12-12 (土) 16:29:20

【環境】
さくらインターネット:プレミアム
エラー
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
Posted by muchag | Shell Script,さくらインターネット |
初回投稿:2015-12-10 (木) 11:35:33 | 最終更新:2015-12-12 (土) 16:29:20

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

Posted by muchag | .htaccess,CakePHP,さくらインターネット |
初回投稿:2011-06-06 (月) 1:01:52 | 最終更新:2011-06-09 (木) 10:05:25

さくらインターネットで 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
[htaccess]
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] RewriteBase /directory3
[/htaccess] 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エラー

Posted by muchag | .htaccess,CakePHP,さくらインターネット |
初回投稿:2011-06-06 (月) 1:01:52 | 最終更新:2011-06-09 (木) 10:05:25

SEO -> URLの重複

Posted by muchag | .htaccess,さくらインターネット |
初回投稿:2010-06-03 (木) 0:57:15 | 最終更新:2011-04-17 (日) 17:52:56

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

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

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

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

しかしながら、上記サイトにある
.htaccess での
http://example.com -> http://www.example.com
のリダイレクトは、さくらの私のサイトでは正常に動作しなかった。
[htaccess]RewriteEngine on
RewriteCond %{http_host} ^example.com[NC] RewriteRule (.*) http://www.example.com/$1 [L,R=301][/htaccess]

次にさくらのレンタルサーバ非公式FAQ内の設定例
[htaccess]RewriteEngine on
RewriteCond %{HTTP_HOST} example\.sakura\.ne\.jp [NC] RewriteRule .* http://www.example.com%{REQUEST_URI} [L,R=301][/htaccess] これを
[htaccess]RewriteEngine on
RewriteCond %{HTTP_HOST} example\.com [NC] RewriteRule .* http://www.example.com%{REQUEST_URI} [L,R=301][/htaccess] としてみたが、これも

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

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

で、Web Techniques Pro の URLの書き換え Rewrite にある
[htaccess]RewriteCond %{HTTP_HOST} ^(example\.com)(:80)? [NC] RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L][/htaccess] としたら
http://example.com -> http://www.example.com
に成功した。

2.「/index.php」 と 「/」
[htaccess]RewriteCond %{request_uri} ^/$
RewriteCond %{request_method} GET [NC] RewriteRule ^/$ /index.php [L,R=301][/htaccess] これは元々条件分岐で飛ばしてしまっているので
検証不能。
一応設定しておいた。

Posted by muchag | .htaccess,さくらインターネット |
初回投稿:2010-06-03 (木) 0:57:15 | 最終更新:2011-04-17 (日) 17:52:56

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

Posted by muchag | phpMyAdmin,さくらインターネット |
初回投稿:2010-05-07 (金) 15:33:10 | 最終更新:2011-05-21 (土) 15:34:49

去年だか、さくらインターネットレンタルサーバでは
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」をクリックするだけ。

Posted by muchag | phpMyAdmin,さくらインターネット |
初回投稿:2010-05-07 (金) 15:33:10 | 最終更新:2011-05-21 (土) 15:34:49

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

Posted by muchag | OpenPNE,さくらインターネット |
初回投稿:2008-12-06 (土) 16:09:27 | 最終更新:2010-05-24 (月) 16:02:00

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

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

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');

と変更。

Posted by muchag | OpenPNE,さくらインターネット |
初回投稿:2008-12-06 (土) 16:09:27 | 最終更新:2010-05-24 (月) 16:02:00

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

Posted by muchag | PHP,さくらインターネット |
初回投稿:2008-01-08 (火) 21:41:34 | 最終更新:2010-06-24 (木) 22:51:56