ubuntuのPHPをPHP5.4やPHP5.5にする(chef)

vagrantで設定しているphpのバージョンを上げたかったので

execute “apt-get update” do
command “apt-get update”
end

package “python-software-properties” do
action [:install, :upgrade]
end

execute “add repository ppa:ondrej” do
command “add-apt-repository ppa:ondrej/php5-oldstable”
#command “add-apt-repository ppa:ondrej/php5”
end

上記をシェフスクリプトの頭に追加

php-oldstableでPHP5.4(2014/6/12現在)

php5を指定すると最新でphp5.5

参考:

https://www.digitalocean.com/community/questions/how-to-install-php-5-4-4-or-newer-version-of-5-4-on-ubuntu-12-04-lts

http://qiita.com/RyujiAMANO/items/755a85a2714f2dfa3a0b

phpで502 Bad Gateway

PHP5.4+nginxで502 Bad Gatewayが発生した場合

nginxの設定

例:/etc/nginx/conf.d/php-fpm.conf

fastcgi_pass 127.0.0.1:9000;

fastcgi_pass unix:/var/run/php5-fpm.sock;

このように変更

まだ発生する場合は

/etc/php5/fpm/pool.d/www.conf

の下記行のコメントを外す

listen.owner = www-data
listen.group = www-data
listen.mode = 0660

Drupal7でCKEditor(TinyMCE)を使用する場合

Wysiwygのモジュールをインストールし有効にする。

環境設定>Wysiwyg profilesより

CKEditorの欄メッセージにしたがって

http://ckeditor.com/download

こちらからCKEditorをダウンロード

解凍したら

sites/all/libraries/ckeditor

にコピー

この状態で本来有効になるはずだが

The version of CKEditor could not be detected.

とエラーが表示される、この場合先ほどインストールしたディレクトリ中の

ckeditor.incの修正が必要となる

if (preg_match(‘@version:'(?:CKEditor )?([d.]+)(?:.+revision:'([d]+))?@’, $line, $version)) {

大体81行目付近、無い場合は@version等で検索をかけてください

この行の’を”に変更

if (preg_match(‘@version:”(?:CKEditor )?([d.]+)(?:.+revision:”([d]+))?@’, $line, $version)) {

として保存この状態でCKEditorが選択可能になるはず

なので編集からCKEditorを選択してください

 

追記20120301

ボタンの設定を行っていたところfont colorのボタンが表示されませんでしたので。

TimyMCEを使いました。

 

 

sh: make: command not found

peclのインストールで
running: make
sh: make: command not found
ERROR: `make’ failed
等と行われた場合。makeやgccが入っていない可能性が高いので

$sudo yum -y install gcc automake autoconf libtool make
とし

$sudo pecl install uploadprogress(←パッケージ名)

でインストールを行うことができる。
(amazon AMIでuploadprogressを有効にしたとき発生してたのでw)

ちなみにuploadprogressの場合は
configuration option “php_ini” is not set to php.ini location
You should add “extension=uploadprogress.so” to php.ini

となっているためphp.iniを変数して
extension=uploadprogress.so
を追加する必要がある。

nginx+php-fpm+wordpress

マルチサイトで運用中のWordPressサーバが重くなってきたので、nginxの導入を行いました。

cent OSに入れるのでyumでインストールします。remiのリポジトリ使います。

現在はApacheとphpで動いています。

$sudo yum -y install nginx php-cli php-fpm –enablerepo=remi

インストールが完了したら

/etc/nginx/nginx.confを編集

バーチャルドメインの場合は/etc/nginx/conf.d/以下にapacheの設定のようにヴァーチャルドメインを追加する。
conf.d以下がnginx.confに読み込まれるので、拡張子は.confにする必要がある
    # Load config files from the /etc/nginx/conf.d directory
    include /etc/nginx/conf.d/*.conf;
こんな感じで読み込まれるため

/etc/nginx/conf.d/example.com.confとか
server {
    #WordPressマルチサイト
    listen 80;
    server_name example.com www.example.com example.net www.example.net;
    access_log /var/log/nginx/access_log;
    error_log /var/log/nginx/error_log;

    index index.php index.html;
    location ~ .*.php$ {
        root /var/www/example/htdocs;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
  //パーマリンク
    location / {
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }
    //マルチサイト
    rewrite ^.*/files/(.*) /wp-includes/ms-files.php?file=$1;
}

もしCLI版を有効にしていなければ、php.ini等でapc.enable_cli=1を追記してください。

/etc/php-fpm.d/www.conf

user=nginx; group=nginx;
userとgroupはwordpressのディレクトリパーミッションにより
柔軟に対応してください。
uploads等を777にしている場合はどのユーザでもOK
apacheユーザやnobodyユーザへのみ書き込みを開けているユーザに変更する(擬似apache化w)
server_tokens off;
等の設定を行う。
/etc/rc.d/init.d/httpd stop /etc/rc.d/init.d/nginx start /etc/rc.d/init.d/php-fmp

これで起動 nginxでwordpressが動きます。

参考サイト

さくらのVPS CentOSでサーバ構築 21 – Nginx
楽しく情報処理技術者試験

 

 

Berkeley DBインストール

postfixを設定しようと思ったら

db*-develがありません

とおこられたのでインストールしてみることにする

http://www.oracle.com/technology/software/products/berkeley-db/index.html

より

db-4.x.x.tar.gzをダウンロードします。

$tar xzvf db-4.x.xtar.gz

$ cd db-4.x.x/
$ cd db-4.x.x/build_unix
$ ../dist/configure –prefix=/usr/local
$ make
$su –
#make install

cp /usr/loca/include/db.h /usr/include/

上でprefix入れてればこれいらなかったかな?

ORPHAN (no passwd entry)

以前/var/log/cronを見ていると

ORPHAN (no passwd entry)

といったメッセージが多く出ていた事があった

この原因は/etc/passwdにエントリーの無いユーザでcronを実行させると発生する

この状況でcronを実行させるユーザを間違えているのであれば、正しいユーザに変更することでメッセージはなくなる

/etc/passwdにユーザが存在する場合はパスワードの有効期限が有効かの確認が必要

/var/spool/cron/配下にtmpファイルが作成されている場合、こちらも削除しておく