nginxを再起動したら「Failed to start The nginx HTTP and reverse proxy server.」


nginxをrestartしたら「Failed to start The nginx HTTP and reverse proxy server.
」というエラーが。

nginxのconfファイルを見直したり、php-fpmの再起動や、selinuxの無効化等色々試したがエラーは消えず、

# systemctl status nginx.service 
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/nginx.service.d
           └─php-fpm.conf
   Active: failed (Result: exit-code) since Fri 2023-11-17 23:34:13 JST; 18s ago
  Process: 1319317 ExecReload=/bin/kill -s HUP $MAINPID (code=exited, status=0/SUCCESS)
  Process: 1501969 ExecStart=/usr/sbin/nginx (code=exited, status=1/FAILURE)
  Process: 1501968 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 1501966 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 2275107 (code=exited, status=0/SUCCESS)

〜〜〜
11月 17 23:34:13 118-27-106-164 systemd[1]: nginx.service: Failed with result 'exit-code'.
11月 17 23:34:13 118-27-106-164 systemd[1]: Failed to start The nginx HTTP and reverse proxy server.

だけどなぜか、ブラウザからwebアクセスしたら問題なく動いている。
phpも問題ない。

なんか変だなと思い最終手段でrebootしたら、、、、改善しました。💦

Laravel デバッグTIPS

php側

web画面で、dump($arr)で配列やオブジェクトの中身をチェックする

dump($obj);

web画面でデバッグ表示できない場合はlogファイルに出力

Log::debug(__FILE__ . __LINE__ . $str);

storage/log/〜に出力される。

頭にスラッシュをつけると、use LogしなくてOKっぽい

use Log;
↓
\Log::info();
// ログに配列を展開して吐き出す
Log::debug(print_r($arr, true));

// オブジェクトも可能
Log::debug(print_r($object, true));

view上(blade)でデバッグ

{{dd($arr)}}

SQLの確認

$sql = DB::table('users')
            ->where('status', '<>', 1)
            ->toSql();
var_dump($sql);

Redisのデータを画面で簡易的に操作できるphpRedisAdminをCentOS7+nginxにインストール

いままでphpスクリプトで、redisのデータをいじっていましたが、

さすがに大変なので、GUIで確認できるツールがないかと探したらありました。

phpMyAdminならぬ、phpRedisAdmin

簡易的にRedisのデータを確認・変更・削除したいなら便利かも!

で、早速インストール方法

こちらの環境で導入した際のメモ ..φ(..)メモメモ

  • CentOS7
  • nginx + php-fpm

おおもとのドキュメントはこちら(こっちみればええやん汗)

https://github.com/erikdubbelboer/phpRedisAdmin

1. ソースを落とす


git clone https://github.com/ErikDubbelboer/phpRedisAdmin.git cd phpRedisAdmin git clone https://github.com/nrk/predis.git vendor

当たり前かもだけど、vendorもcloneしてね

2. あとはドキュメンルートに設定して、ブラウザから見れるようにと、アクセス制限

下記は、/etc/nginx/conf.d/〜〜.conf等に設定


server { listen 80; server_name phpredisadmin.hogehoge.com; root /usr/share/nginx/hoge/; index index.html index.htm index.php; location /phpRedisAdmin { allow アクセス元IP; deny all; } }

php7にしたらphp7からRedisが呼び出せなくなった時のメモ

よくある下記からphpからredisを使えるようにする処理のところで、

$redis = new Redis();

こういうphpエラーがでる。

PHP message: PHP Fatal error:  Uncaught Error: Class 'Redis' not found in /usr/share/nginx〜

今回の環境構成は、

yumで、全てインストールできるようにこだわっていたのですが、
なぜかphp7からredisがよびだせず、ちなみに、コンソールで、
redis-cliなどでredisを動かすことはできている。。

php5系の時は普通に動いていたのですが、
php-redis等のモジュールを系を入れ替えしてためしてみると、

yum install --enablerepo=epel,remi-php70 php70-php-pecl-redis

ではだめでしたが、

yum install --enablerepo=epel,remi-php70 php-pecl-redis

で、無事php7からredisを呼び出せるようになった。。

依存関係ハマりやすい。

Cakephp3をCentOS7( php7 + php-fpm + nginx + MySQL )にインストールした際のメモ

大分出遅れた感がありますが、最近cakephp3のサービスを構築したので、
それを兼ねてメモ。

早速、cakephp3の公式サイトでインストール方法を確認。

http://book.cakephp.org/3.0/ja/installation.html

システム要件を確認すると。。。

システム要件
HTTPサーバー。例: Apache。mod_rewrite が推奨されますが、必須ではありません。
PHP 5.5.9 以上 (PHP 7 も含む)
PHP mbstring 拡張
PHP intl 拡張

…(PHP 7も含む)!

せっかくなので、速いとウワサのphp7に、php-fpmと、nginxの構成で、
yumでインストールしてみました!!

CSSで最初の一文字目を指定する方法

最近なってはじめて知ったのですが、
よく記事などで、一文字目が大きくしているサイトがあるのですが、
いままでPHPなどスクリプトでイジッテいるのかとおもってましたが、実はCSSだけでできた事に最近気づきました。

イトル・・・

上記のようにしたい場合。

.title:first-letter{
	font-size:20px;
	background-color:#eeeeee;
}

:first-letterと追記すれば一文字目だけのCSSを指定することができます。
上記例では、class=”title” の一文字目を背景グレーのフォントサイズ20pxにしています。

php 可変変数 変数名を変数で作るメモ

PHPでたまに変数名を動的に扱い場合があるのが、
よく忘れるのでメモ!

$hoge = 'foo'; //今回表示する変数を作成
$a = 'ge';     //変数名の一部を作るための変数
echo ${'ho'.$a}; //hoという文字列に$aの内容で変数名を指定し、echo

phpでSSH接続して、コマンドを投げるメモ

PHPでプログラムから、外部サーバーへのSSHで、コマンドをなげたいケースがある。

そういう際に、知っておくと便利なコマンド「ssh2_connect

下記はサンプルのPHPプログラムです。

ssh2_connect.php
// ssh接続して、ファイルのパーミッションをチェックするサンプル

$ok = "";
$ng = ""; 

$connection = ssh2_connect('192.168.1.1', 22);
ssh2_auth_password($connection, 'user', 'pass');

$stream = ssh2_exec($connection, 'echo `ls -l /home/test/call.agi` | cut -d" " -f1');
$errorstream = ssh2_fetch_stream($stream, SSH2_STREAM_STDERR);

stream_set_blocking($stream, true);
stream_set_blocking($errorstream, true);

$ok =  stream_get_contents($stream);
$ng =  stream_get_contents($errorstream); //エラーがあれば表示

if($ok == "-rwxrwxrwxn" && !$ng)
{
    echo "OK";
    exit();
}
echo "NG";

 

twitter APIでxmlの取得失敗時の対処メモ

twitterのAPIを利用する時によく使うxmlでの取得対策用にメモ。

PHPでこんな感じでかいてます。

<?php
try{
	$xml = simplexml_load_file($url);
	if(!$xml){
		throw new Exception("XMLを取得できせん");
	}
}catch(Exception $e){
	echo $e->getMessage();
}
?>

PHP 可変変数使いどころ

${"var"} = "123";

PHPの可変変数を使えば、変数名をいじって利用できる、特にループ処理などに有効活用できる。

foreach($device as $key => $val){
$RESULT_ = "result".$key;   //可変変数名
echo $RESULT_;
print_r(${$RESULT_}); 
}

$result1 $result2 $result3 ・・・・
の配列が1つのループで出せます。

一応メモ!