2012-03-03 67 views
10

Tôi thiết lập WordPress trên một cá thể EC2 của Amazon. Nó đang sử dụng Amazon Linux và là một thiết lập chuẩn (chỉ là php5 và mysql).Thiết lập quyền cho WordPress trên Amazon EC2 (Amazon Linux)

WordPress hoạt động tốt, nhưng có một số vấn đề về quyền. Cụ thể là tôi không thể tải lên phương tiện, cập nhật liên kết, bổ trợ, v.v. Tôi không có quyền ghi theo người dùng ec2 và vì tôi đã tải lên tất cả các tệp trên WinSCP, chủ sở hữu hiện tại là người dùng ec2.

Câu hỏi của tôi là cách tốt nhất để khắc phục vấn đề này là gì? Tôi có lẽ có thể sửa chữa nó bằng cách thay đổi quyền sở hữu của tất cả các thư mục/tập tin để root, nhưng đó không phải là một giải pháp rất thanh lịch hoặc năng động.

Đường dẫn đến thư mục web của tôi là/var/www/html. Tôi có thể cho phép người dùng ec2 cấp quyền chính xác không? Có lẽ bằng cách có một nhóm mà cả người dùng Apache và người dùng ec2 chia sẻ?

Bất kỳ ý tưởng nào sẽ được đánh giá cao

+0

Xem http://stackoverflow.com/questions/8686125/update-wordpress-theme-on-ec2 và xem câu trả lời của Jake Hy vọng điều này sẽ hữu ích! – Yannick

+0

Bạn có nhận được giải pháp nào cho điều này không? Tôi có thể làm việc với giải pháp @stink được đề xuất nhưng nếu có một cách thanh lịch, nơi tôi không phải chuyển quyền sở hữu/quyền để thực hiện cập nhật qua FTP/web? –

Trả lời

7

Xem http://blog.david-jensen.com/development/wordpress-amazon-ec2-apache-permissions-wordpress/ trong số các kết quả khác của Google. Ông trông như đã có may mắn:

tôi đã và đang làm hết sức mình để tìm ra các thiết lập Amazon EC2 Apache của phép bật WordPress để có thể quản lý tất cả các tập tin trên dụ Amazon EC2 của tôi mà không WordPress yêu cầu quyền truy cập FTP khi tôi cố tải lên plugin hoặc chủ đề thông qua trang Quản trị. Tôi đã kết thúc phải cung cấp quyền sở hữu tệp và nhóm của các tệp trong thư mục html cho người dùng apache cho WordPress để chạy chính xác. http://www.chrisabernethy.com/why-wordpress-asks-connection-info/ và nhận xét của nó đã giúp tôi đạt được kết luận này.

Từ trang web:

Run

sudo su chown -R apache:apache /vol/html 

tôi sau đó thiết lập quyền truy cập vào những gì WordPress hướng dẫn cứng khuyến cáo cho rễ html của tôi là tất cả các file WordPress của tôi đang có như tôi đang chạy MultiSite với nhiều tên miền.

find /vol/html/ -type d -exec chmod 755 {} \; 
find /vol/html/ -type f -exec chmod 644 {} \; 

Vì apache không có thông tin đăng nhập, tôi cảm thấy điều này có giá trị rủi ro mặc dù có thể có cách tốt hơn để thực hiện việc này. Sau đó tôi được EC2 người dùng vào nhóm apache và thay đổi các điều khoản của thư mục wp-content có nhóm quyền ghi 775.

useradd -G apache ec2-user 
sudo chmod -R 775 /vol/html/wp-content 

này cho phép FileZilla hoặc bất kỳ chương trình nào khác đăng nhập như EC2 người dùng khả năng chỉ thay đổi các tệp và thư mục trong thư mục wp-content. Nếu có ai có cách làm tốt hơn thì tôi muốn biết. Tôi chỉ sử dụng SSH và SFTP để truy cập máy chủ bằng các tệp chính.

