• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

DungNQ

Những gì bạn nhìn thấy chỉ là "bề nổi của tảng băng chìm"

  • Trang chủ
  • Giới thiệu
  • Youtube
  • Liên hệ
Home | GitLab lỗi khi clone với https

GitLab lỗi khi clone với https

GitLab lỗi khi clone với https

October 29, 2015 Leave a Comment

Tự dưng một buổi chiều đẹp trời, vớ phải cái lỗi ẩm ương, làm gián đoạn hết kế hoạch của mình, tìm hiểu một vòng trên mang… các phải pháp tự tựa như nhau, có vẻ cũng khá nhiều người gặp vấn đề này… nhưng chưa có dòng nào copy rồi run mà chạy cả.

DungNQs-MacBook-Pro:www dungnq$ git clone https://git.xxx.com.vn/root/xxx.git

Cloning into ‘xxx’…

fatal: unable to access ‘https://git.xxx.com.vn/root/it-app-fwb-microsite.git/’: SSL peer handshake failed, the server most likely requires a client certificate to connect

Làm việc vào cái lúc chiều, buồn ngủ, không khả dĩ đối với công việc nghiên cứu này lắm… bỏ đấy và đi tìm hiểu một số thứ xung quan vụ SSL. Thử kiểm tra một vài lệnh test với openssl thì thấy cấu hình mặc định của GitLab không chạy ổn

openssl s_client -connect xxx:443 -tls1

Thử vào cấu hình của GitLab

nginx[‘ssl_ciphers’] = “ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256”

…

ci_nginx[‘ssl_ciphers’] = “ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256”

Hoá ra với một số hệ điều hành như MaxOS mã hoá mặc định của GitLab không còn an toàn, nên bản thân hệ điều hành đã bỏ loại bỏ các giải pháp này. Tư duy một chút, đơn giản chỉ cần bổ sung các mã encrypt khác để giúp tương thích với mấy bạn tiên tiến kia.

nginx[‘ssl_ciphers’] = “EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4”

Cấu hình tương tự với ci_nginx, sau đó reconfigure và restart để sử dụng GitLab bình thường.

Một ngày may mắn và thú vị với mình đây 😀

Khắc phục hiện tượng WP-CLI không chạy trong Crontab

April 29, 2015 Leave a Comment

Biết tới WP-CLI khá lâu rồi, nhưng thời gian gần đây mới có thời gian để nghiên cứu sử dụng. Quả thật WordPress quả là một thế giới rộng lớn, một nền tảng có một cộng đồng luôn phát triển của những con người thật tài năng.

Nếu ai nói với bạn rằng… WordPress chỉ là cái blog… nó không phải là một sản phẩm cho doanh nghiệp. Xin nói với bạn rằng… những người đó chỉ vì không biết và không hiểu WordPress đã mang lại điều gì… mà cái gì đã là hời hợt thì xin đừng tin.

Hôm nay khi sử dụng WP-CLI, tự nhiên không hiểu vì sao gõ lệnh ở console thì chạy nhưng đưa vào Crontab thì “im re”… tìm hiểu một hồi, thì may qúa có một gợi ý nho nhỏ. Và đơn giản là thay vì chay lệnh với cấu trúc rút ngắn thì chạy với đường dẫn dầy đủ.

Thay vì

[code]wp export data.sql[/code]

Hãy dùng

[code]/usr/local/bin/wp export data.sql[/code]

Cài đặt Nginx từ source

February 7, 2015 1 Comment

Gần 5 năm bắt đầu biết tới Nginx, tôi vẫn chưa hết những thích thú khám phá từng tính năng, từng module của Nginx để phục vụ tốt hơn cho công việc của mình. Ngoài việc Nginx đã và đang trở thành Web Server được nhiều người yêu thích. những tôi tin chắc rằng với công việc bận rộn của từng cá nhân, có lẽ ít người trong chúng ta có thể khai phá và sử dụng hết tính năng và module sẵn có của Nginx.

Trước khi tìm hiểu sâu hơn, tất nhiên, tất cả cần phải cài được Nginx để sử dụng, nhớ vài năm trước đây việc cài đặt của tôi chỉ đơn giản là gõ dòng lệnh

[code]yum install nginx[/code]

hay với Ubuntu là

[code]apt-get install nginx[/code]

Việc cài đặt theo gói ứng dụng, thự sự dễ dàng và hiệu quả cho người mới bắt đầu, nhưng thực tế, để tìm hiểu được hết tiềm năng của Nginx, tôi bắt đầu với cách thức khó khăn hơn, đó là cài đặt từ Source code của Nginx. Mà cũng cách đây không lâu thôi, tầm 1-2 năm, việc cài đặt này đối với tôi quá đỗi xa vời, vì công việc chính của tôi không phải là quản trị Server Linux, mà là lập trình web, nhưng để có thể tự tay phát triển và bào vệ sản phẩm của mình, tôi luôn không ngừng cố gắng và học hỏi những kỹ thuật mà tôi nghĩ mình nên biết.

