Vagrantd(CentOS7)でnginx 2

先日は静的ファイル(index.html)を表示させたので、phpを動かそうと思ったが思いの外はまった。
今回は勉強用に試しているだけだったので適当なバージョンのPHPをインストール

sudo yum -y install epel-release
wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
sudo rpm -ivh ./remi-release-7.rpm
sudo yum install --enablerepo=epel,remi-php70 php php-mcrypt php-mbstring php-fpm php-mysqlnd php-opcache php-apcu

nginxの設定修正
sudo vim /etc/nginx/conf.d/default.conf

location ~ \.php$ {
    #root html;
    root /var/www;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
    include fastcgi_params;
}

phpfpmの設定修正
sudo vim /etc/php-fpm.d/www.conf

;user = apache
user = nginx
;group = apache
group = nginx
# nginx と php-fpmを再起動し、設定を反映
sudo systemctl restart nginx
sudo systemctl restart php-fpm

/var/www/配下にindex.phpを作成

 <?php 
phpinfo(); 

http://192.168.33.10/index.php を叩くとphpinfoの画面でなく、index.phpファイルがダウンロードされる。
ここで原因がわからずはまる
実施したこと
* nginxのログファイルの権限を変える
* index.phpの権限を変える
* selinuxのチェック
* /etc/nginx/conf.d/default.conf , /etc/php-fpm.d/www.confの設定ファイルのチェック
(設定の誤り以外にもシンタックスエラーに一度気づかなかったのでチェックしておくこと
sudo systemctl status php-fpm.service (sudoをつけると詳細にエラーをだしくてれるっぽい)
nginx -t (こちらはsudo つけると正しく動くのにつけないとエラー出るケースが有ったのでつけないほうがいいかもしれない*権限系のエラー?よくわかっていない)
シンタックスエラーの状態で起動しようとすると結構分かりづらいエラーが表示されるので気をつけていたほうがよさそう

  • choromeで見ていた場合キャッシュで反映されない場合があるようなので別のブラウザなどで試す
  • nginxのerror.logを見る

    原因としては先日書いた
    /etc/nginx/nginx.confの設定のserverディレクティブが悪さをしていた(こいつをコメントアウトすればindex.phpが表示された)。
#       server {
#           listen        80;
#           server_name   test.example.com;
#           root          /var/www/;
#
#           location / {
#           }
#
#       }

無意識にあとから書いたディレクティブが上書きするものと思っていた。
nginx.confが最初に読み込まれる設定ファイル。これが他の設定ファイルを読み込む

include /etc/nginx/conf.d/*.conf;

新しい設定追記するときは
conf.d/default.confに追記するのが正しい。

以下のコマンドを叩くとincludeされたファイルを展開して設定ファイルの内容を1本の設定ファイルとして表示できる

 sudo nginx -T

参考

PHP - nginxサーバへphpファイルにアクセスするとダウンロードされてしまう(17285)|teratail

Vagrant + CentOS7 + nginx + PHP7 + php-fpm でFuelPHP1.8の仮想開発環境を構築する

[Sy] 【解決した】HomebrewでNginx + php-fpmの環境を作ろうとしたらPHPファイルがダウンロードされる | Syntax Error.

Vagrantd(CentOS7)でnginx

前々からやりたいと思いながらできていなかったので触り始めメモ。
いくらでも記事出るだろうけど、自分の忘備録用。

vagrantは簡単に動き見てみたいときに即興でできるのがいい。
ただ久々に触るとどこに何のVagrantfileがあったか忘れるので以下のコマンドで確認

vagrant global-status 

まずは静的ファイルを見れるようにしてみる。

nginx の導入(CentOSのデフォルトのリポジトリには入っていないとのこと)
CentOS7 に nginx導入

設定ファイル修正

 sudo vi /etc/nginx/nginx.conf

httpのディレクティブ内に以下を追記

        server {
            listen        80;
            server_name   static.example.com;
            root          /var/www/;

            location / {
            }

        }
     # 文法チェック
     sudo nginx -t
    # 起動
     sudo systemctl start nginx

/var/www配下に適当にidnex.htmlを作りアクセスするが繋がらない http://192.168.33.10/

nginxの方にもログが出ていなかったようなので selinuxの確認

$getenforce
Disabled

firawallを無効にすると表示された

    sudo firewall-cmd --add-service=http --permanent
    sudo firewall-cmd --reload

こう繋がらないとき当てずっぽうなのなんとかならないかな。

参考

runble1.com

Vagrant + CentOS7 + nginx + PHP7 + php-fpm でFuelPHP1.8の仮想開発環境を構築する

初プルリクとdockerメモ

他人のリポジトリにプッシュする場合はforkしてからでないといけない (もしくは権限をもらう) blog.qnyp.com

基本権限もらう形でやってたので、ちょっと混乱した。

また、今回docker-compose upでビルドした際にエラーが出力されたのだけど、 エラーの解決より再現に手こずった。

症状と対応は以下と同じなので割愛

E: Package 'libpng12-dev' has no installation candidate · Issue #1 · deskpro/deskpro-docker · GitHub

一度docker-compose.ymlを修正して、ビルドを通した後に もう一度エラーを再現しようとしても再現できず。 キャッシュまわりを疑ったりコンテナを削除したりしたけれども再現できず イメージを削除すると再現できた

docker images -aq | xargs docker rmi

イメージをベースにコンテナが生成されるらしいが、 ここらへんもう少し自分の中で整理したい

qiita.com

またもgithubにpushできない

たびたびpush しようとするとエラーが出る  

$ git push -u origin master
remote: Permission to addictionwhite/chef1.git denied to sublime0807.
fatal: unable to access 'https://github.com/addictionwhite/chef1.git/': The requested URL returned error: 403

sshの設定など色々変えてもぱっと解消できず。
何か作業しようとしたときこういうところに引っかかると厳しい(やる気と時間がなくなる) 対処

[remote "origin"]
 url = https://github.com/username/demo.git
↓
[remote "origin"]
 url = https://username:password@github.com/username/demo.git

のように URL に username:passwordを含めるようにする。 これが一番てっとり早いと感じた

引用元 teratail.com

 

docker触り始め1

dockerが動かなかったのでメモ

事象

$ docker build -t <tagname> .
$ docker run  -d -p 5000:5000 tagname
$ curl localhost:5000
docker curl: (7) Failed to connect to localhost port 5000: Connection refused

ここで詰まる。 何が原因かわからない(各コマンド時に特にエラーらしいエラーがなかったので) 最初はポートが正しく開けていないとあたりをつけて、色々調べる (dockerでcurl(7)がってくる記事がいくらかヒットして、これが原因と若干決めつけてしまうが解決せず)

Dockerfileとスクリプトを見直す (どちらも小さなスクリプトだったが、これを目視のみでデバッグするのは限界があると感じた)

-dオプションを外してdocker run実行したらスクリプトシンタックスエラーが出力された (-dオプションはバックグラウンドで実行) また忘れそうなるが、スクリプト修正した後再度docker buildしないと修正が反映されない。

何気なしに見たままオプションの意味を理解せず追加してはまってしまった。

あとdocker に限らずだけが、問題の正しい切り分けが必要だと感じた。 dockerでのデバッグの手順をもっと知らないといけない

vim修正メモ

使っていない変数の検知

flyinshadow/php_localvarcheck.vimを使用

公式の方はVim7.3あたりで導入された新しい正規表現エンジンに対応できてなくて エラーがでてしまうらしい (随分前に謎のエラーが出て使っていなかったのだけど、これで解消される?)

Bugfix: E874: (NFA) Could not pop the stack ! by flyinshadow · Pull Request #1 · vim-scripts/php_localvarcheck.vim · GitHub qiita.com

" グローバルのチェック不要
let g:php_localvarcheck_enable = 1
let g:php_localvarcheck_global = 0

補完を非同期に

Shougo/deoplete.nvimを使用

let g:deoplete#enable_at_startup = 1
" エンターキーで補完選択
inoremap <silent><expr><CR> pumvisible() ? deoplete#mappings#close_popup() : "\<CR>"

Vdebug WIP

vimPython インターフェイスを有効にする

nihaoshijie.hatenadiary.jp

Macのローカルでpython3を動くようにする

Mac SierraでPython2.7をPython3.xに切り替えて使用する

qiita.com

Xdebug 導入

GitHub - xdebug/xdebug: Xdebug — Step Debugger and Debugging Aid for PHP

https://lambdalisue.hatenablog.com/entry/2014/05/21/065845

qiita.com

Vdebug 導入

github.com

設定ファイル追記

sudo vim /etc/php.ini

[debug]
xdebug.auto_trace=0
xdebug.cli_color=0
xdebug.collect_assignments=0
xdebug.collect_includes=1
xdebug.collect_params=0
xdebug.collect_return=0
xdebug.collect_vars=0
xdebug.coverage_enable=1
xdebug.default_enable=1
xdebug.dump.*=
xdebug.dump_globals=1
xdebug.dump_once=1
xdebug.dump_undefined=0
xdebug.extended_info=1
xdebug.file_link_format=
xdebug.force_display_errors=0
xdebug.force_error_reporting=0
xdebug.halt_level=0
xdebug.idekey=
xdebug.manual_url="http://www.php.net"
xdebug.max_nesting_level=100
xdebug.overload_var_dump=1

xdebug.profiler_append=0
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=0
xdebug.profiler_output_dir="/tmp"
xdebug.profiler_output_name="cachegrind.out.%p"

xdebug.remote_autostart=0
xdebug.remote_connect_back=0
xdebug.remote_cookie_expire_time=3600
;xdebug.remote_enable=0
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host="localhost"
xdebug.remote_log=
xdebug.remote_mode="req"
xdebug.remote_port=9000

xdebug.scream=0
xdebug.show_exception_trace=0
xdebug.show_local_vars=0
xdebug.show_mem_delta=0

xdebug.trace_enable_trigger=0
xdebug.trace_format=0
xdebug.trace_options=0
xdebug.trace_output_dir="/tmp"
xdebug.trace_output_name="trace.%c"

xdebug.var_display_max_children=128
xdebug.var_display_max_data=512
xdebug.var_display_max_depth=3

その他

qiita.com

blog.code-life.net

qiita.com