为了账号安全,请及时绑定邮箱和手机立即绑定

gitpod中的php-fpm问题

gitpod中的php-fpm问题

PHP
繁星点点滴滴 2022-01-24 09:51:24
我正在尝试在 gitpod.io 中运行 php-fpm。但是当我运行以下命令时......service php7.1-fpm start...Gitpod 控制台返回权限错误,我无法在 gitpod 控制台中使用 sudo。我能做些什么来解决这个问题。错误:> mkdir: cannot create directory ‘/run/php’: Permission denied . That error are show in my gitpod console我的码头文件:FROM gitpod/workspace-full:latest# optional: use a custom Nginx config.COPY ./nginx.conf /etc/nginx/nginx.confCOPY ./docker-run.sh /# optional: change document root folder. It's relative to your git working copy.ENV NGINX_DOCROOT_IN_REPO="www"USER rootRUN 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/mysqlCOPY ./my.cnf /etc/mysql/my.cnfRUN 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对不起,我的英语很糟糕。
查看完整描述

1 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

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


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


[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-fpm 守护进程:


/usr/sbin/php-fpm7.2 --fpm-config php-fpm.conf

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


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:如果这回答了您的问题,请考虑在您的reddit 帖子中写下评论,并附上此答案的链接,以便 reddit 用户知道问题已经解决。


查看完整回答
反对 回复 2022-01-24
  • 1 回答
  • 0 关注
  • 434 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信