Việc cài đặt Nginx từ Source Code hóa ra cũng không quá khó khăn như tôi tưởng, có lẽ tôi chỉ mất đúng 5-10 phút để hoàn thành lần cài đặt đầu tiên.

Bước đầu, download source code từ website của Nginx

[code]wget http://nginx.org/download/nginx-1.7.9.tar.gz[/code]

Sau đó giải nén với lệnh tar

[code]tar -xvf nginx-1.7.9.tar.gz[/code]

Tiếp theo truy cập thư mục chưa nginx để tiến hành kiểm tra các gói và thư viện cần cài đặt

[code]./configure  –prefix=/usr/share/nginx  –sbin-path=/usr/sbin/nginx  –conf-path=/etc/nginx/nginx.conf –error-log-path=/var/log/nginx/error.log  –http-log-path=/var/log/nginx/access.log  –pid-path=/var/run/nginx.pid  –lock-path=/var/lock/subsys/nginx  –http-client-body-temp-path=/var/tmp/nginx_client_body_temp  –http-proxy-temp-path=/var/tmp/nginx_proxy_temp  –http-fastcgi-temp-path=/var/tmp/nginx_fastcgi_temp  –http-uwsgi-temp-path=/var/tmp/nginx_uwsgi_temp  –http-scgi-temp-path=/var/tmp/nginx_scgi_temp –user=nginx  –group=nginx  –with-file-aio  –with-ipv6  –with-http_ssl_module  –with-http_spdy_module  –with-http_realip_module  –with-http_addition_module  –with-http_xslt_module  –with-http_image_filter_module  –with-http_sub_module  –with-http_dav_module  –with-http_flv_module  –with-http_mp4_module  –with-http_gunzip_module  –with-http_gzip_static_module  –with-http_random_index_module  –with-http_secure_link_module  –with-http_degradation_module  –with-http_stub_status_module  –with-http_auth_request_module  –with-http_perl_module  –with-mail  –with-mail_ssl_module  –with-pcre  –with-debug  –with-cc-opt=’-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector –param=ssp-buffer-size=4 -m64 -mtune=generic’  –with-ld-opt=-Wl,-E[/code]

Tiếp đó kiểm tra các thông báo lỗi của Nginx nếu có để bổ sung các thư viện cần thiết, việc này có lẽ là tốn công nhất của bạn, nếu những thư viện gợi ý trên đây của tôi vẫn chưa thể giúp bạn cài đặt được, có lẽ bạn sẽ phải tìm hiểu thêm để hoàn thành công việc nhàm chán và căng thẳng này… Nhưng tin tôi đi, mỗi lần bạn giải quyết được một vấn đề, bạn sẽ có thêm những kiến thức mới để xử lý các công việc sau này.

Việc cuối cùng đó là compile và install nginx

[code]make
make install[/code]

Nếu bạn muốn chạy Service Nginx với user Nginx, nhìn cho nó hoành tráng thì có thể tạo thêm một user như sau, chú ý chặn quyền login của user này luôn

[code]adduser -M nginx
usermod -s /sbin/nologin nginx[/code]

Tiếp đó bạn mở file /etc/nginx/nginx.config, ở dòng đầu tiên hay thay đổi tên user chạy service này.

Khởi động Nginx với lệnh

[code]service nginx start[/code]

Chào mừng bạn đến với thế giới của Nginx 😀

 

Khắc phục lỗi “lỡ tay” di chuyển các thư mục hệ thống trên Linux

February 2, 2015 Leave a Comment

Hôm nay trong khi di chuyển trên bằng ô tô, thấy phí thời gian quá, đem điện thoại ra nghịch, kết nối vào Server làm nốt một đoạn công việc còn dang dở. Ngặt một nỗi, là cái màn hình bé tẹo, thêm nữa là mạng 3G rùa bò, bò qua Mỹ rồi vòng về Việt Nam, nên đâm ra cái sự đời mình mình trở nên “đen” hơn… với cú pháp kinh điển với quyền root

