2012-07-14 21 views
5

Tôi là một noob và chạy qua hướng dẫn Yii trên AWS. Cho đến nay tôi đã có thể nhận được tất cả mọi thứ và chạy - bao gồm cả kết nối mysql. Nhưng bây giờ tôi đang sử dụng công cụ tạo mã Gii để giúp tạo ra một số lớp mô hình. Bằng cách đó, tôi nhận được lỗi sau:Quyền của quy trình web trên Yii/Linux

generating models/User.php 
      Unable to write the file '/var/www/html/blog/protected/models/User.php'. 
done! 

Các tài liệu cũng nói với tôi:

Info: Because the code generator needs to save the generated code into files, it is 
required that the Web process have the permission to create and modify the corresponding 
files. For simplicity, we may give the Web process the write permission to the whole 
/www/blog directory. Note that this is only needed on development machines when using Gii. 

Điều này làm cho ý nghĩa với tôi và tôi hiểu được logic cơ bản của quyền Linux như áp dụng cho người dùng và các nhóm ... nhưng không phải là quy trình. Ai đó có thể chỉ cho tôi một mồi về làm thế nào để cung cấp cho quá trình Gii viết quyền truy cập vào webroot (trong trường hợp của tôi:/var/www/html/blog /) thư mục?

+0

Muốn thêm rằng Tôi đã đọc và hiểu được nguy cơ chạy Gii trên một máy chủ sản xuất. Tuy nhiên, thiết lập bộ lọc ip trong tập tin config/main.php được thiết lập để chỉ cho phép Gii được chạy từ địa chỉ IP công cộng của tôi. Vì vậy, chạy một cá thể AWS sống (trái với WAMP localhost) có vẻ như nó vẫn sẽ an toàn. –

+0

Cập nhật thêm: Tôi đã mắc lỗi khi thử khắc phục nhanh mà không hiểu đúng và đã làm ... chmod -R 0644/var/www/html/blog/... và tôi không thể truy cập trang bây giờ có nghĩa là tôi đã tắt ứng dụng. ... CỨU GIÚP!! –

+1

đặt '755'. 'Quy trình' không cần quyền, tập lệnh sẽ thực hiện, trong trường hợp này là 'Gii'. Tuy nhiên, nếu apache có quyền truy cập đọc/ghi/thực thi (7) trên các thư mục, nó sẽ hoạt động, được cấp cho bạn thêm IP của bạn trong cấu hình 'Gii'. – adamors

Trả lời

5

Gii sử dụng quy trình được người dùng máy chủ web sinh ra để đọc và ghi tệp. Người dùng này sau đó cần quyền để ghi tệp. Trên Debian/Ubuntu, người dùng là www-data. Kiểm tra xem hệ điều hành của bạn là gì và cho phép người dùng đó ghi quyền trong thư mục đó.

+0

Như đã đề cập trong câu trả lời khác, www-data thường là nhóm (cũng có thể là tên?) Do đó bằng cách đặt thư mục cho nhóm đó là đủ – spuas

7

Tôi cung cấp cho tất cả người dùng priverlege để đọc, viết và thực hiện trên tệp webapp đệ quy.

$sudo chmod -R og=rwx webapp_folder 

và giải quyết sự cố về quyền, nhưng có thể không phải là cách tốt nhất.

+0

Sẽ tốt hơn nếu thay đổi nhóm thành nhóm apache (thường là 'www' -data 'hoặc' www ') và cấp cho nhóm quyền ghi ở đó – spuas

0

FYI, nếu lệnh thư mục hoặc thư mục được tạo ra bởi lệnh như bạn có thể viết trình duyệt sử dụng tập tin và cùng ngược lại ... nhưng để truy cập sự cho phép bằng văn bản cho yii ..

theo này

sudo chmod -R 0777 your_project_name/ 
+0

Văn bản không có ý nghĩa gì. – Mike

3

trong file httpd.conf của bạn là những dòng này:

# 
# If you wish httpd to run as a different user or group, you must run 
# httpd as root initially and it will switch. 
# 
# User/Group: The name (or #number) of the user/group to run httpd as. 
# It is usually good practice to create a dedicated user and group for 
# running httpd, as with most system services. 
# 
User daemon 
Group daemon 

người dùng và nhóm của httpd là "daemon". Bây giờ trong một thiết bị đầu cuối gõ lệnh sau:

chown -R daemon:daemon /path/to/htdocs/directory 

Đôi khi lệnh này phải được thực hiện sau khi loại

sudo su 

Bây giờ GII có thể ghi tập tin vào thư mục được bảo vệ với chmod 775 cho phép

Các vấn đề liên quan