ubuntu 使用 www-data 执行 composer update 失败
项目放在github,做了一个webhook, 自己的服务器检测来自github的post,如果master有变动,就执行
<code>cd /path; git pull git@ooxxx.com</code>
上面拉取代码没有问题。
最后同时还检测master分支里的compoer.json有改动的时候就执行一次:
<code>php composer.phar update php composer.phar dump-autoload -o</code>
由于来自github的post数据是用apache指定的www-data 执行 git pull(部署的public key也是这个用户)发现并不能执行上面的composer操作,我在服务器上手动操作 composer update 出现下面提示:
···
sudo -u www-data php composer.phar update
Cannot create cache directory /root/.composer/cache/repo/http---packagist.phpcomposer.com/, or directory is not writable. Proceeding without cache
Cannot create cache directory /root/.composer/cache/files/, or directory is not writable. Proceeding without cache
Loading composer repositories with package information
Updating dependencies (including require-dev)
Generating autoload files
···
同样,我尝试全局安装composer,用 php /usr/local/bin/composer update 也是同样的错误。
在GG上面搜索,尝试了把 /root/.composer 目录改成www-data且 777
<code>root@localhost:~# ls -la ~/.composer/cache total 20 drwxrwxrwx 4 www-data www-data 4096 Dec 30 14:53 . drwxrwxrwx 3 www-data www-data 4096 Dec 30 14:53 .. drwxrwxrwx 2 www-data www-data 4096 Dec 30 14:53 files -rwxrwxrwx 1 www-data www-data 13 Dec 30 14:53 .htaccess drwxrwxrwx 3 www-data www-data 4096 Dec 30 14:53 repo</code>
除此之外 项目根目录的composer.phar和/usr/local/bin/composer 拥有者都设置成为了www-data ,问题依旧。
请教怎么解决。
ps:补充一下,用root 执行 composer update等操作没有任何问题。
回复内容:
项目放在github,做了一个webhook, 自己的服务器检测来自github的post,如果master有变动,就执行
<code>cd /path; git pull git@ooxxx.com</code>
上面拉取代码没有问题。
最后同时还检测master分支里的compoer.json有改动的时候就执行一次:
<code>php composer.phar update php composer.phar dump-autoload -o</code>
由于来自github的post数据是用apache指定的www-data 执行 git pull(部署的public key也是这个用户)发现并不能执行上面的composer操作,我在服务器上手动操作 composer update 出现下面提示:
···
sudo -u www-data php composer.phar update
Cannot create cache directory /root/.composer/cache/repo/http---packagist.phpcomposer.com/, or directory is not writable. Proceeding without cache
Cannot create cache directory /root/.composer/cache/files/, or directory is not writable. Proceeding without cache
Loading composer repositories with package information
Updating dependencies (including require-dev)
Generating autoload files
···
同样,我尝试全局安装composer,用 php /usr/local/bin/composer update 也是同样的错误。
在GG上面搜索,尝试了把 /root/.composer 目录改成www-data且 777
<code>root@localhost:~# ls -la ~/.composer/cache total 20 drwxrwxrwx 4 www-data www-data 4096 Dec 30 14:53 . drwxrwxrwx 3 www-data www-data 4096 Dec 30 14:53 .. drwxrwxrwx 2 www-data www-data 4096 Dec 30 14:53 files -rwxrwxrwx 1 www-data www-data 13 Dec 30 14:53 .htaccess drwxrwxrwx 3 www-data www-data 4096 Dec 30 14:53 repo</code>
除此之外 项目根目录的composer.phar和/usr/local/bin/composer 拥有者都设置成为了www-data ,问题依旧。
请教怎么解决。
ps:补充一下,用root 执行 composer update等操作没有任何问题。
www-data
没有权限读写 /root
目录。
改下缓存目录。
https://getcomposer.org/doc/03-cli.md#composer-cache-dir

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



When developing websites using CraftCMS, you often encounter resource file caching problems, especially when you frequently update CSS and JavaScript files, old versions of files may still be cached by the browser, causing users to not see the latest changes in time. This problem not only affects the user experience, but also increases the difficulty of development and debugging. Recently, I encountered similar troubles in my project, and after some exploration, I found the plugin wiejeben/craft-laravel-mix, which perfectly solved my caching problem.

Laravel is a PHP framework for easy building of web applications. It provides a range of powerful features including: Installation: Install the Laravel CLI globally with Composer and create applications in the project directory. Routing: Define the relationship between the URL and the handler in routes/web.php. View: Create a view in resources/views to render the application's interface. Database Integration: Provides out-of-the-box integration with databases such as MySQL and uses migration to create and modify tables. Model and Controller: The model represents the database entity and the controller processes HTTP requests.

I had a tough problem when working on a project with a large number of Doctrine entities: Every time the entity is serialized and deserialized, the performance becomes very inefficient, resulting in a significant increase in system response time. I've tried multiple optimization methods, but it doesn't work well. Fortunately, by using sidus/doctrine-serializer-bundle, I successfully solved this problem, significantly improving the performance of the project.

The Laravel framework has built-in methods to easily view its version number to meet the different needs of developers. This article will explore these methods, including using the Composer command line tool, accessing .env files, or obtaining version information through PHP code. These methods are essential for maintaining and managing versioning of Laravel applications.

What’s still popular is the ease of use, flexibility and a strong ecosystem. 1) Ease of use and simple syntax make it the first choice for beginners. 2) Closely integrated with web development, excellent interaction with HTTP requests and database. 3) The huge ecosystem provides a wealth of tools and libraries. 4) Active community and open source nature adapts them to new needs and technology trends.

Summary Description: When dealing with complex data types, you often encounter problems of how to uniformly represent and operate. This problem can be easily solved with Composer using the phrity/o library. It provides encapsulation classes and traits for various data types, making data processing more consistent and efficient.

When developing an e-commerce website, I encountered a difficult problem: how to provide users with personalized product recommendations. Initially, I tried some simple recommendation algorithms, but the results were not ideal, and user satisfaction was also affected. In order to improve the accuracy and efficiency of the recommendation system, I decided to adopt a more professional solution. Finally, I installed andres-montanez/recommendations-bundle through Composer, which not only solved my problem, but also greatly improved the performance of the recommendation system. You can learn composer through the following address:

When developing an e-commerce platform, it is crucial to choose the right framework and tools. Recently, when I was trying to build a feature-rich e-commerce website, I encountered a difficult problem: how to quickly build a scalable and fully functional e-commerce platform. I tried multiple solutions and ended up choosing Fecmall's advanced project template (fecmall/fbbcbase-app-advanced). By using Composer, this process becomes very simple and efficient. Composer can be learned through the following address: Learning address