[code]mv -v abc /* bcd[/code]

Đúng là quá đen khi cái thư mục bcd của mình nó dài nguyên mấy gang tay nếu tính theo cỡ 12pt… trên cái màn hình bé tí tẹo kia thì không thể đỡ được, việc còn duy nhất một kết nối bằng cái điện thoại bé tí để xử lý sự cố… có vẻ là việc bất khả thi đối với mình trong thời điểm này… chưa kể điện thoại còn đang hết pin. Việc khó, trong hoàn cảnh vô cùng thê lương, nhưng đúng là không có gì không thể giải quyết được, miễn là bạn đừng bỏ cuộc.

Tìm kiểm giải pháp từ bạn Google, rất may là các bạn Tây đi trước đã mách nước giải quyết cho mình. Lệnh cũng khá đơn giản với Centos phiên bản 64 bit

[code]export LD_LIBRARY_PATH=/bcd/lib64 /bcd/lib64/ld-linux-x86-64.so.2 /bcd/bin/mv /bcd/{bin,etc,lib32,lib64,root,sbin,usr} /[/code]

Với phiên bản Centos 32 bít bạn có thể sử dụng lệnh sau

[code]export LD_LIBRARY_PATH=/bcd/lib:/bcd/lib/i386-linux-gnu /bcd/lib/ld-linux.so.2 /oops/bin/mv /oops/* /[/code]

Mục đích của các lệnh trên là thiết lập lại đường dẫn global của các thư viện, sau đó sử dụng tiếp lệnh mv để di chuyển lại các thư mục đã bị “chuyển nhầm” về vị trí gốc

 

Lựa chọn Permalink phù hợp

February 1, 2015 Leave a Comment

Từ khi tiếp xúc với WordPress, tôi đã tìm hiểu và nhìn thấy nhiều câu hỏi nên lựa chọn cách “rewrite url” như thế nào cho vừa tối ưu với Search Engine (SEO) vừa không làm chậm hệ thống. WordPress đã cung cấp sẵn các cách thức mà chúng ta sử dụng để hiển thị đường dẫn gọn gàng… dễ hiểu cho cả người và máy.

Permalink Settings ‹ DungNQ - WordPressCá nhân tôi thích dạng đường dẫn theo “Post name”, vì sao ư, đơn giản nếu sau này bạn có thay đổi lại ngày giờ phát hành lại bài viết của mình thì đường dẫn cũng không bị thay đổi. Đề “Default” thì nhìn cực kỳ thiếu chuyên nghiệp và khó nhớ cho người dùng. Các trường hợp còn lại cá nhân tôi thấy rườm rà, ngoài việc để theo ngày tháng hợp với các trang tin tức, và nhiều người viện cớ là làm vậy sẽ chạy nhanh hơn, hệ thống khác thì tôi không chắc, nhưng với WordPress tôi xin cam đoan với bạn ràng, chạy tất cả kiểu trên khá tương đồng, và không khá hơn nhau là bao. Vì sao ư, vì “Post name” đã được index trong Cơ sở dữ liệu, việc tìm kiếm nó dựa trên một chuỗi hash, cũng gần như việc tìm id của page hoặc post.

Tôi cũng đã có dịp thử nghiệm với những cơ sở dữ liệu lớn hơn một blog tầm trung, khoảng nửa triệu bản ghi, thì việc hiển thị trang chi tiết (detail/single) tốc độ là tương đương, liên quan đế việc WordPress chậm với dữ liệu lớn, sẽ còn là một chủ đề khác tôi sẽ đề cập tiếp sau.

 

Tạo tập tin iso trên Mac OSX

January 30, 2015 Leave a Comment

Tôi đến với Linux khá muộn, vì bận rộn với công việc chuyên môn chính là lập trình, nên dường như những kiến thức nên biết về Linux tôi đã bỏ qua trong một thời gian khá dài. Đến khi tiếp xúc, thật sự tôi cảm thấy cực kỳ thuyết phục. Nếu trước đây để hoàn thành một tác vụ nào đó trên Window, thường sẽ phải tìm kiếm phần mềm, cài đặt rồi chạy thử… mỗi lần như vậy lại kiến hệ điều hành trở nên ỳ ạch hơn.

Với Linux thì câu chuyện đã sang một hồi khác, giờ đây việc của tôi chỉ đơn giản là tìm kiếm những giải pháp, phần mềm hợp với mình. Tính sẵn có của Linux khiến tôi cảm thấy vô cũng phấn khích, công việc và ý tưởng của tôi được giải quyết trong vài ba dòng lênh. Điều mà tôi không thể tin nổi trước đây.

Hôm nay, trong khi cài đặt VirtualBox, nhiệm vụ tạo ra file iso để lấy dữ liệu có vẻ không mấy khó khăn, sau một hồi thử nghiệm, giải pháp là chuyển hết dữ liệu thành ISO sau rồi attach vào VM… khá đơn giản, nhưng nếu có máy tính Window nào ở đây, tôi sẽ chạy thẳng bằng UtraISO, thôi đành xin lỗi bạn ấy, mình không dùng thử nữa, tôi sử dụng ngay hdiutil đã được cài sẵn trong hệ điều hành. Một dòng lệnh đơn giản có thể phải mất đến mấy chục USD để mua một phần mềm năm thì mười hoạ mới sử dụng một lần.

[code]hdiutil makehybrid -iso -joliet -o Image.iso /input_path[/code]

Nếu không ngại khó hay sẵn sàng từ bỏ thói quen cố hữu, tại sao không nên thử một điều gì đó thật mới mẻ để tiết kiệm thời gian và tiền bạc cho chính mình.

  • « Go to Previous Page
  • Go to page 1
  • Interim pages omitted …
  • Go to page 56
  • Go to page 57
  • Go to page 58
  • Go to page 59
  • Go to Next Page »

sidebar