我在Amazon Linux上运行了AWS服务器。
我使用本指南安装php7(页面底部):https://forums.aws.amazon.com/thread.jspa?messageID=695576
我想使用nginx而不是Apache,所以我还安装了php70w-fpm和nginx软件包。但是,当我service start php-fpm
时,它不会在我的服务器上的任何位置创建php-fpm.sock文件。我已经检入/ var / run并且还运行了find / -name "*.sock"
,它只返回/var/run/rpcbind.sock
。
答案 0 :(得分:3)
编辑:这里的真正解决方案是nginx配置中的www.conf
和fastcgi_pass
中的监听必须匹配。您是否使用套接字或tcp取决于您。
答案是根本不使用.sock
文件。
/etc/php-fpm.d/www.conf
listen = 127.0.0.1:9000
fastcgi_pass 127.0.0.1:9000;
答案 1 :(得分:1)
我知道为时已晚,但可能会有所帮助。您可以使用Python从头开始创建新的锁定文件。
let pictures = [];
let urls =[];
let titles=[];
let nextpage ='';
let pageback='';
class App extends Component {
constructor(props) {
super(props);
this.state = {
picturesArr: [],
urlArr: [],
titleArr:[],
nextPage:'',
prevuisPage:''
};
this.loadSubreddit = this.loadSubreddit.bind(this);
}
loadSubreddit(subre) {
reddit.hot(subre).limit(5).fetch(function(res) {
console.log(res);
nextpage = res.data.after.toString();
// pageback = res.data.before.valueOf();
for (let i = 0; i < res.data.children.length; i++){
pictures.push(res.data.children[i].data.url);
urls.push(res.data.children[i].data.permalink);
titles.push(res.data.children[i].data.title);
}
});
this.setState({
picturesArr: pictures,
urlArr: urls,
titleArr: titles,
nextPage: nextpage,
prevuisPage: pageback
}, () => {
console.log(this.state)
});
console.log(pictures);
console.log(JSON.stringify(pictures));
}
componentWillMount() {
console.log('comp is mounting');
this.loadSubreddit('cats');
}
render() {
return (
<div className="App">
<div className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<h2>Welcome to React</h2>
</div>
<Col sm={8} md={10} smOffset={2} mdOffset={1} >
<ImageList pics={this.state.picturesArr} />
</Col>
</div>
);
}
}
export default App;
答案 2 :(得分:1)
就我而言,我错过了/etc/php/7.0/fpm/pool.d/wordpress.conf
中正确的部分
[wordpress]
listen = /var/run/php7-fpm-wordpress.sock
*。sock文件不是从文件名而是从节名创建的。
答案 3 :(得分:1)
我遇到了同样的问题-没有创建套接字-和Phil拥有相同的解决方案。
我刚刚复制粘贴了一个池文件,并且只在侦听部分更改了套接字名称。没有插座。
这是因为池名称已被使用。如果您已经具有相同名称的池,则不会创建新的套接字。
因此,对于每个套接字都有唯一的池名称很重要。
因此,在复制/粘贴池配置时:更改池名称和套接字名称!
答案 4 :(得分:0)
如果你的php-fpm由systemd
控制,你必须在你的php-fpm服务单元文件中检查PrivateTmp
选项(你可以这样的文件find /etc/systemd -name "php-fpm*" ! -type d
)
如果此选项设置为true PrivateTmp=true
,则将为php-fpm主进程创建新的文件系统命名空间,并且其他进程将无法在默认情况下操作此命名空间中的文件(例如,nginx)。您可以在此处阅读有关systemd PrivateTmp
选项的更多详细信息:https://www.freedesktop.org/software/systemd/man/systemd.exec.html
希望这有帮助!
答案 5 :(得分:0)
确保具有以下文件夹并且该文件夹可写。
/var/run/php-fpm
然后在您的www.conf
中输入:
listen = /var/run/php-fpm/php-fpm.sock
然后运行:
sudo service php-fpm restart
nginx.conf
:
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
sudo service nginx restart
答案 6 :(得分:0)
我遇到了错误,因为我复制粘贴了一个pool.d / xx.conf,而新的名字具有相同的名字(无论如何),所以第二个没有被加载。 没有错误,没有套接字。
希望能帮助到某人:)
答案 7 :(得分:0)
在我的情况下,当在 Ispconfig 3.2.2 中将特定网站的 PHP 版本示例更改为 PHP7.4 时,应该在 /etc/php/7.4/fpm/pool.d/
中创建 webxx.conf 文件,但它是在根目录 {{1} 中创建的}}。
所以现在我只是将 webxx.conf 文件 mv 到 /
并重新启动 PHP7.4-fpm /etc/php/7.4/fpm/pool.d/
并且它可以正常工作。