Cách cài đặt WordPress với Nginx trên Ubuntu 14.04
WordPress là CMS (hệ thống quản lý nội dung) phổ biến nhất trên thế giới. Nó cho phép bạn dễ dàng cài đặt và chạy trang web hoặc blog của bạn . Sau khi cài đặt, bạn có thể quản lý hầu hết mọi thứ trong một giao diện web dễ dàng.Trong hướng dẫn này, ta sẽ giới thiệu cho các bạn cách cài đặt WordPress trên server Ubuntu 14.04. Đối với thành phần web server , ta sẽ sử dụng nginx , một web server mạnh mẽ và hiệu quả đã được chấp nhận rộng rãi do khả năng hoạt động của nó.
Yêu cầu
Trước khi bạn bắt đầu với hướng dẫn này, có một số thủ tục mà bạn nên thực hiện.
Đầu tiên, bạn cần một user không phải root với các quyền sudo. Bạn có thể chạy qua các bước 1-4 trong hướng dẫn cài đặt server ban đầu Ubuntu 14.04 để tạo account này.
Bạn cũng cần một LEMP (hệ điều hành Linux, web server Nginx, database MySQL và PHP processor ) được cài đặt và cấu hình trên server của bạn. Bạn có thể tìm hiểu cách cài đặt và cài đặt các thành phần cần thiết theo hướng dẫn của ta về cài đặt LEMP trên Ubuntu 14.04 tại đây.
Khi bạn đã hoàn thành các bước trên, bạn có thể tiếp tục.
Bước một - Tạo Database MySQL và User cho WordPress
Điều đầu tiên mà ta cần làm để bắt đầu với WordPress là chuẩn bị database của bạn .
Ta đã cài đặt phần mềm database MySQL, nhưng ta chưa tạo database cho thông tin WordPress của bạn . Ta cũng cần tạo một account mà WordPress có thể sử dụng để truy cập vào database mà ta sẽ tạo.
Ta nên bắt đầu bằng cách đăng nhập vào một phiên tương tác bằng account quản trị MySQL của bạn như sau:
mysql -u root -p
Bạn sẽ được yêu cầu nhập password mà bạn đã chọn cho account root MySQL khi cài đặt . Bạn sẽ nhận được một dấu nhắc lệnh MySQL.
Bây giờ, ta có thể tạo một database riêng biệt sẽ được ứng dụng WordPress của ta sử dụng riêng. Cái tên không quan trọng nhưng có lẽ nó nên mang tính mô tả để bạn dễ dàng nhận ra. Trong hướng dẫn này, ta sẽ gọi database của ta là wordpress
:
<pre>
TẠO CƠ SỞ DỮ LIỆU <span class = “highlight”> wordpress </span>;
</pre>
Lưu ý dấu chấm phẩy (;) kết thúc câu lệnh MySQL. Mỗi câu lệnh MySQL phải kết thúc bằng một câu lệnh, vì vậy hãy kiểm tra kỹ xem bạn có đang gặp sự cố hay không.
Ta hiện có một database , vì vậy ta đã sẵn sàng để tạo một account user . Sau đó, ta sẽ giao quyền kiểm soát database cho user mới này để ứng dụng của ta có thể tương tác với database . Hệ thống tạo database và user riêng biệt cho từng ứng dụng này giúp giữ cho dữ liệu của ta tách biệt với dữ liệu khác đang được lưu trữ bằng MySQL, rất tốt cho việc bảo mật và quản lý dữ liệu.
Đối với hướng dẫn này, ta sẽ chọn wordpressuser
cho tên account của ta . Ta sẽ gán cho nó một mật password
để xác thực. Khi bạn đang cài đặt cấu hình của riêng mình, bạn nên chọn một password an toàn hơn:
<pre>
TẠO NGƯỜI DÙNG <span class = “highlight”> wordpressuser </span> @localhost ĐƯỢC XÁC NHẬN BỞI '<span class = “highlight”> password </span>';
</pre>
Bây giờ, ta có một database và một user , nhưng ta chưa cài đặt mối quan hệ giữa hai người. Ta cần nói với MySQL rằng user mới của ta có thể truy cập và kiểm soát database . Bạn có thể làm điều đó với lệnh này:
<pre>
CẤP TẤT CẢ CÁC QUYỀN RIÊNG TƯ TRÊN <span class = “highlight”> wordpress </span>. * ĐẾN <span class = “highlight”> wordpressuser </span> @localhost;
</pre>
Mọi thứ nên được cấu hình chính xác ngay bây giờ. Ta cần xóa các quyền vào đĩa để version MySQL hiện tại của ta biết về những thay đổi quyền mà ta đã thực hiện:
FLUSH PRIVILEGES;
Bây giờ, hãy thoát khỏi dấu nhắc MySQL:
exit
Bây giờ ta đã trở lại dấu nhắc lệnh của bạn , sẵn sàng để tiếp tục.
Bước hai - Tải WordPress xuống Server của bạn
Tiếp theo, ta cần tải nội dung WordPress thực tế xuống server của bạn . Điều này có sẵn trên trang web WordPress .
Phiên bản ổn định mới nhất của ứng dụng luôn được cung cấp cùng một URL, điều này làm cho phần này trở nên dễ dàng. Ta muốn tải file xuống folder chính của user :
cd ~ wget http://wordpress.org/latest.tar.gz
Các file ứng dụng của ta đã được download dưới dạng cấu trúc folder nén, lưu trữ được lưu trữ trong file có tên là latest.tar.gz
Ta có thể extract nội dung bằng lệnh :
tar xzvf latest.tar.gz
Thao tác này sẽ tạo một folder có tên là wordpress
chứa các file trang web.
Ta nên tận dụng cơ hội này để download một số thành phần bổ sung mà version WordPress của ta cần . Ta có thể lấy những thứ này trực tiếp từ repository của Ubuntu bằng cách sử dụng apt
:
sudo apt-get update sudo apt-get install php5-gd libssh2-php
Hai gói này cho phép bạn làm việc với hình ảnh và cài đặt / cập nhật các plugin và thành phần tương ứng bằng SSH.
Bước 3 - Cấu hình WordPress
Bây giờ ta có các file , vì vậy ta có thể bắt đầu cấu hình version WordPress của bạn .
Ta cần sửa đổi file cấu hình chính nằm trong folder mới của ta . Di chuyển vào folder mà bạn đã extract trong phần cuối cùng:
cd ~/wordpress
Bên trong folder này, ta có một file cấu hình mẫu có tên là wp-config-sample.php
. Điều này có hầu hết các chi tiết cấu hình chính xác, vì vậy ta có thể sao chép nó để sử dụng làm cơ sở cho file cấu hình của ta :
cp wp-config-sample.php wp-config.php
Khi ta mở file , trình tự kinh doanh đầu tiên của ta sẽ là điều chỉnh một số khóa bí mật để cung cấp một số bảo mật cho cài đặt của ta . WordPress cung cấp một trình tạo an toàn cho các giá trị này để bạn không phải cố gắng tự mình đưa ra các giá trị tốt. Chúng chỉ được sử dụng trong nội bộ, vì vậy sẽ không ảnh hưởng đến khả năng sử dụng khi có các giá trị phức tạp, an toàn ở đây.
Để lấy các giá trị bảo mật từ trình tạo khóa bí mật của WordPress, hãy nhập:
- curl -s https://api.wordpress.org/secret-key/1.1/salt/
Bạn sẽ nhận lại các giá trị duy nhất trông giống như sau:
Outputdefine('AUTH_KEY', '1jl/vqfs<XhdXoAPz9 DO NOT COPY THESE VALUES c_j{iwqD^<+c9.k<J@4H'); define('SECURE_AUTH_KEY', 'E2N-h2]Dcvp+aS/p7X DO NOT COPY THESE VALUES {Ka(f;rv?Pxf})CgLi-3'); define('LOGGED_IN_KEY', 'W(50,{W^,OPB%PB<JF DO NOT COPY THESE VALUES 2;y&,2m%3]R6DUth[;88'); define('NONCE_KEY', 'll,4UC)7ua+8<!4VM+ DO NOT COPY THESE VALUES #`DXF+[$atzM7 o^-C7g'); define('AUTH_SALT', 'koMrurzOA+|L_lG}kf DO NOT COPY THESE VALUES 07VC*Lj*lD&?3w!BT#-'); define('SECURE_AUTH_SALT', 'p32*p,]z%LZ+pAu:VY DO NOT COPY THESE VALUES C-?y+K0DK_+F|0h{!_xY'); define('LOGGED_IN_SALT', 'i^/G2W7!-1H2OQ+t$3 DO NOT COPY THESE VALUES t6**bRVFSD[Hi])-qS`|'); define('NONCE_SALT', 'Q6]U:K?j4L%Z]}h^q7 DO NOT COPY THESE VALUES 1% ^qUswWgn+6&xqHN&%');
Đây là những dòng cấu hình mà ta có thể dán trực tiếp vào file cấu hình của bạn để đặt khóa an toàn. Sao chép kết quả bạn nhận được bây giờ.
Bây giờ, hãy mở file cấu hình WordPress:
nano wp-config.php
Tìm phần chứa các giá trị giả cho các cài đặt đó. Nó trông giống như sau :
. . . define('AUTH_KEY', 'put your unique phrase here'); define('SECURE_AUTH_KEY', 'put your unique phrase here'); define('LOGGED_IN_KEY', 'put your unique phrase here'); define('NONCE_KEY', 'put your unique phrase here'); define('AUTH_SALT', 'put your unique phrase here'); define('SECURE_AUTH_SALT', 'put your unique phrase here'); define('LOGGED_IN_SALT', 'put your unique phrase here'); define('NONCE_SALT', 'put your unique phrase here'); . . .
Xóa các dòng đó và dán các giá trị bạn đã sao chép từ dòng lệnh:
. . . define('AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('SECURE_AUTH_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('LOGGED_IN_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('NONCE_KEY', 'VALUES COPIED FROM THE COMMAND LINE'); define('AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('SECURE_AUTH_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('LOGGED_IN_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); define('NONCE_SALT', 'VALUES COPIED FROM THE COMMAND LINE'); . . .
Tệp hiện phù hợp với nhu cầu của ta ; nó chỉ là thiếu thông tin để kết nối với database mà ta đã tạo. Các tham số ta cần đặt là DB_NAME
, DB_USER
và DB_PASSWORD
.
Ta có thể tìm thấy các tham số này trong file này và cài đặt chúng để sử dụng database và chi tiết user mà ta đã tạo. Tệp của tôi trông như thế này:
<pre>
…
// ** Cài đặt MySQL - Bạn có thể lấy thông tin này từ web server của bạn ** //
/ ** Tên của database cho WordPress * /
xác định ('DB_NAME', '<span class = "highlight"> wordpress </span>');
/ ** Tên user database MySQL * /
xác định ('DB_USER', '<span class = "highlight"> wordpressuser </span>');
/ ** Mật khẩu database MySQL * /
xác định ('DB_PASSWORD', '<span class = "highlight"> password </span>');
…
</pre>
Khi bạn đã áp dụng các thay đổi ở trên, hãy lưu file .
Bước 4 - Sao chép file vào root tài liệu
Ta có những thay đổi đối với các file cấu hình của ta . Bước tiếp theo là sao chép chúng vào root tài liệu của ta để web server của ta có thể tìm và phục vụ chúng.
Ta sẽ sử dụng trình rsync
để thực hiện chuyển. Điều này có lợi thế là bảo toàn quyền, quyền sở hữu và đảm bảo tính toàn vẹn của dữ liệu.
Vị trí của root tài liệu mặc định của nginx trên Ubuntu 14.04 là /usr/share/nginx/html/
.
Tuy nhiên, ta sẽ cài đặt tài liệu root của ta trong /var/www/html/
để tránh sửa đổi vị trí folder được kiểm soát bởi gói nginx. Ta sẽ thay đổi điều này trong cấu hình nginx của ta sau một chút.
Ta có thể tạo folder root của tài liệu mới bằng lệnh :
sudo mkdir -p /var/www/html
Bây giờ, ta có thể sao chép các file vào vị trí này bằng lệnh :
sudo rsync -avP ~/wordpress/ /var/www/html/
Thao tác này sẽ sao chép đệ quy nội dung của folder ~/wordpress
vào folder root tài liệu của ta .
Tiếp theo, hãy chuyển sang folder root để có thể điều chỉnh một số quyền:
cd /var/www/html/
Vấn đề với cấu trúc folder như hiện tại là tất cả các file của ta đều có quyền sở hữu user và group được gán cho regular user của ta . Điều này là tốt, ngoại trừ việc web server của ta cần có khả năng sửa đổi các folder và file nhất định.
Ta có thể cấp quyền này mà không để lộ quá nhiều hệ thống của bạn bằng cách cấp cho group mà web server của ta chạy dưới quyền sở hữu group đối với các file . Sau đó, ta có thể mở quyền group một chút nếu cần.
Group mà nginx điều hành là www-data
. Đối với phần user , hãy nhập tên account user của bạn. Ta sẽ chứng minh bằng một account có tên demo
tại đây:
<pre>
sudo chown -R <span class = “highlight”> demo </span>: www-data / var / www / html / *
</pre>
Điều này sẽ cung cấp cho các file của ta quyền sở hữu cần thiết.
Trước khi tiếp tục, ta nên tạo một folder mới để tải lên của user :
mkdir wp-content/uploads
Thư mục mới phải có bộ ghi group , nhưng folder mới chưa được gán quyền sở hữu group www-data
. Hãy khắc phục điều đó:
sudo chown -R :www-data /var/www/html/wp-content/uploads
Bước 5 - Sửa đổi khối server Nginx
Ta đã cấu hình các file và folder của bạn . Bây giờ ta cần sửa đổi cấu hình nginx của bạn để phân phát nội dung một cách chính xác.
Ta có thể sử dụng khối server nginx mặc định làm cơ sở cho khối server mới của bạn . Sao chép nó như thế này:
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/wordpress
Mở file mới mà ta đã thực hiện để ta có thể thực hiện một số thay đổi:
sudo nano /etc/nginx/sites-available/wordpress
Ta sẽ muốn áp dụng các thay đổi sau:
<pre>
người phục vụ {
nghe 80 server mặc định ;
nghe [::]: 80 server mặc định ipv6only = on;
root <span class="highlight">/var/www/html</span>; index <span class="highlight">index.php</span> index.html index.htm; server_name <span class="highlight">your_domain.com</span>; location / { <span class="highlight">#</span> try_files $uri $uri/ =404; try_files $uri $uri/ <span class="highlight">/index.php?q=$uri&$args</span>; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; }
}
</pre>
Tóm tắt các thay đổi mà bạn nên thực hiện là:
- Thay đổi giá trị của chỉ thị
root
để trỏ đến root tài liệu mới của ta tại/var/www/html
. - Sửa đổi tham số
index
để tìm kiếmindex.php
trước các file khác. - Thay đổi giá trị của chỉ thị
server_name
để trỏ đến domain hoặc địa chỉ IP của server của bạn. - Điều chỉnh
try_files
tronglocation /
khối để gửi yêu cầu đến PHP khi chúng không khớp chính xác.
Một số trong số này có thể đã được cài đặt từ cài đặt LEMP của bạn. Khi bạn hoàn tất những thay đổi này, hãy lưu file .
Ta cần liên kết file mới của bạn với folder sites-enabled
để kích hoạt nó. Ta có thể làm như thế này:
sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
Tệp mà ta vừa liên kết xung đột với file mặc định cũ của ta , vì nó đã vay mượn quá nhiều từ nó. Ta cần vô hiệu hóa file cũ:
sudo rm /etc/nginx/sites-enabled/default
Bây giờ, khởi động lại web server và PHP processor để kích hoạt các thay đổi của ta :
sudo service nginx restart sudo service php5-fpm restart
Bước 6 - Hoàn thành cài đặt thông qua giao diện web
Bây giờ, WordPress của ta đã sẵn sàng hoạt động và ta có thể hoàn tất cài đặt thông qua trình duyệt web của bạn .
Trỏ trình duyệt của bạn đến domain hoặc địa chỉ IP của server , như sau:
<pre>
http: // <span class = “highlight”> your_domain.com </span>
</pre>
Nếu điều này hiển thị trang nginx mặc định cũ của bạn, bạn có thể phải làm mới trang mà không có bộ nhớ cache.
Bạn sẽ thấy giai đoạn chào mừng WordPress cơ bản. Chọn các tùy chọn của bạn (Tên trang web, tên user , password và email), sau đó nhấp vào nút “Cài đặt WordPress”:
Bạn sẽ phải đăng nhập bằng account vừa tạo:
Bạn sẽ thấy console WordPress của bạn , nơi bạn có thể bắt đầu tùy chỉnh cài đặt và tạo nội dung của bạn :
Kết luận
Đến đây bạn sẽ có version WordPress của bạn và chạy trên web server nginx trong Ubuntu 14.04. WordPress là một nền tảng khá linh hoạt mà bạn có thể sử dụng để tùy chỉnh trang web của bạn . Thử nghiệm với một số plugin, chủ đề, v.v. khác nhau để tìm ra thứ phù hợp nhất với bạn.
Các tin liên quan
Cách tạo chứng chỉ SSL trên Nginx cho Ubuntu 14.042014-05-09
Cách tạo chứng chỉ SSL trên Nginx cho Ubuntu 14.04
2014-05-09
Cách cài đặt Nginx trên Ubuntu 14.04 LTS
2014-04-29
Cách thiết lập server block Nginx (server ảo) trên Ubuntu 14.04 LTS
2014-04-25
Cách tùy chỉnh tên server Nginx của bạn sau khi biên dịch từ nguồn trong CentOS
2014-02-11
Cách triển khai ứng dụng Rails bằng Passenger với Nginx trên CentOS 6.5
2014-01-29
Cách triển khai ứng dụng Rails bằng Unicorn và Nginx trên CentOS 6.5
2014-01-29
Cách thêm module ngx_pagespeed vào Nginx trong Debian Wheezy
2014-01-15
Cách cấu hình cài đặt trang web WordPress đơn và nhiều trang với Nginx
2013-11-26
Cách triển khai ứng dụng Node.js bằng Systemd và Nginx
2013-11-26