アップデート:さて、私は以下のようなものがうまく機能する自動化されたPHPとNginxの開発設定(自動ドメインを含む)のためのレシピであり、私が経験したすべての問題が今解決されていると嬉しく思います。
sudo apt-get nginx php5 php5-fpm dnsmasq
Debian 8、Jessieに以下をインストールしました。開発サイトに名前を付けたドメインを持つようにdnsmasqをインストールしました。私は以下を含む.conf
ファイルを作成しました。/etc/dnsmasq.d
address=/dev/127.0.0.1
そして設定のこの部分はうまくいきます。すべての.devドメインは、Nginxが提供するローカルホストとして解決されます。
それでは、開発環境のサーバー部分とこれまでに試したことを見てみましょう(サーバーブロックはマニフェストの下にあります)。更新:すべてが大丈夫です!今、すべてがうまくいきます!
これまでに私が達成したことのリスト:
- これでジョブ設定が完了しました(この投稿は最近編集したものです)。 Sitepointの記事でいくつかの便利なヒントを見つけました。だから私の開発サイトフォルダの親フォルダ(例:chgrp -R www-data /var/www )にいくつかの権限を与えました。行いました。最後のchmodは次のようになります。最高のもの! SGID(g + s)を追加することは、/ var / wwwに追加されたすべての新しい開発ディレクトリが自動的にwww-dataの所有になり、この開発設定がさらに自動化されることを意味します。
- 設定を変更するたびにphp5-fpmとNginxを再ロードすると、両方がうまく動作します。
- 直す。これで、新しい設定がcgiをすばやく実行しています。これで完了しました。 sudo apt-get php5-cgi generate-fcgi
- www-dataというグループに、ユーザーjosh(私のデフォルトユーザー)、root、およびユーザーwww-data(Nginx)を追加しました。
- php5-fpmの場合、/etc/php5/fpm/pool.d/www.confを確認したところ、デフォルトのインストールではuser=www-data group=www-dataというユーザー属性が提供され、リスニング属性はlisteningであることが確認されました。所有者=www-データ Listen.group=www-データ
- 私は次のようなシンボリックリンクを作成しました。
ln -s /etc/nginx/sites-available/local_dev.conf /etc/nginx/sites-enabled/
私はPHPを使用していないgoodrobot.comのNginx開発設定チュートリアルに従いました。したがって、このチュートリアルの主要部分をscaleyourcode.comにあるChristopheのPHP非開発環境チュートリアルの一部と組み合わせました。
これは私がconfファイルのサーバーブロックについて考えたものです/etc/nginx/sites-available
(2つのチュートリアルのアイデアを組み合わせます)。繰り返しますが、問題は私のindex.phpページが提供されていないことです。 (サーバーブロックの下のインデックスにindex.htmlファイルを追加してからindex.htmlファイルを指定すると正常に動作します。)修正します。私が作成したFrankenconfigファイルをゴミ箱に捨て、新しいファイルを作成しました。詳細は以下に示す。今、すべてが大丈夫です!
更新中です。私は、ユーザーdenji(Github)がGithubに投稿した「dnsmasq」というタイトルのわずかに変更されたバージョンである新しい設定ファイルを公開しました。このバージョンにはPHPmyadminブロックもありますが、必要ありません。また、 fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; を location~.php ブロックに追加しました。また、〜.php(ここではドル記号、良くない)場所の前にあるドル記号を削除して、実際のWebサーバーで次のいずれかを使用するときに$記号がハッカーの自由通行にならないようにしました。
server {
index index.php;
set $basepath "/var/www";
set $domain $host;
# check one name domain for simple application
if ($domain ~ "^(.[^.]*)\.dev$") {
set $domain $1;
set $rootpath "${domain}";
set $servername "${domain}.dev";
}
# check multi name domain to multi application
if ($domain ~ "^(.*)\.(.[^.]*)\.dev$") {
set $subdomain $1;
set $domain $2;
set $rootpath "${domain}/${subdomain}/www/";
set $servername "${subdomain}.${domain}.dev";
}
server_name $servername;
access_log "/var/log/nginx/server.${servername}.access.log";
error_log "/var/log/nginx/server.dev.error.log";
root $basepath/$rootpath;
# check file exist and send request sting to index.php
location / {
try_files $uri $uri/ /index.php?$args;
}
# allow php only in root index.php
#location ~ "^/index\.php" {
# allow execute all php files
location ~ \.php {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
}
location ~ /\.ht {
deny all;
}
# disallow access to git configs path
location ~ /\.git {
deny all;
}
}