Skip to main content

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

Chào mừng các bạn!
Vậy là các bạn đã vượt qua tất cả các thử thách cài đặt ở những phần trước bao gồm tạo dựng các thành phần Cherokee, PHP, MySQL, SSL KEY,... cho máy chủ. Ở bài cuối cùng này trong Serie mình sẽ hướng dẫn các bạn cấu hình sử dụng thực tế các thành phần trên kết hợp lại với nhau để có một mô hình hoàn hảo chạy được website cho bạn.

Cấu hình Cherokee chạy HTTP port 80:

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

Đầu tiên là port 80 của Cherokee, giả sử mình cần add domain tên your-domain.gq chạy HTTP ở port là 80

domain='your-domain.gq'
ip='0.0.0.0'
port='80'

Bạn chú ý thay thế port hoặc tên domain thích hợp của bạn vào để có hệ thống như ý với bạn nhất.
Sau đó bạn tạo thư mục để chứa Website your-domain.gq của bạn. Gồm các vị trí:

useradd your-domain.gq
echo 'your-domain.gq:123456' | chpasswd
mkdir -p /home/your-domain.gq/public_html
mkdir -p /home/your-domain.gq/tmp
mkdir -p /home/your-domain.gq/cgi-bin
mkdir -p /home/your-domain.gq/ssl

Trong đó:
123456 là mật khẩu user your-domain.gq có thể dùng để login SSH hoặc SFTP
public_html là nơi chứa source web (chút sẽ tải source PHP của web lên đây).
tmp là nơi chứa file tạm của Website khi cần ghi file tạm
ssl là nơi chứa các chứng chỉ SSL khi cần

Bạn phân quyền lại các thư mục này cho hợp lý:

chown -R your-domain.gq:your-domain.gq /home/your-domain.gq
chmod -R 751 /home/your-domain.gq
chmod -R 771 /home/your-domain.gq/tmp
chmod -R 700 /home/your-domain.gq/ssl

Vậy là xong vấn đề nơi chứa Website. Tiếp theo ta khai báo với Cherokee về những vị trí trên và tên domain mong muốn Cherokee lắng nghe:

domain='your-domain.gq'
ip='0.0.0.0'
port='80'

Bạn login vào trong cherokee-admin bằng password của admin:

[[email protected] ~]# cherokee-admin -b 0.0.0.0

Cherokee Web Server 1.2.104 (Jul  4 2016): Listening on port 0.0.0.0:9090, TLS
disabled, IPv6 enabled, using epoll, 4096 fds system limit, max. 2041
connections, caching I/O, single thread

Login:
  User:              admin
  One-time Password: 6ii7CMREKKJmFqdw

Web Interface:
  URL:               http://0.0.0.0:9090/

Vào Tab Sources để khai báo thêm bộ phận xử lý PHP ở PHP-FPM:

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

Vào Tab vServers để khai báo thêm Website sử dụng thư mục và phận xử lý PHP đã khai báo ở trên, (hiện đã có sẳn cái vHost Default ở đây) việc tạo vHost cũng giống như LiteSpeed tất nhiên ta sẽ tạo theo mẫu soạn sẳn của Cherokee dành cho chạy code PHP:

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

Tiếp theo ta bắt đầu Edit lại cái vHost này, đầu tiên là thêm alias subdomain www.your-domain.gq chẳng hạn:

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

Sửa lại thông tin cho vHost hướng đến bộ phận xử lý PHP ở php-fpm://127.0.0.1:9002 của PHP-FPM:

your-domain.gq có nghĩa là đánh dấu cho Cherokee nhận thấy cứ hễ là khi có khách truy vấn đến your-domain.gq mà có yêu cầu tài nguyên *.php file) thì chuyển phần xử lý đó đến 127.0.0.1:9002 cho PHP-FPM xử lý cho. Tất nhiên lúc này PHP-FPM vẫn chưa lắng nghe port 9002 ấy, trong phần tiếp theo sau dưới đây mình sẽ hướng dẫn bạn làm việc đó.

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

Save lại và Restart Cherokee như bước 17 trong hình trên là xong.

Cấu hình PHP-FPM chạy port 9002:

Bạn tạo thêm 1 file cấu hình .conf tại vị trí /etc/php-fpm.d PHP Server sẽ tự nhận cấu hình và thiết lập lắng nghe cho bạn tại port tương ứng đó của bạn trong từng trang web:

