问题描述
我正在尝试遵循此Ansible教程,同时针对使用php7的Ubuntu 16.04进行了调整.在此消息下方,您将找到我的Ansible文件.运行它并尝试在浏览器中访问该页面后,我得到了404,以及nginx错误日志中的以下内容:
I'm trying to follow this Ansible tutorial while adjusting it for Ubuntu 16.04 with php7. Below this message you'll find my Ansible file. After running it and trying to visit the page in the browser I get a 404, and the following in the nginx error logs:
所以我检查了套接字文件是否存在,并且似乎存在,但是ls
的行为很奇怪:
So I checked if the socket file exists, and it seems to exist, but ls
behaves weird:
$ sudo ls -l /var/run/php
total 4
-rw-r--r-- 1 root root 5 Oct 15 13:00 php7.0-fpm.pid
srw-rw---- 1 www-data www-data 0 Oct 15 13:00 php7.0-fpm.sock
$ sudo ls -l /var/run/php7
ls: cannot access '/var/run/php7': No such file or directory
$ sudo ls -l /var/run/php7.0-fpm.sock
ls: cannot access '/var/run/php7.0-fpm.sock': No such file or directory
如果我按名称php
的一部分进行搜索,为什么ls
可以找到套接字文件,而当我列出的内容不超过php7
甚至全名php7.0-fpm.sock
时却找不到套接字文件?
Why can ls
find the socket file if I search it by part of the name php
while it cannot find the socket file when I list more than that php7
or even the full name php7.0-fpm.sock
?
最重要的是,我如何使用nginx进行这项工作?欢迎所有提示!
And most importantly, how can I make this work with nginx? All tips are welcome!
下面我粘贴了Ansible文件
below I pasted my Ansible file
---
- hosts: php
become: true
tasks:
- name: install packages
apt: name={{ item }} update_cache=yes state=latest
with_items:
- git
- mcrypt
- nginx
- php-cli
- php-curl
- php-fpm
- php-intl
- php-json
- php-mcrypt
- php-mbstring
- php-sqlite3
- php-xml
- sqlite3
- name: enable mbstring
shell: phpenmod mbstring
notify:
- restart php7.0-fpm
- restart nginx
- name: create /var/www/ directory
file: dest=/var/www/ state=directory owner=www-data group=www-data mode=0700
- name: Clone git repository
git: >
dest=/var/www/laravel
repo=https://github.com/laravel/laravel.git
update=no
become: true
become_user: www-data
register: cloned
- name: install composer
shell: curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
args:
creates: /usr/local/bin/composer
- name: composer create-project
composer: command=create-project working_dir=/var/www/laravel optimize_autoloader=no
become: true
become_user: www-data
when: cloned|changed
- name: set APP_DEBUG=false
lineinfile: dest=/var/www/laravel/.env regexp='^APP_DEBUG=' line=APP_DEBUG=false
- name: set APP_ENV=production
lineinfile: dest=/var/www/laravel/.env regexp='^APP_ENV=' line=APP_ENV=production
- name: Configure nginx
template: src=nginx.conf dest=/etc/nginx/sites-available/default
notify:
- restart php5-fpm
- restart nginx
handlers:
- name: restart php7.0-fpm
service: name=php7.0-fpm state=restarted
- name: restart nginx
service: name=nginx state=restarted
- name: reload nginx
service: name=nginx state=reloaded
推荐答案
出现相同的问题.解决方案非常简单.
Had the same problem.Solution is very easy.
在nginx conf文件中,您尝试上游
In nginx conf file you are trying upstreaming to
unix:/var/run/php7.0-fpm.sock
正确的路径是
unix:/var/run/php/php7.0-fpm.sock
PHP 5 /var/run/php5-fpm.sock
PHP 7 /var/run/php/php7.0-fpm.sock
这篇关于NGINX:connect()到Unix:/var/run/php7.0-fpm.sock失败(2:没有这样的文件或目录)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!