Ubuntu 16.04 Nginx環境で、ローカルWordPressサイトのonlineテストバージョンを作成しようとしました。元のサイト正常に動作し、HTTPSでアクセスされます(ロックファビコンはすべてのページで緑色です)。
my_ip_addrres/test
を参照すると、URLがmy_ip_addrres/test
のままであっても、元のサイト(複製したいローカルサイト)の404ページにアクセスします。さらに、その404ページのmy_ip_addrres/test
URLを持つすべてのメインメニューリンクは、元のサイトを指しています。
どのブラウザでもmy_ip_addrres/test
に移動すると、元のサイトの複製バージョンに到達し、元のサイトを操作するのと同じように操作するので、my_ip_addrres/test/wp-admin
に移動してログインし、それを変更できます。テストサイト。
私は基本的に次のbashコマンドですべてを行いました。最終的に複製したい場合は、これらを使用してください。
cd /var/www/html/
read domain # Domain of the site for duplication.
read -s rps # Password for Mysql root user.
read -s sps # Password for Mysql DB user.
cp -r ./${domain} ./test/
sed -i "s/${domain}/test"/g ./test/wp-config.php
cp -r /etc/nginx/sites-available/${domain}.conf /etc/nginx/sites-available/test.conf
sed -i "s/${domain}/test"/g /etc/nginx/sites-available/test.conf
ln -s /etc/nginx/sites-available/test.conf /etc/nginx/sites-enabled/test.conf
echo "CREATE USER 'test'@'localhost' IDENTIFIED BY \"${sps}\";" | mysql -u root -p"${rps}"
echo "CREATE database test;" | mysql -u root -p"${rps}"
echo "GRANT ALL PRIVILEGES ON test.* TO test@localhost;" | mysql -u root -p"${rps}"
mysqldump -u root -p"${rps}" "${domain}" > test.sql
mysql -u test -p"${sps}" test < ./test.sql
cd test
wp search-replace "${domain}" "MY_IP_ADDRESS/test" --allow-root
1)上記のWP-CLI
検索および置換コマンドを実行した後、データベースに約1300の置換がありました。
2)/var/www/html/test/wp-config.php
:
define('DB_NAME', 'test');
define('DB_USER', 'test');
nginx -t
nginx:構成ファイル/etc/nginx/nginx.conf構文は問題ありません
nginx:構成ファイル/etc/nginx/nginx.confテストが成功しました
tail /var/log/nginx/error.log
tail /var/log/nginx/access.log
/var/www/html/test/
に関するエラーを示していません。テストサイトがmy_ip_addrres/test
から上がらない原因として考えられるものは何ですか? Nginxの初心者として、私は武器庫ですべてを試したと本当に感じています...
IPから直接アクセスする以外に何も必要ありません
オプション:
000-test.conf
に変更します。これは、愚かなことをしている人は誰でもテストサイトを見ることができることを意味します。sites-enabled
全体ではなく、個々の構成ファイルを順番に手動で含めます説明
HelloWorld.html
ファイルを/var/www/html/example.com/test/
に配置します。 IP_ADDRESS/test/HelloWorld.html
を参照すると、ファイルの内容が表示されます。構成にはserver { ... }
とhttp://YOUR_IP/
に対応するservername
がないため、デフォルトで最初のserver { ... }
ブロックが使用されます。統計的に言えば、example.com.conf
はtest.conf
の前にロードされます
Nginx
メインのWebサイトがデフォルトであるため、ファイルのroot
が間違っていると考えています。
推奨事項
オプション1または3を使用します。ライブサイトは、おそらく訪問者に表示されるデフォルトのWebサイトである必要があります。オプション1を選択すると、テストサイトをさらに「隠す」ことができます。オプション3は " http:// ip/test "になりますが、上記の理由から、オプション1を引き続き使用します。