nano /etc/php-fpm.d/your-domain.gq.conf

[your-domain.gq]
listen = 127.0.0.1:9002
listen.allowed_clients = 127.0.0.1

user = your-domain.gq
group = your-domain.gq

pm = dynamic
pm.max_children = 50
pm.start_servers = 3
pm.min_spare_servers = 2
pm.max_spare_servers = 10

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp


listen = 127.0.0.1:9002 có nghĩa là bạn muốn PHP Server phục vụ lắng nghe tại port 9002
user = your-domain.gq có nghĩa là bạn muốn PHP Server chạy dưới port phục vụ 9002 sẽ chạy các mã *.php dưới user có trong hệ thống tên là your-domain.gq (cái user your-domain.gq mà bạn đã tạo và add password 123456 ở phần trên ấy.)

Khởi động lại PHP-FPM để nó load cấu hình vừa tạo:

service php-fpm restart

Kiểm tra lại PHP-FPM có lắng nghe ở port 9002 chưa:

[[email protected] ~]# netstat -lntup|grep php-fpm
tcp        0      0 127.0.0.1:9002          0.0.0.0:*               LISTEN      3471/php-fpm: maste
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      3471/php-fpm: maste
tcp        0      0 127.0.0.1:9001          0.0.0.0:*               LISTEN      3471/php-fpm: maste

Bạn phải nhớ với mỗi trang web độc lập mà bạn muốn add thì nên chạy dưới 1 port khác nhau kèm 1 user khác nhau. Ví dụ port 9002, 9003... user your-domain.gq, your-domain.ga... để chúng có khả năng biệt lặp với nhau, nếu bạn dùng chung hết cả đám với nhau dưới 1 port thì cũng được, nó sẽ tối ưu về mặt tốc độ tuy nhiên sẽ rất dễ bị local attack từ site này qua site kia nếu chỉ 1 site có lỗ hổng bảo mật các site còn lại cũng sẽ bị chiếm quyền điều khiến. Bạn có thể xem bài ở đây về tấn công local attack.

Cấu hình Cherokee chạy HTTPS port 443:

Vì mình có nhu cầu sử dụng HTTPS cho web nên sẽ cấu hình Cherokee lắng nghe thêm port 443 sử dụng SSL mà mình xin được từ Let’s Encrypt. Do trong bài cài đặt cấu hình Cherokee trước chúng ta đã bật port 443 và SSL trên port ấy nên trong phần này chúng ta chỉ còn nhiệm vụ vào từng vHost và add thêm KEY SSL vào cho nó sử dụng.

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

