首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gitpod中的php-fpm问题

gitpod中的php-fpm问题
EN

Stack Overflow用户
提问于 2019-09-23 08:17:28
回答 1查看 379关注 0票数 0

我试图在gitpod.io中运行php。

但当我执行命令时..。

代码语言:javascript
复制
service php7.1-fpm start

...Gitpod控制台返回一个权限错误,我不能在gitpod控制台中使用sudo。我能做些什么来解决这个问题。

错误:

> mkdir: cannot create directory ‘/run/php’: Permission denied . That error are show in my gitpod console

我的伪造文件:

代码语言:javascript
复制
FROM gitpod/workspace-full:latest

# optional: use a custom Nginx config.
COPY ./nginx.conf /etc/nginx/nginx.conf
COPY ./docker-run.sh /

# optional: change document root folder. It's relative to your git working copy.
ENV NGINX_DOCROOT_IN_REPO="www"
USER root
RUN apt-get update \
 && apt-get -y install mysql-server mysql-client \
 && apt-get -y install php-fpm php-cli php-bz2 php-bcmath php-gmp php-imap php-shmop php-soap php-xmlrpc php-xsl php-ldap \
 && apt-get -y install php-amqp php-apcu php-imagick php-memcached php-mongodb php-oauth php-redis\
 && apt-get clean && rm -rf /var/cache/apt/* /var/lib/apt/lists/* /tmp/*

RUN mkdir /var/run/mysqld \
 && chown -R gitpod:gitpod /var/run/mysqld /usr/share/mysql /var/lib/mysql /var/log/mysql /etc/mysql

COPY ./my.cnf /etc/mysql/my.cnf

RUN mysqld --daemonize --skip-grant-tables \
    && sleep 3 \
    && ( mysql -uroot -e "USE mysql; UPDATE user SET authentication_string=PASSWORD(\"root\") WHERE user='root'; UPDATE user SET plugin=\"mysql_native_password\" WHERE user='root'; FLUSH PRIVILEGES;" ) \
    && mysqladmin -uroot -proot shutdown;

EXPOSE 80 443

对不起,我的英语很差。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-24 14:42:07

我不熟悉php,因此我无法测试我的解决方案是否正确运行。但是,当我将php-fpm配置文件中的路径更改为允许用户写入的位置时,我可以在Gitpod中启动php。

您将在/etc/php/7.2/fpm/中找到php的配置(如果使用7.1,可能需要更改版本号)。我创建了一个简单的配置文件,其中pid文件、套接字文件和日志文件将被写入/tmp/,用户gitpod可以将文件写到:

代码语言:javascript
复制
[global]
pid = /tmp/php7.2-fpm.pid
error_log = /tmp/php7.2-fpm.log

[www]
listen = /tmp/php7.2-fpm.sock
listen.owner = gitpod
listen.group = gitpod

pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

现在,您可以启动php守护进程,如下所示:

代码语言:javascript
复制
/usr/sbin/php-fpm7.2 --fpm-config php-fpm.conf

之后,您可以检查守护进程是否由ps -aux运行。在那里你会发现这样的东西:

代码语言:javascript
复制
gitpod      3342  0.0  0.0 234512 11524 ?        Ss   14:34   0:00 php-fpm: master process (php-fpm.conf)
gitpod      3343  0.0  0.0 234644  5812 ?        S    14:34   0:00 php-fpm: pool www
gitpod      3344  0.0  0.0 234644  5812 ?        S    14:34   0:00 php-fpm: pool www

您可以找到一个工作示例这里

我希望这对你有用。

科尼利厄斯

PS:如果这回答了你的问题,请考虑给你的https://www.reddit.com/r/gitpod/comments/d7une4/install_phpfpm_for_workspacefull_gitpod/写一个评论和这个答案的链接,这样编辑用户就知道问题已经解决了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58058268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档