Php 如何修复错误:mkdir():运行composer时权限被拒绝
我有一个ec2图像,在尝试创建新的laravel项目时出现以下错误 [ErrorException]mkdir():权限被拒绝 命令如下:Php 如何修复错误:mkdir():运行composer时权限被拒绝,php,amazon-ec2,composer-php,Php,Amazon Ec2,Composer Php,我有一个ec2图像,在尝试创建新的laravel项目时出现以下错误 [ErrorException]mkdir():权限被拒绝 命令如下: composer create-project laravel/laravel mydir 我可以使用ec2用户用户名写入文件夹,但我是否需要为composer添加写入权限 添加“www”组并将您的用户添加到此组 sudo groupadd www sudo usermod -a -G www ec2-user 注销/登录 设置所有权和写入权限 sud
composer create-project laravel/laravel mydir
我可以使用ec2用户用户名写入文件夹,但我是否需要为composer添加写入权限
sudo groupadd www
sudo usermod -a -G www ec2-user
sudo chown -R root:www /var/www
sudo chmod 2775 /var/www
find /var/www -type d -exec sudo chmod 2775 {} +
find /var/www -type f -exec sudo chmod 0664 {} +
引用:确保您具有读/写文件夹权限。这对我有用 就像在ubuntu中一样
var/www/html
所以,如果您想在html
文件夹中创建dir,那么首先要授予html
文件夹的权限。那你就完了。谢谢 快速回答:
出于安全原因,让我们将root
保留为所有者,只允许我们自己在将要工作的区域内读、写和执行
cd/var/www/
sudo chown-Rv root:$USER.
sudo chmod-rvg+rw.
composer创建项目laravel/laravel
projectName——首选dist
root
和$USER
(这是全局变量,但实际名称是您输入的用户名)。创建的每个用户都有一个组。因此,如果我的用户名是john
,我有一个名为john
的组。
有很多方法可以解决这个问题,但我选择这条路线有几个原因:
root
成为文件的所有者其他人保持原样,只允许他们读取和执行文件
让我们开始吧:
我喜欢在我正在修改的目录中,以避免出错,因此首先我们需要输入我们将要使用的目录
cd/var/www/
我们需要更改我们将使用的目录的组所有权。从我们所在的目录以及我们将在此目录下创建的所有未来目录和文件开始。因此,从现在起,任何子目录基本上都将由我们组拥有
sudo chown-Rv root:$USER.
chown
=更改所有者的命令
-R
=Recursive-这基本上表示对该目录中的所有目录执行相同的命令
-v
=verbose-我们在这里陈述,通过向我们展示实际发生的事情来保持我们的最新状态
root:$USER
=这是我们正在设置的所有权。冒号(:)前的第一个单词表示根
将是单一所有者。冒号(:)后面的第二个单词表示组所有者将是$USER
(当前用户)
=这只是表示“在这里,在这个目录中”
现在,我们将向组添加正确的权限。请记住,这是我们允许root
成为主要所有者的地方,同时只允许我们自己创建更改(当然,除了root
)。正如我前面提到的,这不允许其他用户创建任何更改。
sudo chmod-rvg+rw.
chmod
=更改修改的命令,在本例中为特权
-Rv
=递归和冗长
g
=这表示将接收修改的人。在我们的例子中,g-group的其他选项是u-user和o-Other
+
=符号表示添加
r
=表示读取
w
=表示写入
现在我们完成了。尝试创建一个新的laravel项目。
composer创建项目laravel/laravel
projectName`--首选区域
注意:如果这不起作用,请在/var/www/
目录中输入命令ls-al | grep$USER
如果你得到这个:
drwxrw-r-x
您缺少该组的可执行(x
)权限。第一个x
是给用户的,最后一个x
是给其他人的。该组应有中间x
运行以下命令,您应该全部设置为go:
sudo chmod-rvg+x.
现在,如果您运行ls-al | grep$USER
,您应该会得到:
drwxrwxr-x
将cd刻录到当前要安装laravel的目录,并使用更改目录访问权限
sudo chmod -R 777 ./
键入您的密码,您就可以继续安装了这是一个流浪者的问题框
如果您试图在新的vagrant框中安装带有composer的内容,则可能是在安装vagrant时指定了允许使用的路径
因此,请检查您的个人.yml文件,以便在下面进行检查
\ansible\vars
你有这样的东西
vagrant_local:
vm:
name: oxideshop
hostname: oxideshop.local
aliases:
- www.oxideshop.local
app_shared_folder:
source: oxideshop
target: /var/www/oxideshop
您必须确保app_shared_文件夹目标与用于composer安装的相同
示例:
作曲家创建项目oxid esales/oxideshop项目
/var/www/oxideshopdev-b-6.1-ce
确保您具有读/写文件夹权限
$ sudo chown -R tubai:www-data /home/tubai/firstlara/
sudo mkdir <ProjectDir>
sudo chgrp vagrant <ProjectDir>
sudo chmod g+wx <ProjectDir>
composer create-project --prefer-dist laravel/laravel <Project>
cd /var/www
sudo chown -R $USER:www-data html/
sudo chmod -R 775 html/
sudo composer create-project laravel/laravel mydir
cat /etc/group | grep www
# Under your user account, change directories
cd /var/www/
# Change group ownership
sudo chown -Rv root:www-data .
# Give all the privileges to the group
sudo chmod -Rv g+rwx .
# Add your user name to www-data group, use 'who' command to get your username
sudo usermod -a -G www-data your_user_name
# Verify that your user name is in the www-data group by typing
group your_user_name
# Very important, logout of the system and come back to this folder
# Do the the laravel install
composer create-project --prefer-dist laravel/laravel projectName
# Not finished yet! recursive make the www-data the group owner of projecName which the folder in which Laravel site resides by now
sudo chown -R :www-data projectName