/etc/letsencrypt/live/your-domain.gq/*.pem là file chứng chỉ mình đã xin được của Let’s Encrypt ở một máy chủ khác tải lên, nếu bạn dùng chứng chỉ tự mua hay tự tạo cũng có thể add vào tương tự như thế.

Bạn chú ý phải add KEY SSL cho cả cái vHost Default, sau đó Save và khởi động lại Cherokee để nó load cấu hình vừa tạo.

Kiểm tra lại xem tiến trình Cherokee đã lắng nghe ở các port 80-443 tương ứng chưa:

[[email protected] ~]# netstat -lntup|grep cherokee

tcp        0      0 0.0.0.0:9090            0.0.0.0:*               LISTEN      2410/cherokee-admin
tcp6       0      0 :::80                   :::*                    LISTEN      2466/cherokee-worke
tcp6       0      0 :::443                  :::*                    LISTEN      2466/cherokee-worke

Bây giờ thì Web Server đã tương đối hoàn thành, bạn đã có thể tải một số file php lên để test mà mình đã soạn sẳn cho bạn, bây giờ bạn chỉ cần get chúng về dùng để kiếm tra:

wget http://1.voduy.com/c/www/index1.html.txt -O /home/your-domain.gq/public_html/index.html
wget http://1.voduy.com/c/www/info.php.txt -O /home/your-domain.gq/public_html/info.php
wget http://1.voduy.com/c/www/who.php.txt -O /home/your-domain.gq/public_html/who.php
chown -R your-domain.gq:your-domain.gq /home/your-domain.gq/public_html/
chmod -R 755 /home/your-domain.gq/public_html/

Kiểm tra các file đó bằng cách vào link:
http://your-domain.gq:80
http://your-domain.gq/info.php
http://your-domain.gq/who.php
Sẽ thấy:
+Web Server auto nhận file index.

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

+PHP Server thông tin thể hiện qua file info.php

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

+Tiến trình PHP được chạy dưới user tên gì thể hiện qua file who.php

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

Nếu bạn không vào được các link trên rất có thể do tường lửa hãy kiểm tra lại nhé!

Tiếp tục kiểm tra với phần HTTPS, kiểm tra link thấy SSL trên trình duyệt xanh:
https://your-domain.gq:443/info.php

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

Nếu không xanh là máy chủ bạn hoặc do đang dùng chứng chỉ tự chứng hoặc có vấn đề về chứng thực chính xác domain. Ví dụ bạn xin Let’s Encrypt chứng cho domain A.com nhưng lại add vào site B.com thì không được hoặc là chứng chỉ đã quá hạn 90 ngày.

Về vấn đề vào phpMyAdmin bạn có thể sử dụng thủ thuật tạo đường dẫn đến /usr/share/phpMyAdmin, như vậy là bạn có thể truy cập http://ten-website/phpmyadmin thoải mái:

ln -s /usr/share/phpMyAdmin /home/your-domain.gq/public_html/phpmyadmin

Vậy là xong phần kiểm tra sơ bộ khối mô hình LCMP đã thành lập. Tiếp theo mình sẽ thử chạy một code PHP nào đó trên mô hình này xem nó có chạy được hay không. (Bạn nhớ xóa đi các file test trên nhé)

Cấu hình Web chạy:

Trong phần cấu hình một website chạy thực tế trên mô hình LCMP này mình sẽ sử dụng WordPress gốc bản mới nhất hiện tại để testing hệ thống.

Upload Source Web:

Bạn có thể tải WordPress tại đây. Là một file .zip bạn hãy tải về giải nén ra và sửa lại theo mong muốn của bạn. Mình thì chỉ cần thay đổi thư mục cho Source này, mặc định WordPress giải nén ra toàn nằm trong thư mục wordpress nên mình sẽ tạo lại 1 file zip khác có source web nằm ngoài thư mục wordpress luôn.

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

Sau khi tạo xong file .zip bạn có thể upload lên vị trí đường dẫn đã nói lúc nãy là
/home/your-domain.gq/public_html. Bạn có thể upload qua SFTP có trên Bitvise hoặc nếu dùng Putty thì bạn cài FileZilla vào để có thể dùng SFTP mà upload file .zip

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

Nếu dùng FileZilla thì bạn vào với host là sftp://IP-Của-Máy-Chủ Port 22 (User Pass bạn đã đặt, của mình là your-domain.gq|123456):

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

Upload vào đó sau đó giải nén bằng câu lệnh unzip:

cd /home/your-domain.gq/public_html
unzip *.zip

Kiểm tra lại sau giải nén:

[[email protected] public_html]$ ls -lah
total 8.3M
drwxr-xr-x  5 your-domain.gq your-domain.gq 4.0K Nov 18 09:45 .
drwxr-x--x  6 your-domain.gq your-domain.gq  111 Nov 18  2016 ..
-rwxr-xr-x  1 your-domain.gq your-domain.gq  400 Sep 13 10:24 index.html
-rw-rw-r--  1 your-domain.gq your-domain.gq  418 Sep 25  2013 index.php
-rwxr-xr-x  1 your-domain.gq your-domain.gq   20 May  8  2014 info.php
-rw-rw-r--  1 your-domain.gq your-domain.gq  20K Mar  6  2016 license.txt
-rw-rw-r--  1 your-domain.gq your-domain.gq 7.2K Aug 17 03:39 readme.html
-rwxr-xr-x  1 your-domain.gq your-domain.gq  144 May 17  2016 who.php
-rw-r--r--  1 your-domain.gq your-domain.gq 8.1M Nov 18 09:41 wordpress.zip
-rw-rw-r--  1 your-domain.gq your-domain.gq 5.4K May 25 04:02 wp-activate.php
drwxrwxr-x  9 your-domain.gq your-domain.gq 4.0K Sep  7 21:58 wp-admin
-rw-rw-r--  1 your-domain.gq your-domain.gq  364 Dec 19  2015 wp-blog-header.php
-rw-rw-r--  1 your-domain.gq your-domain.gq 1.5K May 23 23:44 wp-comments-post.php
-rw-rw-r--  1 your-domain.gq your-domain.gq 2.8K Dec 16  2015 wp-config-sample.php
drwxrwxr-x  4 your-domain.gq your-domain.gq   49 Sep  7 21:59 wp-content
-rw-rw-r--  1 your-domain.gq your-domain.gq 3.3K May 25  2015 wp-cron.php
drwxrwxr-x 17 your-domain.gq your-domain.gq 8.0K Sep  7 21:59 wp-includes
-rw-rw-r--  1 your-domain.gq your-domain.gq 2.4K May 23 23:44 wp-links-opml.php
-rw-rw-r--  1 your-domain.gq your-domain.gq 3.3K Apr 15  2016 wp-load.php
-rw-rw-r--  1 your-domain.gq your-domain.gq  34K Jun 15 04:51 wp-login.php
-rw-rw-r--  1 your-domain.gq your-domain.gq 7.7K Jul 13 19:37 wp-mail.php
-rw-rw-r--  1 your-domain.gq your-domain.gq  14K Aug 13 23:02 wp-settings.php
-rw-rw-r--  1 your-domain.gq your-domain.gq  30K May 25 03:44 wp-signup.php
-rw-rw-r--  1 your-domain.gq your-domain.gq 4.0K Dec  1  2014 wp-trackback.php
-rw-rw-r--  1 your-domain.gq your-domain.gq 3.0K Jul  6 19:40 xmlrpc.php

Như phân quyền sỡ hữu bên trên thì đã đúng your-domain.gq your-domain.gq tức là user sở hữu là your-domain.gq group sở hữu là your-domain.gq. Nếu ở đây bạn thấy user khác, ví dụ root chẳng hạn thì nó sai rồi. Bạn cần phân quyền lại bằng hai câu lệnh chownchmod:

chmod -R 755 /home/your-domain.gq/public_html
chown -R your-domain.gq:your-domain.gq /home/your-domain.gq/public_html

Kiểm tra lại quyền:

[[email protected] ~]# ls -lah /home/your-domain.gq/public_html
total 8.3M
drwxr-xr-x  5 your-domain.gq your-domain.gq 4.0K Nov 18 09:45 .
drwxr-x--x  6 your-domain.gq your-domain.gq  131 Nov 18 09:50 ..
-rwxr-xr-x  1 your-domain.gq your-domain.gq  400 Sep 13 10:24 index.html
-rwxr-xr-x  1 your-domain.gq your-domain.gq  418 Sep 25  2013 index.php
-rwxr-xr-x  1 your-domain.gq your-domain.gq   20 May  8  2014 info.php
-rwxr-xr-x  1 your-domain.gq your-domain.gq  20K Mar  6  2016 license.txt
-rwxr-xr-x  1 your-domain.gq your-domain.gq 7.2K Aug 17 03:39 readme.html
-rwxr-xr-x  1 your-domain.gq your-domain.gq  144 May 17  2016 who.php
-rwxr-xr-x  1 your-domain.gq your-domain.gq 8.1M Nov 18 09:41 wordpress.zip
-rwxr-xr-x  1 your-domain.gq your-domain.gq 5.4K May 25 04:02 wp-activate.php
drwxr-xr-x  9 your-domain.gq your-domain.gq 4.0K Sep  7 21:58 wp-admin
-rwxr-xr-x  1 your-domain.gq your-domain.gq  364 Dec 19  2015 wp-blog-header.php
-rwxr-xr-x  1 your-domain.gq your-domain.gq 1.5K May 23 23:44 wp-comments-post.php
-rwxr-xr-x  1 your-domain.gq your-domain.gq 2.8K Dec 16  2015 wp-config-sample.php
drwxr-xr-x  4 your-domain.gq your-domain.gq   49 Sep  7 21:59 wp-content
-rwxr-xr-x  1 your-domain.gq your-domain.gq 3.3K May 25  2015 wp-cron.php
drwxr-xr-x 17 your-domain.gq your-domain.gq 8.0K Sep  7 21:59 wp-includes
-rwxr-xr-x  1 your-domain.gq your-domain.gq 2.4K May 23 23:44 wp-links-opml.php
-rwxr-xr-x  1 your-domain.gq your-domain.gq 3.3K Apr 15  2016 wp-load.php
-rwxr-xr-x  1 your-domain.gq your-domain.gq  34K Jun 15 04:51 wp-login.php
-rwxr-xr-x  1 your-domain.gq your-domain.gq 7.7K Jul 13 19:37 wp-mail.php
-rwxr-xr-x  1 your-domain.gq your-domain.gq  14K Aug 13 23:02 wp-settings.php
-rwxr-xr-x  1 your-domain.gq your-domain.gq  30K May 25 03:44 wp-signup.php
-rwxr-xr-x  1 your-domain.gq your-domain.gq 4.0K Dec  1  2014 wp-trackback.php
-rwxr-xr-x  1 your-domain.gq your-domain.gq 3.0K Jul  6 19:40 xmlrpc.php

Vậy là xong phần Upload Source Web lên máy chủ, bạn nhớ xóa đi file .zip mà bạn đã upload lên cùng với những file test ví dụ index.html, info.php, who.php...

Upload Database:

Web thông thường có 2 phần phải upload, đó là Source Web như đã trình bày ở trên và phần nữa là file .sql (file database của web). Với việc upload database bạn có thể vào link phpMyAdmin và tạo database + user database sau đó import file .sql vào:

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

Cách tạo database như sau:
Vào link https://your-domain.gq/phpmyadmin
Username Password là user root mysql bạn đã đặt trong bài cài đặt MySQL MariaDB, của mình là username root password 123456

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

Bấm vào tab Database bạn tạo 1 database mới tên là wordpress:

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

Trong database wordpress mới tạo tại tab Privileges bạn thêm user quản lý database wordpress này:

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

User name: wordpress (đặt tên user này là wordpress)
Host name: localhost (cái này là quy định user này được truy xuất từ localhost hay đâu?)
Generate password: Jx7pt89KBK1CczKZ (mình random ngẫu nhiên ra một mật khẩu mạnh cho user này)

Sau đó bạn kéo xuống và nhấn Go luôn là xong phần add user quản lý database:

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

Nếu bạn muốn import file .sql ngay bây giờ thì bấm vào tab Import và upload file .sql của bạn lên:

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

Tuy nhiên vì đây là WordPress cài mới hoàn toàn nên chẳng có file .sql nào đi kèm cả. WordPress nó chỉ cần bạn khai báo cho nó thông tin database mình mới tạo mà thôi, không cần import gì hết, chút WordPress code nó sẽ tự import sau khi mình cho nó thông tin.

Mình vào link trang chủ để cài đặt WordPress:

https://your-domain.gq

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

Bạn điền đúng y như thông tin database mà bạn đã tạo trong phpMyAdmin:

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

Cấu hình cơ bản cho WordPress:

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

Vậy là Website đã chạy được:

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

Cấu hình nâng cao gì thêm cho WordPress (cache, captcha, URL Rewrite…) dùng Cherokee LLMP các bạn tìm hiểu ở bài này nhé!

[LCMP – 5] Cài đặt Web Server Cherokee trên Red Hat CentOS 5 – Tổng chạy hệ thống

Vậy là bạn đã hoàn thành cài đặt cấu hình hệ thống LCMP thành công, việc chạy code WordPress thì tương đối đơn giản tuy nhiên sau khi cài thêm các thành phần lên cao hơn nữa bạn sẽ dễ bị mắc lỗi 404Cherokee nó không như Apache mà hiểu được các Rewrite của Apache, việc tương tự cũng sẽ xảy ra cho một số code PHP khác chứ không riêng gì WordPress. Vậy nên muốn xài Mô hình này thì bạn phải tìm hiểu kỹ cách cấu hình code của bạn hợp lý với cấu hình của Cherokee nhất, quan trọng là ta có biết cấu hình hay không thôi chứ không phải Cherokee không có hỗ trợ code của chúng ta.
Trong Serie này bạn chỉ thực hành qua các cấu hình một cách nhanh chóng bằng những cấu hình đã được soạn sẳn từ trước, nếu có nhu cầu muốn tìm hiểu kỹ hơn ý nghĩa của những đoạn cấu hình cụ thể nào đó bạn hãy đến với các bài tìm hiểu sâu hơn giải thích kỹ hơn về những thành phần này trong loạt bài nghiên cứu về Cherokee, Nginx, Apache, PHP, MySQL,…

Chào tạm biệt bạn, hẹn gặp lại bạn ở một Serie khác!

Cám ơn bạn đã đọc hết bài viết, hãy bấm chia sẻ lên mạng xã hội để nhớ rằng bạn đã từng nắm được kiến thức do bài viết này cung cấp rồi:
Share

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Share