Не уверен, что это все еще актуально, но такое же поведение имеет место и для словарей. Посмотрите на этот пример.
a = {'par' : [1,21,3], 'sar' : [5,6,8]}
b = a
c = a.copy()
a['har'] = [1,2,3]
a
Out[14]: {'har': [1, 2, 3], 'par': [1, 21, 3], 'sar': [5, 6, 8]}
b
Out[15]: {'har': [1, 2, 3], 'par': [1, 21, 3], 'sar': [5, 6, 8]}
c
Out[16]: {'par': [1, 21, 3], 'sar': [5, 6, 8]}
Попробуйте это:
/etc/nginx/sites-available/default
listen 80; ## listen for ipv4; this line is default and implied
listen [::]:80 default_server ipv6only=on; ## listen for ipv6
server_name
в покое # Make site accessible (...)
server_name localhost;
index.php
в index
line root /usr/share/nginx/www;
index index.php index.html index.htm;
location ~ \.php$ {}
# pass the PHP scripts to FastCGI server listening on (...)
#
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
# With php5-cgi alone:
#fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
/etc/php5/fpm/php.ini
и убедитесь, что cgi.fix_pathinfo
установите 0
Я только что начал использовать Linux неделю назад, поэтому я действительно надеюсь помочь вам в этом. Я использую текстовый редактор для редактирования файлов. запустите apt-get install nano, если у вас его нет. Google, чтобы узнать больше.
Если что-то еще вам не поможет. И, возможно, раньше вы установили apache2 с тестовым файлом info.php. Просто очистите данные приложения (кеш, cookie) для локального хоста.
Ответ выше, казалось, слишком сильно закомментировал решение, которое я достиг. Это мой файл выглядел так:
/ etc / nginx / sites-available / default
location ~ \.php$ {
# fastcgi_split_path_info ^(.+\.php)(/.+)$;
# # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
#
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
Надеюсь, это поможет некоторым людям, которые разочарованы в воскресенье днем (c:
У меня была такая же проблема, и ни один из ответов не разрешил проблему.
Я побежал:
sudo nginx -t
, чтобы проверить файл конфигурации на / etc / nginx / sites-available / default.
Это дало мне эти ошибки:
nginx: [emerg] unexpected end of file, expecting "}" in /etc/nginx/sites-enabled/default:115
nginx: configuration file /etc/nginx/nginx.conf test failed
Итак, я зашел в конфигурационный файл, а на последней строке был
#}
Я раскоментирован, снова запустил тестовую команду, и она сработала
Что работало для меня с Ubuntu 16.04, а php7 удаляло эту строку
fastcgi_split_path_info ^(.+\.php)(/.+)$;
После этого перестала загружаться php-файлы.
Для меня это была строка: fastcgi_pass unix: /var/run/php5-fpm.sock;
, который должен был быть просто: fastcgi_pass unix: /run/php5-fpm.sock;
Вам нужно отредактировать / etc / nginx / sites-enabled / default и добавить этот код в файл по умолчанию для выполнения php-файлов на сервере Nginx
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.php index.html index.htm;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
– Andrew Fox
14 October 2017 в 06:37
php7.0-fpm.pid
, а не php7.0-fpm.sock
в /var/run/php/
, что это значит?
– vsync
29 April 2018 в 18:16
/etc/nginx/conf.d/wordpress_https.conf
– vsync
23 June 2018 в 14:52
проверьте, что расширение файла конфигурации nginx равно * .conf. например: /etc/nginx/conf.d/myfoo.conf
У меня такая же ситуация. После того, как я переименую свой файл конфигурации из myfoo в myfoo.conf, он исправлен. Не забудьте перезапустить nginx после его переименования.
Моим решением было добавить
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
в мой пользовательский файл конфигурации, например etc/nginx/sites-available/example.com.conf
Добавление в /etc/nginx/sites-available/default
не сработало для меня.
Обновить nginx config / etc / nginx / sites-available / default или ваш файл конфигурации
, если вы используете php7, используйте этот параметр
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
, если вы используете использование php5 это
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
Посетите здесь полную информацию Подробнее здесь
Раскомментировать расположение .php в / etc / nginx / sites-available / default
sudo vi / etc / nginx / sites-available / default:
blockquote>location ~ \.php$ { include snippets/fastcgi-php.conf; # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; }
Если какой-либо из предложенных ответов не работает, попробуйте следующее:
listen = 127.0.0.1:9000;(delete all line contain listen= )
remove server block server{} (if exist) in block html{} because we use server{} in default (config file in etc/nginx/site-available) which was included in nginx.conf.
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
sudo service nginx restart
blockquote>5.restart php service
service php5-fpm restart
blockquote>6.enjoy
Создайте любой php-файл в / usr / share / nginx / html и запустите его в "server_name / file_name.php" (имя_сервера зависит от вашей конфигурации, normaly - localhost, file_name.php - имя файла, созданного в / usr / share / nginx / html).
blockquote>Я использую Ubuntu 14.04
У меня была аналогичная проблема, которая была решена путем опустошения кеша браузера (также отлично работала с другим браузером).
Сначала вы должны
blockquote>Remove cache
в своем браузере. Затем откройте терминал и запустите следующую команду:
sudo apt-get install php-gettext sudo nano /etc/nginx/sites-available/default
Затем добавьте следующее код в файле
default
:server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /usr/share/nginx/html; index index.php index.html index.htm; server_name localhost; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
Если какое-либо несоответствие только исправления и перезапуска Nginx из терминала с помощью следующей команды
sudo systemctl restart nginx
blockquote>Затем перейдите в браузер и наслаждайтесь ...
Это работало для меня.
1) Файл MyApp
vi / etc / nginx / sites-available / myApp
server {
listen 80;
listen [::]:80;
root /var/www/myApp;
index index.php index.html index.htm;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Пользователи PHP5
Измените
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
на
fastcgi_pass unix:/var/run/php5-fpm.sock;
2) Настройте cgi.fix_pathinfo
Установите cgi.fix_pathinfo на 0
Местоположение:
PHP5 /etc/php5/fpm/php.ini
PHP7 /etc/php/7.0/fpm/php.ini
3) Службы перезагрузки
FPM
php5 sudo service php5-fpm restart
php7 sudo service php7.0-fpm restart
NGINX
sudo service nginx restart
Для тех, кто имеет такую же проблему с PHP 7, это то, что я сделал, чтобы nginx корректно выполнял php-файлы в CentOS 7, размещенные здесь, поэтому в случае любой проблемы, имеющей такую же проблему:
/etc/nginx/conf.d/default.conf
(по умолчанию у меня нет сайтов и недоступных сайтов, вы можете редактировать их соответственно). location
, как показано ниже: default.conf :
location ~ \.php$ {
try_files $uri =404;
#fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
#instruct nginx execute php7 files instead download them :D
fastcgi_pass unix:/var/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
sudo systemctl restart php-fpm
и sudo systemctl restart nginx
. incognito (Chrome)
или Private Browsing (Firefox)
и т. Д. ... Надеюсь, это полезное и счастливое кодирование
Для меня это помогло добавить ?$query_string
в конец /index.php, как показано ниже:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
В моем случае я не использовал /etc/nginx/sites-available/default
Я использовал другой файл конфигурации блока сервера (например, example.com), и единственный способ, которым я смог исправить эту проблему, - удалить файл конфигурации сервера по умолчанию, символический link:
$ rm /etc/nginx/sites-enabled/default
, затем перезагрузка Nginx:
$ sudo systemctl reload nginx
service nginx restart && service php5-fpm restart
– Duke 6 January 2016 в 00:34nginx -s reload
– Duke 6 January 2016 в 00:40