Câu trả lời:
Bản thân tôi sẽ thêm người dùng vào www-data
nhóm bằng ...
sudo adduser {username} www-data
Đơn giản và hiệu quả. Không làm phiền với tập tin cấu hình hoặc quyền.
Chỉnh sửa tệp sau dưới dạng root: / etc / apache2 / envvars
sử dụng lệnh:
sudo nano /etc/apache2/envvars
thay đổi người dùng và nhóm thành chính mình nếu chỉ có một người dùng và bạn sẽ không bao giờ gặp vấn đề về quyền nữa.
IE, nếu bạn chỉ đăng nhập và chạy máy chủ với tư cách là người dùng 'big_dog':
export APACHE_RUN_USER=big_dog
export APACHE_RUN_GROUP=big_dog
Heck, đối với vấn đề đó bạn có thể thay đổi người dùng đó thành người dùng hiện tại Tôi chắc chắn bằng cách nào đó. Sau đó, cài đặt user_dir tất cả các bạn chỉ có web mà bạn có thể có toàn quyền kiểm soát (trừ khi bạn sửa đổi điều này).
Khởi động lại máy chủ (nếu không chắc chắn, chỉ cần khởi động lại hoặc goole) và bạn đã sẵn sàng để đi.
sudo chown big_dog.big_dog /var/lock/apache2
sudo chown big_dog.big_dog -R /var/log/apache2
/etc/apache2/uid.conf
export APACHE_RUN_USER=#$(id -u)
cung cấp id người dùng và sử dụng tương tự id -g
cho nhóm trong tập lệnh và cuối cùng tôi đã gọi apache để chạy.
tại sao bạn lại làm điều này ,, tôi đã phải vật lộn với vấn đề perm đó trong quá khứ, nhưng đây là quá trình phát triển của tôi từ hôm nay:
sudo apt-get install lamp-server^
Proc tiêu chuẩn để có được đèn lêntạo liên kết sym đến thư mục nhà của tôi nơi các dự án giống như thế này:
ln -s /home/user/html /var/www/html
tạo liên kết sym đến tập tin cấu hình máy chủ
ln -s /home/user/html/Apache-VirtualHosts.conf /etc/apache/sites-enabled/000-default
đó là nó :)
Nó hoạt động như mong muốn, không có vấn đề với perm người dùng hoặc một cái gì đó tương tự với máy chủ apache ,, đối với mysql tôi có quá trình dài hơn một chút ..
hth, chúc mừng
Sidestepping vấn đề "bạn nên làm điều này", bạn có thể tìm thấy nơi người dùng cho apache được thiết lập bằng cách chạy:
grep www- /etc/apache2/apache2.conf
Sau đó, đây là trường hợp chỉnh sửa các cá thể đó /etc/apache2/apache2.conf
và tải lại Apache ( sudo /etc/init.d/apache2 reload
).
apache2.conf
không chứa www-
cho tôi
grep -HR "www-" /etc/apache2/
. Nếu bạn đã biết nó trong apache2.conf thì chỉ cần chỉnh sửa tệp đó. Trong trường hợp của tôi, nó không có ở đó, nhưng trong / etc / apache2 / envvars như câu trả lời của Eric chỉ ra.
apache.conf
tìm kiếm ${APACHE_RUN_USER}
và ${APACHE_RUN_GROUP}
. Không www-data
trực tiếp.
tạo một nhóm người dùng mới webdev
và thêm www-data
người dùng vào đó.
sudo addgroup webdev
sudo adduser www-data webdev
Sau đó hãy tiếp tục và thêm người dùng của bạn vào nhóm đó và biến nó thành nhóm mặc định cho người dùng khác.
sudo adduser {your-user} webdev
sudo addgroup webdev
Điều cuối cùng cần làm là đảm bảo, webdev nhóm có quyền rwx trên các tệp
sudo chmod 775 -R /path/to/project
Bây giờ, điều duy nhất có thể xảy ra là ví dụ như dữ liệu www tạo một tệp nhật ký mới và bạn không thể rwx nó.
www-data
nhóm, đặc biệt vì chúng ta đang nói về một môi trường phát triển?