0

Tôi đã xem câu hỏi này để tìm câu trả lời. Tôi đặt tất cả quyền sở hữu và quyền sở hữu nhóm cho Apache. Tuy nhiên, nếu tôi muốn tải lên một cái gì đó ftp tôi phải ssh thay đổi quyền để người dùng ec2 tải lên các tập tin và thay đổi nó trở lại. Tôi nghĩ rằng đó là một mức giá nhỏ để trả tiền để có quyền được đặt cho các cài đặt được đề xuất của WordPress.

2

Tôi đặt chủ sở hữu thành người dùng ec2: apache, sau đó thực hiện việc làm cứng, sau đó điều chỉnh quyền đọc + ghi cho các thư mục.

sudo chown -R ec2-user:apache /vol/html 
sudo chmod -R 755 /vol/html 

sudo find /vol/html/ -type d -exec chmod 755 {} \; 
sudo find /vol/html/ -type f -exec chmod 644 {} \; 

sudo chgrp -R apache /vol/html 
sudo chmod -R g+rw /vol/html 
sudo chmod -R g+s /vol/html 

Sau đó chỉnh sửa /wordpress-install/wp-config.php và xác định các fs_method

define('FS_METHOD', 'direct'); 

Bây giờ wordpress có thể cập nhật/upload, vv Và bạn vẫn có thể file SFTP mà không thay đổi các điều khoản mỗi thời gian.

1

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hosting-wordpress.html

Để khắc phục điều khoản tập tin cho máy chủ web Apache

Một số tính năng có sẵn trong WordPress yêu cầu ghi vào gốc tài liệu Apache (như phương tiện truyền thông tải lên dù màn hình Quản trị). Máy chủ web chạy với tư cách người dùng apache, do đó, bạn cần phải thêm người dùng đó vào nhóm www đã được tạo trong hướng dẫn máy chủ web LAMP.

Thêm người dùng apache vào nhóm www.

[ec2-user wordpress] $ sudo usermod -a -G www apache Thay đổi tệp quyền sở hữu/var/www và nội dung của nó cho người dùng apache.

[ec2-user wordpress] $ sudo chown -R apache/var/www Thay đổi nhóm quyền sở hữu/var/www và nội dung của nó thành nhóm www.

[ec2-user wordpress] $ sudo chgrp -R www/var/www Thay đổi thư mục quyền của/var/www và thư mục con của nó để thêm nhóm viết quyền và đặt ID nhóm trên thư mục con tương lai.

[ec2-user wordpress] $ sudo chmod 2775/var/www [ec2-user wordpress] $ tìm/var/www-type d -exec sudo chmod 2775 {} \; Đệ quy thay đổi quyền của tệp/var/www và các thư mục con của nó để thêm nhóm quyền ghi.

[ec2-user wordpress] $ find/var/www-type f -exec sudo chmod 0664 {} \; Khởi động lại máy chủ web Apache để chọn nhóm mới và các quyền .

[EC2 người dùng wordpress] $ sudo dịch vụ httpd restart Dừng httpd:
[OK] Bắt đầu từ httpd: [ OK]

0

Tôi đã thử các giải pháp cung cấp trong answer by @markratledge ví dụ AWS EC2 của tôi (Amazon Linux).

Wordpress (apache) là tốt, nhưng SFTP (người dùng ec2) đã cho phép lỗi.

Sau đó, tôi thử như sau:

tôi thêm EC2 người dùng vào nhóm apache:

usermod -a -G apache ec2-user 

Tiếp theo tôi đặt 'apache' như nhóm chủ sở hữu và 'EC2 người dùng' như người dùng chủ sở hữu thư mục cài đặt WordPress (/ var/www/html trong trường hợp của tôi):

chown -R apache:ec2-user /var/www/html 

Cuối cùng, WordPress rất vui và tôi cũng có thể SFTP. Cảm ơn!

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